Go to the documentation of this file.
24 #ifndef AVFORMAT_ISOM_H
25 #define AVFORMAT_ISOM_H
377 #define MP4ODescrTag 0x01
378 #define MP4IODescrTag 0x02
379 #define MP4ESDescrTag 0x03
380 #define MP4DecConfigDescrTag 0x04
381 #define MP4DecSpecificDescrTag 0x05
382 #define MP4SLDescrTag 0x06
384 #define MOV_TFHD_BASE_DATA_OFFSET 0x01
385 #define MOV_TFHD_STSD_ID 0x02
386 #define MOV_TFHD_DEFAULT_DURATION 0x08
387 #define MOV_TFHD_DEFAULT_SIZE 0x10
388 #define MOV_TFHD_DEFAULT_FLAGS 0x20
389 #define MOV_TFHD_DURATION_IS_EMPTY 0x010000
390 #define MOV_TFHD_DEFAULT_BASE_IS_MOOF 0x020000
392 #define MOV_TRUN_DATA_OFFSET 0x01
393 #define MOV_TRUN_FIRST_SAMPLE_FLAGS 0x04
394 #define MOV_TRUN_SAMPLE_DURATION 0x100
395 #define MOV_TRUN_SAMPLE_SIZE 0x200
396 #define MOV_TRUN_SAMPLE_FLAGS 0x400
397 #define MOV_TRUN_SAMPLE_CTS 0x800
399 #define MOV_FRAG_SAMPLE_FLAG_DEGRADATION_PRIORITY_MASK 0x0000ffff
400 #define MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC 0x00010000
401 #define MOV_FRAG_SAMPLE_FLAG_PADDING_MASK 0x000e0000
402 #define MOV_FRAG_SAMPLE_FLAG_REDUNDANCY_MASK 0x00300000
403 #define MOV_FRAG_SAMPLE_FLAG_DEPENDED_MASK 0x00c00000
404 #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_MASK 0x03000000
406 #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO 0x02000000
407 #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES 0x01000000
409 #define MOV_TKHD_FLAG_ENABLED 0x0001
410 #define MOV_TKHD_FLAG_IN_MOVIE 0x0002
411 #define MOV_TKHD_FLAG_IN_PREVIEW 0x0004
412 #define MOV_TKHD_FLAG_IN_POSTER 0x0008
414 #define MOV_SAMPLE_DEPENDENCY_UNKNOWN 0x0
415 #define MOV_SAMPLE_DEPENDENCY_YES 0x1
416 #define MOV_SAMPLE_DEPENDENCY_NO 0x2
418 #define MOV_TREF_FLAG_ENHANCEMENT 0x1
420 #define TAG_IS_AVCI(tag) \
421 ((tag) == MKTAG('a', 'i', '5', 'p') || \
422 (tag) == MKTAG('a', 'i', '5', 'q') || \
423 (tag) == MKTAG('a', 'i', '5', '2') || \
424 (tag) == MKTAG('a', 'i', '5', '3') || \
425 (tag) == MKTAG('a', 'i', '5', '5') || \
426 (tag) == MKTAG('a', 'i', '5', '6') || \
427 (tag) == MKTAG('a', 'i', '1', 'p') || \
428 (tag) == MKTAG('a', 'i', '1', 'q') || \
429 (tag) == MKTAG('a', 'i', '1', '2') || \
430 (tag) == MKTAG('a', 'i', '1', '3') || \
431 (tag) == MKTAG('a', 'i', '1', '5') || \
432 (tag) == MKTAG('a', 'i', '1', '6') || \
433 (tag) == MKTAG('a', 'i', 'v', 'x') || \
434 (tag) == MKTAG('A', 'V', 'i', 'n'))
442 #define FF_MOV_FLAG_MFRA_AUTO -1
443 #define FF_MOV_FLAG_MFRA_DTS 1
444 #define FF_MOV_FLAG_MFRA_PTS 2
460 #define MOV_ISMV_TTML_TAG MKTAG('d', 'f', 'x', 'p')
461 #define MOV_MP4_TTML_TAG MKTAG('s', 't', 'p', 'p')
462 #define MOV_MP4_FPCM_TAG MKTAG('f', 'p', 'c', 'm')
463 #define MOV_MP4_IPCM_TAG MKTAG('i', 'p', 'c', 'm')
unsigned int ctts_allocated_size
int found_iloc
'iloc' atom has been found
int16_t audio_cid
stsd audio compression id
unsigned int nb_chapter_tracks
uint8_t ** extradata
extradata array (and size) for multiple stsd
struct MOVStreamContext::@386 cenc
Ambient viewing environment metadata as defined by H.274.
uint64_t base_data_offset
AVSphericalMapping * spherical
int found_moov
'moov' atom has been found
unsigned int rap_group_count
int found_mdat
'mdat' atom has been found
int * bitrates
bitrates read before streams creation
#define fc(width, name, range_min, range_max)
int activation_bytes_size
void ff_mp4_parse_es_descr(AVIOContext *pb, int *es_id)
unsigned int sample_count
int advanced_editlist_autodisabled
int ff_mp4_read_dec_config_descr(void *logctx, AVStream *st, AVIOContext *pb)
struct AVAESCTR * aes_ctr
Content light level needed by to transmit HDR over HDMI (CTA-861.3).
HEIFItem ** tile_item_list
AVMasteringDisplayMetadata * mastering
int v_spacing
pasp vSpacing
int isom
1 if file is ISO Media (mp4/3gp)
size_t auxiliary_info_sample_count
uint64_t * auxiliary_offsets
Absolute seek position.
int dts_shift
dts shift when ctts is negative
int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb)
MOVEncryptionIndex * encryption_index
int ff_mov_lang_to_iso639(unsigned code, char to[4])
struct AVAES * aes_decrypt
int64_t min_corrected_pts
minimum Composition time shown by the edits excluding empty edits.
int ff_mov_iso639_to_lang(const char lang[4], int mp4)
int ff_mp4_read_descr(void *logctx, AVIOContext *pb, int *tag)
AVEncryptionInfo ** encrypted_samples
static enum AVCodecID ff_mov_get_lpcm_codec_id(int bps, int flags)
Compute codec id for 'lpcm' tag.
unsigned int keyframe_count
MOVIndexRange * index_ranges
Describe the class of an AVClass context structure.
int32_t movie_display_matrix[3][3]
display matrix from mvhd
int64_t duration
duration of the longest track
int64_t time_offset
time offset of the edit list entries
MOVIndexRange * current_index_range
const AVCodecTag ff_codec_movvideo_tags[]
int ff_mp4_read_descr_len(AVIOContext *pb)
int open_key_samples_count
const AVCodecTag ff_codec_movaudio_tags[]
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
AVCodecID
Identify the syntax and semantics of the bitstream.
DVDemuxContext * dv_demux
uint8_t auxiliary_info_default_size
unsigned int stsz_sample_size
always contains sample size from stsz atom
AVContentLightMetadata * coll
size_t auxiliary_offsets_count
MOVFragmentStreamInfo * stream_info
const AVCodecTag ff_mp4_obj_type[]
MOVFragmentIndexItem * item
struct IAMFDemuxContext * iamf
int audible_fixed_key_size
unsigned int bytes_per_frame
and forward the test the status of outputs and forward it to the corresponding return FFERROR_NOT_READY If the filters stores internally one or a few frame for some it can consider them to be part of the FIFO and delay acknowledging a status change accordingly Example code
unsigned int * sample_sizes
MOVFragmentIndex frag_index
const AVCodecTag ff_codec_movsubtitle_tags[]
void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout)
const AVCodecTag ff_codec_movdata_tags[]
AVAmbientViewingEnvironment * ambient
unsigned int nb_encrypted_samples
int pseudo_stream_id
-1 means demux all ids
const struct MP4TrackKindValueMapping * value_maps
This describes encryption info for a packet.
MOVEncryptionIndex * encryption_index
int h_spacing
pasp hSpacing
unsigned int sample_size
may contain value calculated from stsd or value from stsz atom
AVFormatContext * dv_fctx
unsigned int aax_mode
'aax' file has been detected
int64_t track_end
used for dts generation in fragmented movie files
MOVFragment fragment
current fragment in moof atom
unsigned int per_sample_iv_size
int trak_index
Index of the current 'trak'.
int itunes_metadata
metadata are itunes style
uint8_t * auxiliary_info_sizes
const struct MP4TrackKindMapping ff_mov_track_kind_table[]
int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
unsigned * stps_data
partial sync sample for mpeg-2 open gop
int found_hdlr_mdta
'hdlr' atom with type 'mdta' has been found
uint32_t tmcd_flags
tmcd track flags
uint8_t tmcd_nb_frames
tmcd number of frames per tick / second
#define flags(name, subs,...)
int start_pad
amount of samples to skip due to enc-dec delay
uint32_t min_sample_duration
unsigned int sync_group_count
Stereo 3D type: this structure describes how two videos are packed within a single video surface,...
unsigned int samples_per_frame
This structure describes how to handle spherical videos, outlining information about projection,...
AVEncryptionInfo * default_encrypted_sample
int64_t next_root_atom
offset of the next root atom
int found_iinf
'iinf' atom has been found
int ffindex
AVStream index.