FFmpeg
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 
32 #include "libavutil/spherical.h"
33 #include "libavutil/stereo3d.h"
34 
35 #include "avio.h"
36 #include "internal.h"
37 #include "dv.h"
38 
39 /* isom.c */
40 extern const AVCodecTag ff_mp4_obj_type[];
41 extern const AVCodecTag ff_codec_movvideo_tags[];
42 extern const AVCodecTag ff_codec_movaudio_tags[];
44 extern const AVCodecTag ff_codec_movdata_tags[];
45 
46 int ff_mov_iso639_to_lang(const char lang[4], int mp4);
47 int ff_mov_lang_to_iso639(unsigned code, char to[4]);
48 
49 struct AVAESCTR;
50 
51 /* the QuickTime file format is quite convoluted...
52  * it has lots of index tables, each indexing something in another one...
53  * Here we just use what is needed to read the chunks
54  */
55 
56 typedef struct MOVStts {
57  unsigned int count;
58  int duration;
59 } MOVStts;
60 
61 typedef struct MOVStsc {
62  int first;
63  int count;
64  int id;
65 } MOVStsc;
66 
67 typedef struct MOVElst {
68  int64_t duration;
69  int64_t time;
70  float rate;
71 } MOVElst;
72 
73 typedef struct MOVDref {
74  uint32_t type;
75  char *path;
76  char *dir;
77  char volume[28];
78  char filename[64];
79  int16_t nlvl_to, nlvl_from;
80 } MOVDref;
81 
82 typedef struct MOVAtom {
83  uint32_t type;
84  int64_t size; /* total size (excluding the size and type fields) */
85 } MOVAtom;
86 
87 struct MOVParseTableEntry;
88 
89 typedef struct MOVFragment {
91  unsigned track_id;
92  uint64_t base_data_offset;
93  uint64_t moof_offset;
94  uint64_t implicit_offset;
95  unsigned stsd_id;
96  unsigned duration;
97  unsigned size;
98  unsigned flags;
99 } MOVFragment;
100 
101 typedef struct MOVTrackExt {
102  unsigned track_id;
103  unsigned stsd_id;
104  unsigned duration;
105  unsigned size;
106  unsigned flags;
107 } MOVTrackExt;
108 
109 typedef struct MOVSbgp {
110  unsigned int count;
111  unsigned int index;
112 } MOVSbgp;
113 
114 typedef struct MOVEncryptionIndex {
115  // Individual encrypted samples. If there are no elements, then the default
116  // settings will be used.
117  unsigned int nb_encrypted_samples;
119 
123  uint64_t* auxiliary_offsets; ///< Absolute seek position
126 
127 typedef struct MOVFragmentStreamInfo {
128  int id;
129  int64_t sidx_pts;
130  int64_t first_tfra_pts;
131  int64_t tfdt_dts;
135 
136 typedef struct MOVFragmentIndexItem {
137  int64_t moof_offset;
139  int current;
143 
144 typedef struct MOVFragmentIndex {
146  int complete;
147  int current;
148  int nb_items;
151 
152 typedef struct MOVIndexRange {
153  int64_t start;
154  int64_t end;
155 } MOVIndexRange;
156 
157 typedef struct MOVStreamContext {
160  int ffindex; ///< AVStream index
162  unsigned int chunk_count;
163  int64_t *chunk_offsets;
164  unsigned int stts_count;
166  unsigned int ctts_count;
167  unsigned int ctts_allocated_size;
169  unsigned int stsc_count;
171  unsigned int stsc_index;
173  unsigned int stps_count;
174  unsigned *stps_data; ///< partial sync sample for mpeg-2 open gop
176  unsigned int elst_count;
179  unsigned int sample_size; ///< may contain value calculated from stsd or value from stsz atom
180  unsigned int stsz_sample_size; ///< always contains sample size from stsz atom
181  unsigned int sample_count;
184  unsigned int keyframe_count;
185  int *keyframes;
187  int64_t time_offset; ///< time offset of the edit list entries
188  int64_t min_corrected_pts; ///< minimum Composition time shown by the edits excluding empty edits.
190  int64_t current_index;
193  unsigned int bytes_per_frame;
194  unsigned int samples_per_frame;
196  int pseudo_stream_id; ///< -1 means demux all ids
197  int16_t audio_cid; ///< stsd audio compression id
198  unsigned drefs_count;
200  int dref_id;
202  int width; ///< tkhd width
203  int height; ///< tkhd height
204  int dts_shift; ///< dts shift when ctts is negative
205  uint32_t palette[256];
207  int64_t data_size;
208  uint32_t tmcd_flags; ///< tmcd track flags
209  int64_t track_end; ///< used for dts generation in fragmented movie files
210  int start_pad; ///< amount of samples to skip due to enc-dec delay
211  unsigned int rap_group_count;
213 
216 
217  /** extradata array (and size) for multiple stsd */
223 
230  size_t coll_size;
231 
232  uint32_t format;
233 
234  int has_sidx; // If there is an sidx entry for this stream.
235  struct {
236  struct AVAESCTR* aes_ctr;
237  unsigned int per_sample_iv_size; // Either 0, 8, or 16.
240  } cenc;
242 
243 typedef struct MOVContext {
244  const AVClass *class; ///< class for private options
247  int64_t duration; ///< duration of the longest track
248  int found_moov; ///< 'moov' atom has been found
249  int found_mdat; ///< 'mdat' atom has been found
250  int found_hdlr_mdta; ///< 'hdlr' atom with type 'mdta' has been found
251  int trak_index; ///< Index of the current 'trak'
252  char **meta_keys;
253  unsigned meta_keys_count;
256  int isom; ///< 1 if file is ISO Media (mp4/3gp)
257  MOVFragment fragment; ///< current fragment in moof atom
259  unsigned trex_count;
260  int itunes_metadata; ///< metadata are itunes style
263  unsigned int nb_chapter_tracks;
269  int64_t next_root_atom; ///< offset of the next root atom
272  int *bitrates; ///< bitrates read before streams creation
279  unsigned int aax_mode; ///< 'aax' file has been detected
290  int32_t movie_display_matrix[3][3]; ///< display matrix from mvhd
291 } MOVContext;
292 
296 void ff_mp4_parse_es_descr(AVIOContext *pb, int *es_id);
297 
298 #define MP4ODescrTag 0x01
299 #define MP4IODescrTag 0x02
300 #define MP4ESDescrTag 0x03
301 #define MP4DecConfigDescrTag 0x04
302 #define MP4DecSpecificDescrTag 0x05
303 #define MP4SLDescrTag 0x06
304 
305 #define MOV_TFHD_BASE_DATA_OFFSET 0x01
306 #define MOV_TFHD_STSD_ID 0x02
307 #define MOV_TFHD_DEFAULT_DURATION 0x08
308 #define MOV_TFHD_DEFAULT_SIZE 0x10
309 #define MOV_TFHD_DEFAULT_FLAGS 0x20
310 #define MOV_TFHD_DURATION_IS_EMPTY 0x010000
311 #define MOV_TFHD_DEFAULT_BASE_IS_MOOF 0x020000
312 
313 #define MOV_TRUN_DATA_OFFSET 0x01
314 #define MOV_TRUN_FIRST_SAMPLE_FLAGS 0x04
315 #define MOV_TRUN_SAMPLE_DURATION 0x100
316 #define MOV_TRUN_SAMPLE_SIZE 0x200
317 #define MOV_TRUN_SAMPLE_FLAGS 0x400
318 #define MOV_TRUN_SAMPLE_CTS 0x800
319 
320 #define MOV_FRAG_SAMPLE_FLAG_DEGRADATION_PRIORITY_MASK 0x0000ffff
321 #define MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC 0x00010000
322 #define MOV_FRAG_SAMPLE_FLAG_PADDING_MASK 0x000e0000
323 #define MOV_FRAG_SAMPLE_FLAG_REDUNDANCY_MASK 0x00300000
324 #define MOV_FRAG_SAMPLE_FLAG_DEPENDED_MASK 0x00c00000
325 #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_MASK 0x03000000
326 
327 #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO 0x02000000
328 #define MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES 0x01000000
329 
330 #define MOV_TKHD_FLAG_ENABLED 0x0001
331 #define MOV_TKHD_FLAG_IN_MOVIE 0x0002
332 #define MOV_TKHD_FLAG_IN_PREVIEW 0x0004
333 #define MOV_TKHD_FLAG_IN_POSTER 0x0008
334 
335 #define MOV_SAMPLE_DEPENDENCY_UNKNOWN 0x0
336 #define MOV_SAMPLE_DEPENDENCY_YES 0x1
337 #define MOV_SAMPLE_DEPENDENCY_NO 0x2
338 
339 
340 #define TAG_IS_AVCI(tag) \
341  ((tag) == MKTAG('a', 'i', '5', 'p') || \
342  (tag) == MKTAG('a', 'i', '5', 'q') || \
343  (tag) == MKTAG('a', 'i', '5', '2') || \
344  (tag) == MKTAG('a', 'i', '5', '3') || \
345  (tag) == MKTAG('a', 'i', '5', '5') || \
346  (tag) == MKTAG('a', 'i', '5', '6') || \
347  (tag) == MKTAG('a', 'i', '1', 'p') || \
348  (tag) == MKTAG('a', 'i', '1', 'q') || \
349  (tag) == MKTAG('a', 'i', '1', '2') || \
350  (tag) == MKTAG('a', 'i', '1', '3') || \
351  (tag) == MKTAG('a', 'i', '1', '5') || \
352  (tag) == MKTAG('a', 'i', '1', '6') || \
353  (tag) == MKTAG('a', 'i', 'v', 'x') || \
354  (tag) == MKTAG('A', 'V', 'i', 'n'))
355 
356 
358 
359 int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries);
360 void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout);
361 
362 #define FF_MOV_FLAG_MFRA_AUTO -1
363 #define FF_MOV_FLAG_MFRA_DTS 1
364 #define FF_MOV_FLAG_MFRA_PTS 2
365 
366 /**
367  * Compute codec id for 'lpcm' tag.
368  * See CoreAudioTypes and AudioStreamBasicDescription at Apple.
369  */
370 static inline enum AVCodecID ff_mov_get_lpcm_codec_id(int bps, int flags)
371 {
372  /* lpcm flags:
373  * 0x1 = float
374  * 0x2 = big-endian
375  * 0x4 = signed
376  */
377  return ff_get_pcm_codec_id(bps, flags & 1, flags & 2, flags & 4 ? -1 : 0);
378 }
379 
380 #endif /* AVFORMAT_ISOM_H */
MOVStreamContext::ctts_allocated_size
unsigned int ctts_allocated_size
Definition: isom.h:167
MOVFragmentStreamInfo::first_tfra_pts
int64_t first_tfra_pts
Definition: isom.h:130
ff_get_pcm_codec_id
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:3158
MOVStreamContext::audio_cid
int16_t audio_cid
stsd audio compression id
Definition: isom.h:197
MOVStreamContext::height
int height
tkhd height
Definition: isom.h:203
MOVContext::moov_retry
int moov_retry
Definition: isom.h:274
MOVContext::nb_chapter_tracks
unsigned int nb_chapter_tracks
Definition: isom.h:263
MOVStreamContext::last_stsd_index
int last_stsd_index
Definition: isom.h:220
MOVContext::use_absolute_path
int use_absolute_path
Definition: isom.h:264
MOVStreamContext::extradata
uint8_t ** extradata
extradata array (and size) for multiple stsd
Definition: isom.h:218
MOVContext::activation_bytes
void * activation_bytes
Definition: isom.h:282
MOVFragmentStreamInfo
Definition: isom.h:127
MOVFragment::base_data_offset
uint64_t base_data_offset
Definition: isom.h:92
MOVStreamContext
Definition: isom.h:157
MOVStreamContext::stsc_data
MOVStsc * stsc_data
Definition: isom.h:170
MOVStreamContext::spherical
AVSphericalMapping * spherical
Definition: isom.h:226
MOVEncryptionIndex
Definition: isom.h:114
MOVContext::found_moov
int found_moov
'moov' atom has been found
Definition: isom.h:248
MOVSbgp
Definition: isom.h:109
MOVStreamContext::rap_group_count
unsigned int rap_group_count
Definition: isom.h:211
MOVContext::found_mdat
int found_mdat
'mdat' atom has been found
Definition: isom.h:249
MOVStreamContext::drefs_count
unsigned drefs_count
Definition: isom.h:198
MOVContext::trex_data
MOVTrackExt * trex_data
Definition: isom.h:258
MOVContext::bitrates
int * bitrates
bitrates read before streams creation
Definition: isom.h:272
MOVContext::export_all
int export_all
Definition: isom.h:270
MOVElst::rate
float rate
Definition: isom.h:70
spherical.h
MOVFragmentIndexItem::moof_offset
int64_t moof_offset
Definition: isom.h:137
MOVStreamContext::spherical_size
size_t spherical_size
Definition: isom.h:227
fc
#define fc(width, name, range_min, range_max)
Definition: cbs_av1.c:555
MOVDref::dir
char * dir
Definition: isom.h:76
MOVContext::activation_bytes_size
int activation_bytes_size
Definition: isom.h:283
ff_mp4_parse_es_descr
void ff_mp4_parse_es_descr(AVIOContext *pb, int *es_id)
Definition: isom.c:485
MOVAtom
Definition: isom.h:82
MOVStreamContext::sample_count
unsigned int sample_count
Definition: isom.h:181
MOVFragmentIndex::allocated_size
int allocated_size
Definition: isom.h:145
MOVTrackExt::flags
unsigned flags
Definition: isom.h:106
MOVStreamContext::aes_ctr
struct AVAESCTR * aes_ctr
Definition: isom.h:236
MOVStreamContext::dv_audio_container
int dv_audio_container
Definition: isom.h:195
MOVStreamContext::stsd_count
int stsd_count
Definition: isom.h:221
AVContentLightMetadata
Content light level needed by to transmit HDR over HDMI (CTA-861.3).
Definition: mastering_display_metadata.h:98
MOVStreamContext::stsc_count
unsigned int stsc_count
Definition: isom.h:169
MOVStreamContext::has_palette
int has_palette
Definition: isom.h:206
MOVIndexRange::start
int64_t start
Definition: isom.h:153
MOVStreamContext::nb_frames_for_fps
int nb_frames_for_fps
Definition: isom.h:214
MOVStreamContext::cenc
struct MOVStreamContext::@262 cenc
MOVStreamContext::mastering
AVMasteringDisplayMetadata * mastering
Definition: isom.h:228
MOVFragmentIndexItem::current
int current
Definition: isom.h:139
MOVTrackExt
Definition: isom.h:101
MOVFragment::found_tfhd
int found_tfhd
Definition: isom.h:90
MOVContext::decryption_key
uint8_t * decryption_key
Definition: isom.h:287
MOVStreamContext::ctts_index
int ctts_index
Definition: isom.h:177
MOVParseTableEntry
Definition: mov.c:70
dv.h
MOVContext
Definition: isom.h:243
MOVContext::isom
int isom
1 if file is ISO Media (mp4/3gp)
Definition: isom.h:256
MOVStreamContext::width
int width
tkhd width
Definition: isom.h:202
MOVContext::meta_keys
char ** meta_keys
Definition: isom.h:252
MOVStreamContext::extradata_size
int * extradata_size
Definition: isom.h:219
MOVStreamContext::keyframes
int * keyframes
Definition: isom.h:185
MOVEncryptionIndex::auxiliary_info_sample_count
size_t auxiliary_info_sample_count
Definition: isom.h:121
MOVStsc::id
int id
Definition: isom.h:64
MOVStreamContext::elst_data
MOVElst * elst_data
Definition: isom.h:175
MOVFragmentIndex::complete
int complete
Definition: isom.h:146
MOVStreamContext::stsc_sample
int stsc_sample
Definition: isom.h:172
AVCodecTag
Definition: internal.h:44
MOVTrackExt::track_id
unsigned track_id
Definition: isom.h:102
MOVEncryptionIndex::auxiliary_offsets
uint64_t * auxiliary_offsets
Absolute seek position.
Definition: isom.h:123
MOVStreamContext::dts_shift
int dts_shift
dts shift when ctts is negative
Definition: isom.h:204
MOVStreamContext::stsd_version
int stsd_version
Definition: isom.h:222
ff_mov_read_esds
int ff_mov_read_esds(AVFormatContext *fc, AVIOContext *pb)
Definition: mov_esds.c:23
stereo3d.h
MOVFragmentStreamInfo::encryption_index
MOVEncryptionIndex * encryption_index
Definition: isom.h:133
MOVContext::fc
AVFormatContext * fc
Definition: isom.h:245
ff_mov_lang_to_iso639
int ff_mov_lang_to_iso639(unsigned code, char to[4])
Definition: isom.c:441
MOVStreamContext::drefs
MOVDref * drefs
Definition: isom.h:199
MOVContext::aes_decrypt
struct AVAES * aes_decrypt
Definition: isom.h:286
MOVFragmentIndex::nb_items
int nb_items
Definition: isom.h:148
MOVStreamContext::keyframe_absent
int keyframe_absent
Definition: isom.h:183
MOVStreamContext::coll_size
size_t coll_size
Definition: isom.h:230
to
const char * to
Definition: webvttdec.c:34
MOVStreamContext::min_corrected_pts
int64_t min_corrected_pts
minimum Composition time shown by the edits excluding empty edits.
Definition: isom.h:188
ff_mov_iso639_to_lang
int ff_mov_iso639_to_lang(const char lang[4], int mp4)
Definition: isom.c:414
MOVTrackExt::duration
unsigned duration
Definition: isom.h:104
MOVStreamContext::current_sample
int current_sample
Definition: isom.h:189
MOVFragmentStreamInfo::sidx_pts
int64_t sidx_pts
Definition: isom.h:129
MOVFragmentIndex::current
int current
Definition: isom.h:147
int32_t
int32_t
Definition: audio_convert.c:194
MOVEncryptionIndex::encrypted_samples
AVEncryptionInfo ** encrypted_samples
Definition: isom.h:118
MOVAtom::size
int64_t size
Definition: isom.h:84
ff_mov_get_lpcm_codec_id
static enum AVCodecID ff_mov_get_lpcm_codec_id(int bps, int flags)
Compute codec id for 'lpcm' tag.
Definition: isom.h:370
MOVStreamContext::keyframe_count
unsigned int keyframe_count
Definition: isom.h:184
MOVStreamContext::ctts_data
MOVStts * ctts_data
Definition: isom.h:168
MOVStsc
Definition: isom.h:61
AVFormatContext
Format I/O context.
Definition: avformat.h:1342
MOVStreamContext::index_ranges
MOVIndexRange * index_ranges
Definition: isom.h:191
internal.h
MOVTrackExt::stsd_id
unsigned stsd_id
Definition: isom.h:103
AVClass
Describe the class of an AVClass context structure.
Definition: log.h:67
MOVContext::ignore_editlist
int ignore_editlist
Definition: isom.h:265
MOVDref
Definition: isom.h:73
MOVStreamContext::ctts_count
unsigned int ctts_count
Definition: isom.h:166
ff_mp4_read_descr
int ff_mp4_read_descr(AVFormatContext *fc, AVIOContext *pb, int *tag)
Definition: isom.c:476
MOVElst
Definition: isom.h:67
MOVContext::movie_display_matrix
int32_t movie_display_matrix[3][3]
display matrix from mvhd
Definition: isom.h:290
MOVDref::nlvl_to
int16_t nlvl_to
Definition: isom.h:79
MOVContext::atom_depth
int atom_depth
Definition: isom.h:278
MOVContext::duration
int64_t duration
duration of the longest track
Definition: isom.h:247
MOVStreamContext::time_offset
int64_t time_offset
time offset of the edit list entries
Definition: isom.h:187
MOVStreamContext::current_index_range
MOVIndexRange * current_index_range
Definition: isom.h:192
MOVStreamContext::timecode_track
int timecode_track
Definition: isom.h:201
ff_codec_movvideo_tags
const AVCodecTag ff_codec_movvideo_tags[]
Definition: isom.c:75
ff_mp4_read_descr_len
int ff_mp4_read_descr_len(AVIOContext *pb)
Definition: isom.c:463
MOVStreamContext::rap_group
MOVSbgp * rap_group
Definition: isom.h:212
ff_codec_movaudio_tags
const AVCodecTag ff_codec_movaudio_tags[]
Definition: isom.c:318
c
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
Definition: undefined.txt:32
MOVSbgp::count
unsigned int count
Definition: isom.h:110
MOVStts
Definition: isom.h:56
AVCodecID
AVCodecID
Identify the syntax and semantics of the bitstream.
Definition: avcodec.h:215
MOVContext::dv_demux
DVDemuxContext * dv_demux
Definition: isom.h:254
MOVEncryptionIndex::auxiliary_info_default_size
uint8_t auxiliary_info_default_size
Definition: isom.h:122
MOVContext::has_looked_for_mfra
int has_looked_for_mfra
Definition: isom.h:276
MOVFragment::flags
unsigned flags
Definition: isom.h:98
AVIOContext
Bytestream IO Context.
Definition: avio.h:161
MOVContext::handbrake_version
int handbrake_version
Definition: isom.h:261
MOVStreamContext::ctts_sample
int ctts_sample
Definition: isom.h:178
MOVFragmentIndexItem
Definition: isom.h:136
MOVStsc::first
int first
Definition: isom.h:62
MOVStreamContext::stsz_sample_size
unsigned int stsz_sample_size
always contains sample size from stsz atom
Definition: isom.h:180
bps
unsigned bps
Definition: movenc.c:1497
MOVContext::audible_fixed_key
void * audible_fixed_key
Definition: isom.h:284
MOVContext::trex_count
unsigned trex_count
Definition: isom.h:259
avio.h
MOVStreamContext::coll
AVContentLightMetadata * coll
Definition: isom.h:229
MOVDref::path
char * path
Definition: isom.h:75
MOVContext::file_key
uint8_t file_key[20]
Definition: isom.h:280
DVDemuxContext
Definition: dv.c:43
MOVEncryptionIndex::auxiliary_offsets_count
size_t auxiliary_offsets_count
Definition: isom.h:124
MOVFragmentIndexItem::stream_info
MOVFragmentStreamInfo * stream_info
Definition: isom.h:141
MOVStreamContext::chunk_offsets
int64_t * chunk_offsets
Definition: isom.h:163
ff_mp4_obj_type
const AVCodecTag ff_mp4_obj_type[]
Definition: isom.c:34
MOVFragmentIndex::item
MOVFragmentIndexItem * item
Definition: isom.h:149
MOVContext::decryption_key_len
int decryption_key_len
Definition: isom.h:288
MOVContext::audible_fixed_key_size
int audible_fixed_key_size
Definition: isom.h:285
MOVDref::nlvl_from
int16_t nlvl_from
Definition: isom.h:79
MOVStreamContext::stsc_index
unsigned int stsc_index
Definition: isom.h:171
MOVIndexRange
Definition: isom.h:152
MOVContext::advanced_editlist
int advanced_editlist
Definition: isom.h:266
MOVStreamContext::time_scale
int time_scale
Definition: isom.h:186
MOVStreamContext::bytes_per_frame
unsigned int bytes_per_frame
Definition: isom.h:193
MOVIndexRange::end
int64_t end
Definition: isom.h:154
code
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
Definition: filter_design.txt:178
MOVStreamContext::stereo3d
AVStereo3D * stereo3d
Definition: isom.h:225
MOVDref::volume
char volume[28]
Definition: isom.h:77
MOVStts::duration
int duration
Definition: isom.h:58
MOVStreamContext::stps_count
unsigned int stps_count
Definition: isom.h:173
MOVFragment::duration
unsigned duration
Definition: isom.h:96
MOVContext::frag_index
MOVFragmentIndex frag_index
Definition: isom.h:277
ff_codec_movsubtitle_tags
const AVCodecTag ff_codec_movsubtitle_tags[]
Definition: isom.c:376
MOVStreamContext::dref_id
int dref_id
Definition: isom.h:200
uint8_t
uint8_t
Definition: audio_convert.c:194
ff_mov_write_chan
void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout)
Definition: isom.c:642
MOVStreamContext::pb
AVIOContext * pb
Definition: isom.h:158
AVMasteringDisplayMetadata
Mastering display metadata capable of representing the color volume of the display used to master the...
Definition: mastering_display_metadata.h:38
MOVFragment::size
unsigned size
Definition: isom.h:97
MOVContext::export_xmp
int export_xmp
Definition: isom.h:271
MOVFragmentStreamInfo::tfdt_dts
int64_t tfdt_dts
Definition: isom.h:131
MOVStreamContext::sample_sizes
int * sample_sizes
Definition: isom.h:182
ff_codec_movdata_tags
const AVCodecTag ff_codec_movdata_tags[]
Definition: isom.c:383
MOVStreamContext::chunk_count
unsigned int chunk_count
Definition: isom.h:162
MOVStreamContext::data_size
int64_t data_size
Definition: isom.h:207
tag
uint32_t tag
Definition: movenc.c:1496
AVStream
Stream structure.
Definition: avformat.h:870
MOVEncryptionIndex::nb_encrypted_samples
unsigned int nb_encrypted_samples
Definition: isom.h:117
MOVStreamContext::stts_data
MOVStts * stts_data
Definition: isom.h:165
AVAES
Definition: aes_internal.h:34
MOVSbgp::index
unsigned int index
Definition: isom.h:111
MOVContext::chapter_tracks
int * chapter_tracks
Definition: isom.h:262
MOVFragment::implicit_offset
uint64_t implicit_offset
Definition: isom.h:94
MOVStreamContext::pseudo_stream_id
int pseudo_stream_id
-1 means demux all ids
Definition: isom.h:196
MOVContext::time_scale
int time_scale
Definition: isom.h:246
MOVFragment
Definition: isom.h:89
MOVContext::use_mfra_for
int use_mfra_for
Definition: isom.h:275
MOVContext::enable_drefs
int enable_drefs
Definition: isom.h:289
AVEncryptionInfo
This describes encryption info for a packet.
Definition: encryption_info.h:43
MOVStreamContext::encryption_index
MOVEncryptionIndex * encryption_index
Definition: isom.h:239
MOVStreamContext::sample_size
unsigned int sample_size
may contain value calculated from stsd or value from stsz atom
Definition: isom.h:179
MOVStreamContext::duration_for_fps
int64_t duration_for_fps
Definition: isom.h:215
MOVFragment::moof_offset
uint64_t moof_offset
Definition: isom.h:93
MOVTrackExt::size
unsigned size
Definition: isom.h:105
MOVContext::dv_fctx
AVFormatContext * dv_fctx
Definition: isom.h:255
MOVContext::aax_mode
unsigned int aax_mode
'aax' file has been detected
Definition: isom.h:279
MOVFragmentIndex
Definition: isom.h:144
MOVStreamContext::track_end
int64_t track_end
used for dts generation in fragmented movie files
Definition: isom.h:209
MOVContext::fragment
MOVFragment fragment
current fragment in moof atom
Definition: isom.h:257
MOVDref::type
uint32_t type
Definition: isom.h:74
MOVStreamContext::per_sample_iv_size
unsigned int per_sample_iv_size
Definition: isom.h:237
MOVFragmentIndexItem::nb_stream_info
int nb_stream_info
Definition: isom.h:140
MOVStreamContext::has_sidx
int has_sidx
Definition: isom.h:234
MOVFragmentStreamInfo::id
int id
Definition: isom.h:128
encryption_info.h
MOVStreamContext::pb_is_copied
int pb_is_copied
Definition: isom.h:159
MOVElst::time
int64_t time
Definition: isom.h:69
MOVStreamContext::next_chunk
int next_chunk
Definition: isom.h:161
MOVContext::trak_index
int trak_index
Index of the current 'trak'.
Definition: isom.h:251
mastering_display_metadata.h
MOVContext::itunes_metadata
int itunes_metadata
metadata are itunes style
Definition: isom.h:260
MOVEncryptionIndex::auxiliary_info_sizes
uint8_t * auxiliary_info_sizes
Definition: isom.h:120
MOVFragment::stsd_id
unsigned stsd_id
Definition: isom.h:95
ff_mp4_read_dec_config_descr
int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext *pb)
Definition: isom.c:510
ff_mov_read_stsd_entries
int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
Definition: mov.c:2476
MOVStreamContext::stps_data
unsigned * stps_data
partial sync sample for mpeg-2 open gop
Definition: isom.h:174
MOVContext::found_hdlr_mdta
int found_hdlr_mdta
'hdlr' atom with type 'mdta' has been found
Definition: isom.h:250
MOVStreamContext::tmcd_flags
uint32_t tmcd_flags
tmcd track flags
Definition: isom.h:208
MOVAtom::type
uint32_t type
Definition: isom.h:83
MOVFragmentIndexItem::headers_read
int headers_read
Definition: isom.h:138
flags
#define flags(name, subs,...)
Definition: cbs_av1.c:565
MOVStreamContext::start_pad
int start_pad
amount of samples to skip due to enc-dec delay
Definition: isom.h:210
MOVDref::filename
char filename[64]
Definition: isom.h:78
MOVStsc::count
int count
Definition: isom.h:63
MOVStts::count
unsigned int count
Definition: isom.h:57
MOVStreamContext::display_matrix
int32_t * display_matrix
Definition: isom.h:224
MOVStreamContext::current_index
int64_t current_index
Definition: isom.h:190
MOVFragmentStreamInfo::index_entry
int index_entry
Definition: isom.h:132
MOVStreamContext::format
uint32_t format
Definition: isom.h:232
MOVContext::bitrates_count
int bitrates_count
Definition: isom.h:273
AVStereo3D
Stereo 3D type: this structure describes how two videos are packed within a single video surface,...
Definition: stereo3d.h:176
MOVStreamContext::samples_per_frame
unsigned int samples_per_frame
Definition: isom.h:194
MOVElst::duration
int64_t duration
Definition: isom.h:68
MOVContext::seek_individually
int seek_individually
Definition: isom.h:268
MOVStreamContext::stts_count
unsigned int stts_count
Definition: isom.h:164
MOVStreamContext::elst_count
unsigned int elst_count
Definition: isom.h:176
AVSphericalMapping
This structure describes how to handle spherical videos, outlining information about projection,...
Definition: spherical.h:82
AVAESCTR
Definition: aes_ctr.c:29
MOVContext::file_iv
uint8_t file_iv[20]
Definition: isom.h:281
MOVStreamContext::default_encrypted_sample
AVEncryptionInfo * default_encrypted_sample
Definition: isom.h:238
MOVContext::next_root_atom
int64_t next_root_atom
offset of the next root atom
Definition: isom.h:269
MOVContext::meta_keys_count
unsigned meta_keys_count
Definition: isom.h:253
MOVStreamContext::palette
uint32_t palette[256]
Definition: isom.h:205
MOVFragment::track_id
unsigned track_id
Definition: isom.h:91
MOVContext::ignore_chapters
int ignore_chapters
Definition: isom.h:267
MOVStreamContext::ffindex
int ffindex
AVStream index.
Definition: isom.h:160