FFmpeg
Loading...
Searching...
No Matches
mxfdec.c File Reference
#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 MXFCodecULmxf_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 MXFTimecodeComponentmxf_resolve_timecode_component (MXFContext *mxf, UID *strong_ref)
 
static MXFPackagemxf_resolve_source_package (MXFContext *mxf, UID package_ul, UID package_uid)
 
static MXFDescriptormxf_resolve_descriptor (MXFContext *mxf, UID *strong_ref, int track_id)
 
static MXFStructuralComponentmxf_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 MXFMCASubDescriptorfind_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 MXFIndexTablemxf_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
 

Macro Definition Documentation

◆ MXF_MAX_CHUNK_SIZE

#define MXF_MAX_CHUNK_SIZE   (32 << 20)

Definition at line 71 of file mxfdec.c.

Referenced by mxf_read_packet().

◆ RUN_IN_MAX

#define RUN_IN_MAX   (65535+1)

Definition at line 72 of file mxfdec.c.

Referenced by mxf_probe(), and mxf_read_header().

◆ MXF_FIELD_DOMINANCE_DEFAULT

#define MXF_FIELD_DOMINANCE_DEFAULT   0

Definition at line 206 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ MXF_FIELD_DOMINANCE_FF

#define MXF_FIELD_DOMINANCE_FF   1 /* coded first, displayed first */

Definition at line 207 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ MXF_FIELD_DOMINANCE_FL

#define MXF_FIELD_DOMINANCE_FL   2 /* coded first, displayed last */

Definition at line 208 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ IS_KLV_KEY

◆ READ_STR16

#define READ_STR16 ( type,
big_endian )
Value:
static int mxf_read_utf16 ## type ##_string(AVIOContext *pb, int size, char** str) \
{ \
return mxf_read_utf16_string(pb, size, str, big_endian); \
}
cl_device_type type
static int mxf_read_utf16_string(AVIOContext *pb, int size, char **str, int be)
Definition mxfdec.c:1043
Bytestream IO Context.
Definition avio.h:160
int size

Definition at line 1070 of file mxfdec.c.

◆ SET_STR_METADATA

#define SET_STR_METADATA ( pb,
name,
str )
Value:
do { \
if ((ret = mxf_read_utf16be_string(pb, size, &str)) < 0) \
return ret; \
av_dict_set(&s->metadata, name, str, AV_DICT_DONT_STRDUP_VAL); \
} while (0)
#define s(width, name)
Definition cbs_vp9.c:198
#define AV_DICT_DONT_STRDUP_VAL
Take ownership of a value that's been allocated with av_malloc() or another memory allocation functio...
Definition dict.h:79
const char * name
Definition qsvenc.c:142

Definition at line 3193 of file mxfdec.c.

Referenced by mxf_read_identification_metadata(), and mxf_read_preface_metadata().

◆ SET_VERSION_METADATA

#define SET_VERSION_METADATA ( pb,
name,
major,
minor,
tertiary,
patch,
release,
str )
Value:
do { \
major = avio_rb16(pb); \
minor = avio_rb16(pb); \
tertiary = avio_rb16(pb); \
patch = avio_rb16(pb); \
release = avio_rb16(pb); \
if ((ret = mxf_version_to_str(major, minor, tertiary, patch, release, &str)) < 0) \
return ret; \
av_dict_set(&s->metadata, name, str, AV_DICT_DONT_STRDUP_VAL); \
} while (0)
unsigned int avio_rb16(AVIOContext *s)
Definition aviobuf.c:749
static int mxf_version_to_str(uint16_t major, uint16_t minor, uint16_t tertiary, uint16_t patch, uint16_t release, char **str)
Definition mxfdec.c:2281

Definition at line 3199 of file mxfdec.c.

Referenced by mxf_read_identification_metadata().

◆ SET_UID_METADATA

#define SET_UID_METADATA ( pb,
name,
var,
str )
Value:
do { \
char uuid_str[2 * AV_UUID_LEN + 4 + 1]; \
avio_read(pb, var, 16); \
av_uuid_unparse(uid, uuid_str); \
av_dict_set(&s->metadata, name, uuid_str, 0); \
} while (0)
UID uid
Definition mxfenc.c:2488
#define AV_UUID_LEN
Definition uuid.h:57

Definition at line 3210 of file mxfdec.c.

Referenced by mxf_read_identification_metadata().

◆ SET_TS_METADATA

#define SET_TS_METADATA ( pb,
name,
var,
str )
Value:
do { \
var = avio_rb64(pb); \
if (var && (ret = ff_dict_set_timestamp(&s->metadata, name, mxf_timestamp_to_int64(var))) < 0) \
return ret; \
} while (0)
uint64_t avio_rb64(AVIOContext *s)
Definition aviobuf.c:911
int ff_dict_set_timestamp(AVDictionary **dict, const char *key, int64_t timestamp)
Set a dictionary value to an ISO-8601 compliant timestamp string.
Definition utils.c:616
static int64_t mxf_timestamp_to_int64(uint64_t timestamp)
Definition mxfdec.c:3170

Definition at line 3217 of file mxfdec.c.

Referenced by mxf_read_identification_metadata().

Typedef Documentation

◆ MXFMetadataReadFunc

typedef int MXFMetadataReadFunc(void *arg, AVIOContext *pb, int tag, int size, UID uid, int64_t klv_offset)

Definition at line 329 of file mxfdec.c.

Enumeration Type Documentation

◆ MXFPartitionType

Enumerator
Header 
BodyPartition 
Footer 

Definition at line 74 of file mxfdec.c.

◆ MXFOP

enum MXFOP
Enumerator
OP1a 
OP1b 
OP1c 
OP2a 
OP2b 
OP2c 
OP3a 
OP3b 
OP3c 
OPAtom 
OPSONYOpt 

Definition at line 80 of file mxfdec.c.

◆ MXFWrappingScheme

Enumerator
UnknownWrapped 
FrameWrapped 
ClipWrapped 

Definition at line 94 of file mxfdec.c.

Function Documentation

◆ mxf_free_metadataset()

static void mxf_free_metadataset ( MXFMetadataSet ** ctx,
enum MXFMetadataSetType type )
static

Definition at line 382 of file mxfdec.c.

Referenced by mxf_add_metadata_set(), mxf_read_close(), and mxf_read_local_tags().

◆ klv_decode_ber_length()

static int64_t klv_decode_ber_length ( AVIOContext * pb,
int * llen )
static

Definition at line 434 of file mxfdec.c.

Referenced by klv_read_packet(), and mxf_decrypt_triplet().

◆ mxf_read_sync()

static int mxf_read_sync ( AVIOContext * pb,
const uint8_t * key,
unsigned size )
static

Definition at line 455 of file mxfdec.c.

Referenced by mxf_read_header().

◆ mxf_read_sync_klv()

static int mxf_read_sync_klv ( AVIOContext * pb)
static

Definition at line 469 of file mxfdec.c.

Referenced by klv_read_packet().

◆ klv_read_packet()

static int klv_read_packet ( MXFContext * mxf,
KLVPacket * klv,
AVIOContext * pb )
static

◆ mxf_get_stream_index()

static int mxf_get_stream_index ( AVFormatContext * s,
KLVPacket * klv,
int body_sid )
static

Definition at line 513 of file mxfdec.c.

Referenced by mxf_decrypt_triplet(), and mxf_read_packet().

◆ find_body_sid_by_absolute_offset()

static int find_body_sid_by_absolute_offset ( MXFContext * mxf,
int64_t offset )
static

Definition at line 525 of file mxfdec.c.

Referenced by mxf_decrypt_triplet(), and mxf_read_packet().

◆ mxf_get_eia608_packet()

static int mxf_get_eia608_packet ( AVFormatContext * s,
AVStream * st,
AVPacket * pkt,
int64_t length )
static

Definition at line 548 of file mxfdec.c.

Referenced by mxf_read_packet().

◆ mxf_get_d10_aes3_packet()

static int mxf_get_d10_aes3_packet ( AVIOContext * pb,
AVStream * st,
AVPacket * pkt,
int64_t length )
static

Definition at line 624 of file mxfdec.c.

Referenced by mxf_read_packet().

◆ mxf_decrypt_triplet()

static int mxf_decrypt_triplet ( AVFormatContext * s,
AVPacket * pkt,
KLVPacket * klv )
static

Definition at line 656 of file mxfdec.c.

Referenced by mxf_read_packet().

◆ mxf_read_primer_pack()

static int mxf_read_primer_pack ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 728 of file mxfdec.c.

◆ mxf_read_partition_pack()

static int mxf_read_partition_pack ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 754 of file mxfdec.c.

Referenced by mxf_seek_to_previous_partition().

◆ partition_score()

static uint64_t partition_score ( MXFPartition * p)
static

Definition at line 938 of file mxfdec.c.

Referenced by mxf_metadataset_init().

◆ mxf_add_metadata_set()

static int mxf_add_metadata_set ( MXFContext * mxf,
MXFMetadataSet ** metadata_set,
enum MXFMetadataSetType type )
static

Definition at line 954 of file mxfdec.c.

Referenced by mxf_handle_missing_index_segment(), and mxf_read_local_tags().

◆ mxf_read_cryptographic_context()

static int mxf_read_cryptographic_context ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 983 of file mxfdec.c.

◆ mxf_read_strong_ref_array()

static int mxf_read_strong_ref_array ( AVIOContext * pb,
UID ** refs,
int * count )
static

◆ mxf_read_us_ascii_string()

static int mxf_read_us_ascii_string ( AVIOContext * pb,
int size,
char ** str )
inlinestatic

Definition at line 1019 of file mxfdec.c.

Referenced by mxf_read_mca_sub_descriptor().

◆ mxf_read_utf16_string()

static int mxf_read_utf16_string ( AVIOContext * pb,
int size,
char ** str,
int be )
inlinestatic

Definition at line 1043 of file mxfdec.c.

◆ mxf_read_content_storage()

static int mxf_read_content_storage ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1079 of file mxfdec.c.

◆ mxf_read_source_clip()

static int mxf_read_source_clip ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1093 of file mxfdec.c.

◆ mxf_read_timecode_component()

static int mxf_read_timecode_component ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1115 of file mxfdec.c.

◆ mxf_read_pulldown_component()

static int mxf_read_pulldown_component ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1132 of file mxfdec.c.

◆ mxf_read_track()

static int mxf_read_track ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1143 of file mxfdec.c.

◆ mxf_read_sequence()

static int mxf_read_sequence ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1170 of file mxfdec.c.

◆ mxf_read_essence_group()

static int mxf_read_essence_group ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1187 of file mxfdec.c.

◆ mxf_read_package()

static int mxf_read_package ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1201 of file mxfdec.c.

◆ mxf_read_essence_container_data()

static int mxf_read_essence_container_data ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1225 of file mxfdec.c.

◆ mxf_read_index_entry_array()

static int mxf_read_index_entry_array ( AVIOContext * pb,
MXFIndexTableSegment * segment )
static

Definition at line 1244 of file mxfdec.c.

Referenced by mxf_read_index_table_segment().

◆ mxf_read_index_table_segment()

static int mxf_read_index_table_segment ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1281 of file mxfdec.c.

◆ mxf_read_pixel_layout()

static void mxf_read_pixel_layout ( AVIOContext * pb,
MXFDescriptor * descriptor )
static

Definition at line 1321 of file mxfdec.c.

Referenced by mxf_read_generic_descriptor().

◆ mxf_read_generic_descriptor()

static int mxf_read_generic_descriptor ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1341 of file mxfdec.c.

◆ mxf_read_mca_sub_descriptor()

static int mxf_read_mca_sub_descriptor ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1516 of file mxfdec.c.

◆ mxf_read_ffv1_sub_descriptor()

static int mxf_read_ffv1_sub_descriptor ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1541 of file mxfdec.c.

◆ mxf_read_indirect_value()

static int mxf_read_indirect_value ( void * arg,
AVIOContext * pb,
int size )
static

Definition at line 1560 of file mxfdec.c.

Referenced by mxf_read_tagged_value().

◆ mxf_read_tagged_value()

static int mxf_read_tagged_value ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 1581 of file mxfdec.c.

◆ mxf_match_uid()

static int mxf_match_uid ( const UID key,
const uint8_t uid_prefix[],
int len )
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().

◆ mxf_get_codec_ul()

static const MXFCodecUL * mxf_get_codec_ul ( const MXFCodecUL * uls,
UID * uid )
static

◆ mxf_resolve_strong_ref()

◆ mxf_get_wrapping_kind()

static MXFWrappingScheme mxf_get_wrapping_kind ( UID * essence_container_ul)
static

Definition at line 1741 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ mxf_get_sorted_table_segments()

static int mxf_get_sorted_table_segments ( MXFContext * mxf,
int * nb_sorted_segments,
MXFIndexTableSegment *** sorted_segments )
static

Definition at line 1779 of file mxfdec.c.

Referenced by mxf_compute_index_tables().

◆ mxf_absolute_bodysid_offset()

static int mxf_absolute_bodysid_offset ( MXFContext * mxf,
int body_sid,
int64_t offset,
int64_t * offset_out,
MXFPartition ** partition_out )
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().

◆ mxf_essence_container_end()

static int64_t mxf_essence_container_end ( MXFContext * mxf,
int body_sid )
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().

◆ mxf_edit_unit_absolute_offset()

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

◆ mxf_compute_ptses_fake_index()

static int mxf_compute_ptses_fake_index ( MXFContext * mxf,
MXFIndexTable * index_table )
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().

◆ mxf_compute_index_tables()

static int mxf_compute_index_tables ( MXFContext * mxf)
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().

◆ mxf_is_st_422()

static int mxf_is_st_422 ( const UID * essence_container_ul)
static

Definition at line 2258 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ mxf_is_intra_only()

static int mxf_is_intra_only ( MXFDescriptor * descriptor)
static

Definition at line 2265 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ mxf_umid_to_str()

static void mxf_umid_to_str ( const UID ul,
const UID uid,
char str[2+sizeof(UID) *4+1] )
static

Definition at line 2273 of file mxfdec.c.

Referenced by mxf_add_umid_metadata().

◆ mxf_version_to_str()

static int mxf_version_to_str ( uint16_t major,
uint16_t minor,
uint16_t tertiary,
uint16_t patch,
uint16_t release,
char ** str )
static

Definition at line 2281 of file mxfdec.c.

◆ mxf_add_umid_metadata()

static int mxf_add_umid_metadata ( AVDictionary ** pm,
const char * key,
MXFPackage * package )
static

◆ mxf_add_timecode_metadata()

static int mxf_add_timecode_metadata ( AVDictionary ** pm,
const char * key,
AVTimecode * tc )
static

Definition at line 2300 of file mxfdec.c.

Referenced by mxf_parse_physical_source_package(), and mxf_parse_structural_metadata().

◆ mxf_resolve_timecode_component()

static MXFTimecodeComponent * mxf_resolve_timecode_component ( MXFContext * mxf,
UID * strong_ref )
static

Definition at line 2308 of file mxfdec.c.

Referenced by mxf_parse_physical_source_package().

◆ mxf_resolve_source_package()

static MXFPackage * mxf_resolve_source_package ( MXFContext * mxf,
UID package_ul,
UID package_uid )
static

◆ mxf_resolve_descriptor()

static MXFDescriptor * mxf_resolve_descriptor ( MXFContext * mxf,
UID * strong_ref,
int track_id )
static

Definition at line 2340 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ mxf_resolve_sourceclip()

static MXFStructuralComponent * mxf_resolve_sourceclip ( MXFContext * mxf,
UID * strong_ref )
static

Definition at line 2364 of file mxfdec.c.

Referenced by mxf_add_metadata_stream(), and mxf_parse_structural_metadata().

◆ mxf_parse_package_comments()

static int mxf_parse_package_comments ( MXFContext * mxf,
AVDictionary ** pm,
MXFPackage * package )
static

Definition at line 2398 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ mxf_parse_physical_source_package()

static int mxf_parse_physical_source_package ( MXFContext * mxf,
MXFTrack * source_track,
AVStream * st )
static

Definition at line 2418 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ mxf_add_metadata_stream()

static int mxf_add_metadata_stream ( MXFContext * mxf,
MXFTrack * track )
static

Definition at line 2491 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ mxf_get_color_range()

static enum AVColorRange mxf_get_color_range ( MXFContext * mxf,
MXFDescriptor * descriptor )
static

Definition at line 2529 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ is_pcm()

static int is_pcm ( enum AVCodecID codec_id)
static

◆ set_language()

static int set_language ( AVFormatContext * s,
const char * rfc5646,
AVDictionary ** met )
static

Definition at line 2559 of file mxfdec.c.

◆ find_mca_link_id()

static MXFMCASubDescriptor * find_mca_link_id ( MXFContext * mxf,
enum MXFMetadataSetType type,
UID * mca_link_id )
static

Definition at line 2574 of file mxfdec.c.

Referenced by parse_mca_labels().

◆ parse_ffv1_sub_descriptor()

static void parse_ffv1_sub_descriptor ( MXFContext * mxf,
MXFTrack * source_track,
MXFDescriptor * descriptor,
AVStream * st )
static

Definition at line 2585 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ parse_mca_labels()

static int parse_mca_labels ( MXFContext * mxf,
MXFTrack * source_track,
MXFDescriptor * descriptor,
AVStream * st )
static

Definition at line 2600 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ mxf_parse_structural_metadata()

static int mxf_parse_structural_metadata ( MXFContext * mxf)
static

Definition at line 2687 of file mxfdec.c.

Referenced by mxf_read_header().

◆ mxf_timestamp_to_int64()

static int64_t mxf_timestamp_to_int64 ( uint64_t timestamp)
static

Definition at line 3170 of file mxfdec.c.

◆ mxf_read_identification_metadata()

static int mxf_read_identification_metadata ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID _uid,
int64_t klv_offset )
static

Definition at line 3223 of file mxfdec.c.

◆ mxf_read_preface_metadata()

static int mxf_read_preface_metadata ( void * arg,
AVIOContext * pb,
int tag,
int size,
UID uid,
int64_t klv_offset )
static

Definition at line 3267 of file mxfdec.c.

◆ mxf_metadataset_init()

static int mxf_metadataset_init ( MXFMetadataSet * ctx,
enum MXFMetadataSetType type,
MXFPartition * partition )
static

Definition at line 3326 of file mxfdec.c.

Referenced by mxf_read_local_tags().

◆ mxf_read_local_tags()

static int mxf_read_local_tags ( MXFContext * mxf,
KLVPacket * klv,
MXFMetadataReadFunc * read_child,
int ctx_size,
enum MXFMetadataSetType type )
static

Definition at line 3341 of file mxfdec.c.

Referenced by mxf_parse_klv().

◆ mxf_is_partition_pack_key()

static int mxf_is_partition_pack_key ( UID key)
static

Matches any partition pack key, in other words:

  • HeaderPartition
  • BodyPartition
  • FooterPartition
    Returns
    non-zero if the key is a partition pack key, zero otherwise

Definition at line 3421 of file mxfdec.c.

Referenced by mxf_read_header(), and mxf_seek_to_previous_partition().

◆ mxf_parse_klv()

static int mxf_parse_klv ( MXFContext * mxf,
KLVPacket klv,
MXFMetadataReadFunc * read,
int ctx_size,
enum MXFMetadataSetType type )
static

Parses a metadata KLV.

Returns
<0 on error, 0 otherwise

Definition at line 3432 of file mxfdec.c.

Referenced by mxf_read_header(), and mxf_seek_to_previous_partition().

◆ mxf_seek_to_previous_partition()

static int mxf_seek_to_previous_partition ( MXFContext * mxf)
static

Seeks to the previous partition and parses it, if possible.

Returns
<= 0 if we should stop parsing, > 0 if we should keep going

Definition at line 3463 of file mxfdec.c.

Referenced by mxf_parse_handle_essence(), and mxf_parse_handle_partition_or_eof().

◆ mxf_parse_handle_essence()

static int mxf_parse_handle_essence ( MXFContext * mxf)
static

Called when essence is encountered.

Returns
<= 0 if we should stop parsing, > 0 if we should keep going

Definition at line 3514 of file mxfdec.c.

Referenced by mxf_read_header().

◆ mxf_parse_handle_partition_or_eof()

static int mxf_parse_handle_partition_or_eof ( MXFContext * mxf)
static

Called when the next partition or EOF is encountered.

Returns
<= 0 if we should stop parsing, > 0 if we should keep going

Definition at line 3557 of file mxfdec.c.

Referenced by mxf_read_header().

◆ mxf_get_wrapping_by_body_sid()

static MXFWrappingScheme mxf_get_wrapping_by_body_sid ( AVFormatContext * s,
int body_sid )
static

Definition at line 3562 of file mxfdec.c.

Referenced by mxf_compute_essence_containers().

◆ mxf_compute_essence_containers()

static void mxf_compute_essence_containers ( AVFormatContext * s)
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().

◆ mxf_find_index_table()

static MXFIndexTable * mxf_find_index_table ( MXFContext * mxf,
int index_sid )
static

◆ mxf_compute_edit_units_per_packet()

static void mxf_compute_edit_units_per_packet ( MXFContext * mxf,
AVStream * st )
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().

◆ mxf_handle_missing_index_segment()

static int mxf_handle_missing_index_segment ( MXFContext * mxf,
AVStream * st )
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().

◆ mxf_read_random_index_pack()

static void mxf_read_random_index_pack ( AVFormatContext * s)
static

Definition at line 3726 of file mxfdec.c.

Referenced by mxf_read_header().

◆ mxf_read_header()

static int mxf_read_header ( AVFormatContext * s)
static

Definition at line 3780 of file mxfdec.c.

◆ mxf_get_next_track_edit_unit()

static int mxf_get_next_track_edit_unit ( MXFContext * mxf,
MXFTrack * track,
int64_t current_offset,
int64_t * edit_unit_out )
static

Definition at line 3904 of file mxfdec.c.

Referenced by mxf_read_seek(), and mxf_set_current_edit_unit().

◆ mxf_compute_sample_count()

static int64_t mxf_compute_sample_count ( MXFContext * mxf,
AVStream * st,
int64_t 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().

◆ mxf_set_current_edit_unit()

static int64_t mxf_set_current_edit_unit ( MXFContext * mxf,
AVStream * st,
int64_t current_offset,
int resync )
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.

Returns
next_ofs if OK, <0 on error

Definition at line 3960 of file mxfdec.c.

Referenced by mxf_read_packet(), and mxf_set_current_edit_unit().

◆ mxf_set_audio_pts()

static int mxf_set_audio_pts ( MXFContext * mxf,
AVCodecParameters * par,
AVPacket * pkt )
static

Definition at line 3998 of file mxfdec.c.

Referenced by mxf_set_pts().

◆ mxf_set_pts()

static int mxf_set_pts ( MXFContext * mxf,
AVStream * st,
AVPacket * pkt )
static

Definition at line 4020 of file mxfdec.c.

Referenced by mxf_read_packet().

◆ mxf_read_packet()

static int mxf_read_packet ( AVFormatContext * s,
AVPacket * pkt )
static

Definition at line 4050 of file mxfdec.c.

◆ mxf_read_close()

static int mxf_read_close ( AVFormatContext * s)
static

Definition at line 4178 of file mxfdec.c.

◆ mxf_probe()

static int mxf_probe ( const AVProbeData * p)
static

Definition at line 4212 of file mxfdec.c.

◆ mxf_read_seek()

static int mxf_read_seek ( AVFormatContext * s,
int stream_index,
int64_t sample_time,
int flags )
static

Definition at line 4239 of file mxfdec.c.

Variable Documentation

◆ mxf_header_partition_pack_key

const uint8_t mxf_header_partition_pack_key[] = { 0x06,0x0e,0x2b,0x34,0x02,0x05,0x01,0x01,0x0d,0x01,0x02,0x01,0x01,0x02 }
static

Definition at line 339 of file mxfdec.c.

Referenced by mxf_is_partition_pack_key(), mxf_probe(), and mxf_read_header().

◆ mxf_essence_element_key

const uint8_t mxf_essence_element_key[] = { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01 }
static

◆ mxf_avid_essence_element_key

const uint8_t mxf_avid_essence_element_key[] = { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0e,0x04,0x03,0x01 }
static

Definition at line 341 of file mxfdec.c.

Referenced by mxf_read_header(), and mxf_read_packet().

◆ mxf_canopus_essence_element_key

const uint8_t mxf_canopus_essence_element_key[] = { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x0a,0x0e,0x0f,0x03,0x01 }
static

Definition at line 342 of file mxfdec.c.

Referenced by mxf_read_header(), and mxf_read_packet().

◆ mxf_system_item_key_cp

const uint8_t mxf_system_item_key_cp[] = { 0x06,0x0e,0x2b,0x34,0x02,0x05,0x01,0x01,0x0d,0x01,0x03,0x01,0x04 }
static

Definition at line 343 of file mxfdec.c.

Referenced by mxf_read_header().

◆ mxf_system_item_key_gc

const uint8_t mxf_system_item_key_gc[] = { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x03,0x01,0x14 }
static

Definition at line 344 of file mxfdec.c.

Referenced by mxf_read_header().

◆ mxf_klv_key

const uint8_t mxf_klv_key[] = { 0x06,0x0e,0x2b,0x34 }
static

Definition at line 345 of file mxfdec.c.

Referenced by klv_read_packet(), and mxf_read_sync_klv().

◆ mxf_apple_coll_prefix

const uint8_t mxf_apple_coll_prefix[] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x0e,0x20,0x04,0x01,0x05,0x03,0x01 }
static

Definition at line 346 of file mxfdec.c.

Referenced by mxf_read_generic_descriptor().

◆ mxf_crypto_source_container_ul

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

Definition at line 349 of file mxfdec.c.

Referenced by mxf_read_cryptographic_context().

◆ mxf_encrypted_triplet_key

const uint8_t mxf_encrypted_triplet_key[] = { 0x06,0x0e,0x2b,0x34,0x02,0x04,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x7e,0x01,0x00 }
static

Definition at line 350 of file mxfdec.c.

Referenced by mxf_read_header(), and mxf_read_packet().

◆ mxf_encrypted_essence_container

const uint8_t mxf_encrypted_essence_container[] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0b,0x01,0x00 }
static

Definition at line 351 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ mxf_sony_mpeg4_extradata

const uint8_t mxf_sony_mpeg4_extradata[] = { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0e,0x06,0x06,0x02,0x02,0x01,0x00,0x00 }
static

Definition at line 352 of file mxfdec.c.

Referenced by mxf_read_generic_descriptor().

◆ mxf_ffv1_extradata

const uint8_t mxf_ffv1_extradata[] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x04,0x01,0x06,0x0c,0x01,0x00,0x00,0x00 }
static

Definition at line 353 of file mxfdec.c.

Referenced by mxf_read_ffv1_sub_descriptor().

◆ mxf_avid_project_name

const uint8_t mxf_avid_project_name[] = { 0xa5,0xfb,0x7b,0x25,0xf6,0x15,0x94,0xb9,0x62,0xfc,0x37,0x17,0x49,0x2d,0x42,0xbf }
static

Definition at line 354 of file mxfdec.c.

Referenced by mxf_read_preface_metadata().

◆ mxf_jp2k_rsiz

const uint8_t mxf_jp2k_rsiz[] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0a,0x04,0x01,0x06,0x03,0x01,0x00,0x00,0x00 }
static

Definition at line 355 of file mxfdec.c.

Referenced by mxf_read_generic_descriptor().

◆ mxf_indirect_value_utf16le

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

Definition at line 356 of file mxfdec.c.

Referenced by mxf_read_indirect_value(), and mxf_write_tagged_value().

◆ mxf_indirect_value_utf16be

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

Definition at line 357 of file mxfdec.c.

Referenced by mxf_read_indirect_value().

◆ mxf_apple_coll_max_cll

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

Definition at line 358 of file mxfdec.c.

Referenced by mxf_read_generic_descriptor().

◆ mxf_apple_coll_max_fall

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

Definition at line 359 of file mxfdec.c.

Referenced by mxf_read_generic_descriptor().

◆ mxf_mca_label_dictionary_id

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

Definition at line 361 of file mxfdec.c.

Referenced by mxf_read_mca_sub_descriptor().

◆ mxf_mca_tag_symbol

const uint8_t mxf_mca_tag_symbol[] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x07,0x01,0x02,0x00,0x00,0x00 }
static

Definition at line 362 of file mxfdec.c.

◆ mxf_mca_tag_name

const uint8_t mxf_mca_tag_name[] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x07,0x01,0x03,0x00,0x00,0x00 }
static

Definition at line 363 of file mxfdec.c.

◆ mxf_group_of_soundfield_groups_link_id

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

Definition at line 364 of file mxfdec.c.

Referenced by mxf_read_mca_sub_descriptor().

◆ mxf_mca_link_id

const uint8_t mxf_mca_link_id[] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x07,0x01,0x05,0x00,0x00,0x00 }
static

Definition at line 365 of file mxfdec.c.

Referenced by mxf_read_mca_sub_descriptor().

◆ mxf_mca_channel_id

const uint8_t mxf_mca_channel_id[] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x0e,0x01,0x03,0x04,0x0a,0x00,0x00,0x00,0x00 }
static

Definition at line 366 of file mxfdec.c.

Referenced by mxf_read_mca_sub_descriptor().

◆ mxf_soundfield_group_link_id

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

Definition at line 367 of file mxfdec.c.

Referenced by mxf_read_mca_sub_descriptor().

◆ mxf_mca_rfc5646_spoken_language

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

Definition at line 368 of file mxfdec.c.

Referenced by mxf_read_mca_sub_descriptor().

◆ mxf_sub_descriptor

const uint8_t mxf_sub_descriptor[] = { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0x09,0x06,0x01,0x01,0x04,0x06,0x10,0x00,0x00 }
static

Definition at line 370 of file mxfdec.c.

Referenced by mxf_read_generic_descriptor().

◆ mxf_mastering_display_prefix

const uint8_t mxf_mastering_display_prefix[13] = { FF_MXF_MasteringDisplay_PREFIX }
static

Definition at line 372 of file mxfdec.c.

Referenced by mxf_read_generic_descriptor().

◆ mxf_mastering_display_uls

const uint8_t mxf_mastering_display_uls[4][16]
static
Initial value:
= {
}
#define FF_MXF_MasteringDisplayMinimumLuminance
Definition mxf.h:100
#define FF_MXF_MasteringDisplayPrimaries
Definition mxf.h:97
#define FF_MXF_MasteringDisplayWhitePointChromaticity
Definition mxf.h:98
#define FF_MXF_MasteringDisplayMaximumLuminance
Definition mxf.h:99

Definition at line 373 of file mxfdec.c.

Referenced by mxf_read_generic_descriptor().

◆ mxf_picture_essence_container_uls

const MXFCodecUL mxf_picture_essence_container_uls[]
static
Initial value:
= {
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0c,0x01,0x00 }, 14, AV_CODEC_ID_JPEG2000, NULL, 14, J2KWrap },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x10,0x60,0x01 }, 14, AV_CODEC_ID_H264, NULL, 15 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 }, 14, AV_CODEC_ID_DNXHD, NULL, 14 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0d,0x0d,0x01,0x03,0x01,0x02,0x1e,0x01,0x00 }, 14, AV_CODEC_ID_DNXUC, NULL, 14 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x12,0x01,0x00 }, 14, AV_CODEC_ID_VC1, NULL, 14 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x14,0x01,0x00 }, 14, AV_CODEC_ID_TIFF, NULL, 14 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x15,0x01,0x00 }, 14, AV_CODEC_ID_DIRAC, NULL, 14 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x1b,0x01,0x00 }, 14, AV_CODEC_ID_CFHD, NULL, 14 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x1c,0x01,0x00 }, 14, AV_CODEC_ID_PRORES, NULL, 14 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x04,0x60,0x01 }, 14, AV_CODEC_ID_MPEG2VIDEO, NULL, 15 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x01,0x04,0x01 }, 14, AV_CODEC_ID_MPEG2VIDEO, NULL, 15, D10D11Wrap },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0d,0x0d,0x01,0x03,0x01,0x02,0x23,0x01,0x00 }, 14, AV_CODEC_ID_FFV1, NULL, 14 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x02,0x41,0x01 }, 14, AV_CODEC_ID_DVVIDEO, NULL, 15 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x05,0x00,0x00 }, 14, AV_CODEC_ID_RAWVIDEO, NULL, 15, RawVWrap },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0a,0x0e,0x0f,0x03,0x01,0x02,0x20,0x01,0x01 }, 15, AV_CODEC_ID_HQ_HQA },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0a,0x0e,0x0f,0x03,0x01,0x02,0x20,0x02,0x01 }, 15, AV_CODEC_ID_HQX },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0a,0x0e,0x15,0x00,0x04,0x02,0x10,0x00,0x01 }, 16, AV_CODEC_ID_HEVC, NULL, 15 },
{ { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0xff,0x4b,0x46,0x41,0x41,0x00,0x0d,0x4d,0x4f }, 14, AV_CODEC_ID_RAWVIDEO },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_CODEC_ID_NONE },
}
#define NULL
Definition coverity.c:32
@ AV_CODEC_ID_DIRAC
Definition codec_id.h:166
@ AV_CODEC_ID_RAWVIDEO
Definition codec_id.h:63
@ AV_CODEC_ID_H264
Definition codec_id.h:77
@ AV_CODEC_ID_CFHD
Definition codec_id.h:262
@ AV_CODEC_ID_NONE
Definition codec_id.h:48
@ AV_CODEC_ID_JPEG2000
Definition codec_id.h:138
@ AV_CODEC_ID_FFV1
Definition codec_id.h:83
@ AV_CODEC_ID_VC1
Definition codec_id.h:120
@ AV_CODEC_ID_HQX
Definition codec_id.h:235
@ AV_CODEC_ID_DVVIDEO
Definition codec_id.h:74
@ AV_CODEC_ID_HEVC
Definition codec_id.h:223
@ AV_CODEC_ID_PRORES
Definition codec_id.h:198
@ AV_CODEC_ID_TIFF
Definition codec_id.h:146
@ AV_CODEC_ID_DNXHD
Definition codec_id.h:149
@ AV_CODEC_ID_MPEG2VIDEO
preferred ID for MPEG-1/2 video decoding
Definition codec_id.h:52
@ AV_CODEC_ID_HQ_HQA
Definition codec_id.h:237
@ AV_CODEC_ID_DNXUC
Definition codec_id.h:320
@ J2KWrap
Definition mxf.h:86
@ RawVWrap
Definition mxf.h:85
@ D10D11Wrap
Definition mxf.h:83

Definition at line 1630 of file mxfdec.c.

Referenced by mxf_get_wrapping_kind(), and mxf_parse_structural_metadata().

◆ mxf_intra_only_essence_container_uls

const MXFCodecUL mxf_intra_only_essence_container_uls[]
static
Initial value:
= {
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x01,0x00,0x00 }, 14, AV_CODEC_ID_MPEG2VIDEO },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_CODEC_ID_NONE },
}

Definition at line 1654 of file mxfdec.c.

Referenced by mxf_is_intra_only().

◆ mxf_intra_only_picture_essence_coding_uls

const MXFCodecUL mxf_intra_only_picture_essence_coding_uls[]
static
Initial value:
= {
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x01,0x32,0x00,0x00 }, 14, AV_CODEC_ID_H264 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x04,0x01,0x02,0x02,0x03,0x01,0x01,0x00 }, 14, AV_CODEC_ID_JPEG2000 },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_CODEC_ID_NONE },
}

Definition at line 1660 of file mxfdec.c.

Referenced by mxf_is_intra_only().

◆ mxf_intra_only_picture_coded_width

const MXFCodecUL mxf_intra_only_picture_coded_width[]
static
Initial value:
= {
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x01,0x32,0x21,0x01 }, 16, 1440 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x01,0x32,0x21,0x02 }, 16, 1440 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x01,0x32,0x21,0x03 }, 16, 1440 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x01,0x32,0x21,0x04 }, 16, 1440 },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, 0 },
}

Definition at line 1667 of file mxfdec.c.

Referenced by mxf_parse_structural_metadata().

◆ mxf_sound_essence_container_uls

const MXFCodecUL mxf_sound_essence_container_uls[]
static
Initial value:
= {
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x06,0x01,0x00 }, 14, AV_CODEC_ID_PCM_S16LE, NULL, 14, RawAWrap },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x04,0x40,0x01 }, 14, AV_CODEC_ID_MP2, NULL, 15 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x01,0x01,0x01 }, 14, AV_CODEC_ID_PCM_S16LE, NULL, 13 },
{ { 0x06,0x0e,0x2b,0x34,0x01,0x01,0x01,0xff,0x4b,0x46,0x41,0x41,0x00,0x0d,0x4d,0x4F }, 14, AV_CODEC_ID_PCM_S16LE },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x03,0x04,0x02,0x02,0x02,0x03,0x03,0x01,0x00 }, 14, AV_CODEC_ID_AAC },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0d,0x0d,0x01,0x03,0x01,0x02,0x16,0x00,0x00 }, 14, AV_CODEC_ID_AAC, NULL, 14 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0d,0x0d,0x01,0x03,0x01,0x02,0x17,0x00,0x00 }, 14, AV_CODEC_ID_AAC, NULL, 14 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0d,0x0d,0x01,0x03,0x01,0x02,0x18,0x00,0x00 }, 14, AV_CODEC_ID_AAC, NULL, 14 },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_CODEC_ID_NONE },
}
@ AV_CODEC_ID_PCM_S16LE
Definition codec_id.h:330
@ AV_CODEC_ID_MP2
Definition codec_id.h:453
@ AV_CODEC_ID_AAC
Definition codec_id.h:455
@ RawAWrap
Definition mxf.h:84

Definition at line 1675 of file mxfdec.c.

Referenced by mxf_get_wrapping_kind(), and mxf_parse_structural_metadata().

◆ mxf_data_essence_container_uls

const MXFCodecUL mxf_data_essence_container_uls[]
static
Initial value:
= {
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0d,0x00,0x00 }, 16, AV_CODEC_ID_NONE, "vbi_smpte_436M", 11 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, AV_CODEC_ID_SMPTE_436M_ANC, "vbi_vanc_smpte_436M", 11 },
{ { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x13,0x01,0x01 }, 16, AV_CODEC_ID_TTML },
{ { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, 0, AV_CODEC_ID_NONE },
}
@ AV_CODEC_ID_TTML
Definition codec_id.h:590
@ AV_CODEC_ID_SMPTE_436M_ANC
Definition codec_id.h:610

Definition at line 1688 of file mxfdec.c.

Referenced by mxf_get_wrapping_kind(), and mxf_parse_structural_metadata().

◆ mxf_channel_ordering

const MXFChannelOrderingUL mxf_channel_ordering[]
static

Definition at line 1701 of file mxfdec.c.

Referenced by parse_mca_labels().

◆ mxf_metadata_read_table

const MXFMetadataReadTableEntry mxf_metadata_read_table[]
static

Definition at line 3280 of file mxfdec.c.

Referenced by mxf_read_header().

◆ options

const AVOption options[]
static
Initial value:
= {
{ "eia608_extract", "extract eia 608 captions from s436m track",
0x42 , AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1,
{ NULL },
}
#define AV_OPT_FLAG_DECODING_PARAM
A generic parameter which can be set by the user for demuxing or decoding.
Definition opt.h:355
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
Definition opt.h:326

Definition at line 4350 of file mxfdec.c.

◆ demuxer_class

const AVClass demuxer_class
static
Initial value:
= {
.class_name = "mxf",
.item_name = av_default_item_name,
.option = options,
}
const char * av_default_item_name(void *ptr)
Return the context name.
Definition log.c:241
#define LIBAVUTIL_VERSION_INT
Definition version.h:85
@ AV_CLASS_CATEGORY_DEMUXER
Definition log.h:33

Definition at line 4357 of file mxfdec.c.

◆ ff_mxf_demuxer

const FFInputFormat ff_mxf_demuxer
Initial value:
= {
.p.name = "mxf",
.p.long_name = NULL_IF_CONFIG_SMALL("MXF (Material eXchange Format)"),
.p.priv_class = &demuxer_class,
.priv_data_size = sizeof(MXFContext),
.flags_internal = FF_INFMT_FLAG_INIT_CLEANUP,
}
static const AVClass demuxer_class
Definition apngdec.c:418
#define AVFMT_NOGENSEARCH
Format does not allow to fall back on generic search.
Definition avformat.h:505
#define AVFMT_SEEK_TO_PTS
Seeking is based on PTS.
Definition avformat.h:520
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
static int read_probe(const AVProbeData *p)
Definition cdg.c:30
#define FF_INFMT_FLAG_INIT_CLEANUP
For an FFInputFormat with this flag set read_close() needs to be called by the caller upon read_heade...
Definition demux.h:35
static int read_header(FFV1Context *f, RangeCoder *c)
Definition ffv1dec.c:578
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition internal.h:88
static av_cold int read_close(AVFormatContext *ctx)
Definition libcdio.c:143
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
Definition libcdio.c:151
static int mxf_read_seek(AVFormatContext *s, int stream_index, int64_t sample_time, int flags)
Definition mxfdec.c:4239
static int mxf_read_header(AVFormatContext *s)
Definition mxfdec.c:3780
static int mxf_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition mxfdec.c:4050
static int mxf_read_close(AVFormatContext *s)
Definition mxfdec.c:4178
static int mxf_probe(const AVProbeData *p)
Definition mxfdec.c:4212

Definition at line 4365 of file mxfdec.c.