ref: 6c8071b45c6a6fab52cf71354e55f4020d27d050
parent: 4aad30a3cf4c4c82bc72e79c43a59d993f1b409e
author: Ronald S. Bultje <rbultje@google.com>
date: Thu May 2 07:00:35 EDT 2013
Fix intra4x4 decoder reconstruction stride for sb8x8 experiment. Change-Id: I5a886a6fa19086629a274f9ada7a862fd0ddf62f
--- a/vp9/decoder/vp9_decodframe.c
+++ b/vp9/decoder/vp9_decodframe.c
@@ -243,9 +243,10 @@
}
#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 @@
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 @@
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)
--
⑨