24#ifndef AVFORMAT_ISOM_H
25#define AVFORMAT_ISOM_H
401#define MP4ODescrTag 0x01
402#define MP4IODescrTag 0x02
403#define MP4ESDescrTag 0x03
404#define MP4DecConfigDescrTag 0x04
405#define MP4DecSpecificDescrTag 0x05
406#define MP4SLDescrTag 0x06
408#define MOV_TFHD_BASE_DATA_OFFSET 0x01
409#define MOV_TFHD_STSD_ID 0x02
410#define MOV_TFHD_DEFAULT_DURATION 0x08
411#define MOV_TFHD_DEFAULT_SIZE 0x10
412#define MOV_TFHD_DEFAULT_FLAGS 0x20
413#define MOV_TFHD_DURATION_IS_EMPTY 0x010000
414#define MOV_TFHD_DEFAULT_BASE_IS_MOOF 0x020000
416#define MOV_TRUN_DATA_OFFSET 0x01
417#define MOV_TRUN_FIRST_SAMPLE_FLAGS 0x04
418#define MOV_TRUN_SAMPLE_DURATION 0x100
419#define MOV_TRUN_SAMPLE_SIZE 0x200
420#define MOV_TRUN_SAMPLE_FLAGS 0x400
421#define MOV_TRUN_SAMPLE_CTS 0x800
423#define MOV_FRAG_SAMPLE_FLAG_DEGRADATION_PRIORITY_MASK 0x0000ffff
424#define MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC 0x00010000
425#define MOV_FRAG_SAMPLE_FLAG_PADDING_MASK 0x000e0000
426#define MOV_FRAG_SAMPLE_FLAG_REDUNDANCY_MASK 0x00300000
427#define MOV_FRAG_SAMPLE_FLAG_DEPENDED_MASK 0x00c00000
428#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_MASK 0x03000000
430#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO 0x02000000
431#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES 0x01000000
433#define MOV_TKHD_FLAG_ENABLED 0x0001
434#define MOV_TKHD_FLAG_IN_MOVIE 0x0002
435#define MOV_TKHD_FLAG_IN_PREVIEW 0x0004
436#define MOV_TKHD_FLAG_IN_POSTER 0x0008
438#define MOV_SAMPLE_DEPENDENCY_UNKNOWN 0x0
439#define MOV_SAMPLE_DEPENDENCY_YES 0x1
440#define MOV_SAMPLE_DEPENDENCY_NO 0x2
442#define TAG_IS_AVCI(tag) \
443 ((tag) == MKTAG('a', 'i', '5', 'p') || \
444 (tag) == MKTAG('a', 'i', '5', 'q') || \
445 (tag) == MKTAG('a', 'i', '5', '2') || \
446 (tag) == MKTAG('a', 'i', '5', '3') || \
447 (tag) == MKTAG('a', 'i', '5', '5') || \
448 (tag) == MKTAG('a', 'i', '5', '6') || \
449 (tag) == MKTAG('a', 'i', '1', 'p') || \
450 (tag) == MKTAG('a', 'i', '1', 'q') || \
451 (tag) == MKTAG('a', 'i', '1', '2') || \
452 (tag) == MKTAG('a', 'i', '1', '3') || \
453 (tag) == MKTAG('a', 'i', '1', '5') || \
454 (tag) == MKTAG('a', 'i', '1', '6') || \
455 (tag) == MKTAG('a', 'i', 'v', 'x') || \
456 (tag) == MKTAG('A', 'V', 'i', 'n'))
464#define FF_MOV_FLAG_MFRA_AUTO -1
465#define FF_MOV_FLAG_MFRA_DTS 1
466#define FF_MOV_FLAG_MFRA_PTS 2
482#define MOV_ISMV_TTML_TAG MKTAG('d', 'f', 'x', 'p')
483#define MOV_MP4_TTML_TAG MKTAG('s', 't', 'p', 'p')
484#define MOV_MP4_FPCM_TAG MKTAG('f', 'p', 'c', 'm')
485#define MOV_MP4_IPCM_TAG MKTAG('i', 'p', 'c', 'm')
#define flags(name, subs,...)
static const uint16_t fc[]
AVCodecID
Identify the syntax and semantics of the bitstream.
const AVCodecTag ff_mp4_obj_type[]
const AVCodecTag ff_codec_movdata_tags[]
const struct MP4TrackKindMapping ff_mov_track_kind_table[]
const AVCodecTag ff_codec_movsubtitle_tags[]
void ff_mp4_parse_es_descr(AVIOContext *pb, int *es_id)
int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb)
int ff_mp4_read_descr_len(AVIOContext *pb)
int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
const AVCodecTag ff_codec_movaudio_tags[]
int ff_mp4_read_dec_config_descr(void *logctx, AVStream *st, AVIOContext *pb)
int ff_mp4_read_descr(void *logctx, AVIOContext *pb, int *tag)
const AVCodecTag ff_codec_movvideo_tags[]
int ff_mov_iso639_to_lang(const char lang[4], int mp4)
int ff_mov_lang_to_iso639(unsigned code, char to[4])
void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout)
static enum AVCodecID ff_mov_get_lpcm_codec_id(int bps, int flags)
Compute codec id for 'lpcm' tag.
Ambient viewing environment metadata as defined by H.274.
Describe the class of an AVClass context structure.
Content light level needed by to transmit HDR over HDMI (CTA-861.3).
This describes encryption info for a packet.
This structure describes how to handle spherical videos, outlining information about projection,...
Stereo 3D type: this structure describes how two videos are packed within a single video surface,...
HEIFItem ** tile_item_list
AVDictionary * decryption_keys
int * bitrates
bitrates read before streams creation
int itunes_metadata
metadata are itunes style
int32_t movie_display_matrix[3][3]
display matrix from mvhd
uint8_t * decryption_default_key
int audible_fixed_key_size
unsigned int aax_mode
'aax' file has been detected
int found_mdat
'mdat' atom has been found
int decryption_default_key_len
int found_iinf
'iinf' atom has been found
int64_t duration
duration of the longest track
int activation_bytes_size
int64_t next_root_atom
offset of the next root atom
int isom
1 if file is ISO Media (mp4/3gp)
DVDemuxContext * dv_demux
unsigned int nb_chapter_tracks
MOVFragmentIndex frag_index
int found_hdlr_mdta
'hdlr' atom with type 'mdta' has been found
struct AVAES * aes_decrypt
MOVFragment fragment
current fragment in moof atom
AVFormatContext * dv_fctx
int advanced_editlist_autodisabled
int found_moov
'moov' atom has been found
int found_iloc
'iloc' atom has been found
unsigned heif_icc_profile_items
int trak_index
Index of the current 'trak'.
uint64_t * auxiliary_offsets
Absolute seek position.
unsigned int nb_encrypted_samples
size_t auxiliary_offsets_count
size_t auxiliary_info_sample_count
uint8_t auxiliary_info_default_size
uint8_t * auxiliary_info_sizes
AVEncryptionInfo ** encrypted_samples
MOVFragmentStreamInfo * stream_info
MOVFragmentIndexItem * item
MOVEncryptionIndex * encryption_index
uint64_t base_data_offset
int64_t time_offset
time offset of the edit list entries
uint32_t min_sample_duration
uint8_t ** extradata
extradata array (and size) for multiple stsd
MOVEncryptionIndex * encryption_index
int64_t track_end
used for dts generation in fragmented movie files
int pseudo_stream_id
-1 means demux all ids
unsigned int rap_group_count
unsigned int ctts_allocated_size
unsigned int per_sample_iv_size
AVContentLightMetadata * coll
MOVTimeToSample * tts_data
unsigned int samples_per_frame
int open_key_samples_count
unsigned int sample_size
may contain value calculated from stsd or value from stsz atom
AVEncryptionInfo * default_encrypted_sample
int16_t audio_cid
stsd audio compression id
struct AVAESCTR * aes_ctr
AVAmbientViewingEnvironment * ambient
struct MOVStreamContext::@212112112267365060330232277203165117121340225276 cenc
MOVIndexRange * current_index_range
unsigned int * sample_sizes
AVMasteringDisplayMetadata * mastering
uint8_t tmcd_nb_frames
tmcd number of frames per tick / second
int v_spacing
pasp vSpacing
unsigned int sample_count
int dts_shift
dts shift when ctts is negative
int64_t min_corrected_pts
minimum Composition time shown by the edits excluding empty edits.
int ffindex
AVStream index.
AVSphericalMapping * spherical
unsigned int keyframe_count
unsigned int bytes_per_frame
uint32_t tmcd_flags
tmcd track flags
unsigned * stps_data
partial sync sample for mpeg-2 open gop
unsigned int stts_allocated_size
unsigned int sync_group_count
MOVIndexRange * index_ranges
struct IAMFDemuxContext * iamf
unsigned int stsz_sample_size
always contains sample size from stsz atom
int h_spacing
pasp hSpacing
unsigned int tts_allocated_size
const struct MP4TrackKindValueMapping * value_maps
uint32_t * id
trackID of the referenced track