diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-11-30 15:10:43 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-11-30 15:19:35 +0100 |
commit | 84e5418cfcffd0a5f50ce40b92f48211f2cd2535 (patch) | |
tree | 4aee444b20b930ca03505e0a9945193bfa311dad /gst/mxf | |
parent | 5641546bf4257c85e86cee4acd9ed10c847ad3fe (diff) |
mxf: Add more support for RP2008 (AVC in the MPEG mapping)
Conflicts:
gst/mxf/mxfmpeg.c
Diffstat (limited to 'gst/mxf')
-rw-r--r-- | gst/mxf/mxfmpeg.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gst/mxf/mxfmpeg.c b/gst/mxf/mxfmpeg.c index 2ba69add5f..d9d66e93d1 100644 --- a/gst/mxf/mxfmpeg.c +++ b/gst/mxf/mxfmpeg.c @@ -19,12 +19,14 @@ /* Implementation of SMPTE 381M - Mapping MPEG streams into the MXF * Generic Container + * + * RP 2008 - Mapping AVC Streams into the MXF Generic Container + * */ /* TODO: * - Handle PES streams * - Fix TS/PS demuxers to forward timestamps - * - h264 support (see SMPTE RP2008) * - AAC support */ @@ -419,10 +421,12 @@ mxf_is_mpeg_essence_track (const MXFMetadataTimelineTrack * track) key = &d->essence_container; /* SMPTE 381M 7 */ + /* SMPTE RP2008 8.1 */ if (mxf_is_generic_container_essence_container_label (key) && key->u[12] == 0x02 && (key->u[13] == 0x04 || - key->u[13] == 0x07 || key->u[13] == 0x08 || key->u[13] == 0x09)) + key->u[13] == 0x07 || key->u[13] == 0x08 || key->u[13] == 0x09 || + key->u[13] == 0x0f || key->u[13] == 0x10)) return TRUE; } @@ -849,7 +853,9 @@ mxf_mpeg_create_caps (MXFMetadataTimelineTrack * track, GstTagList ** tags, GST_DEBUG ("Found h264 NAL unit stream"); /* RP 2008 */ /* TODO: What about codec_data? */ - caps = gst_caps_new_empty_simple ("video/x-h264"); + caps = + gst_caps_new_simple ("video/x-h264", "stream-format", G_TYPE_STRING, + "avc", NULL); if (!*tags) *tags = gst_tag_list_new_empty (); @@ -858,7 +864,9 @@ mxf_mpeg_create_caps (MXFMetadataTimelineTrack * track, GstTagList ** tags, } else if (f->essence_container.u[13] == 0x10) { GST_DEBUG ("Found h264 byte stream stream"); /* RP 2008 */ - caps = gst_caps_new_empty_simple ("video/x-h264"); + caps = + gst_caps_new_simple ("video/x-h264", "stream-format", G_TYPE_STRING, + "byte-stream", NULL); if (!*tags) *tags = gst_tag_list_new_empty (); |