mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Choose RV3/4 DC quantizer correctly
Originally committed as revision 15675 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
bd09e8a7df
commit
60ce2f9cae
@ -1046,7 +1046,7 @@ static int rv34_decode_macroblock(RV34DecContext *r, int8_t *intra_types)
|
|||||||
if(cbp == -1)
|
if(cbp == -1)
|
||||||
return -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){
|
if(r->is16){
|
||||||
memset(block16, 0, sizeof(block16));
|
memset(block16, 0, sizeof(block16));
|
||||||
rv34_decode_block(block16, gb, r->cur_vlcs, 3, 0);
|
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);
|
blkoff = ((i & 1) << 2) + ((i & 4) << 3);
|
||||||
if(cbp & 1)
|
if(cbp & 1)
|
||||||
rv34_decode_block(s->block[blknum] + blkoff, gb, r->cur_vlcs, r->luma_vlc, 0);
|
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
|
if(r->is16) //FIXME: optimize
|
||||||
s->block[blknum][blkoff] = block16[(i & 3) | ((i & 0xC) << 1)];
|
s->block[blknum][blkoff] = block16[(i & 3) | ((i & 0xC) << 1)];
|
||||||
rv34_inv_transform(s->block[blknum] + blkoff);
|
rv34_inv_transform(s->block[blknum] + blkoff);
|
||||||
|
Loading…
Reference in New Issue
Block a user