mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
mxf: Add more support for RP2008 (AVC in the MPEG mapping)
Conflicts: gst/mxf/mxfmpeg.c
This commit is contained in:
parent
5641546bf4
commit
84e5418cfc
1 changed files with 12 additions and 4 deletions
|
@ -19,12 +19,14 @@
|
||||||
|
|
||||||
/* Implementation of SMPTE 381M - Mapping MPEG streams into the MXF
|
/* Implementation of SMPTE 381M - Mapping MPEG streams into the MXF
|
||||||
* Generic Container
|
* Generic Container
|
||||||
|
*
|
||||||
|
* RP 2008 - Mapping AVC Streams into the MXF Generic Container
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* TODO:
|
/* TODO:
|
||||||
* - Handle PES streams
|
* - Handle PES streams
|
||||||
* - Fix TS/PS demuxers to forward timestamps
|
* - Fix TS/PS demuxers to forward timestamps
|
||||||
* - h264 support (see SMPTE RP2008)
|
|
||||||
* - AAC support
|
* - AAC support
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -419,10 +421,12 @@ mxf_is_mpeg_essence_track (const MXFMetadataTimelineTrack * track)
|
||||||
|
|
||||||
key = &d->essence_container;
|
key = &d->essence_container;
|
||||||
/* SMPTE 381M 7 */
|
/* SMPTE 381M 7 */
|
||||||
|
/* SMPTE RP2008 8.1 */
|
||||||
if (mxf_is_generic_container_essence_container_label (key) &&
|
if (mxf_is_generic_container_essence_container_label (key) &&
|
||||||
key->u[12] == 0x02 &&
|
key->u[12] == 0x02 &&
|
||||||
(key->u[13] == 0x04 ||
|
(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;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -849,7 +853,9 @@ mxf_mpeg_create_caps (MXFMetadataTimelineTrack * track, GstTagList ** tags,
|
||||||
GST_DEBUG ("Found h264 NAL unit stream");
|
GST_DEBUG ("Found h264 NAL unit stream");
|
||||||
/* RP 2008 */
|
/* RP 2008 */
|
||||||
/* TODO: What about codec_data? */
|
/* 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)
|
if (!*tags)
|
||||||
*tags = gst_tag_list_new_empty ();
|
*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) {
|
} else if (f->essence_container.u[13] == 0x10) {
|
||||||
GST_DEBUG ("Found h264 byte stream stream");
|
GST_DEBUG ("Found h264 byte stream stream");
|
||||||
/* RP 2008 */
|
/* 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)
|
if (!*tags)
|
||||||
*tags = gst_tag_list_new_empty ();
|
*tags = gst_tag_list_new_empty ();
|
||||||
|
|
Loading…
Reference in a new issue