changeset 3512:feace06d4184 libavcodec

Do not crash when the first frame is not a keyframe (and thus none of the necessary initialization has been done yet).
author reimar
date Sun, 23 Jul 2006 18:22:29 +0000
parents f88787aeed6b
children 634ad7b3a198
files vp3.c
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/vp3.c	Sun Jul 23 04:57:36 2006 +0000
+++ b/vp3.c	Sun Jul 23 18:22:29 2006 +0000
@@ -2235,10 +2235,15 @@
                 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;