From: Yaowu Xu Date: Fri, 11 Nov 2011 01:15:06 +0000 (-0800) Subject: fixed the decoder when using 8x8 transform X-Git-Tag: v1.3.0~1217^2~380^2~160^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7189198d53123273fe89f20e35ee11ae45ee8fcd;p=libvpx 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 --- diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c index aa079d8bd..57b781a11 100644 --- a/vp8/decoder/decodframe.c +++ b/vp8/decoder/decodframe.c @@ -393,34 +393,18 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, ((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 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, else #endif { + DEQUANT_INVOKE(&pbi->dequant, block)(b); if (xd->eobs[24] > 1) { IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh16)(&b->dqcoeff[0], b->diff);