diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h index 4f07afc03c1b692651065ac30efc6fb3b7f93669..fb0d2d02b836dd8943f871382c64f44f0c6dd930 100644 --- a/vp9/common/vp9_blockd.h +++ b/vp9/common/vp9_blockd.h @@ -498,7 +498,7 @@ static INLINE void update_partition_context(MACROBLOCKD *xd, static INLINE int partition_plane_context(MACROBLOCKD *xd, BLOCK_SIZE_TYPE sb_type) { - int bsl = mi_width_log2(sb_type), bs = 1 << bsl; + int bsl = mi_width_log2(sb_type), bs; int above = 0, left = 0, i; int boffset = mi_width_log2(BLOCK_SIZE_SB64X64) - bsl; @@ -506,6 +506,12 @@ static INLINE int partition_plane_context(MACROBLOCKD *xd, assert(bsl >= 0); assert(boffset >= 0); +#if CONFIG_SB8X8 + bs = 1 << (bsl - 1); +#else + bs = 1 << bsl; +#endif + for (i = 0; i < bs; i++) above |= (xd->above_seg_context[i] & (1 << boffset)); for (i = 0; i < bs; i++)