diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2008-12-15 17:27:00 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2008-12-15 17:27:00 +0000 |
commit | bc93b81dd56106f11d87f6a8ad9b6134f2817a57 (patch) | |
tree | 7c1d9ab165287ddff168bdde0d16579a1f95487c /gst/mxf/mxftypes.h | |
parent | 9cfbca8754cef7961cbfbfb1d7a66ab886efefc9 (diff) | |
download | gst-plugins-bad-bc93b81dd56106f11d87f6a8ad9b6134f2817a57.tar.gz gst-plugins-bad-bc93b81dd56106f11d87f6a8ad9b6134f2817a57.tar.bz2 gst-plugins-bad-bc93b81dd56106f11d87f6a8ad9b6134f2817a57.zip |
gst/mxf/: Convert the structural metadata to GstMiniObjects to make a lot of code easier and to make everything bette...
Original commit message from CVS:
* gst/mxf/Makefile.am:
* gst/mxf/mxf.c: (plugin_init):
* gst/mxf/mxfaes-bwf.c:
(mxf_metadata_wave_audio_essence_descriptor_handle_tag),
(mxf_metadata_wave_audio_essence_descriptor_init),
(mxf_metadata_wave_audio_essence_descriptor_class_init),
(mxf_metadata_aes3_audio_essence_descriptor_finalize),
(mxf_metadata_aes3_audio_essence_descriptor_handle_tag),
(mxf_metadata_aes3_audio_essence_descriptor_init),
(mxf_metadata_aes3_audio_essence_descriptor_class_init),
(mxf_is_aes_bwf_essence_track), (mxf_bwf_create_caps),
(mxf_aes3_create_caps), (mxf_aes_bwf_create_caps),
(mxf_aes_bwf_init):
* gst/mxf/mxfaes-bwf.h:
* gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track),
(mxf_alaw_create_caps), (mxf_alaw_init):
* gst/mxf/mxfalaw.h:
* gst/mxf/mxfd10.c: (mxf_is_d10_essence_track),
(mxf_d10_create_caps), (mxf_d10_init):
* gst/mxf/mxfd10.h:
* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
(gst_mxf_demux_handle_header_metadata_resolve_references),
(gst_mxf_demux_find_package), (gst_mxf_demux_choose_package),
(gst_mxf_demux_handle_header_metadata_update_streams),
(gst_mxf_demux_handle_metadata),
(gst_mxf_demux_handle_generic_container_essence_element),
(gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_src_query):
* gst/mxf/mxfdemux.h:
* gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track),
(mxf_dv_dif_create_caps), (mxf_dv_dif_init):
* gst/mxf/mxfdv-dif.h:
* gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track),
(mxf_jpeg2000_create_caps), (mxf_jpeg2000_init):
* gst/mxf/mxfjpeg2000.h:
* gst/mxf/mxfmetadata.c: (mxf_metadata_base_finalize),
(mxf_metadata_base_handle_tag), (mxf_metadata_base_resolve),
(mxf_metadata_base_init), (mxf_metadata_base_class_init),
(mxf_metadata_parse), (mxf_metadata_resolve),
(mxf_metadata_handle_tag), (mxf_metadata_class_init),
(mxf_metadata_init), (mxf_metadata_init_types),
(mxf_metadata_register), (mxf_metadata_new),
(mxf_metadata_preface_finalize), (mxf_metadata_preface_handle_tag),
(mxf_metadata_preface_resolve), (mxf_metadata_preface_init),
(mxf_metadata_preface_class_init),
(mxf_metadata_identification_finalize),
(mxf_metadata_identification_handle_tag),
(mxf_metadata_identification_init),
(mxf_metadata_identification_class_init),
(mxf_metadata_content_storage_finalize),
(mxf_metadata_content_storage_handle_tag),
(mxf_metadata_content_storage_resolve),
(mxf_metadata_content_storage_init),
(mxf_metadata_content_storage_class_init),
(mxf_metadata_essence_container_data_handle_tag),
(mxf_metadata_essence_container_data_resolve),
(mxf_metadata_essence_container_data_init),
(mxf_metadata_essence_container_data_class_init),
(mxf_metadata_generic_package_finalize),
(mxf_metadata_generic_package_handle_tag),
(mxf_metadata_generic_package_resolve),
(mxf_metadata_generic_package_init),
(mxf_metadata_generic_package_class_init),
(mxf_metadata_material_package_resolve),
(mxf_metadata_material_package_init),
(mxf_metadata_material_package_class_init),
(mxf_metadata_source_package_finalize),
(mxf_metadata_source_package_handle_tag),
(mxf_metadata_source_package_resolve),
(mxf_metadata_source_package_init),
(mxf_metadata_source_package_class_init),
(mxf_metadata_track_finalize), (mxf_metadata_track_handle_tag),
(mxf_metadata_track_resolve), (mxf_metadata_track_init),
(mxf_metadata_track_class_init),
(mxf_metadata_track_identifier_parse),
(mxf_metadata_timeline_track_handle_tag),
(mxf_metadata_timeline_track_init),
(mxf_metadata_timeline_track_class_init),
(mxf_metadata_event_track_handle_tag),
(mxf_metadata_event_track_init),
(mxf_metadata_event_track_class_init),
(mxf_metadata_static_track_init),
(mxf_metadata_static_track_class_init),
(mxf_metadata_sequence_finalize),
(mxf_metadata_sequence_handle_tag),
(mxf_metadata_sequence_resolve), (mxf_metadata_sequence_init),
(mxf_metadata_sequence_class_init),
(mxf_metadata_structural_component_handle_tag),
(mxf_metadata_structural_component_init),
(mxf_metadata_structural_component_class_init),
(mxf_metadata_timecode_component_handle_tag),
(mxf_metadata_timecode_component_init),
(mxf_metadata_timecode_component_class_init),
(mxf_metadata_source_clip_handle_tag),
(mxf_metadata_source_clip_resolve),
(mxf_metadata_source_clip_init),
(mxf_metadata_source_clip_class_init),
(mxf_metadata_dm_source_clip_finalize),
(mxf_metadata_dm_source_clip_handle_tag),
(mxf_metadata_dm_source_clip_init),
(mxf_metadata_dm_source_clip_class_init),
(mxf_metadata_dm_segment_finalize),
(mxf_metadata_dm_segment_handle_tag),
(mxf_metadata_dm_segment_resolve), (mxf_metadata_dm_segment_init),
(mxf_metadata_dm_segment_class_init),
(mxf_metadata_generic_descriptor_finalize),
(mxf_metadata_generic_descriptor_handle_tag),
(mxf_metadata_generic_descriptor_resolve),
(mxf_metadata_generic_descriptor_init),
(mxf_metadata_generic_descriptor_class_init),
(mxf_metadata_file_descriptor_handle_tag),
(mxf_metadata_file_descriptor_init),
(mxf_metadata_file_descriptor_class_init),
(mxf_metadata_generic_picture_essence_descriptor_handle_tag),
(mxf_metadata_generic_picture_essence_descriptor_init),
(mxf_metadata_generic_picture_essence_descriptor_class_init),
(mxf_metadata_generic_picture_essence_descriptor_set_caps),
(mxf_metadata_generic_sound_essence_descriptor_handle_tag),
(mxf_metadata_generic_sound_essence_descriptor_init),
(mxf_metadata_generic_sound_essence_descriptor_class_init),
(mxf_metadata_cdci_picture_essence_descriptor_handle_tag),
(mxf_metadata_cdci_picture_essence_descriptor_init),
(mxf_metadata_cdci_picture_essence_descriptor_class_init),
(mxf_metadata_rgba_picture_essence_descriptor_finalize),
(mxf_metadata_rgba_picture_essence_descriptor_handle_tag),
(mxf_metadata_rgba_picture_essence_descriptor_init),
(mxf_metadata_rgba_picture_essence_descriptor_class_init),
(mxf_metadata_generic_data_essence_descriptor_handle_tag),
(mxf_metadata_generic_data_essence_descriptor_init),
(mxf_metadata_generic_data_essence_descriptor_class_init),
(mxf_metadata_multiple_descriptor_finalize),
(mxf_metadata_multiple_descriptor_handle_tag),
(mxf_metadata_multiple_descriptor_resolve),
(mxf_metadata_multiple_descriptor_init),
(mxf_metadata_multiple_descriptor_class_init),
(mxf_metadata_locator_init), (mxf_metadata_locator_class_init),
(mxf_metadata_text_locator_finalize),
(mxf_metadata_text_locator_handle_tag),
(mxf_metadata_text_locator_init),
(mxf_metadata_text_locator_class_init),
(mxf_metadata_network_locator_finalize),
(mxf_metadata_network_locator_handle_tag),
(mxf_metadata_network_locator_init),
(mxf_metadata_network_locator_class_init):
* gst/mxf/mxfmetadata.h:
* gst/mxf/mxfmpeg.c:
(mxf_metadata_mpeg_video_descriptor_handle_tag),
(mxf_metadata_mpeg_video_descriptor_init),
(mxf_metadata_mpeg_video_descriptor_class_init),
(mxf_is_mpeg_essence_track), (mxf_mpeg_es_create_caps),
(mxf_mpeg_create_caps), (mxf_mpeg_init):
* gst/mxf/mxfmpeg.h:
* gst/mxf/mxfparse.c: (mxf_index_table_segment_parse),
(mxf_local_tag_add_to_hash_table):
* gst/mxf/mxfparse.h:
* gst/mxf/mxftypes.h:
* gst/mxf/mxfup.c: (mxf_is_up_essence_track), (mxf_up_create_caps),
(mxf_up_init):
* gst/mxf/mxfup.h:
Convert the structural metadata to GstMiniObjects to make a lot of
code easier and to make everything better extensible.
Add a "registry" for metadata handlers to improve extensibility even
more and to remove metadata type specifics from mxfdemux.
Clean up a lot of parts and add some more NULL checks.
Diffstat (limited to 'gst/mxf/mxftypes.h')
-rw-r--r-- | gst/mxf/mxftypes.h | 406 |
1 files changed, 2 insertions, 404 deletions
diff --git a/gst/mxf/mxftypes.h b/gst/mxf/mxftypes.h index 241efd41..d6f374d5 100644 --- a/gst/mxf/mxftypes.h +++ b/gst/mxf/mxftypes.h @@ -17,6 +17,8 @@ * Boston, MA 02111-1307, USA. */ +/* Definitions of the basic MXF types, excluding structural metadata */ + #ifndef __MXF_TYPES_H__ #define __MXF_TYPES_H__ @@ -153,408 +155,4 @@ typedef struct { GHashTable *other_tags; } MXFIndexTableSegment; -/* SMPTE 377M 8.6 table 14 */ -#define MXF_METADATA_PREFACE (0x012f) -#define MXF_METADATA_IDENTIFICATION (0x0130) -#define MXF_METADATA_CONTENT_STORAGE (0x0118) -#define MXF_METADATA_ESSENCE_CONTAINER_DATA (0x0123) -#define MXF_METADATA_MATERIAL_PACKAGE (0x0136) -#define MXF_METADATA_SOURCE_PACKAGE (0x0137) -#define MXF_METADATA_TRACK (0x013b) -#define MXF_METADATA_EVENT_TRACK (0x0139) -#define MXF_METADATA_STATIC_TRACK (0x013a) -#define MXF_METADATA_SEQUENCE (0x010f) -#define MXF_METADATA_SOURCE_CLIP (0x0111) -#define MXF_METADATA_TIMECODE_COMPONENT (0x0114) -#define MXF_METADATA_DM_SEGMENT (0x0141) -#define MXF_METADATA_DM_SOURCE_CLIP (0x0145) -#define MXF_METADATA_FILE_DESCRIPTOR (0x0125) -#define MXF_METADATA_GENERIC_PICTURE_ESSENCE_DESCRIPTOR (0x0127) -#define MXF_METADATA_CDCI_PICTURE_ESSENCE_DESCRIPTOR (0x0128) -#define MXF_METADATA_RGBA_PICTURE_ESSENCE_DESCRIPTOR (0x0129) -#define MXF_METADATA_GENERIC_SOUND_ESSENCE_DESCRIPTOR (0x0142) -#define MXF_METADATA_GENERIC_DATA_ESSENCE_DESCRIPTOR (0x0143) -#define MXF_METADATA_MULTIPLE_DESCRIPTOR (0x0144) -#define MXF_METADATA_NETWORK_LOCATOR (0x0132) -#define MXF_METADATA_TEXT_LOCATOR (0x0133) - -/* SMPTE 377M Annex A, B, C, D */ -typedef struct _MXFMetadataPreface MXFMetadataPreface; -typedef struct _MXFMetadataIdentification MXFMetadataIdentification; -typedef struct _MXFMetadataContentStorage MXFMetadataContentStorage; -typedef struct _MXFMetadataEssenceContainerData MXFMetadataEssenceContainerData; -typedef struct _MXFMetadataGenericPackage MXFMetadataGenericPackage; -typedef MXFMetadataGenericPackage MXFMetadataMaterialPackage; -typedef MXFMetadataGenericPackage MXFMetadataSourcePackage; -typedef struct _MXFMetadataTrack MXFMetadataTrack; -typedef struct _MXFMetadataSequence MXFMetadataSequence; -typedef struct _MXFMetadataStructuralComponent MXFMetadataStructuralComponent; -typedef struct _MXFMetadataGenericDescriptor MXFMetadataGenericDescriptor; -typedef struct _MXFMetadataFileDescriptor MXFMetadataFileDescriptor; -typedef struct _MXFMetadataGenericPictureEssenceDescriptor MXFMetadataGenericPictureEssenceDescriptor; -typedef struct _MXFMetadataCDCIPictureEssenceDescriptor MXFMetadataCDCIPictureEssenceDescriptor; -typedef struct _MXFMetadataRGBAPictureEssenceDescriptor MXFMetadataRGBAPictureEssenceDescriptor; -typedef struct _MXFMetadataGenericSoundEssenceDescriptor MXFMetadataGenericSoundEssenceDescriptor; -typedef struct _MXFMetadataGenericDataEssenceDescriptor MXFMetadataGenericDataEssenceDescriptor; -typedef struct _MXFMetadataMultipleDescriptor MXFMetadataMultipleDescriptor; -typedef struct _MXFMetadataLocator MXFMetadataLocator; - -struct _MXFMetadataPreface { - MXFUL instance_uid; - MXFUL generation_uid; - - MXFTimestamp last_modified_date; - guint16 version; - - guint32 object_model_version; - - MXFUL primary_package_uid; - MXFMetadataGenericPackage *primary_package; - - guint32 n_identifications; - MXFUL *identifications_uids; - MXFMetadataIdentification **identifications; - - MXFUL content_storage_uid; - MXFMetadataContentStorage *content_storage; - - MXFUL operational_pattern; - - guint32 n_essence_containers; - MXFUL *essence_containers; - - guint32 n_dm_schemes; - MXFUL *dm_schemes; - - GHashTable *other_tags; -}; - -struct _MXFMetadataIdentification { - MXFUL instance_uid; - MXFUL generation_uid; - - gchar *company_name; - - gchar *product_name; - MXFProductVersion product_version; - - gchar *version_string; - - MXFUL product_uid; - - MXFTimestamp modification_date; - - MXFProductVersion toolkit_version; - - gchar *platform; - - GHashTable *other_tags; -}; - -struct _MXFMetadataContentStorage { - MXFUL instance_uid; - MXFUL generation_uid; - - guint32 n_packages; - MXFUL *packages_uids; - MXFMetadataGenericPackage **packages; - - guint32 n_essence_container_data; - MXFUL *essence_container_data_uids; - MXFMetadataEssenceContainerData **essence_container_data; - - GHashTable *other_tags; -}; - -struct _MXFMetadataEssenceContainerData { - MXFUL instance_uid; - - MXFUMID linked_package_uid; - MXFMetadataGenericPackage *linked_package; - - MXFUL generation_uid; - - guint32 index_sid; - guint32 body_sid; - - GHashTable *other_tags; -}; - -typedef enum { - MXF_METADATA_GENERIC_PACKAGE_SOURCE = 0, - MXF_METADATA_GENERIC_PACKAGE_MATERIAL = 1, - MXF_METADATA_GENERIC_PACKAGE_TOP_LEVEL_SOURCE = 2 -} MXFMetadataGenericPackageType; - -struct _MXFMetadataGenericPackage { - MXFUL instance_uid; - MXFUMID package_uid; - MXFUL generation_uid; - - MXFMetadataGenericPackageType type; - - gchar *name; - MXFTimestamp package_creation_date; - MXFTimestamp package_modified_date; - - guint32 n_tracks; - MXFUL *tracks_uids; - MXFMetadataTrack **tracks; - - guint n_timecode_tracks; - guint n_metadata_tracks; - guint n_essence_tracks; - guint n_other_tracks; - - /* Only in Source packages */ - MXFUL descriptors_uid; - guint32 n_descriptors; - MXFMetadataGenericDescriptor **descriptors; - - GHashTable *other_tags; -}; - -typedef enum { - MXF_METADATA_TRACK_UNKNOWN = 0x00, - MXF_METADATA_TRACK_TIMECODE_12M_INACTIVE = 0x10, - MXF_METADATA_TRACK_TIMECODE_12M_ACTIVE = 0x11, - MXF_METADATA_TRACK_TIMECODE_309M = 0x12, - MXF_METADATA_TRACK_METADATA = 0x20, - MXF_METADATA_TRACK_PICTURE_ESSENCE = 0x30, - MXF_METADATA_TRACK_SOUND_ESSENCE = 0x31, - MXF_METADATA_TRACK_DATA_ESSENCE = 0x32, - MXF_METADATA_TRACK_AUXILIARY_DATA = 0x40, - MXF_METADATA_TRACK_PARSED_TEXT = 0x41 -} MXFMetadataTrackType; - -typedef enum { - MXF_METADATA_TRACK_VARIANT_TIMELINE, - MXF_METADATA_TRACK_VARIANT_EVENT, - MXF_METADATA_TRACK_VARIANT_STATIC -} MXFMetadataTrackVariant; - -struct _MXFMetadataTrack { - MXFUL instance_uid; - MXFUL generation_uid; - - guint32 track_id; - guint32 track_number; - - MXFMetadataTrackType type; - MXFMetadataTrackVariant variant; - - gchar *track_name; - - MXFFraction edit_rate; - - gint64 origin; - - MXFUL sequence_uid; - MXFMetadataSequence *sequence; - - MXFMetadataFileDescriptor **descriptor; - guint n_descriptor; - - GHashTable *other_tags; -}; - -struct _MXFMetadataSequence { - MXFUL instance_uid; - MXFUL generation_uid; - - MXFUL data_definition; - - gint64 duration; - - guint32 n_structural_components; - MXFUL *structural_components_uids; - MXFMetadataStructuralComponent **structural_components; - - GHashTable *other_tags; -}; - -struct _MXFMetadataStructuralComponent { - guint16 type; - - MXFUL instance_uid; - MXFUL generation_uid; - - MXFUL data_definition; - - gint64 duration; - - union { - struct { - gint64 start_timecode; - guint16 rounded_timecode_base; - gboolean drop_frame; - } timecode_component; - - struct { - gint64 start_position; - MXFUMID source_package_id; - MXFMetadataGenericPackage *source_package; - - guint32 source_track_id; - } source_clip; - - struct { - gint64 event_start_position; - gchar *event_comment; - - guint32 n_track_ids; - guint32 *track_ids; - - MXFUL dm_framework; - } dm_segment; - - struct { - gint64 start_position; - MXFUMID source_package_id; - MXFMetadataGenericPackage *source_package; - - guint32 source_track_id; - - guint32 n_track_ids; - guint32 *track_ids; - } dm_source_clip; - }; - - GHashTable *other_tags; -}; - -struct _MXFMetadataGenericDescriptor { - guint16 type; - - MXFUL instance_uid; - MXFUL generation_uid; - - guint32 n_locators; - MXFUL *locators_uids; - MXFMetadataLocator **locators; - - gboolean is_file_descriptor; - - GHashTable *other_tags; -}; - -struct _MXFMetadataFileDescriptor { - MXFMetadataGenericDescriptor parent; - - guint32 linked_track_id; - - MXFFraction sample_rate; - gint64 container_duration; - MXFUL essence_container; - MXFUL codec; -}; - -struct _MXFMetadataGenericPictureEssenceDescriptor { - MXFMetadataFileDescriptor parent; - - guint8 signal_standard; - guint8 frame_layout; - - guint32 stored_width; - guint32 stored_height; - gint32 stored_f2_offset; - guint32 sampled_width; - guint32 sampled_height; - gint32 sampled_x_offset; - gint32 sampled_y_offset; - guint32 display_height; - guint32 display_width; - gint32 display_x_offset; - gint32 display_y_offset; - gint32 display_f2_offset; - MXFFraction aspect_ratio; - - guint8 active_format_descriptor; - gint32 video_line_map[2]; - guint8 alpha_transparency; - MXFUL capture_gamma; - - guint32 image_alignment_offset; - guint32 image_start_offset; - guint32 image_end_offset; - - guint8 field_dominance; - - MXFUL picture_essence_coding; -}; - -struct _MXFMetadataCDCIPictureEssenceDescriptor { - MXFMetadataGenericPictureEssenceDescriptor parent; - - guint32 component_depth; - guint32 horizontal_subsampling; - guint32 vertical_subsampling; - guint8 color_siting; - gboolean reversed_byte_order; - gint16 padding_bits; - guint32 alpha_sample_depth; - guint32 black_ref_level; - guint32 white_ref_level; - guint32 color_range; -}; - -struct _MXFMetadataRGBAPictureEssenceDescriptor { - MXFMetadataGenericPictureEssenceDescriptor parent; - - guint32 component_max_ref; - guint32 component_min_ref; - guint32 alpha_max_ref; - guint32 alpha_min_ref; - guint8 scanning_direction; - - guint32 n_pixel_layout; - guint8 *pixel_layout; - - /* TODO: palette & palette layout */ -}; - -struct _MXFMetadataGenericSoundEssenceDescriptor { - MXFMetadataFileDescriptor parent; - - MXFFraction audio_sampling_rate; - - gboolean locked; - - gint8 audio_ref_level; - - guint8 electro_spatial_formulation; - - guint32 channel_count; - guint32 quantization_bits; - - gint8 dial_norm; - - MXFUL sound_essence_compression; -}; - -struct _MXFMetadataGenericDataEssenceDescriptor { - MXFMetadataFileDescriptor parent; - - MXFUL data_essence_compression; -}; - -struct _MXFMetadataMultipleDescriptor { - MXFMetadataFileDescriptor parent; - - MXFUL *sub_descriptors_uids; - guint32 n_sub_descriptors; - MXFMetadataGenericDescriptor **sub_descriptors; -}; - -struct _MXFMetadataLocator { - guint16 type; - - MXFUL instance_uid; - MXFUL generation_uid; - - gchar *location; - - GHashTable *other_tags; -}; - #endif /* __MXF_TYPES_H__ */ |