]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/hevcdec: keep closed captions in sync between multiple thread contexts
authorJames Almer <jamrial@gmail.com>
Fri, 20 Dec 2019 17:05:42 +0000 (14:05 -0300)
committerJames Almer <jamrial@gmail.com>
Sat, 21 Dec 2019 19:10:21 +0000 (16:10 -0300)
Based on h264 code.

Reviewed-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/hevcdec.c

index f8270b87c36c01dd22b7f39e25350ee538e0b45b..19b0cd815d288005ca4c7e194c3f74404045f0ad 100644 (file)
@@ -3463,6 +3463,13 @@ static int hevc_update_thread_context(AVCodecContext *dst,
         s->max_ra = INT_MAX;
     }
 
+    av_buffer_unref(&s->sei.a53_caption.buf_ref);
+    if (s0->sei.a53_caption.buf_ref) {
+        s->sei.a53_caption.buf_ref = av_buffer_ref(s0->sei.a53_caption.buf_ref);
+        if (!s->sei.a53_caption.buf_ref)
+            return AVERROR(ENOMEM);
+    }
+
     s->sei.frame_packing        = s0->sei.frame_packing;
     s->sei.display_orientation  = s0->sei.display_orientation;
     s->sei.mastering_display    = s0->sei.mastering_display;