diff options
author | Janne Grunau <janne-libav@jannau.net> | 2014-06-10 20:50:13 +0200 |
---|---|---|
committer | Janne Grunau <janne-libav@jannau.net> | 2014-06-11 21:28:39 +0200 |
commit | cd62c04d009b3baf7582556866a7029291b54573 (patch) | |
tree | ea650daa22c6213a46dc88468dfe6b18750cdc40 | |
parent | 0ddc53dabbc6f636d062b187ea27934610aaad30 (diff) | |
download | ffmpeg-streaming-cd62c04d009b3baf7582556866a7029291b54573.zip ffmpeg-streaming-cd62c04d009b3baf7582556866a7029291b54573.tar.gz |
h263enc: keep block_last_index always valid during advanced intra coding
Prevents a triggered assert during fate-vsynth{1,2}-rv20 in
dct_unquantize_h263_intra_c().
-rw-r--r-- | libavcodec/ituh263enc.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c index cd4ed84..5f15b2f 100644 --- a/libavcodec/ituh263enc.c +++ b/libavcodec/ituh263enc.c @@ -566,10 +566,6 @@ void ff_h263_encode_mb(MpegEncContext * s, else level = (level - (scale>>1))/scale; - /* AIC can change CBP */ - if (level == 0 && s->block_last_index[i] == 0) - s->block_last_index[i] = -1; - if(!s->modified_quant){ if (level < -127) level = -127; @@ -592,7 +588,9 @@ void ff_h263_encode_mb(MpegEncContext * s, /* Update AC/DC tables */ *dc_ptr[i] = rec_intradc[i]; - if (s->block_last_index[i] >= 0) + /* AIC can change CBP */ + if (s->block_last_index[i] > 0 || + (s->block_last_index[i] == 0 && level !=0)) cbp |= 1 << (5 - i); } }else{ |