ref: 403f6b5846df2a7c83984f73e58f40b3df884132
parent: fbf2ac111e2bf104cefe6080e822c626f65753f2
author: Ronald S. Bultje <rbultje@google.com>
date: Thu Oct 25 08:46:26 EDT 2012
Always extend macroblock edges in the decoder. This fixes edge extension if SB [0,1] doesn't use B_PRED but [1,1] does. Change-Id: I48354a9dba0de16472938824f5e6db87ce61979f
--- a/vp8/decoder/decodframe.c
+++ b/vp8/decoder/decodframe.c
@@ -202,7 +202,7 @@
}
static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
- int mb_row, unsigned int mb_col,
+ unsigned int mb_col,
BOOL_DECODER* const bc) {
int eobtotal = 0;
MB_PREDICTION_MODE mode;
@@ -355,8 +355,6 @@
b->dst_stride);
}
} else if (mode == B_PRED) {
- vp8_intra_prediction_down_copy(xd, mb_col == pc->mb_cols - 1 &&
- !(mb_row & 1));
for (i = 0; i < 16; i++) {
BLOCKD *b = &xd->block[i];
int b_mode = xd->mode_info_context->bmi[i].as_mode.first;
@@ -660,7 +658,9 @@
mi[pc->mode_info_stride + 1] = mi[0];
}
#endif
- decode_macroblock(pbi, xd, mb_row, mb_col, bc);
+ vp8_intra_prediction_down_copy(xd, mb_col == pc->mb_cols - 1 &&
+ !(mb_row & 1));
+ decode_macroblock(pbi, xd, mb_col, bc);
#if CONFIG_SUPERBLOCKS
if (xd->mode_info_context->mbmi.encoded_as_sb) {
mi[1].mbmi.txfm_size = mi[0].mbmi.txfm_size;
--
⑨