X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fclearvideo.c;h=0e3c772123111fc586aa5d2ad5cb2b0c97e9bd63;hb=ee1e3ca5eb1ec7d34e925d129c893e33847ee0b7;hp=6061cb571ea202b7f1b71c875e9b3bd857ef2792;hpb=b14761d1f8372dfe558193b8b754b9f1a858077d;p=ffmpeg diff --git a/libavcodec/clearvideo.c b/libavcodec/clearvideo.c index 6061cb571ea..0e3c7721231 100644 --- a/libavcodec/clearvideo.c +++ b/libavcodec/clearvideo.c @@ -516,11 +516,8 @@ static int clv_decode_frame(AVCodecContext *avctx, void *data, frame_type = bytestream2_get_byte(&gb); if ((frame_type & 0x7f) == 0x30) { - if ((ret = ff_reget_buffer(avctx, c->pic)) < 0) - return ret; - - c->pic->key_frame = 0; - c->pic->pict_type = AV_PICTURE_TYPE_P; + *got_frame = 0; + return buf_size; } else if (frame_type & 0x2) { if (buf_size < c->mb_width * c->mb_height) { av_log(avctx, AV_LOG_ERROR, "Packet too small\n"); @@ -640,6 +637,9 @@ static int clv_decode_frame(AVCodecContext *avctx, void *data, *got_frame = 1; + if (get_bits_left(&c->gb) < 0) + av_log(c->avctx, AV_LOG_WARNING, "overread %d\n", -get_bits_left(&c->gb)); + return mb_ret < 0 ? mb_ret : buf_size; }