mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-07 07:58:51 +00:00
gst/mxf/mxfmpeg.c: Add initial support for h.264 video (SMPTE RP2008).
Original commit message from CVS: * gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps), (mxf_mpeg_create_caps): Add initial support for h.264 video (SMPTE RP2008).
This commit is contained in:
parent
2169215a12
commit
9488ef3764
2 changed files with 40 additions and 9 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2008-12-22 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||||
|
|
||||||
|
* gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps),
|
||||||
|
(mxf_mpeg_create_caps):
|
||||||
|
Add initial support for h.264 video (SMPTE RP2008).
|
||||||
|
|
||||||
2008-12-22 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
2008-12-22 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||||
|
|
||||||
* gst/mxf/mxfmetadata.c: (mxf_metadata_base_resolve):
|
* gst/mxf/mxfmetadata.c: (mxf_metadata_base_resolve):
|
||||||
|
|
|
@ -386,6 +386,12 @@ mxf_mpeg_es_create_caps (MXFMetadataTimelineTrack * track, GstTagList ** tags,
|
||||||
gst_buffer_unref (codec_data);
|
gst_buffer_unref (codec_data);
|
||||||
}
|
}
|
||||||
codec_name = "MPEG-4 Video";
|
codec_name = "MPEG-4 Video";
|
||||||
|
} else if ((p->picture_essence_coding.u[13] >> 4) == 0x03) {
|
||||||
|
/* RP 2008 */
|
||||||
|
|
||||||
|
/* TODO: What about codec_data for AVC1 streams? */
|
||||||
|
caps = gst_caps_new_simple ("video/x-h264", NULL);
|
||||||
|
codec_name = "h.264 Video";
|
||||||
} else {
|
} else {
|
||||||
GST_ERROR ("Unsupported MPEG picture essence coding 0x%02x",
|
GST_ERROR ("Unsupported MPEG picture essence coding 0x%02x",
|
||||||
p->picture_essence_coding.u[13]);
|
p->picture_essence_coding.u[13]);
|
||||||
|
@ -472,17 +478,17 @@ mxf_mpeg_create_caps (MXFMetadataTimelineTrack * track, GstTagList ** tags,
|
||||||
if (!track->parent.descriptor[i])
|
if (!track->parent.descriptor[i])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (MXF_IS_METADATA_GENERIC_PICTURE_ESSENCE_DESCRIPTOR (track->parent.
|
if (MXF_IS_METADATA_GENERIC_PICTURE_ESSENCE_DESCRIPTOR (track->
|
||||||
descriptor[i])) {
|
parent.descriptor[i])) {
|
||||||
f = track->parent.descriptor[i];
|
f = track->parent.descriptor[i];
|
||||||
p = (MXFMetadataGenericPictureEssenceDescriptor *) track->
|
p = (MXFMetadataGenericPictureEssenceDescriptor *) track->parent.
|
||||||
parent.descriptor[i];
|
descriptor[i];
|
||||||
break;
|
break;
|
||||||
} else if (MXF_IS_METADATA_GENERIC_SOUND_ESSENCE_DESCRIPTOR (track->parent.
|
} else if (MXF_IS_METADATA_GENERIC_SOUND_ESSENCE_DESCRIPTOR (track->
|
||||||
descriptor[i])) {
|
parent.descriptor[i])) {
|
||||||
f = track->parent.descriptor[i];
|
f = track->parent.descriptor[i];
|
||||||
s = (MXFMetadataGenericSoundEssenceDescriptor *) track->
|
s = (MXFMetadataGenericSoundEssenceDescriptor *) track->parent.
|
||||||
parent.descriptor[i];
|
descriptor[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -518,9 +524,28 @@ mxf_mpeg_create_caps (MXFMetadataTimelineTrack * track, GstTagList ** tags,
|
||||||
*tags = gst_tag_list_new ();
|
*tags = gst_tag_list_new ();
|
||||||
gst_tag_list_add (*tags, GST_TAG_MERGE_APPEND, GST_TAG_VIDEO_CODEC,
|
gst_tag_list_add (*tags, GST_TAG_MERGE_APPEND, GST_TAG_VIDEO_CODEC,
|
||||||
"MPEG TS", NULL);
|
"MPEG TS", NULL);
|
||||||
|
} else if (f->essence_container.u[13] == 0x0f) {
|
||||||
|
GST_DEBUG ("Found h264 NAL unit stream");
|
||||||
|
/* RP 2008 */
|
||||||
|
/* TODO: What about codec_data? */
|
||||||
|
caps = gst_caps_new_simple ("video/x-h264", NULL);
|
||||||
|
|
||||||
|
if (!*tags)
|
||||||
|
*tags = gst_tag_list_new ();
|
||||||
|
gst_tag_list_add (*tags, GST_TAG_MERGE_APPEND, GST_TAG_VIDEO_CODEC,
|
||||||
|
"h.264 Video", NULL);
|
||||||
|
} else if (f->essence_container.u[13] == 0x10) {
|
||||||
|
GST_DEBUG ("Found h264 byte stream stream");
|
||||||
|
/* RP 2008 */
|
||||||
|
caps = gst_caps_new_simple ("video/x-h264", NULL);
|
||||||
|
|
||||||
|
if (!*tags)
|
||||||
|
*tags = gst_tag_list_new ();
|
||||||
|
gst_tag_list_add (*tags, GST_TAG_MERGE_APPEND, GST_TAG_VIDEO_CODEC,
|
||||||
|
"h.264 Video", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p)
|
if (p && caps)
|
||||||
mxf_metadata_generic_picture_essence_descriptor_set_caps (p, caps);
|
mxf_metadata_generic_picture_essence_descriptor_set_caps (p, caps);
|
||||||
|
|
||||||
return caps;
|
return caps;
|
||||||
|
|
Loading…
Reference in a new issue