From: Ronald S. Bultje Date: Thu, 2 May 2013 18:00:35 +0000 (-0700) Subject: Fix intra4x4 decoder reconstruction stride for sb8x8 experiment. X-Git-Tag: v1.3.0~1106^2~81^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6c8071b45c6a6fab52cf71354e55f4020d27d050;p=libvpx Fix intra4x4 decoder reconstruction stride for sb8x8 experiment. Change-Id: I5a886a6fa19086629a274f9ada7a862fd0ddf62f --- diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c index ac421f32c..f0948ba3e 100644 --- a/vp9/decoder/vp9_decodframe.c +++ b/vp9/decoder/vp9_decodframe.c @@ -243,9 +243,10 @@ static void decode_8x8(MACROBLOCKD *xd) { } #endif -static INLINE void dequant_add_y(MACROBLOCKD *xd, TX_TYPE tx_type, int idx) { +static INLINE void dequant_add_y(MACROBLOCKD *xd, TX_TYPE tx_type, int idx, + BLOCK_SIZE_TYPE bsize) { struct macroblockd_plane *const y = &xd->plane[0]; - uint8_t* const dst = raster_block_offset_uint8(xd, BLOCK_SIZE_MB16X16, 0, idx, + uint8_t* const dst = raster_block_offset_uint8(xd, bsize, 0, idx, xd->plane[0].dst.buf, xd->plane[0].dst.stride); if (tx_type != DCT_DCT) { @@ -276,7 +277,7 @@ static void decode_4x4(VP9D_COMP *pbi, MACROBLOCKD *xd, vp9_reader *r) { vp9_intra8x8_predict(xd, ib, i8x8mode, dst, xd->plane[0].dst.stride); for (j = 0; j < 4; j++) { tx_type = get_tx_type_4x4(xd, ib + iblock[j]); - dequant_add_y(xd, tx_type, ib + iblock[j]); + dequant_add_y(xd, tx_type, ib + iblock[j], BLOCK_SIZE_MB16X16); } dst = raster_block_offset_uint8(xd, BLOCK_SIZE_MB16X16, 1, i, xd->plane[1].dst.buf, @@ -360,7 +361,7 @@ static void decode_atom_intra(VP9D_COMP *pbi, MACROBLOCKD *xd, vp9_intra4x4_predict(xd, i, b_mode, dst, xd->plane[0].dst.stride); // TODO(jingning): refactor to use foreach_transformed_block_in_plane_ tx_type = get_tx_type_4x4(xd, i); - dequant_add_y(xd, tx_type, i); + dequant_add_y(xd, tx_type, i, bsize); } #if CONFIG_NEWBINTRAMODES if (!xd->mode_info_context->mbmi.mb_skip_coeff)