diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2008-11-25 10:26:11 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2008-11-25 10:26:11 +0000 |
commit | 4f365b391e9ab1582c2374889f4255da61f8d330 (patch) | |
tree | bf19e9e86e06297722d7fe31fe4d3497e671ab71 /gst/mxf/mxfparse.c | |
parent | fb8d2b901ddf2d03f4263f9e69b673ef1c89e353 (diff) | |
download | gst-plugins-bad-4f365b391e9ab1582c2374889f4255da61f8d330.tar.gz gst-plugins-bad-4f365b391e9ab1582c2374889f4255da61f8d330.tar.bz2 gst-plugins-bad-4f365b391e9ab1582c2374889f4255da61f8d330.zip |
gst/mxf/: Add initial parsing of RGBA descriptors.
Original commit message from CVS:
* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
(gst_mxf_demux_handle_metadata_generic_descriptor),
(gst_mxf_demux_handle_metadata_file_descriptor),
(gst_mxf_demux_handle_metadata_multiple_descriptor),
(gst_mxf_demux_handle_metadata_generic_picture_essence_descriptor),
(gst_mxf_demux_handle_metadata_cdci_picture_essence_descriptor),
(gst_mxf_demux_handle_metadata_rgba_picture_essence_descriptor),
(gst_mxf_demux_handle_metadata_mpeg_video_descriptor),
(gst_mxf_demux_handle_metadata_generic_sound_essence_descriptor),
(gst_mxf_demux_handle_metadata_wave_audio_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_rgba_picture_essence_descriptor_handle_tag),
(mxf_metadata_rgba_picture_essence_descriptor_reset):
* gst/mxf/mxfparse.h:
* gst/mxf/mxftypes.h:
Add initial parsing of RGBA descriptors.
Don't initialize descriptor GArray with zeroes.
Diffstat (limited to 'gst/mxf/mxfparse.c')
-rw-r--r-- | gst/mxf/mxfparse.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/gst/mxf/mxfparse.c b/gst/mxf/mxfparse.c index 41ba4d5d..0f5323e7 100644 --- a/gst/mxf/mxfparse.c +++ b/gst/mxf/mxfparse.c @@ -2389,6 +2389,79 @@ void mxf_metadata_cdci_picture_essence_descriptor_reset } gboolean + mxf_metadata_rgba_picture_essence_descriptor_handle_tag + (MXFMetadataGenericDescriptor * d, const MXFPrimerPack * primer, + guint16 tag, const guint8 * tag_data, guint16 tag_size) +{ + MXFMetadataRGBAPictureEssenceDescriptor *descriptor = + (MXFMetadataRGBAPictureEssenceDescriptor *) d; + gboolean ret = FALSE; + + switch (tag) { + case 0x3406: + if (tag_size != 4) + goto error; + descriptor->component_max_ref = GST_READ_UINT32_BE (tag_data); + GST_DEBUG (" component max ref = %u", descriptor->component_max_ref); + break; + case 0x3407: + if (tag_size != 4) + goto error; + descriptor->component_min_ref = GST_READ_UINT32_BE (tag_data); + GST_DEBUG (" component min ref = %u", descriptor->component_min_ref); + break; + case 0x3408: + if (tag_size != 4) + goto error; + descriptor->alpha_max_ref = GST_READ_UINT32_BE (tag_data); + GST_DEBUG (" alpha max ref = %u", descriptor->alpha_max_ref); + break; + case 0x3409: + if (tag_size != 4) + goto error; + descriptor->alpha_min_ref = GST_READ_UINT32_BE (tag_data); + GST_DEBUG (" alpha min ref = %u", descriptor->alpha_min_ref); + break; + case 0x3405: + if (tag_size != 1) + goto error; + descriptor->scanning_direction = GST_READ_UINT8 (tag_data); + GST_DEBUG (" scanning direction = %u", descriptor->scanning_direction); + break; + case 0x3401: + case 0x3403: + case 0x3404: + /* TODO: handle this */ + GST_WARNING (" tag 0x%04x not implemented yet", tag); + break; + default: + ret = + mxf_metadata_generic_picture_essence_descriptor_handle_tag (d, primer, + tag, tag_data, tag_size); + break; + } + + return ret; + +error: + GST_ERROR ("Invalid RGBA picture essence descriptor tag 0x%04x of size %u", + tag, tag_size); + + return TRUE; +} + +void mxf_metadata_rgba_picture_essence_descriptor_reset + (MXFMetadataRGBAPictureEssenceDescriptor * descriptor) +{ + g_return_if_fail (descriptor != NULL); + + mxf_metadata_generic_picture_essence_descriptor_reset ( + (MXFMetadataGenericPictureEssenceDescriptor *) descriptor); + + memset (descriptor, 0, sizeof (MXFMetadataRGBAPictureEssenceDescriptor)); +} + +gboolean mxf_metadata_multiple_descriptor_handle_tag (MXFMetadataGenericDescriptor * d, const MXFPrimerPack * primer, guint16 tag, const guint8 * tag_data, guint16 tag_size) |