]> granicus.if.org Git - libvpx/commitdiff
fixed a decoder bug
authorYaowu Xu <yaowu@google.com>
Sat, 8 Oct 2011 22:48:53 +0000 (15:48 -0700)
committerYaowu Xu <yaowu@google.com>
Sat, 8 Oct 2011 22:48:53 +0000 (15:48 -0700)
When 8x8 transform is enabled, the decoder does an extra reconstruct
on MBs that are coded using 8x8. This commit fixed the logic around
the decoding of mb encoded with 8x8 transform.

Change-Id: I6926557c9ef00eecb375f62946f7e140c660bf6f

vp8/decoder/decodframe.c

index 0f4b47463a6d39e30ed6d7fca2c4c769844f139c..7445ca82a44de0e2b398b300705f6d888053651b 100644 (file)
@@ -449,6 +449,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
 
         else
 #endif
+        {
             if (xd->eobs[24] > 1)
             {
                 IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh16)(&b->dqcoeff[0], b->diff);
@@ -471,6 +472,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
                 (xd->qcoeff, xd->block[0].dequant,
                 xd->predictor, xd->dst.y_buffer,
                 xd->dst.y_stride, xd->eobs, xd->block[24].diff);
+        }
     }
 #if CONFIG_T8X8
     if(xd->mode_info_context->mbmi.segment_id >= 2)
@@ -604,7 +606,7 @@ decode_mb_row(VP8D_COMP *pbi, VP8_COMMON *pc, int mb_row, MACROBLOCKD *xd)
         }
 
 #ifdef DEC_DEBUG
-        dec_debug = (pc->current_video_frame==5 && mb_row==2 && mb_col==3);
+        dec_debug = (pc->current_video_frame==0 && mb_row==1 && mb_col==11);
 #endif
         decode_macroblock(pbi, xd, mb_row * pc->mb_cols  + mb_col);