Signed-off-by: Marton Balint <c...@passwd.hu>
---
 libavformat/mxfdec.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index cf1cd71987..d9ce09cc75 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -1280,6 +1280,7 @@ static const MXFCodecUL mxf_sound_essence_container_uls[] 
= {
 static const MXFCodecUL mxf_data_essence_container_uls[] = {
     { { 
0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0d,0x00,0x00 
}, 16, AV_CODEC_ID_NONE,      "vbi_smpte_436M" },
     { { 
0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 
}, 16, AV_CODEC_ID_NONE, "vbi_vanc_smpte_436M" },
+    { { 
0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x13,0x01,0x01 
}, 16, AV_CODEC_ID_TIMED_TEXT_MARKUP },
     { { 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 
},  0, AV_CODEC_ID_NONE },
 };
 
@@ -2351,7 +2352,13 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
                 st->need_parsing = AVSTREAM_PARSE_FULL;
             }
         } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA) {
+            enum AVMediaType type;
             container_ul = mxf_get_codec_ul(mxf_data_essence_container_uls, 
essence_container_ul);
+            if (st->codecpar->codec_id == AV_CODEC_ID_NONE)
+                st->codecpar->codec_id = container_ul->id;
+            type = avcodec_get_type(st->codecpar->codec_id);
+            if (type == AVMEDIA_TYPE_SUBTITLE)
+                st->codecpar->codec_type = type;
             if (container_ul->desc)
                 av_dict_set(&st->metadata, "data_type", container_ul->desc, 0);
         }
@@ -2501,6 +2508,7 @@ static const MXFMetadataReadTableEntry 
mxf_metadata_read_table[] = {
     { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x5b,0x00 
}, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* VBI - 
SMPTE 436M */
     { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x5c,0x00 
}, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* 
VANC/VBI - SMPTE 436M */
     { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x5e,0x00 
}, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* 
MPEG2AudioDescriptor */
+    { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x64,0x00 
}, mxf_read_generic_descriptor, sizeof(MXFDescriptor), Descriptor }, /* DC 
Timed Text Descriptor */
     { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3A,0x00 
}, mxf_read_track, sizeof(MXFTrack), Track }, /* Static Track */
     { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x3B,0x00 
}, mxf_read_track, sizeof(MXFTrack), Track }, /* Generic Track */
     { { 
0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x14,0x00 
}, mxf_read_timecode_component, sizeof(MXFTimecodeComponent), TimecodeComponent 
},
-- 
2.16.3

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to