FFmpeg  4.0
Data Structures | Macros | Functions | Variables
isom.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "libavutil/mastering_display_metadata.h"
#include "libavutil/spherical.h"
#include "libavutil/stereo3d.h"
#include "avio.h"
#include "internal.h"
#include "dv.h"

Go to the source code of this file.

Data Structures

struct  MOVStts
 
struct  MOVStsc
 
struct  MOVElst
 
struct  MOVDref
 
struct  MOVAtom
 
struct  MOVFragment
 
struct  MOVTrackExt
 
struct  MOVSbgp
 
struct  MOVFragmentStreamInfo
 
struct  MOVFragmentIndexItem
 
struct  MOVFragmentIndex
 
struct  MOVIndexRange
 
struct  MOVStreamContext
 
struct  MOVContext
 

Macros

#define MP4ODescrTag   0x01
 
#define MP4IODescrTag   0x02
 
#define MP4ESDescrTag   0x03
 
#define MP4DecConfigDescrTag   0x04
 
#define MP4DecSpecificDescrTag   0x05
 
#define MP4SLDescrTag   0x06
 
#define MOV_TFHD_BASE_DATA_OFFSET   0x01
 
#define MOV_TFHD_STSD_ID   0x02
 
#define MOV_TFHD_DEFAULT_DURATION   0x08
 
#define MOV_TFHD_DEFAULT_SIZE   0x10
 
#define MOV_TFHD_DEFAULT_FLAGS   0x20
 
#define MOV_TFHD_DURATION_IS_EMPTY   0x010000
 
#define MOV_TFHD_DEFAULT_BASE_IS_MOOF   0x020000
 
#define MOV_TRUN_DATA_OFFSET   0x01
 
#define MOV_TRUN_FIRST_SAMPLE_FLAGS   0x04
 
#define MOV_TRUN_SAMPLE_DURATION   0x100
 
#define MOV_TRUN_SAMPLE_SIZE   0x200
 
#define MOV_TRUN_SAMPLE_FLAGS   0x400
 
#define MOV_TRUN_SAMPLE_CTS   0x800
 
#define MOV_FRAG_SAMPLE_FLAG_DEGRADATION_PRIORITY_MASK   0x0000ffff
 
#define MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC   0x00010000
 
#define MOV_FRAG_SAMPLE_FLAG_PADDING_MASK   0x000e0000
 
#define MOV_FRAG_SAMPLE_FLAG_REDUNDANCY_MASK   0x00300000
 
#define MOV_FRAG_SAMPLE_FLAG_DEPENDED_MASK   0x00c00000
 
#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_MASK   0x03000000
 
#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO   0x02000000
 
#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES   0x01000000
 
#define MOV_TKHD_FLAG_ENABLED   0x0001
 
#define MOV_TKHD_FLAG_IN_MOVIE   0x0002
 
#define MOV_TKHD_FLAG_IN_PREVIEW   0x0004
 
#define MOV_TKHD_FLAG_IN_POSTER   0x0008
 
#define MOV_SAMPLE_DEPENDENCY_UNKNOWN   0x0
 
#define MOV_SAMPLE_DEPENDENCY_YES   0x1
 
#define MOV_SAMPLE_DEPENDENCY_NO   0x2
 
#define TAG_IS_AVCI(tag)
 
#define FF_MOV_FLAG_MFRA_AUTO   -1
 
#define FF_MOV_FLAG_MFRA_DTS   1
 
#define FF_MOV_FLAG_MFRA_PTS   2
 

Functions

int ff_mov_iso639_to_lang (const char lang[4], int mp4)
 
int ff_mov_lang_to_iso639 (unsigned code, char to[4])
 
int ff_mp4_read_descr_len (AVIOContext *pb)
 
int ff_mp4_read_descr (AVFormatContext *fc, AVIOContext *pb, int *tag)
 
int ff_mp4_read_dec_config_descr (AVFormatContext *fc, AVStream *st, AVIOContext *pb)
 
void ff_mp4_parse_es_descr (AVIOContext *pb, int *es_id)
 
int ff_mov_read_esds (AVFormatContext *fc, AVIOContext *pb)
 
int ff_mov_read_stsd_entries (MOVContext *c, AVIOContext *pb, int entries)
 
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. More...
 

Variables

const AVCodecTag ff_mp4_obj_type []
 
const AVCodecTag ff_codec_movvideo_tags []
 
const AVCodecTag ff_codec_movaudio_tags []
 
const AVCodecTag ff_codec_movsubtitle_tags []
 

Macro Definition Documentation

◆ MP4ODescrTag

#define MP4ODescrTag   0x01

Definition at line 285 of file isom.h.

Referenced by parse_mp4_descr().

◆ MP4IODescrTag

#define MP4IODescrTag   0x02

Definition at line 286 of file isom.h.

Referenced by mp4_read_iods(), and parse_mp4_descr().

◆ MP4ESDescrTag

#define MP4ESDescrTag   0x03

Definition at line 287 of file isom.h.

Referenced by ff_mov_read_esds(), ffat_init_encoder(), and parse_mp4_descr().

◆ MP4DecConfigDescrTag

#define MP4DecConfigDescrTag   0x04

Definition at line 288 of file isom.h.

Referenced by ff_mov_read_esds(), ffat_init_encoder(), parse_mp4_descr(), and parse_MP4ESDescrTag().

◆ MP4DecSpecificDescrTag

#define MP4DecSpecificDescrTag   0x05

Definition at line 289 of file isom.h.

Referenced by ff_mp4_read_dec_config_descr(), and ffat_init_encoder().

◆ MP4SLDescrTag

#define MP4SLDescrTag   0x06

Definition at line 290 of file isom.h.

Referenced by parse_mp4_descr(), and parse_MP4ESDescrTag().

◆ MOV_TFHD_BASE_DATA_OFFSET

#define MOV_TFHD_BASE_DATA_OFFSET   0x01

Definition at line 292 of file isom.h.

Referenced by mov_read_tfhd(), mov_write_tfhd_tag(), and read_moof_duration().

◆ MOV_TFHD_STSD_ID

#define MOV_TFHD_STSD_ID   0x02

Definition at line 293 of file isom.h.

Referenced by mov_read_tfhd(), and read_moof_duration().

◆ MOV_TFHD_DEFAULT_DURATION

#define MOV_TFHD_DEFAULT_DURATION   0x08

Definition at line 294 of file isom.h.

Referenced by mov_read_tfhd(), mov_write_tfhd_tag(), and read_moof_duration().

◆ MOV_TFHD_DEFAULT_SIZE

#define MOV_TFHD_DEFAULT_SIZE   0x10

Definition at line 295 of file isom.h.

Referenced by mov_read_tfhd(), and mov_write_tfhd_tag().

◆ MOV_TFHD_DEFAULT_FLAGS

#define MOV_TFHD_DEFAULT_FLAGS   0x20

Definition at line 296 of file isom.h.

Referenced by mov_read_tfhd(), and mov_write_tfhd_tag().

◆ MOV_TFHD_DURATION_IS_EMPTY

#define MOV_TFHD_DURATION_IS_EMPTY   0x010000

Definition at line 297 of file isom.h.

Referenced by mov_write_tfhd_tag().

◆ MOV_TFHD_DEFAULT_BASE_IS_MOOF

#define MOV_TFHD_DEFAULT_BASE_IS_MOOF   0x020000

Definition at line 298 of file isom.h.

Referenced by mov_read_tfhd(), and mov_write_tfhd_tag().

◆ MOV_TRUN_DATA_OFFSET

#define MOV_TRUN_DATA_OFFSET   0x01

Definition at line 300 of file isom.h.

Referenced by mov_read_trun(), mov_write_trun_tag(), and read_trun_duration().

◆ MOV_TRUN_FIRST_SAMPLE_FLAGS

#define MOV_TRUN_FIRST_SAMPLE_FLAGS   0x04

Definition at line 301 of file isom.h.

Referenced by mov_read_trun(), mov_write_trun_tag(), and read_trun_duration().

◆ MOV_TRUN_SAMPLE_DURATION

#define MOV_TRUN_SAMPLE_DURATION   0x100

Definition at line 302 of file isom.h.

Referenced by mov_read_trun(), mov_write_trun_tag(), and read_trun_duration().

◆ MOV_TRUN_SAMPLE_SIZE

#define MOV_TRUN_SAMPLE_SIZE   0x200

Definition at line 303 of file isom.h.

Referenced by mov_read_trun(), mov_write_trun_tag(), and read_trun_duration().

◆ MOV_TRUN_SAMPLE_FLAGS

#define MOV_TRUN_SAMPLE_FLAGS   0x400

Definition at line 304 of file isom.h.

Referenced by mov_read_trun(), mov_write_trun_tag(), and read_trun_duration().

◆ MOV_TRUN_SAMPLE_CTS

#define MOV_TRUN_SAMPLE_CTS   0x800

Definition at line 305 of file isom.h.

Referenced by mov_read_trun(), mov_write_trun_tag(), and read_trun_duration().

◆ MOV_FRAG_SAMPLE_FLAG_DEGRADATION_PRIORITY_MASK

#define MOV_FRAG_SAMPLE_FLAG_DEGRADATION_PRIORITY_MASK   0x0000ffff

Definition at line 307 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC

#define MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC   0x00010000

Definition at line 308 of file isom.h.

Referenced by get_sample_flags(), mov_read_trun(), and mov_write_tfhd_tag().

◆ MOV_FRAG_SAMPLE_FLAG_PADDING_MASK

#define MOV_FRAG_SAMPLE_FLAG_PADDING_MASK   0x000e0000

Definition at line 309 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_REDUNDANCY_MASK

#define MOV_FRAG_SAMPLE_FLAG_REDUNDANCY_MASK   0x00300000

Definition at line 310 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_DEPENDED_MASK

#define MOV_FRAG_SAMPLE_FLAG_DEPENDED_MASK   0x00c00000

Definition at line 311 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_DEPENDS_MASK

#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_MASK   0x03000000

Definition at line 312 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO

#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO   0x02000000

Definition at line 314 of file isom.h.

Referenced by get_sample_flags(), and mov_write_tfhd_tag().

◆ MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES

#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES   0x01000000

Definition at line 315 of file isom.h.

Referenced by get_sample_flags(), mov_read_trun(), and mov_write_tfhd_tag().

◆ MOV_TKHD_FLAG_ENABLED

#define MOV_TKHD_FLAG_ENABLED   0x0001

Definition at line 317 of file isom.h.

Referenced by mov_read_tkhd(), and mov_write_tkhd_tag().

◆ MOV_TKHD_FLAG_IN_MOVIE

#define MOV_TKHD_FLAG_IN_MOVIE   0x0002

Definition at line 318 of file isom.h.

Referenced by mov_write_tkhd_tag().

◆ MOV_TKHD_FLAG_IN_PREVIEW

#define MOV_TKHD_FLAG_IN_PREVIEW   0x0004

Definition at line 319 of file isom.h.

◆ MOV_TKHD_FLAG_IN_POSTER

#define MOV_TKHD_FLAG_IN_POSTER   0x0008

Definition at line 320 of file isom.h.

◆ MOV_SAMPLE_DEPENDENCY_UNKNOWN

#define MOV_SAMPLE_DEPENDENCY_UNKNOWN   0x0

Definition at line 322 of file isom.h.

Referenced by mov_write_sdtp_tag().

◆ MOV_SAMPLE_DEPENDENCY_YES

#define MOV_SAMPLE_DEPENDENCY_YES   0x1

Definition at line 323 of file isom.h.

Referenced by mov_write_sdtp_tag().

◆ MOV_SAMPLE_DEPENDENCY_NO

#define MOV_SAMPLE_DEPENDENCY_NO   0x2

Definition at line 324 of file isom.h.

Referenced by mov_write_sdtp_tag().

◆ TAG_IS_AVCI

#define TAG_IS_AVCI (   tag)
Value:
((tag) == MKTAG('a', 'i', '5', 'p') || \
(tag) == MKTAG('a', 'i', '5', 'q') || \
(tag) == MKTAG('a', 'i', '5', '2') || \
(tag) == MKTAG('a', 'i', '5', '3') || \
(tag) == MKTAG('a', 'i', '5', '5') || \
(tag) == MKTAG('a', 'i', '5', '6') || \
(tag) == MKTAG('a', 'i', '1', 'p') || \
(tag) == MKTAG('a', 'i', '1', 'q') || \
(tag) == MKTAG('a', 'i', '1', '2') || \
(tag) == MKTAG('a', 'i', '1', '3') || \
(tag) == MKTAG('a', 'i', '1', '5') || \
(tag) == MKTAG('a', 'i', '1', '6') || \
(tag) == MKTAG('a', 'i', 'v', 'x') || \
(tag) == MKTAG('A', 'V', 'i', 'n'))
uint32_t tag
Definition: movenc.c:1455
#define MKTAG(a, b, c, d)
Definition: common.h:366

Definition at line 327 of file isom.h.

Referenced by ff_mov_write_packet(), mov_read_trak(), mov_write_header(), and mov_write_video_tag().

◆ FF_MOV_FLAG_MFRA_AUTO

#define FF_MOV_FLAG_MFRA_AUTO   -1

Definition at line 349 of file isom.h.

Referenced by mov_read_free().

◆ FF_MOV_FLAG_MFRA_DTS

#define FF_MOV_FLAG_MFRA_DTS   1

Definition at line 350 of file isom.h.

◆ FF_MOV_FLAG_MFRA_PTS

#define FF_MOV_FLAG_MFRA_PTS   2

Definition at line 351 of file isom.h.

Referenced by mov_read_free(), and mov_read_trun().

Function Documentation

◆ ff_mov_iso639_to_lang()

int ff_mov_iso639_to_lang ( const char  lang[4],
int  mp4 
)

Definition at line 402 of file isom.c.

Referenced by get_metadata_lang(), mov_init(), and mov_write_string_data_tag().

◆ ff_mov_lang_to_iso639()

int ff_mov_lang_to_iso639 ( unsigned  code,
char  to[4] 
)

Definition at line 429 of file isom.c.

Referenced by mov_metadata_loci(), mov_read_mdhd(), and mov_read_udta_string().

◆ ff_mp4_read_descr_len()

int ff_mp4_read_descr_len ( AVIOContext pb)

Definition at line 451 of file isom.c.

Referenced by ff_mp4_read_descr(), and read_pakt_chunk().

◆ ff_mp4_read_descr()

int ff_mp4_read_descr ( AVFormatContext fc,
AVIOContext pb,
int tag 
)

Definition at line 464 of file isom.c.

Referenced by ff_mov_read_esds(), ff_mp4_read_dec_config_descr(), and parse_mp4_descr().

◆ ff_mp4_read_dec_config_descr()

int ff_mp4_read_dec_config_descr ( AVFormatContext fc,
AVStream st,
AVIOContext pb 
)

Definition at line 498 of file isom.c.

Referenced by ff_mov_read_esds(), ff_parse_mpeg2_descriptor(), and m4sl_cb().

◆ ff_mp4_parse_es_descr()

void ff_mp4_parse_es_descr ( AVIOContext pb,
int es_id 
)

Definition at line 473 of file isom.c.

Referenced by ff_mov_read_esds(), and parse_MP4ESDescrTag().

◆ ff_mov_read_esds()

int ff_mov_read_esds ( AVFormatContext fc,
AVIOContext pb 
)

Definition at line 23 of file mov_esds.c.

Referenced by mov_read_esds(), and read_kuki_chunk().

◆ ff_mov_read_stsd_entries()

int ff_mov_read_stsd_entries ( MOVContext c,
AVIOContext pb,
int  entries 
)

Definition at line 2444 of file mov.c.

Referenced by mov_read_stsd(), and qt_rtp_parse_packet().

◆ ff_mov_write_chan()

void ff_mov_write_chan ( AVIOContext pb,
int64_t  channel_layout 
)

Definition at line 626 of file isom.c.

Referenced by aiff_write_header(), and caf_write_header().

◆ ff_mov_get_lpcm_codec_id()

static enum AVCodecID ff_mov_get_lpcm_codec_id ( int  bps,
int  flags 
)
inlinestatic

Compute codec id for 'lpcm' tag.

See CoreAudioTypes and AudioStreamBasicDescription at Apple.

Definition at line 357 of file isom.h.

Referenced by mov_parse_stsd_audio(), and read_desc_chunk().

Variable Documentation

◆ ff_mp4_obj_type

const AVCodecTag ff_mp4_obj_type[]

Definition at line 34 of file isom.c.

Referenced by mov_write_esds_tag(), and set_codec_str().

◆ ff_codec_movvideo_tags

const AVCodecTag ff_codec_movvideo_tags[]

◆ ff_codec_movaudio_tags

const AVCodecTag ff_codec_movaudio_tags[]

◆ ff_codec_movsubtitle_tags

const AVCodecTag ff_codec_movsubtitle_tags[]

Definition at line 369 of file isom.c.

Referenced by mov_codec_id(), and mov_get_codec_tag().