shithub: libvpx

Download patch

ref: 7189198d53123273fe89f20e35ee11ae45ee8fcd
parent: a0ed4e63802a395c6147b5abb70311f50b98d95e
author: Yaowu Xu <yaowu@google.com>
date: Thu Nov 10 12:15:06 EST 2011

fixed the decoder when using 8x8 transform

updated the decode_macroblock logic to reflect that 8x8 transform is
not used for "SPLITMV". Also fixed an issue where 2nd order haar block
has wrong dequant/idct process.

Change-Id: I1e373f6535c009dfec503b6362c8a5cfc196e1da

--- a/vp8/decoder/decodframe.c
+++ b/vp8/decoder/decodframe.c
@@ -393,34 +393,18 @@
                 ((int *)b->qcoeff)[0] = 0;
             }
         }
-
     }
     else if (mode == SPLITMV)
     {
-#if CONFIG_T8X8
-        if ( tx_type == TX_8X8 )
-        {
-            DEQUANT_INVOKE (&pbi->dequant, idct_add_y_block_8x8)
-                (xd->qcoeff, xd->block[0].dequant,
-                xd->predictor, xd->dst.y_buffer,
-                xd->dst.y_stride, xd->eobs, xd);
-        }
-        else
-#endif
-        {
-            DEQUANT_INVOKE (&pbi->dequant, idct_add_y_block)
-                (xd->qcoeff, xd->block[0].dequant,
-                xd->predictor, xd->dst.y_buffer,
-                xd->dst.y_stride, xd->eobs);
-        }
+        DEQUANT_INVOKE (&pbi->dequant, idct_add_y_block)
+            (xd->qcoeff, xd->block[0].dequant,
+            xd->predictor, xd->dst.y_buffer,
+            xd->dst.y_stride, xd->eobs);
     }
     else
     {
         BLOCKD *b = &xd->block[24];
 
-        DEQUANT_INVOKE(&pbi->dequant, block)(b);
-
-        /* do 2nd order transform on the dc block */
 #if CONFIG_T8X8
         if( tx_type == TX_8X8 )
         {
@@ -455,6 +439,7 @@
         else
 #endif
         {
+            DEQUANT_INVOKE(&pbi->dequant, block)(b);
             if (xd->eobs[24] > 1)
             {
                 IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh16)(&b->dqcoeff[0], b->diff);
--