FFmpeg
Loading...
Searching...
No Matches
isom.h
Go to the documentation of this file.
1/*
2 * ISO Media common code
3 * copyright (c) 2001 Fabrice Bellard
4 * copyright (c) 2002 Francois Revol <revol@free.fr>
5 * copyright (c) 2006 Baptiste Coudurier <baptiste.coudurier@free.fr>
6 *
7 * This file is part of FFmpeg.
8 *
9 * FFmpeg is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
13 *
14 * FFmpeg is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with FFmpeg; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24#ifndef AVFORMAT_ISOM_H
25#define AVFORMAT_ISOM_H
26
27#include <stddef.h>
28#include <stdint.h>
29
33#include "libavutil/spherical.h"
34#include "libavutil/stereo3d.h"
35
36#include "libavcodec/exif.h"
37#include "avio.h"
38#include "internal.h"
39#include "dv.h"
40
41/* isom.c */
42extern const AVCodecTag ff_mp4_obj_type[];
47
48int ff_mov_iso639_to_lang(const char lang[4], int mp4);
49int ff_mov_lang_to_iso639(unsigned code, char to[4]);
50
51struct AVAESCTR;
52
53/* the QuickTime file format is quite convoluted...
54 * it has lots of index tables, each indexing something in another one...
55 * Here we just use what is needed to read the chunks
56 */
57
58typedef struct MOVTimeToSample {
59 unsigned int count;
60 unsigned int duration;
61 int offset;
63
64typedef struct MOVStts {
65 unsigned int count;
66 unsigned int duration;
67} MOVStts;
68
69typedef struct MOVCtts {
70 unsigned int count;
71 int offset;
72} MOVCtts;
73
74typedef struct MOVStsc {
75 int first;
76 int count;
77 int id;
78} MOVStsc;
79
80typedef struct MOVElst {
83 float rate;
84} MOVElst;
85
86typedef struct MOVDref {
87 uint32_t type;
88 char *path;
89 char *dir;
90 char volume[28];
91 char filename[64];
93} MOVDref;
94
95typedef struct MovTref {
96 uint32_t name;
97 int nb_id;
98 uint32_t *id; ///< trackID of the referenced track
99} MovTref;
100
101typedef struct MOVAtom {
102 uint32_t type;
103 int64_t size; /* total size (excluding the size and type fields) */
104} MOVAtom;
105
106struct MOVParseTableEntry;
107
108typedef struct MOVFragment {
110 unsigned track_id;
112 uint64_t moof_offset;
114 unsigned stsd_id;
115 unsigned duration;
116 unsigned size;
117 unsigned flags;
119
120typedef struct MOVTrackExt {
121 unsigned track_id;
122 unsigned stsd_id;
123 unsigned duration;
124 unsigned size;
125 unsigned flags;
127
128typedef struct MOVSbgp {
129 unsigned int count;
130 unsigned int index;
131} MOVSbgp;
132
133typedef struct MOVEncryptionIndex {
134 // Individual encrypted samples. If there are no elements, then the default
135 // settings will be used.
138
142 uint64_t* auxiliary_offsets; ///< Absolute seek position
145
146typedef struct MOVFragmentStreamInfo {
147 int id;
152 // Index of the first sample/trun in the fragment.
156 int stsd_id; // current fragment stsd_id
158
166
174
179
180typedef struct MOVStreamContext {
184 int id; ///< AVStream id
185 int ffindex; ///< AVStream index
187 unsigned int chunk_count;
189 unsigned int tts_count;
190 unsigned int tts_allocated_size;
192 unsigned int stts_count;
195 unsigned int sdtp_count;
196 uint8_t *sdtp_data;
197 unsigned int ctts_count;
200 unsigned int stsc_count;
202 unsigned int stsc_index;
204 unsigned int stps_count;
205 unsigned *stps_data; ///< partial sync sample for mpeg-2 open gop
207 unsigned int elst_count;
210 unsigned int sample_size; ///< may contain value calculated from stsd or value from stsz atom
211 unsigned int stsz_sample_size; ///< always contains sample size from stsz atom
212 unsigned int sample_count;
213 unsigned int *sample_sizes;
215 unsigned int keyframe_count;
218 int64_t time_offset; ///< time offset of the edit list entries
219 int64_t min_corrected_pts; ///< minimum Composition time shown by the edits excluding empty edits.
224 unsigned int bytes_per_frame;
225 unsigned int samples_per_frame;
227 int pseudo_stream_id; ///< -1 means demux all ids
228 int16_t audio_cid; ///< stsd audio compression id
229 unsigned drefs_count;
234 int width; ///< tkhd width
235 int height; ///< tkhd height
236 int h_spacing; ///< pasp hSpacing
237 int v_spacing; ///< pasp vSpacing
238 int dts_shift; ///< dts shift when ctts is negative
239 uint32_t palette[256];
242 uint32_t tmcd_flags; ///< tmcd track flags
243 uint8_t tmcd_nb_frames; ///< tmcd number of frames per tick / second
244 int64_t track_end; ///< used for dts generation in fragmented movie files
245 unsigned int rap_group_count;
247 unsigned int sync_group_count;
249 uint8_t *sgpd_sync;
256
259
260 /** extradata array (and size) for multiple stsd */
261 uint8_t **extradata;
266
275 size_t coll_size;
278
279 uint32_t format;
280
281 int has_sidx; // If there is an sidx entry for this stream.
282 struct {
284 struct AVAES *aes_ctx;
285 unsigned int per_sample_iv_size; // Either 0, 8, or 16.
289
293
294typedef struct HEIFItemRef {
295 uint32_t type;
298
323
331
332typedef struct MOVContext {
333 const AVClass *class; ///< class for private options
336 int64_t duration; ///< duration of the longest track
337 int found_moov; ///< 'moov' atom has been found
338 int found_iloc; ///< 'iloc' atom has been found
339 int found_iinf; ///< 'iinf' atom has been found
340 int found_mdat; ///< 'mdat' atom has been found
341 int found_hdlr_mdta; ///< 'hdlr' atom with type 'mdta' has been found
342 int trak_index; ///< Index of the current 'trak'
343 char **meta_keys;
347 int isom; ///< 1 if file is ISO Media (mp4/3gp)
348 MOVFragment fragment; ///< current fragment in moof atom
350 unsigned trex_count;
351 int itunes_metadata; ///< metadata are itunes style
354 unsigned int nb_chapter_tracks;
361 int64_t next_root_atom; ///< offset of the next root atom
364 int *bitrates; ///< bitrates read before streams creation
372 unsigned int aax_mode; ///< 'aax' file has been detected
373 uint8_t file_key[20];
374 uint8_t file_iv[20];
387 int32_t movie_display_matrix[3][3]; ///< display matrix from mvhd
389 uint32_t mfra_size;
401} MOVContext;
402
404int ff_mp4_read_descr(void *logctx, AVIOContext *pb, int *tag);
405int ff_mp4_read_dec_config_descr(void *logctx, AVStream *st, AVIOContext *pb);
406void ff_mp4_parse_es_descr(AVIOContext *pb, int *es_id);
407
408#define MP4ODescrTag 0x01
409#define MP4IODescrTag 0x02
410#define MP4ESDescrTag 0x03
411#define MP4DecConfigDescrTag 0x04
412#define MP4DecSpecificDescrTag 0x05
413#define MP4SLDescrTag 0x06
414
415#define MOV_TFHD_BASE_DATA_OFFSET 0x01
416#define MOV_TFHD_STSD_ID 0x02
417#define MOV_TFHD_DEFAULT_DURATION 0x08
418#define MOV_TFHD_DEFAULT_SIZE 0x10
419#define MOV_TFHD_DEFAULT_FLAGS 0x20
420#define MOV_TFHD_DURATION_IS_EMPTY 0x010000
421#define MOV_TFHD_DEFAULT_BASE_IS_MOOF 0x020000
422
423#define MOV_TRUN_DATA_OFFSET 0x01
424#define MOV_TRUN_FIRST_SAMPLE_FLAGS 0x04
425#define MOV_TRUN_SAMPLE_DURATION 0x100
426#define MOV_TRUN_SAMPLE_SIZE 0x200
427#define MOV_TRUN_SAMPLE_FLAGS 0x400
428#define MOV_TRUN_SAMPLE_CTS 0x800
429
430#define MOV_FRAG_SAMPLE_FLAG_DEGRADATION_PRIORITY_MASK 0x0000ffff
431#define MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC 0x00010000
432#define MOV_FRAG_SAMPLE_FLAG_PADDING_MASK 0x000e0000
433#define MOV_FRAG_SAMPLE_FLAG_REDUNDANCY_MASK 0x00300000
434#define MOV_FRAG_SAMPLE_FLAG_DEPENDED_MASK 0x00c00000
435#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_MASK 0x03000000
436
437#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO 0x02000000
438#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES 0x01000000
439
440#define MOV_TKHD_FLAG_ENABLED 0x0001
441#define MOV_TKHD_FLAG_IN_MOVIE 0x0002
442#define MOV_TKHD_FLAG_IN_PREVIEW 0x0004
443#define MOV_TKHD_FLAG_IN_POSTER 0x0008
444
445#define MOV_INFE_FLAG_HIDDEN 0x01
446
447#define MOV_SAMPLE_DEPENDENCY_UNKNOWN 0x0
448#define MOV_SAMPLE_DEPENDENCY_YES 0x1
449#define MOV_SAMPLE_DEPENDENCY_NO 0x2
450
451/* https://developer.apple.com/documentation/quicktime-file-format/graphics_modes */
452#define MOV_GRAPHICS_MODE_COPY 0x0
453#define MOV_GRAPHICS_MODE_DITHER_COPY 0x40
454#define MOV_GRAPHICS_MODE_BLEND 0x20
455#define MOV_GRAPHICS_MODE_TRANSPARENT 0x24
456#define MOV_GRAPHICS_MODE_STRAIGHT_ALPHA 0x100
457#define MOV_GRAPHICS_MODE_PREMUL_WHITE_ALPHA 0x101
458#define MOV_GRAPHICS_MODE_PREMUL_BLACK_ALPHA 0x102
459#define MOV_GRAPHICS_MODE_COMPOSITION 0x103
460#define MOV_GRAPHICS_MODE_STRAIGHT_ALPHA_BLEND 0x104
461
462#define TAG_IS_AVCI(tag) \
463 ((tag) == MKTAG('a', 'i', '5', 'p') || \
464 (tag) == MKTAG('a', 'i', '5', 'q') || \
465 (tag) == MKTAG('a', 'i', '5', '2') || \
466 (tag) == MKTAG('a', 'i', '5', '3') || \
467 (tag) == MKTAG('a', 'i', '5', '5') || \
468 (tag) == MKTAG('a', 'i', '5', '6') || \
469 (tag) == MKTAG('a', 'i', '1', 'p') || \
470 (tag) == MKTAG('a', 'i', '1', 'q') || \
471 (tag) == MKTAG('a', 'i', '1', '2') || \
472 (tag) == MKTAG('a', 'i', '1', '3') || \
473 (tag) == MKTAG('a', 'i', '1', '5') || \
474 (tag) == MKTAG('a', 'i', '1', '6') || \
475 (tag) == MKTAG('a', 'i', 'v', 'x') || \
476 (tag) == MKTAG('A', 'V', 'i', 'n'))
477
478
480
481int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries);
482void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout);
483
484#define FF_MOV_FLAG_MFRA_AUTO -1
485#define FF_MOV_FLAG_MFRA_DTS 1
486#define FF_MOV_FLAG_MFRA_PTS 2
487
488/**
489 * Compute codec id for 'lpcm' tag.
490 * See CoreAudioTypes and AudioStreamBasicDescription at Apple.
491 */
492static inline enum AVCodecID ff_mov_get_lpcm_codec_id(int bps, int flags)
493{
494 /* lpcm flags:
495 * 0x1 = float
496 * 0x2 = big-endian
497 * 0x4 = signed
498 */
499 return ff_get_pcm_codec_id(bps, flags & 1, flags & 2, flags & 4 ? -1 : 0);
500}
501
502#define MOV_ISMV_TTML_TAG MKTAG('d', 'f', 'x', 'p')
503#define MOV_MP4_TTML_TAG MKTAG('s', 't', 'p', 'p')
504#define MOV_MP4_FPCM_TAG MKTAG('f', 'p', 'c', 'm')
505#define MOV_MP4_IPCM_TAG MKTAG('i', 'p', 'c', 'm')
506
509 const char *value;
510};
511
516
517extern const struct MP4TrackKindMapping ff_mov_track_kind_table[];
518
519#endif /* AVFORMAT_ISOM_H */
int32_t
Buffered I/O operations.
#define flags(name, subs,...)
Definition cbs_h264.c:74
long long int64_t
Definition coverity.c:34
static const uint16_t fc[]
Definition dcaenc.h:43
EXIF metadata parser.
AVCodecID
Identify the syntax and semantics of the bitstream.
Definition codec_id.h:47
const AVCodecTag ff_mp4_obj_type[]
Definition isom.c:34
const AVCodecTag ff_codec_movdata_tags[]
Definition isom.c:82
const struct MP4TrackKindMapping ff_mov_track_kind_table[]
Definition isom.c:465
const AVCodecTag ff_codec_movsubtitle_tags[]
Definition isom.c:75
void ff_mp4_parse_es_descr(AVIOContext *pb, int *es_id)
Definition isom.c:305
int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb)
Definition mov_esds.c:23
int ff_mp4_read_descr_len(AVIOContext *pb)
Definition isom.c:283
int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
Definition mov.c:3359
const AVCodecTag ff_codec_movaudio_tags[]
Definition isom_tags.c:307
int ff_mp4_read_dec_config_descr(void *logctx, AVStream *st, AVIOContext *pb)
Definition isom.c:330
int ff_mp4_read_descr(void *logctx, AVIOContext *pb, int *tag)
Definition isom.c:296
const AVCodecTag ff_codec_movvideo_tags[]
Definition isom_tags.c:29
int ff_mov_iso639_to_lang(const char lang[4], int mp4)
Definition isom.c:234
int ff_mov_lang_to_iso639(unsigned code, char to[4])
Definition isom.c:261
void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout)
Definition isom.c:430
static enum AVCodecID ff_mov_get_lpcm_codec_id(int bps, int flags)
Compute codec id for 'lpcm' tag.
Definition isom.h:492
const char * to
Definition webvttdec.c:36
struct DVDemuxContext DVDemuxContext
Definition dv.h:33
enum AVCodecID ff_get_pcm_codec_id(int bps, int flt, int be, int sflags)
Select a PCM codec based on the given parameters.
Definition utils.c:154
Stereoscopic video.
uint32_t tag
Definition movenc.c:2128
unsigned bps
Definition movenc.c:2129
const uint8_t * code
Definition spdifenc.c:433
Spherical video.
Ambient viewing environment metadata as defined by H.274.
Describe the class of an AVClass context structure.
Definition log.h:76
Content light level needed by to transmit HDR over HDMI (CTA-861.3).
This describes encryption info for a packet.
Format I/O context.
Definition avformat.h:1400
Bytestream IO Context.
Definition avio.h:160
Mastering display metadata capable of representing the color volume of the display used to master the...
This structure describes how to handle spherical videos, outlining information about projection,...
Definition spherical.h:100
Stereo 3D type: this structure describes how two videos are packed within a single video surface,...
Definition stereo3d.h:203
Stream structure.
Definition avformat.h:768
int16_t * item_id_list
Definition isom.h:327
HEIFItem ** item_list
Definition isom.h:326
int nb_items
Definition isom.h:329
unsigned * item_idx_list
Definition isom.h:328
HEIFItem * item
Definition isom.h:325
int item_id
Definition isom.h:296
uint32_t type
Definition isom.h:295
int is_idat_relative
Definition isom.h:318
int type
Definition isom.h:316
int nb_iref_from_list
Definition isom.h:303
AVStreamGroup * stg
Definition isom.h:301
char * name
Definition isom.h:307
int nb_iref_to_list
Definition isom.h:305
uint8_t * icc_profile
Definition isom.h:320
HEIFItemRef * iref_from_list
Definition isom.h:302
int rotation
Definition isom.h:313
int hflip
Definition isom.h:314
AVExifMetadata ifd
Definition isom.h:319
int64_t extent_length
Definition isom.h:309
int flags
Definition isom.h:306
AVStream * st
Definition isom.h:300
int is_gainmap
Definition isom.h:317
size_t icc_profile_size
Definition isom.h:321
int vflip
Definition isom.h:315
int64_t extent_offset
Definition isom.h:310
int width
Definition isom.h:311
int height
Definition isom.h:312
int item_id
Definition isom.h:308
HEIFItemRef * iref_to_list
Definition isom.h:304
uint32_t type
Definition isom.h:102
int64_t size
Definition isom.h:103
uint8_t file_iv[20]
Definition isom.h:374
int handbrake_version
Definition isom.h:352
void * audible_iv
Definition isom.h:381
AVDictionary * decryption_keys
Definition isom.h:399
int * bitrates
bitrates read before streams creation
Definition isom.h:364
int cur_item_id
Definition isom.h:392
int ignore_editlist
Definition isom.h:356
HEIFGroup * heif_group
Definition isom.h:395
int itunes_metadata
metadata are itunes style
Definition isom.h:351
int has_looked_for_mfra
Definition isom.h:368
int enable_drefs
Definition isom.h:386
int32_t movie_display_matrix[3][3]
display matrix from mvhd
Definition isom.h:387
int have_read_mfra_size
Definition isom.h:388
uint8_t * decryption_default_key
Definition isom.h:384
int use_tfdt
Definition isom.h:369
unsigned meta_keys_count
Definition isom.h:344
char ** meta_keys
Definition isom.h:343
int audible_fixed_key_size
Definition isom.h:378
AVFormatContext * fc
Definition isom.h:334
unsigned int aax_mode
'aax' file has been detected
Definition isom.h:372
int found_mdat
'mdat' atom has been found
Definition isom.h:340
void * activation_bytes
Definition isom.h:375
int decryption_default_key_len
Definition isom.h:385
int found_iinf
'iinf' atom has been found
Definition isom.h:339
int bitrates_count
Definition isom.h:365
uint32_t max_stts_delta
Definition isom.h:390
int * chapter_tracks
Definition isom.h:353
int64_t duration
duration of the longest track
Definition isom.h:336
unsigned trex_count
Definition isom.h:350
int activation_bytes_size
Definition isom.h:376
int interleaved_read
Definition isom.h:398
int64_t next_root_atom
offset of the next root atom
Definition isom.h:361
int isom
1 if file is ISO Media (mp4/3gp)
Definition isom.h:347
int ignore_chapters
Definition isom.h:359
DVDemuxContext * dv_demux
Definition isom.h:345
int export_xmp
Definition isom.h:363
int nb_heif_item
Definition isom.h:394
unsigned int nb_chapter_tracks
Definition isom.h:354
int seek_individually
Definition isom.h:360
int64_t idat_offset
Definition isom.h:397
MOVFragmentIndex frag_index
Definition isom.h:370
int nb_heif_group
Definition isom.h:396
void * audible_fixed_key
Definition isom.h:377
MOVTrackExt * trex_data
Definition isom.h:349
int found_hdlr_mdta
'hdlr' atom with type 'mdta' has been found
Definition isom.h:341
int audible_key_size
Definition isom.h:380
uint8_t file_key[20]
Definition isom.h:373
void * audible_key
Definition isom.h:379
struct AVAES * aes_decrypt
Definition isom.h:383
MOVFragment fragment
current fragment in moof atom
Definition isom.h:348
int use_absolute_path
Definition isom.h:355
AVFormatContext * dv_fctx
Definition isom.h:346
int moov_retry
Definition isom.h:366
int time_scale
Definition isom.h:335
int advanced_editlist_autodisabled
Definition isom.h:358
uint32_t mfra_size
Definition isom.h:389
int found_moov
'moov' atom has been found
Definition isom.h:337
int primary_item_id
Definition isom.h:391
int audible_iv_size
Definition isom.h:382
int atom_depth
Definition isom.h:371
int advanced_editlist
Definition isom.h:357
int found_iloc
'iloc' atom has been found
Definition isom.h:338
unsigned heif_icc_profile_items
Definition isom.h:400
HEIFItem ** heif_item
Definition isom.h:393
int export_all
Definition isom.h:362
int trak_index
Index of the current 'trak'.
Definition isom.h:342
int use_mfra_for
Definition isom.h:367
Definition isom.h:69
unsigned int count
Definition isom.h:70
int offset
Definition isom.h:71
Definition isom.h:86
char volume[28]
Definition isom.h:90
char * dir
Definition isom.h:89
int16_t nlvl_to
Definition isom.h:92
char * path
Definition isom.h:88
uint32_t type
Definition isom.h:87
int16_t nlvl_from
Definition isom.h:92
char filename[64]
Definition isom.h:91
Definition isom.h:80
float rate
Definition isom.h:83
int64_t duration
Definition isom.h:81
int64_t time
Definition isom.h:82
uint64_t * auxiliary_offsets
Absolute seek position.
Definition isom.h:142
unsigned int nb_encrypted_samples
Definition isom.h:136
size_t auxiliary_offsets_count
Definition isom.h:143
size_t auxiliary_info_sample_count
Definition isom.h:140
uint8_t auxiliary_info_default_size
Definition isom.h:141
uint8_t * auxiliary_info_sizes
Definition isom.h:139
AVEncryptionInfo ** encrypted_samples
Definition isom.h:137
MOVFragmentStreamInfo * stream_info
Definition isom.h:164
int64_t moof_offset
Definition isom.h:160
int allocated_size
Definition isom.h:168
MOVFragmentIndexItem * item
Definition isom.h:172
MOVEncryptionIndex * encryption_index
Definition isom.h:155
int64_t next_trun_dts
Definition isom.h:151
int64_t first_tfra_pts
Definition isom.h:149
unsigned track_id
Definition isom.h:110
unsigned flags
Definition isom.h:117
unsigned duration
Definition isom.h:115
int found_tfhd
Definition isom.h:109
unsigned size
Definition isom.h:116
unsigned stsd_id
Definition isom.h:114
uint64_t base_data_offset
Definition isom.h:111
uint64_t moof_offset
Definition isom.h:112
uint64_t implicit_offset
Definition isom.h:113
int64_t start
Definition isom.h:176
int64_t end
Definition isom.h:177
unsigned int index
Definition isom.h:130
unsigned int count
Definition isom.h:129
int64_t time_offset
time offset of the edit list entries
Definition isom.h:218
int64_t duration_for_fps
Definition isom.h:258
AVIOContext * pb
Definition isom.h:181
size_t spherical_size
Definition isom.h:271
uint32_t min_sample_duration
Definition isom.h:255
uint8_t ** extradata
extradata array (and size) for multiple stsd
Definition isom.h:261
MOVSbgp * rap_group
Definition isom.h:246
int iamf_stream_offset
Definition isom.h:291
MOVEncryptionIndex * encryption_index
Definition isom.h:287
int64_t track_end
used for dts generation in fragmented movie files
Definition isom.h:244
int pseudo_stream_id
-1 means demux all ids
Definition isom.h:227
unsigned int rap_group_count
Definition isom.h:245
int height
tkhd height
Definition isom.h:235
int stsc_sample
Definition isom.h:203
MOVDref * drefs
Definition isom.h:230
int sample_offsets_count
Definition isom.h:252
unsigned int ctts_allocated_size
Definition isom.h:198
unsigned int per_sample_iv_size
Definition isom.h:285
int * extradata_size
Definition isom.h:262
size_t coll_size
Definition isom.h:275
int dv_audio_container
Definition isom.h:226
AVContentLightMetadata * coll
Definition isom.h:274
int64_t * chunk_offsets
Definition isom.h:188
size_t ambient_size
Definition isom.h:277
MOVStsc * stsc_data
Definition isom.h:201
uint8_t * sgpd_sync
Definition isom.h:249
size_t stereo3d_size
Definition isom.h:269
MOVTimeToSample * tts_data
Definition isom.h:191
AVStereo3D * stereo3d
Definition isom.h:268
int32_t * display_matrix
Definition isom.h:267
int current_sample
Definition isom.h:220
uint32_t sgpd_sync_count
Definition isom.h:250
unsigned int samples_per_frame
Definition isom.h:225
int nb_frames_for_fps
Definition isom.h:257
uint32_t format
Definition isom.h:279
int keyframe_absent
Definition isom.h:214
int open_key_samples_count
Definition isom.h:254
MOVElst * elst_data
Definition isom.h:206
int64_t current_index
Definition isom.h:221
int * open_key_samples
Definition isom.h:253
unsigned int stts_count
Definition isom.h:192
uint8_t * sdtp_data
Definition isom.h:196
unsigned int sample_size
may contain value calculated from stsd or value from stsz atom
Definition isom.h:210
AVEncryptionInfo * default_encrypted_sample
Definition isom.h:286
int nb_tref_tags
Definition isom.h:232
int16_t audio_cid
stsd audio compression id
Definition isom.h:228
struct AVAESCTR * aes_ctr
Definition isom.h:283
MOVStts * stts_data
Definition isom.h:194
int last_stsd_index
Definition isom.h:263
unsigned int chunk_count
Definition isom.h:187
size_t mastering_size
Definition isom.h:273
AVAmbientViewingEnvironment * ambient
Definition isom.h:276
int64_t data_size
Definition isom.h:241
int pb_is_copied
Definition isom.h:183
int * keyframes
Definition isom.h:216
struct MOVStreamContext::@212112112267365060330232277203165117121340225276 cenc
unsigned drefs_count
Definition isom.h:229
MOVIndexRange * current_index_range
Definition isom.h:223
unsigned int * sample_sizes
Definition isom.h:213
MOVCtts * ctts_data
Definition isom.h:199
AVMasteringDisplayMetadata * mastering
Definition isom.h:272
int width
tkhd width
Definition isom.h:234
int id
AVStream id.
Definition isom.h:184
uint8_t tmcd_nb_frames
tmcd number of frames per tick / second
Definition isom.h:243
unsigned int sdtp_count
Definition isom.h:195
int v_spacing
pasp vSpacing
Definition isom.h:237
unsigned int sample_count
Definition isom.h:212
MOVSbgp * sync_group
Definition isom.h:248
int dts_shift
dts shift when ctts is negative
Definition isom.h:238
unsigned int tts_count
Definition isom.h:189
int stsd_version
Definition isom.h:265
unsigned int stsc_index
Definition isom.h:202
int64_t min_corrected_pts
minimum Composition time shown by the edits excluding empty edits.
Definition isom.h:219
struct AVAES * aes_ctx
Definition isom.h:284
int32_t * sample_offsets
Definition isom.h:251
int has_palette
Definition isom.h:240
MovTref * tref_tags
Definition isom.h:233
uint32_t palette[256]
Definition isom.h:239
int ffindex
AVStream index.
Definition isom.h:185
AVSphericalMapping * spherical
Definition isom.h:270
unsigned int keyframe_count
Definition isom.h:215
unsigned int bytes_per_frame
Definition isom.h:224
uint32_t tmcd_flags
tmcd track flags
Definition isom.h:242
unsigned * stps_data
partial sync sample for mpeg-2 open gop
Definition isom.h:205
unsigned int stts_allocated_size
Definition isom.h:193
unsigned int sync_group_count
Definition isom.h:247
MOVIndexRange * index_ranges
Definition isom.h:222
struct IAMFDemuxContext * iamf
Definition isom.h:290
unsigned int stsc_count
Definition isom.h:200
unsigned int stsz_sample_size
always contains sample size from stsz atom
Definition isom.h:211
int h_spacing
pasp hSpacing
Definition isom.h:236
unsigned int elst_count
Definition isom.h:207
unsigned int ctts_count
Definition isom.h:197
unsigned int stps_count
Definition isom.h:204
unsigned int tts_allocated_size
Definition isom.h:190
Definition isom.h:74
int first
Definition isom.h:75
int count
Definition isom.h:76
int id
Definition isom.h:77
Definition isom.h:64
unsigned int count
Definition isom.h:65
unsigned int duration
Definition isom.h:66
unsigned int count
Definition isom.h:59
unsigned int duration
Definition isom.h:60
unsigned flags
Definition isom.h:125
unsigned duration
Definition isom.h:123
unsigned size
Definition isom.h:124
unsigned track_id
Definition isom.h:121
unsigned stsd_id
Definition isom.h:122
const char * scheme_uri
Definition isom.h:513
const struct MP4TrackKindValueMapping * value_maps
Definition isom.h:514
const char * value
Definition isom.h:509
Definition isom.h:95
uint32_t * id
trackID of the referenced track
Definition isom.h:98
uint32_t name
Definition isom.h:96
int nb_id
Definition isom.h:97
static double c[64]