From 7189198d53123273fe89f20e35ee11ae45ee8fcd Mon Sep 17 00:00:00 2001 From: Yaowu Xu Date: Thu, 10 Nov 2011 17:15:06 -0800 Subject: [PATCH] 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 --- vp8/decoder/decodframe.c | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) 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);