summaryrefslogtreecommitdiff
path: root/gst/mxf
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-11-30 15:10:43 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-11-30 15:19:35 +0100
commit84e5418cfcffd0a5f50ce40b92f48211f2cd2535 (patch)
tree4aee444b20b930ca03505e0a9945193bfa311dad /gst/mxf
parent5641546bf4257c85e86cee4acd9ed10c847ad3fe (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.c16
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 ();