From bc185f72c0ef515d1d077df5bad2fb1336f70d5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= <Reimar.Doeffinger@gmx.de>
Date: Sun, 23 Jul 2006 18:22:29 +0000
Subject: [PATCH] Do not crash when the first frame is not a keyframe (and thus
 none of the necessary initialization has been done yet).

Originally committed as revision 5815 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/vp3.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index eb9e917d96e..b5cfbb02cec 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -2235,10 +2235,15 @@ static int vp3_decode_frame(AVCodecContext *avctx,
                 vp3_calculate_pixel_addresses(s);
             else
                 theora_calculate_pixel_addresses(s);
+            s->pixel_addresses_inited = 1;
         }
     } else {
         /* allocate a new current frame */
         s->current_frame.reference = 3;
+        if (!s->pixel_addresses_inited) {
+            av_log(s->avctx, AV_LOG_ERROR, "vp3: first frame not a keyframe\n");
+            return -1;
+        }
         if(avctx->get_buffer(avctx, &s->current_frame) < 0) {
             av_log(s->avctx, AV_LOG_ERROR, "vp3: get_buffer() failed\n");
             return -1;
-- 
GitLab