[FFmpeg-cvslog] indeo4: expand allowed quantiser range
Kostya Shishkov
git at videolan.org
Sat Jun 1 10:32:30 CEST 2013
ffmpeg | branch: master | Kostya Shishkov <kostya.shishkov at gmail.com> | Fri May 31 21:09:27 2013 +0200| [33f64fd5d588a82b8bae1b1b5ea627c0c80b01d6] | committer: Kostya Shishkov
indeo4: expand allowed quantiser range
Indeo 4 has quantiser range 0-31 instead of 0-23 for Indeo 5, and clipping
quantiser leads to incorrect quantisation and DC prediction on low-quality
videos.
This fixes bug 259.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=33f64fd5d588a82b8bae1b1b5ea627c0c80b01d6
---
libavcodec/ivi_common.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/libavcodec/ivi_common.c b/libavcodec/ivi_common.c
index f11b729..f7e241b 100644
--- a/libavcodec/ivi_common.c
+++ b/libavcodec/ivi_common.c
@@ -418,7 +418,11 @@ static int ivi_decode_blocks(GetBitContext *gb, IVIBandDesc *band, IVITile *tile
cbp = mb->cbp;
buf_offs = mb->buf_offs;
- quant = av_clip(band->glob_quant + mb->q_delta, 0, 23);
+ quant = band->glob_quant + mb->q_delta;
+ if (avctx->codec_id == AV_CODEC_ID_INDEO4)
+ quant = av_clip(quant, 0, 31);
+ else
+ quant = av_clip(quant, 0, 23);
base_tab = is_intra ? band->intra_base : band->inter_base;
scale_tab = is_intra ? band->intra_scale : band->inter_scale;
More information about the ffmpeg-cvslog
mailing list