h264: reset next_output_pic earlier in start_frame()
authorAnton Khirnov <anton@khirnov.net>
Wed, 23 Apr 2014 20:26:40 +0000 (22:26 +0200)
committerReinhard Tartler <siretart@tauware.de>
Sun, 1 Jun 2014 00:07:51 +0000 (20:07 -0400)
In case start_frame() fails, this potentially invalid frame can still be
output to the caller.

Bug-Id: 672
Bug-Id: debian/741240
Bug-Id: ubuntu/1288206

libavcodec/h264.c

index bca9bda..737fc0c 100644 (file)
@@ -1281,6 +1281,8 @@ int ff_h264_frame_start(H264Context *h){
     int i;
     const int pixel_shift = h->pixel_shift;
 
+    h->next_output_pic = NULL;
+
     if(MPV_frame_start(s, s->avctx) < 0)
         return -1;
     ff_er_frame_start(s);
@@ -1329,8 +1331,6 @@ int ff_h264_frame_start(H264Context *h){
     s->current_picture_ptr->field_poc[0]=
     s->current_picture_ptr->field_poc[1]= INT_MAX;
 
-    h->next_output_pic = NULL;
-
     assert(s->current_picture_ptr->long_ref==0);
 
     return 0;