Commit 7189198d authored by Yaowu Xu's avatar Yaowu Xu
Browse files

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
parent a0ed4e63
...@@ -393,34 +393,18 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, ...@@ -393,34 +393,18 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
((int *)b->qcoeff)[0] = 0; ((int *)b->qcoeff)[0] = 0;
} }
} }
} }
else if (mode == SPLITMV) else if (mode == SPLITMV)
{ {
#if CONFIG_T8X8 DEQUANT_INVOKE (&pbi->dequant, idct_add_y_block)
if ( tx_type == TX_8X8 ) (xd->qcoeff, xd->block[0].dequant,
{ xd->predictor, xd->dst.y_buffer,
DEQUANT_INVOKE (&pbi->dequant, idct_add_y_block_8x8) xd->dst.y_stride, xd->eobs);
(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);
}
} }
else else
{ {
BLOCKD *b = &xd->block[24]; BLOCKD *b = &xd->block[24];
DEQUANT_INVOKE(&pbi->dequant, block)(b);
/* do 2nd order transform on the dc block */
#if CONFIG_T8X8 #if CONFIG_T8X8
if( tx_type == TX_8X8 ) if( tx_type == TX_8X8 )
{ {
...@@ -455,6 +439,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, ...@@ -455,6 +439,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
else else
#endif #endif
{ {
DEQUANT_INVOKE(&pbi->dequant, block)(b);
if (xd->eobs[24] > 1) if (xd->eobs[24] > 1)
{ {
IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh16)(&b->dqcoeff[0], b->diff); IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh16)(&b->dqcoeff[0], b->diff);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment