summaryrefslogtreecommitdiffstats
path: root/gst/mxf/mxfparse.h
AgeCommit message (Collapse)AuthorFilesLines
2008-11-30gst/mxf/: Add property to select the top-level source package or material ↵Sebastian Dröge1-0/+1
package that should be used for playback. Original commit message from CVS: * gst/mxf/mxfdemux.c: (gst_mxf_demux_remove_pads), (gst_mxf_demux_reset), (gst_mxf_demux_find_package), (gst_mxf_demux_choose_package), (gst_mxf_demux_handle_header_metadata_update_streams), (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_set_property), (gst_mxf_demux_get_property), (gst_mxf_demux_finalize), (gst_mxf_demux_class_init): * gst/mxf/mxfdemux.h: * gst/mxf/mxfparse.c: (mxf_umid_from_string): * gst/mxf/mxfparse.h: Add property to select the top-level source package or material package that should be used for playback.
2008-11-28gst/mxf/: Implement parsing of index table segments, which will later be ↵Sebastian Dröge1-0/+3
used for seeking. Original commit message from CVS: * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset), (gst_mxf_demux_handle_index_table_segment): * gst/mxf/mxfdemux.h: * gst/mxf/mxfparse.c: (mxf_index_table_segment_parse), (mxf_index_table_segment_reset): * gst/mxf/mxfparse.h: * gst/mxf/mxftypes.h: Implement parsing of index table segments, which will later be used for seeking.
2008-11-27gst/mxf/: Implement parsing of the random index pack, which provides a seek ↵Sebastian Dröge1-0/+2
table (including body sid) to the start o... Original commit message from CVS: * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset), (gst_mxf_demux_handle_random_index_pack), (gst_mxf_demux_pull_random_index_pack), (gst_mxf_demux_loop): * gst/mxf/mxfdemux.h: * gst/mxf/mxfparse.c: (mxf_random_index_pack_parse): * gst/mxf/mxfparse.h: * gst/mxf/mxftypes.h: Implement parsing of the random index pack, which provides a seek table (including body sid) to the start of partition packs. Later this will be used for reading all index table segments of the complete file efficiently.
2008-11-27gst/mxf/: Add fundamental support for DV-DIF essence streams.Sebastian Dröge1-0/+1
Original commit message from CVS: * gst/mxf/Makefile.am: * gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_header_metadata_update_streams), (gst_mxf_demux_handle_klv_packet): * gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track), (mxf_dv_dif_handle_essence_element), (mxf_dv_dif_create_caps): * gst/mxf/mxfdv-dif.h: * gst/mxf/mxfparse.c: (mxf_is_descriptive_metadata): * gst/mxf/mxfparse.h: Add fundamental support for DV-DIF essence streams. Handle descriptive metadata packets as metadata packets.
2008-11-26gst/mxf/: When memset'ing the descriptors to zeroes only touch the part of ↵Sebastian Dröge1-0/+8
this descriptor, not it's parent type. Original commit message from CVS: * gst/mxf/mxfaes-bwf.c: (mxf_metadata_wave_audio_essence_descriptor_reset): * gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_reset): * gst/mxf/mxfparse.c: (mxf_metadata_file_descriptor_handle_tag), (mxf_metadata_file_descriptor_reset), (mxf_metadata_generic_sound_essence_descriptor_reset), (mxf_metadata_generic_picture_essence_descriptor_reset), (mxf_metadata_cdci_picture_essence_descriptor_reset), (mxf_metadata_rgba_picture_essence_descriptor_reset), (mxf_metadata_multiple_descriptor_reset): * gst/mxf/mxfparse.h: When memset'ing the descriptors to zeroes only touch the part of this descriptor, not it's parent type. Set correct default values for all metadata fields.
2008-11-25gst/mxf/: Set video dimensions and pixel aspect ratio on the caps.Sebastian Dröge1-0/+1
Original commit message from CVS: * gst/mxf/mxfmpeg.c: (mxf_mpeg_video_create_caps): * gst/mxf/mxfparse.c: (mxf_metadata_generic_picture_essence_descriptor_set_caps): * gst/mxf/mxfparse.h: Set video dimensions and pixel aspect ratio on the caps.
2008-11-25gst/mxf/: Add initial parsing of RGBA descriptors.Sebastian Dröge1-0/+4
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.
2008-11-25gst/mxf/: Rewrite parsing of descriptors to go top-down instead of bottom-up ↵Sebastian Dröge1-6/+19
which makes it possible to have the buff... Original commit message from CVS: * gst/mxf/mxfaes-bwf.c: (mxf_metadata_wave_audio_essence_descriptor_handle_tag): * gst/mxf/mxfaes-bwf.h: * gst/mxf/mxfdemux.c: (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_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/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_handle_tag): * gst/mxf/mxfmpeg.h: * gst/mxf/mxfparse.c: (mxf_partition_pack_parse), (mxf_primer_pack_parse), (mxf_metadata_preface_parse), (mxf_metadata_identification_parse), (mxf_metadata_content_storage_parse), (mxf_metadata_essence_container_data_parse), (mxf_metadata_generic_package_parse), (mxf_metadata_track_parse), (mxf_metadata_sequence_parse), (mxf_metadata_structural_component_parse), (mxf_metadata_descriptor_parse), (mxf_metadata_generic_descriptor_handle_tag), (mxf_metadata_generic_descriptor_reset), (mxf_metadata_file_descriptor_handle_tag), (mxf_metadata_generic_sound_essence_descriptor_handle_tag), (mxf_metadata_generic_picture_essence_descriptor_handle_tag), (mxf_metadata_cdci_picture_essence_descriptor_handle_tag), (mxf_metadata_multiple_descriptor_handle_tag), (mxf_metadata_locator_parse): * gst/mxf/mxfparse.h: Rewrite parsing of descriptors to go top-down instead of bottom-up which makes it possible to have the buffer data non-writable. Improve debugging a bit.
2008-11-22gst/mxf/: Use guint instead of guint64 or gsize for all buffer sizes and use ↵Sebastian Dröge1-22/+22
correct format strings for them. Only lo... Original commit message from CVS: * gst/mxf/mxfaes-bwf.c: (mxf_metadata_wave_audio_essence_descriptor_parse): * gst/mxf/mxfaes-bwf.h: * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_range), (gst_mxf_demux_pull_klv_packet), (gst_mxf_demux_parse_footer_metadata), (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_pull_and_handle_klv_packet), (gst_mxf_demux_chain): * gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_parse): * gst/mxf/mxfmpeg.h: * gst/mxf/mxfparse.c: (mxf_timestamp_parse), (mxf_fraction_parse), (mxf_utf16_to_utf8), (mxf_product_version_parse), (mxf_partition_pack_parse), (mxf_primer_pack_parse), (mxf_local_tag_parse), (mxf_metadata_preface_parse), (mxf_metadata_identification_parse), (mxf_metadata_content_storage_parse), (mxf_metadata_essence_container_data_parse), (mxf_metadata_generic_package_parse), (mxf_metadata_track_parse), (mxf_metadata_sequence_parse), (mxf_metadata_structural_component_parse), (mxf_metadata_generic_descriptor_parse), (mxf_metadata_file_descriptor_parse), (mxf_metadata_generic_sound_essence_descriptor_parse), (mxf_metadata_generic_picture_essence_descriptor_parse), (mxf_metadata_cdci_picture_essence_descriptor_parse), (mxf_metadata_multiple_descriptor_parse), (mxf_metadata_locator_parse): * gst/mxf/mxfparse.h: Use guint instead of guint64 or gsize for all buffer sizes and use correct format strings for them. Only local tag set sizes are still guint16 as they can't be larger. Only allow KLV packets of sizes below 1<<32 as GStreamer only uses guint for buffer sizes. The MXF standard allows packet sizes up to 1<<64.
2008-11-21Add first version of an MXF demuxer. Currently it supportsSebastian Dröge1-0/+129
Original commit message from CVS: * configure.ac: * gst/mxf/Makefile.am: * gst/mxf/mxf.c: (plugin_init): * gst/mxf/mxfaes-bwf.c: (mxf_metadata_wave_audio_essence_descriptor_parse), (mxf_metadata_wave_audio_essence_descriptor_reset), (mxf_is_aes_bwf_essence_track), (mxf_bwf_handle_essence_element), (mxf_bwf_create_caps), (mxf_aes_bwf_create_caps): * gst/mxf/mxfaes-bwf.h: * gst/mxf/mxfdemux.c: (gst_mxf_pad_finalize), (gst_mxf_pad_class_init), (gst_mxf_pad_init), (gst_mxf_demux_flush), (gst_mxf_demux_remove_pad), (gst_mxf_demux_reset_mxf_state), (gst_mxf_demux_reset_metadata), (gst_mxf_demux_reset), (gst_mxf_demux_pull_range), (gst_mxf_demux_push_src_event), (gst_mxf_demux_handle_partition_pack), (gst_mxf_demux_handle_primer_pack), (gst_mxf_demux_handle_metadata_preface), (gst_mxf_demux_handle_metadata_identification), (gst_mxf_demux_handle_metadata_content_storage), (gst_mxf_demux_handle_metadata_essence_container_data), (gst_mxf_demux_handle_metadata_material_package), (gst_mxf_demux_handle_metadata_source_package), (gst_mxf_demux_handle_metadata_track), (gst_mxf_demux_handle_metadata_sequence), (gst_mxf_demux_handle_metadata_structural_component), (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_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_metadata_locator), (gst_mxf_demux_handle_header_metadata_resolve_references), (gst_mxf_demux_handle_header_metadata_update_streams), (gst_mxf_demux_handle_metadata), (gst_mxf_demux_handle_generic_container_system_item), (gst_mxf_demux_handle_generic_container_essence_element), (gst_mxf_demux_handle_random_index_pack), (gst_mxf_demux_handle_index_table_segment), (gst_mxf_demux_pull_klv_packet), (gst_mxf_demux_parse_footer_metadata), (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_pull_and_handle_klv_packet), (gst_mxf_demux_loop), (gst_mxf_demux_chain), (gst_mxf_demux_src_event), (gst_mxf_demux_src_query_type), (gst_mxf_demux_src_query), (gst_mxf_demux_sink_activate), (gst_mxf_demux_sink_activate_push), (gst_mxf_demux_sink_activate_pull), (gst_mxf_demux_sink_event), (gst_mxf_demux_change_state), (gst_mxf_demux_finalize), (gst_mxf_demux_base_init), (gst_mxf_demux_class_init), (gst_mxf_demux_init): * gst/mxf/mxfdemux.h: * gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_parse), (mxf_metadata_mpeg_video_descriptor_reset), (mxf_is_mpeg_video_essence_track), (mxf_mpeg_video_handle_essence_element), (mxf_mpeg_video_create_caps): * gst/mxf/mxfmpeg.h: * gst/mxf/mxfparse.c: (mxf_is_mxf_packet), (mxf_is_partition_pack), (mxf_is_header_partition_pack), (mxf_is_body_partition_pack), (mxf_is_footer_partition_pack), (mxf_is_fill), (mxf_is_primer_pack), (mxf_is_metadata), (mxf_is_random_index_pack), (mxf_is_index_table_segment), (mxf_is_generic_container_system_item), (mxf_is_generic_container_essence_element), (mxf_is_generic_container_essence_container_label), (mxf_ul_is_equal), (mxf_ul_is_zero), (mxf_ul_to_string), (mxf_umid_is_equal), (mxf_umid_is_zero), (mxf_umid_to_string), (gst_mxf_ul_hash), (gst_mxf_ul_equal), (mxf_timestamp_parse), (mxf_timestamp_is_unknown), (mxf_timestamp_compare), (mxf_fraction_parse), (mxf_utf16_to_utf8), (mxf_product_version_parse), (mxf_partition_pack_parse), (mxf_partition_pack_reset), (_mxf_mapping_ul_free), (mxf_primer_pack_parse), (mxf_primer_pack_reset), (mxf_local_tag_parse), (gst_mxf_local_tag_free), (gst_metadata_add_custom_tag), (mxf_metadata_preface_parse), (mxf_metadata_preface_reset), (mxf_metadata_identification_parse), (mxf_metadata_identification_reset), (mxf_metadata_content_storage_parse), (mxf_metadata_content_storage_reset), (mxf_metadata_essence_container_data_parse), (mxf_metadata_essence_container_data_reset), (mxf_metadata_generic_package_parse), (mxf_metadata_generic_package_reset), (mxf_metadata_track_parse), (mxf_metadata_track_reset), (mxf_metadata_track_identifier_parse), (mxf_metadata_sequence_parse), (mxf_metadata_sequence_reset), (mxf_metadata_structural_component_parse), (mxf_metadata_structural_component_reset), (mxf_metadata_generic_descriptor_parse), (mxf_metadata_generic_descriptor_reset), (mxf_metadata_file_descriptor_parse), (mxf_metadata_file_descriptor_reset), (mxf_metadata_generic_sound_essence_descriptor_parse), (mxf_metadata_generic_sound_essence_descriptor_reset), (mxf_metadata_generic_picture_essence_descriptor_parse), (mxf_metadata_generic_picture_essence_descriptor_reset), (mxf_metadata_cdci_picture_essence_descriptor_parse), (mxf_metadata_cdci_picture_essence_descriptor_reset), (mxf_metadata_multiple_descriptor_parse), (mxf_metadata_multiple_descriptor_reset), (mxf_metadata_locator_parse), (mxf_metadata_locator_reset): * gst/mxf/mxfparse.h: * gst/mxf/mxftypes.h: Add first version of an MXF demuxer. Currently it supports MPEG video and raw audio and OP 1a/b/c.