diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2008-12-05 12:26:02 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2008-12-05 12:26:02 +0000 |
commit | 6f15343df11bdd3b39ede05158f0f8e7f1fdca62 (patch) | |
tree | 4313ba8b4dd6ef739352f156cee1552f75b1a116 /gst/mxf/mxfparse.c | |
parent | 278604dfa1d8f2a3b57ef8fb89d32a7abe1a0be4 (diff) | |
download | gst-plugins-bad-6f15343df11bdd3b39ede05158f0f8e7f1fdca62.tar.gz gst-plugins-bad-6f15343df11bdd3b39ede05158f0f8e7f1fdca62.tar.bz2 gst-plugins-bad-6f15343df11bdd3b39ede05158f0f8e7f1fdca62.zip |
gst/mxf/: Implement parsing of the generic data essence descriptor.
Original commit message from CVS:
* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
(gst_mxf_demux_handle_metadata_generic_data_essence_descriptor),
(gst_mxf_demux_handle_header_metadata_resolve_references),
(gst_mxf_demux_handle_metadata):
* gst/mxf/mxfdemux.h:
* gst/mxf/mxfparse.c:
(mxf_metadata_generic_data_essence_descriptor_handle_tag),
(mxf_metadata_generic_data_essence_descriptor_reset):
* gst/mxf/mxfparse.h:
* gst/mxf/mxftypes.h:
Implement parsing of the generic data essence descriptor.
Diffstat (limited to 'gst/mxf/mxfparse.c')
-rw-r--r-- | gst/mxf/mxfparse.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gst/mxf/mxfparse.c b/gst/mxf/mxfparse.c index 53726b6b..212c6942 100644 --- a/gst/mxf/mxfparse.c +++ b/gst/mxf/mxfparse.c @@ -2838,6 +2838,52 @@ void mxf_metadata_rgba_picture_essence_descriptor_reset } gboolean + mxf_metadata_generic_data_essence_descriptor_handle_tag + (MXFMetadataGenericDescriptor * d, const MXFPrimerPack * primer, + guint16 tag, const guint8 * tag_data, guint16 tag_size) +{ + MXFMetadataGenericDataEssenceDescriptor *descriptor = + (MXFMetadataGenericDataEssenceDescriptor *) d; + gboolean ret = FALSE; + gchar str[48]; + + switch (tag) { + case 0x3e01: + if (tag_size != 16) + goto error; + memcpy (&descriptor->data_essence_compression, tag_data, 16); + GST_DEBUG (" data essence compression = %s", + mxf_ul_to_string (&descriptor->data_essence_compression, str)); + ret = TRUE; + break; + default: + ret = + mxf_metadata_file_descriptor_handle_tag (d, primer, tag, tag_data, + tag_size); + break; + } + + return ret; + +error: + GST_ERROR ("Invalid generic data essence descriptor tag 0x%04x of size %u", + tag, tag_size); + + return TRUE; +} + +void mxf_metadata_generic_data_essence_descriptor_reset + (MXFMetadataGenericDataEssenceDescriptor * descriptor) +{ + g_return_if_fail (descriptor != NULL); + + mxf_metadata_file_descriptor_reset ((MXFMetadataFileDescriptor *) descriptor); + + MXF_METADATA_DESCRIPTOR_CLEAR (descriptor, + MXFMetadataGenericDataEssenceDescriptor, MXFMetadataFileDescriptor); +} + +gboolean mxf_metadata_multiple_descriptor_handle_tag (MXFMetadataGenericDescriptor * d, const MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, guint16 tag_size) |