From: Jingning Han Date: Thu, 2 May 2013 05:26:08 +0000 (-0700) Subject: Fix bug in sb8x8 partition context X-Git-Tag: v1.3.0~1106^2~86^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ba24a28f699526c9f046ec869474dead2110ac97;p=platform%2Fupstream%2Flibvpx.git Fix bug in sb8x8 partition context Fix the issue that causes array bound excess in getting partition context. Change-Id: I66166f047f0bcaefebb0bcf441c5b1f777d8da44 --- diff --git a/vp9/common/vp9_blockd.h b/vp9/common/vp9_blockd.h index 4f07afc..fb0d2d0 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++)