FFmpeg
Data Structures | Macros | Functions | Variables
isom.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "libavutil/encryption_info.h"
#include "libavutil/mastering_display_metadata.h"
#include "libavutil/ambient_viewing_environment.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  MOVCtts
 
struct  MOVStsc
 
struct  MOVElst
 
struct  MOVDref
 
struct  MOVAtom
 
struct  MOVFragment
 
struct  MOVTrackExt
 
struct  MOVSbgp
 
struct  MOVEncryptionIndex
 
struct  MOVFragmentStreamInfo
 
struct  MOVFragmentIndexItem
 
struct  MOVFragmentIndex
 
struct  MOVIndexRange
 
struct  MOVStreamContext
 
struct  HEIFItem
 
struct  HEIFGrid
 
struct  MOVContext
 
struct  MP4TrackKindValueMapping
 
struct  MP4TrackKindMapping
 

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 MOV_TREF_FLAG_ENHANCEMENT   0x1
 
#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
 
#define MOV_ISMV_TTML_TAG   MKTAG('d', 'f', 'x', 'p')
 
#define MOV_MP4_TTML_TAG   MKTAG('s', 't', 'p', 'p')
 
#define MOV_MP4_FPCM_TAG   MKTAG('f', 'p', 'c', 'm')
 
#define MOV_MP4_IPCM_TAG   MKTAG('i', 'p', 'c', 'm')
 

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 (void *logctx, AVIOContext *pb, int *tag)
 
int ff_mp4_read_dec_config_descr (void *logctx, 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 []
 
const AVCodecTag ff_codec_movdata_tags []
 
const struct MP4TrackKindMapping ff_mov_track_kind_table []
 

Macro Definition Documentation

◆ MP4ODescrTag

#define MP4ODescrTag   0x01

Definition at line 380 of file isom.h.

◆ MP4IODescrTag

#define MP4IODescrTag   0x02

Definition at line 381 of file isom.h.

◆ MP4ESDescrTag

#define MP4ESDescrTag   0x03

Definition at line 382 of file isom.h.

◆ MP4DecConfigDescrTag

#define MP4DecConfigDescrTag   0x04

Definition at line 383 of file isom.h.

◆ MP4DecSpecificDescrTag

#define MP4DecSpecificDescrTag   0x05

Definition at line 384 of file isom.h.

◆ MP4SLDescrTag

#define MP4SLDescrTag   0x06

Definition at line 385 of file isom.h.

◆ MOV_TFHD_BASE_DATA_OFFSET

#define MOV_TFHD_BASE_DATA_OFFSET   0x01

Definition at line 387 of file isom.h.

◆ MOV_TFHD_STSD_ID

#define MOV_TFHD_STSD_ID   0x02

Definition at line 388 of file isom.h.

◆ MOV_TFHD_DEFAULT_DURATION

#define MOV_TFHD_DEFAULT_DURATION   0x08

Definition at line 389 of file isom.h.

◆ MOV_TFHD_DEFAULT_SIZE

#define MOV_TFHD_DEFAULT_SIZE   0x10

Definition at line 390 of file isom.h.

◆ MOV_TFHD_DEFAULT_FLAGS

#define MOV_TFHD_DEFAULT_FLAGS   0x20

Definition at line 391 of file isom.h.

◆ MOV_TFHD_DURATION_IS_EMPTY

#define MOV_TFHD_DURATION_IS_EMPTY   0x010000

Definition at line 392 of file isom.h.

◆ MOV_TFHD_DEFAULT_BASE_IS_MOOF

#define MOV_TFHD_DEFAULT_BASE_IS_MOOF   0x020000

Definition at line 393 of file isom.h.

◆ MOV_TRUN_DATA_OFFSET

#define MOV_TRUN_DATA_OFFSET   0x01

Definition at line 395 of file isom.h.

◆ MOV_TRUN_FIRST_SAMPLE_FLAGS

#define MOV_TRUN_FIRST_SAMPLE_FLAGS   0x04

Definition at line 396 of file isom.h.

◆ MOV_TRUN_SAMPLE_DURATION

#define MOV_TRUN_SAMPLE_DURATION   0x100

Definition at line 397 of file isom.h.

◆ MOV_TRUN_SAMPLE_SIZE

#define MOV_TRUN_SAMPLE_SIZE   0x200

Definition at line 398 of file isom.h.

◆ MOV_TRUN_SAMPLE_FLAGS

#define MOV_TRUN_SAMPLE_FLAGS   0x400

Definition at line 399 of file isom.h.

◆ MOV_TRUN_SAMPLE_CTS

#define MOV_TRUN_SAMPLE_CTS   0x800

Definition at line 400 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_DEGRADATION_PRIORITY_MASK

#define MOV_FRAG_SAMPLE_FLAG_DEGRADATION_PRIORITY_MASK   0x0000ffff

Definition at line 402 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC

#define MOV_FRAG_SAMPLE_FLAG_IS_NON_SYNC   0x00010000

Definition at line 403 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_PADDING_MASK

#define MOV_FRAG_SAMPLE_FLAG_PADDING_MASK   0x000e0000

Definition at line 404 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_REDUNDANCY_MASK

#define MOV_FRAG_SAMPLE_FLAG_REDUNDANCY_MASK   0x00300000

Definition at line 405 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_DEPENDED_MASK

#define MOV_FRAG_SAMPLE_FLAG_DEPENDED_MASK   0x00c00000

Definition at line 406 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_DEPENDS_MASK

#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_MASK   0x03000000

Definition at line 407 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO

#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_NO   0x02000000

Definition at line 409 of file isom.h.

◆ MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES

#define MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES   0x01000000

Definition at line 410 of file isom.h.

◆ MOV_TKHD_FLAG_ENABLED

#define MOV_TKHD_FLAG_ENABLED   0x0001

Definition at line 412 of file isom.h.

◆ MOV_TKHD_FLAG_IN_MOVIE

#define MOV_TKHD_FLAG_IN_MOVIE   0x0002

Definition at line 413 of file isom.h.

◆ MOV_TKHD_FLAG_IN_PREVIEW

#define MOV_TKHD_FLAG_IN_PREVIEW   0x0004

Definition at line 414 of file isom.h.

◆ MOV_TKHD_FLAG_IN_POSTER

#define MOV_TKHD_FLAG_IN_POSTER   0x0008

Definition at line 415 of file isom.h.

◆ MOV_SAMPLE_DEPENDENCY_UNKNOWN

#define MOV_SAMPLE_DEPENDENCY_UNKNOWN   0x0

Definition at line 417 of file isom.h.

◆ MOV_SAMPLE_DEPENDENCY_YES

#define MOV_SAMPLE_DEPENDENCY_YES   0x1

Definition at line 418 of file isom.h.

◆ MOV_SAMPLE_DEPENDENCY_NO

#define MOV_SAMPLE_DEPENDENCY_NO   0x2

Definition at line 419 of file isom.h.

◆ MOV_TREF_FLAG_ENHANCEMENT

#define MOV_TREF_FLAG_ENHANCEMENT   0x1

Definition at line 421 of file isom.h.

◆ 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'))

Definition at line 423 of file isom.h.

◆ FF_MOV_FLAG_MFRA_AUTO

#define FF_MOV_FLAG_MFRA_AUTO   -1

Definition at line 445 of file isom.h.

◆ FF_MOV_FLAG_MFRA_DTS

#define FF_MOV_FLAG_MFRA_DTS   1

Definition at line 446 of file isom.h.

◆ FF_MOV_FLAG_MFRA_PTS

#define FF_MOV_FLAG_MFRA_PTS   2

Definition at line 447 of file isom.h.

◆ MOV_ISMV_TTML_TAG

#define MOV_ISMV_TTML_TAG   MKTAG('d', 'f', 'x', 'p')

Definition at line 463 of file isom.h.

◆ MOV_MP4_TTML_TAG

#define MOV_MP4_TTML_TAG   MKTAG('s', 't', 'p', 'p')

Definition at line 464 of file isom.h.

◆ MOV_MP4_FPCM_TAG

#define MOV_MP4_FPCM_TAG   MKTAG('f', 'p', 'c', 'm')

Definition at line 465 of file isom.h.

◆ MOV_MP4_IPCM_TAG

#define MOV_MP4_IPCM_TAG   MKTAG('i', 'p', 'c', 'm')

Definition at line 466 of file isom.h.

Function Documentation

◆ ff_mov_iso639_to_lang()

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

Definition at line 233 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 260 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 282 of file isom.c.

Referenced by ff_mp4_read_descr(), and read_pakt_chunk().

◆ ff_mp4_read_descr()

int ff_mp4_read_descr ( void *  logctx,
AVIOContext pb,
int *  tag 
)

◆ ff_mp4_read_dec_config_descr()

int ff_mp4_read_dec_config_descr ( void *  logctx,
AVStream st,
AVIOContext pb 
)

Definition at line 329 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 304 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 3065 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 416 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 453 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[]

◆ 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 75 of file isom.c.

Referenced by mov_codec_id(), and mov_get_codec_tag().

◆ ff_codec_movdata_tags

const AVCodecTag ff_codec_movdata_tags[]

Definition at line 82 of file isom.c.

Referenced by mov_codec_id().

◆ ff_mov_track_kind_table

const struct MP4TrackKindMapping ff_mov_track_kind_table[]

Definition at line 451 of file isom.c.

Referenced by mov_read_kind(), and mov_write_track_kinds().

tag
uint32_t tag
Definition: movenc.c:1879
MKTAG
#define MKTAG(a, b, c, d)
Definition: macros.h:55