zerocodec: check if the previous frame is missing
authorPaul B Mahol <onemda@gmail.com>
Fri, 4 May 2012 16:32:43 +0000 (12:32 -0400)
committerLuca Barbato <lu_zero@gentoo.org>
Sun, 6 May 2012 22:47:10 +0000 (15:47 -0700)
ZeroCodec relies on the keyframe flag being set in the container, and
prev is the previously decoded frame. A keyframe flags incorrectly set
will lead to this condition.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
libavcodec/zerocodec.c

index 6c57e05..487cb32 100644 (file)
@@ -65,6 +65,10 @@ static int zerocodec_decode_frame(AVCodecContext *avctx, void *data,
         pic->key_frame = 1;
         pic->pict_type = AV_PICTURE_TYPE_I;
     } else {
+        if (!prev) {
+            av_log(avctx, AV_LOG_ERROR, "Missing reference frame!\n");
+            return AVERROR_INVALIDDATA;
+        }
         pic->key_frame = 0;
         pic->pict_type = AV_PICTURE_TYPE_P;
     }