diff options
author | Kostya Shishkov <kostya.shishkov@gmail.com> | 2008-10-24 06:17:18 +0000 |
---|---|---|
committer | Kostya Shishkov <kostya.shishkov@gmail.com> | 2008-10-24 06:17:18 +0000 |
commit | 60ce2f9cae32c388e89ef34d2fd45bef336f298f (patch) | |
tree | de14b311beeb9438c6458e854c88e3490d9fe737 | |
parent | bd09e8a7df91c6e2c506a3c2d7b2805da75a91e4 (diff) | |
download | ffmpeg-60ce2f9cae32c388e89ef34d2fd45bef336f298f.tar.gz |
Choose RV3/4 DC quantizer correctly
Originally committed as revision 15675 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/rv34.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c index f93e6ebc97..cf791dc7da 100644 --- a/libavcodec/rv34.c +++ b/libavcodec/rv34.c @@ -1046,7 +1046,7 @@ static int rv34_decode_macroblock(RV34DecContext *r, int8_t *intra_types) if(cbp == -1) return -1; - luma_dc_quant = r->si.type ? r->luma_dc_quant_p[s->qscale] : r->luma_dc_quant_i[s->qscale]; + luma_dc_quant = r->block_type == RV34_MB_P_MIX16x16 ? r->luma_dc_quant_p[s->qscale] : r->luma_dc_quant_i[s->qscale]; if(r->is16){ memset(block16, 0, sizeof(block16)); rv34_decode_block(block16, gb, r->cur_vlcs, 3, 0); @@ -1060,7 +1060,7 @@ static int rv34_decode_macroblock(RV34DecContext *r, int8_t *intra_types) blkoff = ((i & 1) << 2) + ((i & 4) << 3); if(cbp & 1) rv34_decode_block(s->block[blknum] + blkoff, gb, r->cur_vlcs, r->luma_vlc, 0); - rv34_dequant4x4(s->block[blknum] + blkoff, rv34_qscale_tab[luma_dc_quant],rv34_qscale_tab[s->qscale]); + rv34_dequant4x4(s->block[blknum] + blkoff, rv34_qscale_tab[s->qscale],rv34_qscale_tab[s->qscale]); if(r->is16) //FIXME: optimize s->block[blknum][blkoff] = block16[(i & 3) | ((i & 0xC) << 1)]; rv34_inv_transform(s->block[blknum] + blkoff); |