Go to the documentation of this file.
24 #ifndef AVFORMAT_ISOM_H
25 #define AVFORMAT_ISOM_H
338 #define MP4ODescrTag 0x01
339 #define MP4IODescrTag 0x02
340 #define MP4ESDescrTag 0x03
341 #define MP4DecConfigDescrTag 0x04
342 #define MP4DecSpecificDescrTag 0x05
343 #define MP4SLDescrTag 0x06
345 #define MOV_TFHD_BASE_DATA_OFFSET 0x01
346 #define MOV_TFHD_STSD_ID 0x02
347 #define MOV_TFHD_DEFAULT_DURATION 0x08
348 #define MOV_TFHD_DEFAULT_SIZE 0x10
349 #define MOV_TFHD_DEFAULT_FLAGS 0x20
350 #define MOV_TFHD_DURATION_IS_EMPTY 0x010000
351 #define MOV_TFHD_DEFAULT_BASE_IS_MOOF 0x020000
353 #define MOV_TRUN_DATA_OFFSET 0x01
354 #define MOV_TRUN_FIRST_SAMPLE_FLAGS 0x04
355 #define MOV_TRUN_SAMPLE_DURATION 0x100
356 #define MOV_TRUN_SAMPLE_SIZE 0x200
357 #define MOV_TRUN_SAMPLE_FLAGS 0x400
358 #define MOV_TRUN_SAMPLE_CTS 0x800
360 #define MOV_FRAG_SAMPLE_FLAG_DEGRADATION_PRIORITY_MASK 0x0000ffff
361 #define MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC 0x00010000
362 #define MOV_FRAG_SAMPLE_FLAG_PADDING_MASK 0x000e0000
363 #define MOV_FRAG_SAMPLE_FLAG_REDUNDANCY_MASK 0x00300000
364 #define MOV_FRAG_SAMPLE_FLAG_DEPENDED_MASK 0x00c00000
365 #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_MASK 0x03000000
367 #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO 0x02000000
368 #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES 0x01000000
370 #define MOV_TKHD_FLAG_ENABLED 0x0001
371 #define MOV_TKHD_FLAG_IN_MOVIE 0x0002
372 #define MOV_TKHD_FLAG_IN_PREVIEW 0x0004
373 #define MOV_TKHD_FLAG_IN_POSTER 0x0008
375 #define MOV_SAMPLE_DEPENDENCY_UNKNOWN 0x0
376 #define MOV_SAMPLE_DEPENDENCY_YES 0x1
377 #define MOV_SAMPLE_DEPENDENCY_NO 0x2
380 #define TAG_IS_AVCI(tag) \
381 ((tag) == MKTAG('a', 'i', '5', 'p') || \
382 (tag) == MKTAG('a', 'i', '5', 'q') || \
383 (tag) == MKTAG('a', 'i', '5', '2') || \
384 (tag) == MKTAG('a', 'i', '5', '3') || \
385 (tag) == MKTAG('a', 'i', '5', '5') || \
386 (tag) == MKTAG('a', 'i', '5', '6') || \
387 (tag) == MKTAG('a', 'i', '1', 'p') || \
388 (tag) == MKTAG('a', 'i', '1', 'q') || \
389 (tag) == MKTAG('a', 'i', '1', '2') || \
390 (tag) == MKTAG('a', 'i', '1', '3') || \
391 (tag) == MKTAG('a', 'i', '1', '5') || \
392 (tag) == MKTAG('a', 'i', '1', '6') || \
393 (tag) == MKTAG('a', 'i', 'v', 'x') || \
394 (tag) == MKTAG('A', 'V', 'i', 'n'))
402 #define FF_MOV_FLAG_MFRA_AUTO -1
403 #define FF_MOV_FLAG_MFRA_DTS 1
404 #define FF_MOV_FLAG_MFRA_PTS 2
420 #define MOV_ISMV_TTML_TAG MKTAG('d', 'f', 'x', 'p')
421 #define MOV_MP4_TTML_TAG MKTAG('s', 't', 'p', 'p')
422 #define MOV_MP4_FPCM_TAG MKTAG('f', 'p', 'c', 'm')
423 #define MOV_MP4_IPCM_TAG MKTAG('i', 'p', 'c', 'm')
unsigned int ctts_allocated_size
int16_t audio_cid
stsd audio compression id
unsigned int nb_chapter_tracks
uint8_t ** extradata
extradata array (and size) for multiple stsd
int is_still_picture_avif
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
struct AVAESCTR * aes_ctr
Content light level needed by to transmit HDR over HDMI (CTA-861.3).
AVMasteringDisplayMetadata * mastering
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)
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.
int ff_mp4_read_descr(AVFormatContext *fc, AVIOContext *pb, int *tag)
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
struct MOVContext::@302 * avif_info
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
int audible_fixed_key_size
unsigned int bytes_per_frame
struct MOVStreamContext::@301 cenc
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
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[]
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
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_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext *pb)
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 ffindex
AVStream index.