X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fmpc8.c;h=8894457c7e71af4240ec231034b296197b115fa6;hb=93a0f4a3cbb823b2ddcb66a3a4c8f08aa7934078;hp=a8feb6c4ce64d1cc250901f4631397a7f838ed7a;hpb=b975aeec02e4518a4e5f2996cf51d113e42e1727;p=ffmpeg diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c index a8feb6c4ce6..8894457c7e7 100644 --- a/libavcodec/mpc8.c +++ b/libavcodec/mpc8.c @@ -415,10 +415,14 @@ static int mpc8_decode_frame(AVCodecContext * avctx, void *data, c->cur_frame++; c->last_bits_used = get_bits_count(gb); - if(get_bits_left(gb) < 8) // we have only padding left - c->last_bits_used = buf_size << 3; if(c->cur_frame >= c->frames) c->cur_frame = 0; + if(c->cur_frame == 0 && get_bits_left(gb) < 8) {// we have only padding left + c->last_bits_used = buf_size << 3; + } else if (get_bits_left(gb) < 0) { + av_log(avctx, AV_LOG_ERROR, "Overread %d\n", -get_bits_left(gb)); + c->last_bits_used = buf_size << 3; + } *got_frame_ptr = 1;