avcodec/h264_slice: update slice context linesizes when a new picture is allocated
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 21 Mar 2015 22:45:46 +0000 (23:45 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 21 Mar 2015 22:45:46 +0000 (23:45 +0100)
previously they where only updated when decoding started and would thus have
been inconsistent for a longer period of time leaving more chances for
problems

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/h264_slice.c

index fe773a5..44000c7 100644 (file)
@@ -711,6 +711,11 @@ static int h264_frame_start(H264Context *h)
     if ((ret = ff_h264_ref_picture(h, &h->cur_pic, h->cur_pic_ptr)) < 0)
         return ret;
 
+    for (i = 0; i < h->nb_slice_ctx; i++) {
+        h->slice_ctx[i].linesize   = h->cur_pic_ptr->f.linesize[0];
+        h->slice_ctx[i].uvlinesize = h->cur_pic_ptr->f.linesize[1];
+    }
+
     if (CONFIG_ERROR_RESILIENCE) {
         ff_er_frame_start(&h->slice_ctx[0].er);
         ff_h264_set_erpic(&h->slice_ctx[0].er.last_pic, NULL);