|
FFmpeg
|
#include <inttypes.h>#include <time.h>#include "libavutil/aes.h"#include "libavutil/attributes.h"#include "libavutil/avstring.h"#include "libavutil/mastering_display_metadata.h"#include "libavutil/mathematics.h"#include "libavutil/mem.h"#include "libavcodec/bytestream.h"#include "libavcodec/defs.h"#include "libavcodec/internal.h"#include "libavutil/channel_layout.h"#include "libavutil/intreadwrite.h"#include "libavutil/parseutils.h"#include "libavutil/timecode.h"#include "libavutil/opt.h"#include "avformat.h"#include "avlanguage.h"#include "avio_internal.h"#include "demux.h"#include "internal.h"#include "mxf.h"Go to the source code of this file.
Data Structures | |
| struct | MXFPartition |
| struct | MXFMetadataSet |
| struct | MXFMetadataSetGroup |
| struct | MXFCryptoContext |
| struct | MXFStructuralComponent |
| struct | MXFSequence |
| struct | MXFTimecodeComponent |
| struct | MXFPulldownComponent |
| struct | MXFEssenceGroup |
| struct | MXFTaggedValue |
| struct | MXFTrack |
| struct | MXFDescriptor |
| struct | MXFMCASubDescriptor |
| struct | MXFFFV1SubDescriptor |
| struct | MXFIndexTableSegment |
| struct | MXFPackage |
| struct | MXFEssenceContainerData |
| struct | MXFIndexTable |
| struct | MXFContext |
| struct | MXFMetadataReadTableEntry |
| struct | MXFChannelOrderingUL |
Macros | |
| #define | MXF_MAX_CHUNK_SIZE (32 << 20) |
| #define | RUN_IN_MAX (65535+1) |
| #define | MXF_FIELD_DOMINANCE_DEFAULT 0 |
| #define | MXF_FIELD_DOMINANCE_FF 1 /* coded first, displayed first */ |
| #define | MXF_FIELD_DOMINANCE_FL 2 /* coded first, displayed last */ |
| #define | IS_KLV_KEY(x, y) |
| #define | READ_STR16(type, big_endian) |
| #define | SET_STR_METADATA(pb, name, str) |
| #define | SET_VERSION_METADATA(pb, name, major, minor, tertiary, patch, release, str) |
| #define | SET_UID_METADATA(pb, name, var, str) |
| #define | SET_TS_METADATA(pb, name, var, str) |
Typedefs | |
| typedef int | MXFMetadataReadFunc(void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
Enumerations | |
| enum | MXFPartitionType { Header , BodyPartition , Footer } |
| enum | MXFOP { OP1a = 1 , OP1b , OP1c , OP2a , OP2b , OP2c , OP3a , OP3b , OP3c , OPAtom , OPSONYOpt } |
| enum | MXFWrappingScheme { UnknownWrapped = 0 , FrameWrapped , ClipWrapped } |
Functions | |
| static void | mxf_free_metadataset (MXFMetadataSet **ctx, enum MXFMetadataSetType type) |
| static int64_t | klv_decode_ber_length (AVIOContext *pb, int *llen) |
| static int | mxf_read_sync (AVIOContext *pb, const uint8_t *key, unsigned size) |
| static int | mxf_read_sync_klv (AVIOContext *pb) |
| static int | klv_read_packet (MXFContext *mxf, KLVPacket *klv, AVIOContext *pb) |
| static int | mxf_get_stream_index (AVFormatContext *s, KLVPacket *klv, int body_sid) |
| static int | find_body_sid_by_absolute_offset (MXFContext *mxf, int64_t offset) |
| static int | mxf_get_eia608_packet (AVFormatContext *s, AVStream *st, AVPacket *pkt, int64_t length) |
| static int | mxf_get_d10_aes3_packet (AVIOContext *pb, AVStream *st, AVPacket *pkt, int64_t length) |
| static int | mxf_decrypt_triplet (AVFormatContext *s, AVPacket *pkt, KLVPacket *klv) |
| static int | mxf_read_primer_pack (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_partition_pack (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static uint64_t | partition_score (MXFPartition *p) |
| static int | mxf_add_metadata_set (MXFContext *mxf, MXFMetadataSet **metadata_set, enum MXFMetadataSetType type) |
| static int | mxf_read_cryptographic_context (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_strong_ref_array (AVIOContext *pb, UID **refs, int *count) |
| static int | mxf_read_us_ascii_string (AVIOContext *pb, int size, char **str) |
| static int | mxf_read_utf16_string (AVIOContext *pb, int size, char **str, int be) |
| static int | mxf_read_content_storage (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_source_clip (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_timecode_component (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_pulldown_component (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_track (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_sequence (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_essence_group (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_package (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_essence_container_data (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_index_entry_array (AVIOContext *pb, MXFIndexTableSegment *segment) |
| static int | mxf_read_index_table_segment (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static void | mxf_read_pixel_layout (AVIOContext *pb, MXFDescriptor *descriptor) |
| static int | mxf_read_generic_descriptor (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_mca_sub_descriptor (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_ffv1_sub_descriptor (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_read_indirect_value (void *arg, AVIOContext *pb, int size) |
| static int | mxf_read_tagged_value (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_match_uid (const UID key, const uint8_t uid_prefix[], int len) |
| static const MXFCodecUL * | mxf_get_codec_ul (const MXFCodecUL *uls, UID *uid) |
| static void * | mxf_resolve_strong_ref (MXFContext *mxf, UID *strong_ref, enum MXFMetadataSetType type) |
| static MXFWrappingScheme | mxf_get_wrapping_kind (UID *essence_container_ul) |
| static int | mxf_get_sorted_table_segments (MXFContext *mxf, int *nb_sorted_segments, MXFIndexTableSegment ***sorted_segments) |
| static int | mxf_absolute_bodysid_offset (MXFContext *mxf, int body_sid, int64_t offset, int64_t *offset_out, MXFPartition **partition_out) |
| Computes the absolute file offset of the given essence container offset. | |
| static int64_t | mxf_essence_container_end (MXFContext *mxf, int body_sid) |
| Returns the end position of the essence container with given BodySID, or zero if unknown. | |
| static int | mxf_edit_unit_absolute_offset (MXFContext *mxf, MXFIndexTable *index_table, int64_t edit_unit, AVRational edit_rate, int64_t *edit_unit_out, int64_t *offset_out, MXFPartition **partition_out, int nag) |
| static int | mxf_compute_ptses_fake_index (MXFContext *mxf, MXFIndexTable *index_table) |
| static int | mxf_compute_index_tables (MXFContext *mxf) |
| Sorts and collects index table segments into index tables. | |
| static int | mxf_is_st_422 (const UID *essence_container_ul) |
| static int | mxf_is_intra_only (MXFDescriptor *descriptor) |
| static void | mxf_umid_to_str (const UID ul, const UID uid, char str[2+sizeof(UID) *4+1]) |
| static int | mxf_version_to_str (uint16_t major, uint16_t minor, uint16_t tertiary, uint16_t patch, uint16_t release, char **str) |
| static int | mxf_add_umid_metadata (AVDictionary **pm, const char *key, MXFPackage *package) |
| static int | mxf_add_timecode_metadata (AVDictionary **pm, const char *key, AVTimecode *tc) |
| static MXFTimecodeComponent * | mxf_resolve_timecode_component (MXFContext *mxf, UID *strong_ref) |
| static MXFPackage * | mxf_resolve_source_package (MXFContext *mxf, UID package_ul, UID package_uid) |
| static MXFDescriptor * | mxf_resolve_descriptor (MXFContext *mxf, UID *strong_ref, int track_id) |
| static MXFStructuralComponent * | mxf_resolve_sourceclip (MXFContext *mxf, UID *strong_ref) |
| static int | mxf_parse_package_comments (MXFContext *mxf, AVDictionary **pm, MXFPackage *package) |
| static int | mxf_parse_physical_source_package (MXFContext *mxf, MXFTrack *source_track, AVStream *st) |
| static int | mxf_add_metadata_stream (MXFContext *mxf, MXFTrack *track) |
| static enum AVColorRange | mxf_get_color_range (MXFContext *mxf, MXFDescriptor *descriptor) |
| static int | is_pcm (enum AVCodecID codec_id) |
| static int | set_language (AVFormatContext *s, const char *rfc5646, AVDictionary **met) |
| static MXFMCASubDescriptor * | find_mca_link_id (MXFContext *mxf, enum MXFMetadataSetType type, UID *mca_link_id) |
| static void | parse_ffv1_sub_descriptor (MXFContext *mxf, MXFTrack *source_track, MXFDescriptor *descriptor, AVStream *st) |
| static int | parse_mca_labels (MXFContext *mxf, MXFTrack *source_track, MXFDescriptor *descriptor, AVStream *st) |
| static int | mxf_parse_structural_metadata (MXFContext *mxf) |
| static int64_t | mxf_timestamp_to_int64 (uint64_t timestamp) |
| static int | mxf_read_identification_metadata (void *arg, AVIOContext *pb, int tag, int size, UID _uid, int64_t klv_offset) |
| static int | mxf_read_preface_metadata (void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset) |
| static int | mxf_metadataset_init (MXFMetadataSet *ctx, enum MXFMetadataSetType type, MXFPartition *partition) |
| static int | mxf_read_local_tags (MXFContext *mxf, KLVPacket *klv, MXFMetadataReadFunc *read_child, int ctx_size, enum MXFMetadataSetType type) |
| static int | mxf_is_partition_pack_key (UID key) |
| Matches any partition pack key, in other words: | |
| static int | mxf_parse_klv (MXFContext *mxf, KLVPacket klv, MXFMetadataReadFunc *read, int ctx_size, enum MXFMetadataSetType type) |
| Parses a metadata KLV. | |
| static int | mxf_seek_to_previous_partition (MXFContext *mxf) |
| Seeks to the previous partition and parses it, if possible. | |
| static int | mxf_parse_handle_essence (MXFContext *mxf) |
| Called when essence is encountered. | |
| static int | mxf_parse_handle_partition_or_eof (MXFContext *mxf) |
| Called when the next partition or EOF is encountered. | |
| static MXFWrappingScheme | mxf_get_wrapping_by_body_sid (AVFormatContext *s, int body_sid) |
| static void | mxf_compute_essence_containers (AVFormatContext *s) |
| Figures out the proper offset and length of the essence container in each partition. | |
| static MXFIndexTable * | mxf_find_index_table (MXFContext *mxf, int index_sid) |
| static void | mxf_compute_edit_units_per_packet (MXFContext *mxf, AVStream *st) |
| Deal with the case where for some audio atoms EditUnitByteCount is very small (2, 4..). | |
| static int | mxf_handle_missing_index_segment (MXFContext *mxf, AVStream *st) |
| Deal with the case where ClipWrapped essences does not have any IndexTableSegments. | |
| static void | mxf_read_random_index_pack (AVFormatContext *s) |
| static int | mxf_read_header (AVFormatContext *s) |
| static int | mxf_get_next_track_edit_unit (MXFContext *mxf, MXFTrack *track, int64_t current_offset, int64_t *edit_unit_out) |
| static int64_t | mxf_compute_sample_count (MXFContext *mxf, AVStream *st, int64_t edit_unit) |
| static int64_t | mxf_set_current_edit_unit (MXFContext *mxf, AVStream *st, int64_t current_offset, int resync) |
| Make sure track->sample_count is correct based on what offset we're currently at. | |
| static int | mxf_set_audio_pts (MXFContext *mxf, AVCodecParameters *par, AVPacket *pkt) |
| static int | mxf_set_pts (MXFContext *mxf, AVStream *st, AVPacket *pkt) |
| static int | mxf_read_packet (AVFormatContext *s, AVPacket *pkt) |
| static int | mxf_read_close (AVFormatContext *s) |
| static int | mxf_probe (const AVProbeData *p) |
| static int | mxf_read_seek (AVFormatContext *s, int stream_index, int64_t sample_time, int flags) |
Variables | |
| static const uint8_t | mxf_header_partition_pack_key [] = { 0x06,0x0e,0x2b,0x34,0x02,0x05,0x01,0x01,0x0d,0x01,0x02,0x01,0x01,0x02 } |
| static const uint8_t | mxf_essence_element_key [] = { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01 } |
| static const uint8_t | mxf_avid_essence_element_key [] = { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0e,0x04,0x03,0x01 } |
| static const uint8_t | mxf_canopus_essence_element_key [] = { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x0a,0x0e,0x0f,0x03,0x01 } |
| static const uint8_t | mxf_system_item_key_cp [] = { 0x06,0x0e,0x2b,0x34,0x02,0x05,0x01,0x01,0x0d,0x01,0x03,0x01,0x04 } |
| static const uint8_t | mxf_system_item_key_gc [] = { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x03,0x01,0x14 } |
| static const uint8_t | mxf_klv_key [] = { 0x06,0x0e,0x2b,0x34 } |
| static const uint8_t | mxf_apple_coll_prefix [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x0e,0x20,0x04,0x01,0x05,0x03,0x01 } |
| static const uint8_t | mxf_crypto_source_container_ul [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x09,0x06,0x01,0x01,0x02,0x02,0x00,0x00,0x00 } |
| static const uint8_t | mxf_encrypted_triplet_key [] = { 0x06,0x0e,0x2b,0x34,0x02,0x04,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x7e,0x01,0x00 } |
| static const uint8_t | mxf_encrypted_essence_container [] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0b,0x01,0x00 } |
| static const uint8_t | mxf_sony_mpeg4_extradata [] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0e,0x06,0x06,0x02,0x02,0x01,0x00,0x00 } |
| static const uint8_t | mxf_ffv1_extradata [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x04,0x01,0x06,0x0c,0x01,0x00,0x00,0x00 } |
| static const uint8_t | mxf_avid_project_name [] = { 0xa5,0xfb,0x7b,0x25,0xf6,0x15,0x94,0xb9,0x62,0xfc,0x37,0x17,0x49,0x2d,0x42,0xbf } |
| static const uint8_t | mxf_jp2k_rsiz [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0a,0x04,0x01,0x06,0x03,0x01,0x00,0x00,0x00 } |
| static const uint8_t | mxf_indirect_value_utf16le [] = { 0x4c,0x00,0x02,0x10,0x01,0x00,0x00,0x00,0x00,0x06,0x0e,0x2b,0x34,0x01,0x04,0x01,0x01 } |
| static const uint8_t | mxf_indirect_value_utf16be [] = { 0x42,0x01,0x10,0x02,0x00,0x00,0x00,0x00,0x00,0x06,0x0e,0x2b,0x34,0x01,0x04,0x01,0x01 } |
| static const uint8_t | mxf_apple_coll_max_cll [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x0e,0x20,0x04,0x01,0x05,0x03,0x01,0x01 } |
| static const uint8_t | mxf_apple_coll_max_fall [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x0e,0x20,0x04,0x01,0x05,0x03,0x01,0x02 } |
| static const uint8_t | mxf_mca_label_dictionary_id [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x07,0x01,0x01,0x00,0x00,0x00 } |
| static const uint8_t | mxf_mca_tag_symbol [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x07,0x01,0x02,0x00,0x00,0x00 } |
| static const uint8_t | mxf_mca_tag_name [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x07,0x01,0x03,0x00,0x00,0x00 } |
| static const uint8_t | mxf_group_of_soundfield_groups_link_id [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x07,0x01,0x04,0x00,0x00,0x00 } |
| static const uint8_t | mxf_mca_link_id [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x07,0x01,0x05,0x00,0x00,0x00 } |
| static const uint8_t | mxf_mca_channel_id [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x04,0x0a,0x00,0x00,0x00,0x00 } |
| static const uint8_t | mxf_soundfield_group_link_id [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x07,0x01,0x06,0x00,0x00,0x00 } |
| static const uint8_t | mxf_mca_rfc5646_spoken_language [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0d,0x03,0x01,0x01,0x02,0x03,0x15,0x00,0x00 } |
| static const uint8_t | mxf_sub_descriptor [] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x09,0x06,0x01,0x01,0x04,0x06,0x10,0x00,0x00 } |
| static const uint8_t | mxf_mastering_display_prefix [13] = { FF_MXF_MasteringDisplay_PREFIX } |
| static const uint8_t | mxf_mastering_display_uls [4][16] |
| static const MXFCodecUL | mxf_picture_essence_container_uls [] |
| static const MXFCodecUL | mxf_intra_only_essence_container_uls [] |
| static const MXFCodecUL | mxf_intra_only_picture_essence_coding_uls [] |
| static const MXFCodecUL | mxf_intra_only_picture_coded_width [] |
| static const MXFCodecUL | mxf_sound_essence_container_uls [] |
| static const MXFCodecUL | mxf_data_essence_container_uls [] |
| static const MXFChannelOrderingUL | mxf_channel_ordering [] |
| static const MXFMetadataReadTableEntry | mxf_metadata_read_table [] |
| static const AVOption | options [] |
| static const AVClass | demuxer_class |
| const FFInputFormat | ff_mxf_demuxer |
| #define MXF_MAX_CHUNK_SIZE (32 << 20) |
Definition at line 71 of file mxfdec.c.
Referenced by mxf_read_packet().
| #define RUN_IN_MAX (65535+1) |
Definition at line 72 of file mxfdec.c.
Referenced by mxf_probe(), and mxf_read_header().
| #define MXF_FIELD_DOMINANCE_DEFAULT 0 |
Definition at line 206 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
| #define MXF_FIELD_DOMINANCE_FF 1 /* coded first, displayed first */ |
Definition at line 207 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
| #define MXF_FIELD_DOMINANCE_FL 2 /* coded first, displayed last */ |
Definition at line 208 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
| #define IS_KLV_KEY | ( | x, | |
| y ) |
Definition at line 380 of file mxfdec.c.
Referenced by mxf_decrypt_triplet(), mxf_parse_structural_metadata(), mxf_read_cryptographic_context(), mxf_read_ffv1_sub_descriptor(), mxf_read_generic_descriptor(), mxf_read_header(), mxf_read_mca_sub_descriptor(), mxf_read_packet(), mxf_read_preface_metadata(), mxf_read_random_index_pack(), and parse_mca_labels().
| #define READ_STR16 | ( | type, | |
| big_endian ) |
| #define SET_STR_METADATA | ( | pb, | |
| name, | |||
| str ) |
Definition at line 3193 of file mxfdec.c.
Referenced by mxf_read_identification_metadata(), and mxf_read_preface_metadata().
| #define SET_VERSION_METADATA | ( | pb, | |
| name, | |||
| major, | |||
| minor, | |||
| tertiary, | |||
| patch, | |||
| release, | |||
| str ) |
Definition at line 3199 of file mxfdec.c.
Referenced by mxf_read_identification_metadata().
| #define SET_UID_METADATA | ( | pb, | |
| name, | |||
| var, | |||
| str ) |
Definition at line 3210 of file mxfdec.c.
Referenced by mxf_read_identification_metadata().
| #define SET_TS_METADATA | ( | pb, | |
| name, | |||
| var, | |||
| str ) |
Definition at line 3217 of file mxfdec.c.
Referenced by mxf_read_identification_metadata().
| enum MXFPartitionType |
| enum MXFOP |
| enum MXFWrappingScheme |
|
static |
Definition at line 382 of file mxfdec.c.
Referenced by mxf_add_metadata_set(), mxf_read_close(), and mxf_read_local_tags().
|
static |
Definition at line 434 of file mxfdec.c.
Referenced by klv_read_packet(), and mxf_decrypt_triplet().
|
static |
Definition at line 455 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
Definition at line 469 of file mxfdec.c.
Referenced by klv_read_packet().
|
static |
Definition at line 484 of file mxfdec.c.
Referenced by mxf_read_header(), mxf_read_packet(), mxf_read_random_index_pack(), and mxf_seek_to_previous_partition().
|
static |
Definition at line 513 of file mxfdec.c.
Referenced by mxf_decrypt_triplet(), and mxf_read_packet().
|
static |
Definition at line 525 of file mxfdec.c.
Referenced by mxf_decrypt_triplet(), and mxf_read_packet().
|
static |
Definition at line 548 of file mxfdec.c.
Referenced by mxf_read_packet().
|
static |
Definition at line 624 of file mxfdec.c.
Referenced by mxf_read_packet().
|
static |
Definition at line 656 of file mxfdec.c.
Referenced by mxf_read_packet().
|
static |
|
static |
Definition at line 754 of file mxfdec.c.
Referenced by mxf_seek_to_previous_partition().
|
static |
Definition at line 938 of file mxfdec.c.
Referenced by mxf_metadataset_init().
|
static |
Definition at line 954 of file mxfdec.c.
Referenced by mxf_handle_missing_index_segment(), and mxf_read_local_tags().
|
static |
|
static |
Definition at line 993 of file mxfdec.c.
Referenced by mxf_read_content_storage(), mxf_read_essence_group(), mxf_read_generic_descriptor(), mxf_read_mca_sub_descriptor(), mxf_read_package(), and mxf_read_sequence().
|
inlinestatic |
Definition at line 1019 of file mxfdec.c.
Referenced by mxf_read_mca_sub_descriptor().
|
inlinestatic |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 1244 of file mxfdec.c.
Referenced by mxf_read_index_table_segment().
|
static |
|
static |
Definition at line 1321 of file mxfdec.c.
Referenced by mxf_read_generic_descriptor().
|
static |
|
static |
|
static |
|
static |
Definition at line 1560 of file mxfdec.c.
Referenced by mxf_read_tagged_value().
|
static |
|
static |
Definition at line 1597 of file mxfdec.c.
Referenced by mxf_get_codec_ul(), mxf_is_st_422(), mxf_read_header(), and mxf_read_packet().
|
static |
Definition at line 1607 of file mxfdec.c.
Referenced by mxf_add_metadata_stream(), mxf_get_wrapping_kind(), mxf_is_intra_only(), and mxf_parse_structural_metadata().
|
static |
Definition at line 1617 of file mxfdec.c.
Referenced by mxf_parse_package_comments(), mxf_parse_physical_source_package(), mxf_parse_structural_metadata(), mxf_resolve_descriptor(), mxf_resolve_sourceclip(), mxf_resolve_timecode_component(), parse_ffv1_sub_descriptor(), and parse_mca_labels().
|
static |
Definition at line 1741 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 1779 of file mxfdec.c.
Referenced by mxf_compute_index_tables().
|
static |
Computes the absolute file offset of the given essence container offset.
Definition at line 1862 of file mxfdec.c.
Referenced by mxf_edit_unit_absolute_offset().
|
static |
Returns the end position of the essence container with given BodySID, or zero if unknown.
Definition at line 1905 of file mxfdec.c.
Referenced by mxf_set_current_edit_unit().
|
static |
Definition at line 1923 of file mxfdec.c.
Referenced by mxf_get_next_track_edit_unit(), mxf_read_seek(), and mxf_set_current_edit_unit().
|
static |
We have this:
x TemporalOffset 0: 0 1: 1 2: 1 3: -2 4: 1 5: 1 6: -2
We want to transform it into this:
x DTS PTS 0: -1 0 1: 0 3 2: 1 1 3: 2 2 4: 3 6 5: 4 4 6: 5 5
We do this by bucket sorting x by x+TemporalOffset[x] into mxf->ptses, then settings ffstream(mxf)->first_dts = -max(TemporalOffset[x]). The latter makes DTS <= PTS.
Definition at line 2006 of file mxfdec.c.
Referenced by mxf_compute_index_tables().
|
static |
Sorts and collects index table segments into index tables.
Also computes PTSes if possible.
Definition at line 2138 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
Definition at line 2258 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 2265 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
Definition at line 2273 of file mxfdec.c.
Referenced by mxf_add_umid_metadata().
|
static |
|
static |
Definition at line 2290 of file mxfdec.c.
Referenced by mxf_add_metadata_stream(), mxf_parse_physical_source_package(), and mxf_parse_structural_metadata().
|
static |
Definition at line 2300 of file mxfdec.c.
Referenced by mxf_parse_physical_source_package(), and mxf_parse_structural_metadata().
|
static |
Definition at line 2308 of file mxfdec.c.
Referenced by mxf_parse_physical_source_package().
|
static |
Definition at line 2324 of file mxfdec.c.
Referenced by mxf_parse_physical_source_package(), mxf_parse_structural_metadata(), and mxf_resolve_sourceclip().
|
static |
Definition at line 2340 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 2364 of file mxfdec.c.
Referenced by mxf_add_metadata_stream(), and mxf_parse_structural_metadata().
|
static |
Definition at line 2398 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 2418 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 2491 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 2529 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 2553 of file mxfdec.c.
Referenced by get_pcm(), mxf_compute_edit_units_per_packet(), mxf_handle_missing_index_segment(), and set_deblocking_bypass().
|
static |
|
static |
Definition at line 2574 of file mxfdec.c.
Referenced by parse_mca_labels().
|
static |
Definition at line 2585 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 2600 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 2687 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
|
static |
|
static |
|
static |
Definition at line 3326 of file mxfdec.c.
Referenced by mxf_read_local_tags().
|
static |
Definition at line 3341 of file mxfdec.c.
Referenced by mxf_parse_klv().
|
static |
Matches any partition pack key, in other words:
Definition at line 3421 of file mxfdec.c.
Referenced by mxf_read_header(), and mxf_seek_to_previous_partition().
|
static |
Parses a metadata KLV.
Definition at line 3432 of file mxfdec.c.
Referenced by mxf_read_header(), and mxf_seek_to_previous_partition().
|
static |
Seeks to the previous partition and parses it, if possible.
Definition at line 3463 of file mxfdec.c.
Referenced by mxf_parse_handle_essence(), and mxf_parse_handle_partition_or_eof().
|
static |
Called when essence is encountered.
Definition at line 3514 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
Called when the next partition or EOF is encountered.
Definition at line 3557 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
Definition at line 3562 of file mxfdec.c.
Referenced by mxf_compute_essence_containers().
|
static |
Figures out the proper offset and length of the essence container in each partition.
Definition at line 3575 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
Definition at line 3614 of file mxfdec.c.
Referenced by mxf_compute_edit_units_per_packet(), mxf_get_next_track_edit_unit(), mxf_set_current_edit_unit(), and mxf_set_pts().
|
static |
Deal with the case where for some audio atoms EditUnitByteCount is very small (2, 4..).
In those cases we should read more than one sample per call to mxf_read_packet().
Definition at line 3628 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
Deal with the case where ClipWrapped essences does not have any IndexTableSegments.
Definition at line 3659 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
Definition at line 3726 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
|
static |
Definition at line 3904 of file mxfdec.c.
Referenced by mxf_read_seek(), and mxf_set_current_edit_unit().
|
static |
Definition at line 3929 of file mxfdec.c.
Referenced by mxf_read_seek(), mxf_set_audio_pts(), and mxf_set_current_edit_unit().
|
static |
Make sure track->sample_count is correct based on what offset we're currently at.
Also determine the next edit unit (or packet) offset.
Definition at line 3960 of file mxfdec.c.
Referenced by mxf_read_packet(), and mxf_set_current_edit_unit().
|
static |
Definition at line 3998 of file mxfdec.c.
Referenced by mxf_set_pts().
|
static |
Definition at line 4020 of file mxfdec.c.
Referenced by mxf_read_packet().
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 339 of file mxfdec.c.
Referenced by mxf_is_partition_pack_key(), mxf_probe(), and mxf_read_header().
|
static |
Definition at line 340 of file mxfdec.c.
Referenced by mxf_decrypt_triplet(), mxf_get_stream_index(), mxf_read_header(), and mxf_read_packet().
|
static |
Definition at line 341 of file mxfdec.c.
Referenced by mxf_read_header(), and mxf_read_packet().
|
static |
Definition at line 342 of file mxfdec.c.
Referenced by mxf_read_header(), and mxf_read_packet().
|
static |
Definition at line 343 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
Definition at line 344 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
Definition at line 345 of file mxfdec.c.
Referenced by klv_read_packet(), and mxf_read_sync_klv().
|
static |
Definition at line 346 of file mxfdec.c.
Referenced by mxf_read_generic_descriptor().
|
static |
Definition at line 349 of file mxfdec.c.
Referenced by mxf_read_cryptographic_context().
|
static |
Definition at line 350 of file mxfdec.c.
Referenced by mxf_read_header(), and mxf_read_packet().
|
static |
Definition at line 351 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 352 of file mxfdec.c.
Referenced by mxf_read_generic_descriptor().
|
static |
Definition at line 353 of file mxfdec.c.
Referenced by mxf_read_ffv1_sub_descriptor().
|
static |
Definition at line 354 of file mxfdec.c.
Referenced by mxf_read_preface_metadata().
|
static |
Definition at line 355 of file mxfdec.c.
Referenced by mxf_read_generic_descriptor().
|
static |
Definition at line 356 of file mxfdec.c.
Referenced by mxf_read_indirect_value(), and mxf_write_tagged_value().
|
static |
Definition at line 357 of file mxfdec.c.
Referenced by mxf_read_indirect_value().
|
static |
Definition at line 358 of file mxfdec.c.
Referenced by mxf_read_generic_descriptor().
|
static |
Definition at line 359 of file mxfdec.c.
Referenced by mxf_read_generic_descriptor().
|
static |
Definition at line 361 of file mxfdec.c.
Referenced by mxf_read_mca_sub_descriptor().
|
static |
|
static |
|
static |
Definition at line 364 of file mxfdec.c.
Referenced by mxf_read_mca_sub_descriptor().
|
static |
Definition at line 365 of file mxfdec.c.
Referenced by mxf_read_mca_sub_descriptor().
|
static |
Definition at line 366 of file mxfdec.c.
Referenced by mxf_read_mca_sub_descriptor().
|
static |
Definition at line 367 of file mxfdec.c.
Referenced by mxf_read_mca_sub_descriptor().
|
static |
Definition at line 368 of file mxfdec.c.
Referenced by mxf_read_mca_sub_descriptor().
|
static |
Definition at line 370 of file mxfdec.c.
Referenced by mxf_read_generic_descriptor().
|
static |
Definition at line 372 of file mxfdec.c.
Referenced by mxf_read_generic_descriptor().
|
static |
Definition at line 373 of file mxfdec.c.
Referenced by mxf_read_generic_descriptor().
|
static |
Definition at line 1630 of file mxfdec.c.
Referenced by mxf_get_wrapping_kind(), and mxf_parse_structural_metadata().
|
static |
Definition at line 1654 of file mxfdec.c.
Referenced by mxf_is_intra_only().
|
static |
Definition at line 1660 of file mxfdec.c.
Referenced by mxf_is_intra_only().
|
static |
Definition at line 1667 of file mxfdec.c.
Referenced by mxf_parse_structural_metadata().
|
static |
Definition at line 1675 of file mxfdec.c.
Referenced by mxf_get_wrapping_kind(), and mxf_parse_structural_metadata().
|
static |
Definition at line 1688 of file mxfdec.c.
Referenced by mxf_get_wrapping_kind(), and mxf_parse_structural_metadata().
|
static |
Definition at line 1701 of file mxfdec.c.
Referenced by parse_mca_labels().
|
static |
Definition at line 3280 of file mxfdec.c.
Referenced by mxf_read_header().
|
static |
|
static |
| const FFInputFormat ff_mxf_demuxer |