lavc: properly handle subtitle_header in avcodec_copy_context()
authorAnton Khirnov <anton@khirnov.net>
Sat, 5 Apr 2014 05:40:49 +0000 (07:40 +0200)
committerAnton Khirnov <anton@khirnov.net>
Thu, 15 May 2014 05:51:39 +0000 (07:51 +0200)
libavcodec/options.c

index c28cbeb..85c1bec 100644 (file)
@@ -162,6 +162,7 @@ int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
     dest->intra_matrix    = NULL;
     dest->inter_matrix    = NULL;
     dest->rc_override     = NULL;
     dest->intra_matrix    = NULL;
     dest->inter_matrix    = NULL;
     dest->rc_override     = NULL;
+    dest->subtitle_header = NULL;
     if (src->rc_eq) {
         dest->rc_eq = av_strdup(src->rc_eq);
         if (!dest->rc_eq)
     if (src->rc_eq) {
         dest->rc_eq = av_strdup(src->rc_eq);
         if (!dest->rc_eq)
@@ -182,6 +183,8 @@ int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src)
     alloc_and_copy_or_fail(intra_matrix, 64 * sizeof(int16_t), 0);
     alloc_and_copy_or_fail(inter_matrix, 64 * sizeof(int16_t), 0);
     alloc_and_copy_or_fail(rc_override,  src->rc_override_count * sizeof(*src->rc_override), 0);
     alloc_and_copy_or_fail(intra_matrix, 64 * sizeof(int16_t), 0);
     alloc_and_copy_or_fail(inter_matrix, 64 * sizeof(int16_t), 0);
     alloc_and_copy_or_fail(rc_override,  src->rc_override_count * sizeof(*src->rc_override), 0);
+    alloc_and_copy_or_fail(subtitle_header, src->subtitle_header_size, 0);
+    dest->subtitle_header_size = src->subtitle_header_size;
 #undef alloc_and_copy_or_fail
 
     return 0;
 #undef alloc_and_copy_or_fail
 
     return 0;