MPV: set reference frame pointers to NULL when allocation of dummy pictures fails
authorJanne Grunau <janne-libav@jannau.net>
Tue, 20 Mar 2012 13:44:28 +0000 (14:44 +0100)
committerJanne Grunau <janne-libav@jannau.net>
Fri, 23 Mar 2012 16:50:46 +0000 (17:50 +0100)
libavcodec/mpegvideo.c

index 720997f..2802075 100644 (file)
@@ -1267,8 +1267,10 @@ int ff_MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
             /* Allocate a dummy frame */
             i = ff_find_unused_picture(s, 0);
             s->last_picture_ptr = &s->picture[i];
-            if (ff_alloc_picture(s, s->last_picture_ptr, 0) < 0)
+            if (ff_alloc_picture(s, s->last_picture_ptr, 0) < 0) {
+                s->last_picture_ptr = NULL;
                 return -1;
+            }
             ff_thread_report_progress(&s->last_picture_ptr->f, INT_MAX, 0);
             ff_thread_report_progress(&s->last_picture_ptr->f, INT_MAX, 1);
             s->last_picture_ptr->f.reference = 3;
@@ -1279,8 +1281,10 @@ int ff_MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
             /* Allocate a dummy frame */
             i = ff_find_unused_picture(s, 0);
             s->next_picture_ptr = &s->picture[i];
-            if (ff_alloc_picture(s, s->next_picture_ptr, 0) < 0)
+            if (ff_alloc_picture(s, s->next_picture_ptr, 0) < 0) {
+                s->next_picture_ptr = NULL;
                 return -1;
+            }
             ff_thread_report_progress(&s->next_picture_ptr->f, INT_MAX, 0);
             ff_thread_report_progress(&s->next_picture_ptr->f, INT_MAX, 1);
             s->next_picture_ptr->f.reference = 3;