FFmpeg
Loading...
Searching...
No Matches
mov.c File Reference
#include "config_components.h"
#include <inttypes.h>
#include <limits.h>
#include <stdint.h>
#include <stdlib.h>
#include "libavutil/attributes.h"
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/dovi_meta.h"
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/intfloat.h"
#include "libavutil/mathematics.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/dict.h"
#include "libavutil/display.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavutil/aes.h"
#include "libavutil/aes_ctr.h"
#include "libavutil/gain_map.h"
#include "libavutil/pixdesc.h"
#include "libavutil/sha.h"
#include "libavutil/spherical.h"
#include "libavutil/stereo3d.h"
#include "libavutil/timecode.h"
#include "libavutil/uuid.h"
#include "libavcodec/ac3tab.h"
#include "libavcodec/exif.h"
#include "libavcodec/flac.h"
#include "libavcodec/hevc/hevc.h"
#include "libavcodec/mpegaudiodata.h"
#include "libavcodec/mpegaudiodecheader.h"
#include "libavcodec/mlp_parse.h"
#include "avformat.h"
#include "internal.h"
#include "avio_internal.h"
#include "demux.h"
#include "dvdclut.h"
#include "iamf_parse.h"
#include "iamf_reader.h"
#include "dovi_isom.h"
#include "riff.h"
#include "isom.h"
#include "libavcodec/get_bits.h"
#include "id3v1.h"
#include "mov_chan.h"
#include "replaygain.h"
#include "qtpalette.h"

Go to the source code of this file.

Data Structures

struct  MOVParseTableEntry
 
struct  MOVPresentationSample
 

Macros

#define MIN_DATA_ENTRY_BOX_SIZE   12
 
#define DDTS_SIZE   20
 
#define DRM_BLOB_SIZE   56
 
#define ALAC_EXTRADATA_SIZE   36
 
#define MAX_REORDER_DELAY   16
 
#define MOV_MERGE_CTTS   1
 
#define MOV_MERGE_STTS   2
 
#define IS_MATRIX_IDENT(matrix)
 
#define OFFSET(x)
 
#define FLAGS   AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM
 

Functions

static int mov_read_default (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_mfra (MOVContext *c, AVIOContext *f)
 
static void mov_free_stream_context (AVFormatContext *s, AVStream *st)
 
static int mov_metadata_track_or_disc_number (MOVContext *c, AVIOContext *pb, unsigned len, const char *key)
 
static int mov_metadata_int8_bypass_padding (MOVContext *c, AVIOContext *pb, unsigned len, const char *key)
 
static int mov_metadata_int8_no_padding (MOVContext *c, AVIOContext *pb, unsigned len, const char *key)
 
static int mov_metadata_gnre (MOVContext *c, AVIOContext *pb, unsigned len, const char *key)
 
static int mov_read_mac_string (MOVContext *c, AVIOContext *pb, int len, char *dst, int dstlen)
 
static HEIFItem * get_heif_item (MOVContext *c, unsigned id)
 Get the requested item.
 
static AVStream * get_curr_st (MOVContext *c)
 Get the current stream in the parsing process.
 
static int mov_read_covr (MOVContext *c, AVIOContext *pb, int type, int len)
 
static int mov_metadata_loci (MOVContext *c, AVIOContext *pb, unsigned len)
 
static int mov_metadata_hmmt (MOVContext *c, AVIOContext *pb, unsigned len)
 
static int mov_read_udta_string (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_chpl (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_dref (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_hdlr (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_esds (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_dac3 (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_srat (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_dec3 (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_dts_stream_construction_to_profile (unsigned int sc)
 
static uint64_t mov_dts_channel_layout_to_mask (unsigned int code)
 
static int mov_read_ddts (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_chan (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_chnl (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_wfex (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_clap (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_pasp (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_mdat (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_adrm (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_aaxc_crypto (MOVContext *c)
 
static int aax_filter (uint8_t *input, int size, MOVContext *c)
 
static int mov_read_ftyp (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_moov (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static MOVFragmentStreamInfo * get_frag_stream_info (MOVFragmentIndex *frag_index, int index, int id)
 
static void set_frag_stream (MOVFragmentIndex *frag_index, int id)
 
static MOVFragmentStreamInfo * get_current_frag_stream_info (MOVFragmentIndex *frag_index)
 
static int search_frag_moof_offset (MOVFragmentIndex *frag_index, int64_t offset)
 
static int64_t get_stream_info_time (MOVFragmentStreamInfo *frag_stream_info)
 
static int64_t get_frag_time (AVFormatContext *s, AVStream *dst_st, MOVFragmentIndex *frag_index, int index)
 
static int search_frag_timestamp (AVFormatContext *s, MOVFragmentIndex *frag_index, AVStream *st, int64_t timestamp)
 
static int update_frag_index (MOVContext *c, int64_t offset)
 
static void fix_frag_index_entries (MOVFragmentIndex *frag_index, int index, int id, int entries)
 
static int mov_read_moof (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static void mov_metadata_creation_time (MOVContext *c, AVIOContext *pb, AVDictionary **metadata, int version)
 
static int mov_read_mdhd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_mvhd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static void set_last_stream_little_endian (AVFormatContext *fc)
 
static int mov_read_enda (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_pcmc (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_colr (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_fiel (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_realloc_extradata (AVCodecParameters *par, MOVAtom atom)
 
static int64_t mov_read_atom_into_extradata (MOVContext *c, AVIOContext *pb, MOVAtom atom, AVCodecParameters *par, uint8_t *buf)
 
static int mov_read_extradata (MOVContext *c, AVIOContext *pb, MOVAtom atom, enum AVCodecID codec_id)
 
static int mov_read_alac (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_avss (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_jp2h (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_dpxe (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_avid (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_targa_y216 (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_ares (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_aclr (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_svq3 (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_wave (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_glbl (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 This function reads atom content and puts data in extradata without tag nor size unlike mov_read_extradata.
 
static int mov_read_dvc1 (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_find_tref_id (const MovTref *tag, uint32_t id)
 
static int mov_add_tref_id (MovTref *tag, uint32_t id)
 
static MovTref * mov_find_tref_tag (const MOVStreamContext *sc, uint32_t name)
 
static MovTref * mov_add_tref_tag (MOVStreamContext *sc, uint32_t name)
 
static int mov_read_cdsc_rndr (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_sbas (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_vdep (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_strf (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 An strf atom is a BITMAPINFOHEADER struct.
 
static int mov_read_stco (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_codec_id (AVStream *st, uint32_t format)
 
static void mov_parse_stsd_video (MOVContext *c, AVIOContext *pb, AVStream *st, MOVStreamContext *sc)
 
static void mov_parse_stsd_audio (MOVContext *c, AVIOContext *pb, AVStream *st, MOVStreamContext *sc)
 
static void mov_parse_stsd_subtitle (MOVContext *c, AVIOContext *pb, AVStream *st, MOVStreamContext *sc, int64_t size)
 
static int mov_parse_stsd_data (MOVContext *c, AVIOContext *pb, AVStream *st, MOVStreamContext *sc, int64_t size)
 
static int mov_finalize_stsd_codec (MOVContext *c, AVIOContext *pb, AVStream *st, MOVStreamContext *sc)
 
static int mov_skip_multiple_stsd (MOVContext *c, AVIOContext *pb, int codec_tag, int format, int64_t size)
 
static int mov_finalize_stsd_entry (MOVContext *c, AVStream *st)
 
int ff_mov_read_stsd_entries (MOVContext *c, AVIOContext *pb, int entries)
 
static int mov_read_stsd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_stsc (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_stsc_index_valid (unsigned int index, unsigned int count)
 
static int64_t mov_get_stsc_samples (MOVStreamContext *sc, unsigned int index)
 
static int mov_read_stps (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_stss (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_stsz (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_stts (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_sdtp (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static void mov_update_dts_shift (MOVStreamContext *sc, int duration, void *logctx)
 
static int mov_read_ctts (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_sgpd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_sbgp (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int get_edit_list_entry (MOVContext *mov, const MOVStreamContext *msc, unsigned int edit_list_index, int64_t *edit_list_media_time, int64_t *edit_list_duration, int64_t global_timescale)
 Get ith edit list entry (media time, duration).
 
static int find_prev_closest_index (AVStream *st, AVIndexEntry *e_old, int nb_old, MOVTimeToSample *tts_data, int64_t tts_count, int64_t timestamp_pts, int flag, int64_t *index, int64_t *tts_index, int64_t *tts_sample)
 Find the closest previous frame to the timestamp_pts, in e_old index entries.
 
static int64_t add_index_entry (AVStream *st, int64_t pos, int64_t timestamp, int size, int distance, int flags)
 Add index entry with the given values, to the end of ffstream(st)->index_entries.
 
static void fix_index_entry_timestamps (AVStream *st, int end_index, int64_t end_ts, int64_t *frame_duration_buffer, int frame_duration_buffer_size)
 Rewrite timestamps of index entries in the range [end_index - frame_duration_buffer_size, end_index) by subtracting end_ts successively by the amounts given in frame_duration_buffer.
 
static int add_tts_entry (MOVTimeToSample **tts_data, unsigned int *tts_count, unsigned int *allocated_size, int count, int offset, unsigned int duration)
 
static void mov_estimate_video_delay (MOVContext *c, AVStream *st)
 
static void mov_current_sample_inc (MOVStreamContext *sc)
 
static void mov_current_sample_dec (MOVStreamContext *sc)
 
static void mov_current_sample_set (MOVStreamContext *sc, int current_sample)
 
static void mov_fix_index (MOVContext *mov, AVStream *st)
 Fix ffstream(st)->index_entries, so that it contains only the entries (and the entries which are needed to decode them) that fall in the edit list time ranges.
 
static uint32_t get_sgpd_sync_index (const MOVStreamContext *sc, int nal_unit_type)
 
static int build_open_gop_key_points (AVStream *st)
 
static int mov_merge_tts_data (MOVContext *mov, AVStream *st, int flags)
 
static void mov_build_index (MOVContext *mov, AVStream *st)
 
static int mov_compare_presentation_samples (const void *a, const void *b)
 
static void mov_update_sample_durations (MOVContext *mov, AVStream *st)
 
static int test_same_origin (const char *src, const char *ref)
 
static int mov_open_dref (MOVContext *c, AVIOContext **pb, const char *src, MOVDref *ref)
 
static void fix_timescale (MOVContext *c, MOVStreamContext *sc)
 
static int sanity_checks (void *log_obj, MOVStreamContext *sc, int index)
 
static int mov_read_trak (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_ilst (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_keys (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_custom (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int heif_add_stream (MOVContext *c, HEIFItem *item)
 
static int mov_read_meta (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_tkhd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_tfhd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_chap (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_trex (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_tfdt (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_trun (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_sidx (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_wide (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_cmov (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_elst (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_tmcd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_vpcc (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_smdm (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_mdcv (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_coll (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_clli (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_amve (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_st3d (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_pack (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_sv3d (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_vexu_proj (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_eyes (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_vexu (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_hfov (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_parse_uuid_spherical (MOVStreamContext *sc, AVIOContext *pb, size_t len)
 
static int mov_read_uuid (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_free (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_frma (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int get_current_encryption_info (MOVContext *c, MOVEncryptionIndex **encryption_index, MOVStreamContext **sc)
 Gets the current encryption info and associated current stream context.
 
static int mov_read_sample_encryption_info (MOVContext *c, AVIOContext *pb, MOVStreamContext *sc, AVEncryptionInfo **sample, int use_subsamples)
 
static int mov_read_senc (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_parse_auxiliary_info (MOVContext *c, MOVStreamContext *sc, AVIOContext *pb, MOVEncryptionIndex *encryption_index)
 
static int mov_read_saiz (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_saio (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_pssh (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_schm (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_tenc (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_dfla (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int get_key_from_kid (uint8_t *out, int len, MOVContext *c, AVEncryptionInfo *sample)
 
static int cenc_scheme_decrypt (MOVContext *c, MOVStreamContext *sc, AVEncryptionInfo *sample, uint8_t *input, int size)
 
static int cbc1_scheme_decrypt (MOVContext *c, MOVStreamContext *sc, AVEncryptionInfo *sample, uint8_t *input, int size)
 
static int cens_scheme_decrypt (MOVContext *c, MOVStreamContext *sc, AVEncryptionInfo *sample, uint8_t *input, int size)
 
static int cbcs_scheme_decrypt (MOVContext *c, MOVStreamContext *sc, AVEncryptionInfo *sample, uint8_t *input, int size)
 
static int cenc_decrypt (MOVContext *c, MOVStreamContext *sc, AVEncryptionInfo *sample, uint8_t *input, int size)
 
static MOVFragmentStreamInfo * get_frag_stream_info_from_pkt (MOVFragmentIndex *frag_index, AVPacket *pkt, int id)
 
static int cenc_filter (MOVContext *mov, AVStream *st, MOVStreamContext *sc, AVPacket *pkt, int current_index)
 
static int mov_read_dops (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_dmlp (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_dvcc_dvvc (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_hvce (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_lhvc (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_kind (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_SA3D (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_SAND (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int rb_size (AVIOContext *pb, int64_t *value, int size)
 
static int mov_read_auxc (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_pitm (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_idat (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_iloc (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_infe (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_iinf (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_iref_dimg_tmap (MOVContext *c, AVIOContext *pb, HEIFItem *item, int version, int entries)
 
static int mov_read_iref_dimg_grid (MOVContext *c, AVIOContext *pb, HEIFItem *item, int version, int entries)
 
static int mov_read_iref_dimg (MOVContext *c, AVIOContext *pb, int version)
 
static int mov_read_iref_cdsc (MOVContext *c, AVIOContext *pb, uint32_t type, int version, uint32_t size)
 
static int mov_read_iref_auxl (MOVContext *c, AVIOContext *pb, uint32_t type, int version, uint32_t size)
 
static int mov_read_iref (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_ispe (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_irot (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_imir (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_iprp (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_vmhd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_read_mhac (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 
static int mov_probe (const AVProbeData *p)
 
static void mov_read_chapters (AVFormatContext *s)
 
static int parse_timecode_in_framenum_format (AVFormatContext *s, AVStream *st, int64_t value, int flags)
 
static int mov_read_rtmd_track (AVFormatContext *s, AVStream *st)
 
static int mov_read_timecode_track (AVFormatContext *s, AVStream *st)
 
static void mov_free_encryption_index (MOVEncryptionIndex **index)
 
static int mov_read_close (AVFormatContext *s)
 
static int tmcd_is_referenced (AVFormatContext *s, int tmcd_id)
 
static void export_orphan_timecode (AVFormatContext *s)
 
static int read_tfra (MOVContext *mov, AVIOContext *f)
 
static int set_exif_from_item (AVFormatContext *s, AVPacketSideData **coded_side_data, int *nb_coded_side_data, const HEIFItem *item)
 
static int set_icc_profile_from_item (AVPacketSideData **coded_side_data, int *nb_coded_side_data, const HEIFItem *item)
 
static int set_display_matrix_from_item (AVPacketSideData **coded_side_data, int *nb_coded_side_data, const HEIFItem *item)
 
static int read_image_grid (AVFormatContext *s, const HEIFGroup *grid, AVStreamGroupTileGrid *tile_grid)
 
static int read_image_iovl (AVFormatContext *s, const HEIFGroup *grid, AVStreamGroupTileGrid *tile_grid)
 
static int mov_parse_exif_item (AVFormatContext *s, HEIFItem *item, const HEIFItem *ref)
 
static int mov_apply_heif_item_references (AVFormatContext *s, HEIFItem *item, AVPacketSideData **coded_side_data, int *nb_coded_side_data)
 
static int mov_parse_heif_item_references (AVFormatContext *s, HEIFItem *item, AVPacketSideData **coded_side_data, int *nb_coded_side_data)
 
static int mov_parse_tiles (AVFormatContext *s)
 
static int mov_parse_heif_layered_video_tmap (AVFormatContext *s, const HEIFGroup *tmap)
 
static int mov_parse_heif_layered_video_auxl (AVFormatContext *s, HEIFItem *base, HEIFItem *gain_map)
 
static int mov_parse_heif_layered_video (AVFormatContext *s)
 
static int mov_parse_heif_items (AVFormatContext *s)
 
static int mov_parse_tmcd_streams (AVFormatContext *s)
 
static AVStream * mov_find_reference_track (AVFormatContext *s, AVStream *st, uint32_t *tref_id, int nb_tref_id, int first_index)
 
static int mov_parse_cdsc_and_rndr_streams (AVFormatContext *s)
 
static int mov_parse_lcevc_streams (AVFormatContext *s)
 
static int mov_parse_dovi_streams (AVFormatContext *s)
 
static void fix_stream_ids (AVFormatContext *s)
 
static int mov_read_header (AVFormatContext *s)
 
static AVIndexEntry * mov_find_next_sample (AVFormatContext *s, AVStream **st)
 
static int should_retry (AVIOContext *pb, int error_code)
 
static int mov_switch_root (AVFormatContext *s, int64_t target, int index)
 
static int mov_change_extradata (AVStream *st, AVPacket *pkt)
 
static int get_eia608_packet (AVIOContext *pb, AVPacket *pkt, int src_size)
 
static int mov_finalize_packet (AVFormatContext *s, AVStream *st, AVIndexEntry *sample, int64_t current_index, AVPacket *pkt)
 
static int mov_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int mov_seek_fragment (AVFormatContext *s, AVStream *st, int64_t timestamp)
 
static int is_open_key_sample (const MOVStreamContext *sc, int sample)
 
static int can_seek_to_key_sample (AVStream *st, int sample, int64_t requested_pts)
 
static int mov_seek_stream (AVFormatContext *s, AVStream *st, int64_t timestamp, int flags)
 
static int64_t mov_get_skip_samples (AVStream *st, int sample)
 
static int mov_read_seek (AVFormatContext *s, int stream_index, int64_t sample_time, int flags)
 

Variables

static const uint32_t mac_to_unicode [128]
 
static const MOVParseTableEntry mov_default_parse_table []
 
static const AVOption mov_options []
 
static const AVClass mov_class
 
const FFInputFormat ff_mov_demuxer
 

Macro Definition Documentation

◆ MIN_DATA_ENTRY_BOX_SIZE

#define MIN_DATA_ENTRY_BOX_SIZE   12

Definition at line 655 of file mov.c.

Referenced by mov_read_dref().

◆ DDTS_SIZE

#define DDTS_SIZE   20

Referenced by mov_read_ddts().

◆ DRM_BLOB_SIZE

#define DRM_BLOB_SIZE   56

Definition at line 1513 of file mov.c.

Referenced by mov_read_adrm().

◆ ALAC_EXTRADATA_SIZE

#define ALAC_EXTRADATA_SIZE   36

◆ MAX_REORDER_DELAY

#define MAX_REORDER_DELAY   16

Definition at line 4401 of file mov.c.

◆ MOV_MERGE_CTTS

#define MOV_MERGE_CTTS   1

Definition at line 4899 of file mov.c.

Referenced by mov_build_index(), and mov_merge_tts_data().

◆ MOV_MERGE_STTS

#define MOV_MERGE_STTS   2

Definition at line 4900 of file mov.c.

Referenced by mov_build_index(), and mov_merge_tts_data().

◆ IS_MATRIX_IDENT

#define IS_MATRIX_IDENT ( matrix)
Value:
( (matrix)[0][0] == (1 << 16) && \
(matrix)[1][1] == (1 << 16) && \
(matrix)[2][2] == (1 << 30) && \
!(matrix)[0][1] && !(matrix)[0][2] && \
!(matrix)[1][0] && !(matrix)[1][2] && \
!(matrix)[2][0] && !(matrix)[2][1])

Definition at line 5959 of file mov.c.

Referenced by mov_read_tkhd().

◆ OFFSET

#define OFFSET ( x)
Value:
offsetof(MOVContext, x)

Definition at line 13117 of file mov.c.

◆ FLAGS

Definition at line 13118 of file mov.c.

Function Documentation

◆ mov_read_default()

◆ mov_read_mfra()

static int mov_read_mfra ( MOVContext * c,
AVIOContext * f )
static

Definition at line 11023 of file mov.c.

Referenced by mov_read_moof().

◆ mov_free_stream_context()

static void mov_free_stream_context ( AVFormatContext * s,
AVStream * st )
static

Definition at line 10810 of file mov.c.

Referenced by heif_add_stream(), and mov_read_close().

◆ mov_metadata_track_or_disc_number()

static int mov_metadata_track_or_disc_number ( MOVContext * c,
AVIOContext * pb,
unsigned len,
const char * key )
static

Definition at line 95 of file mov.c.

Referenced by mov_read_udta_string().

◆ mov_metadata_int8_bypass_padding()

static int mov_metadata_int8_bypass_padding ( MOVContext * c,
AVIOContext * pb,
unsigned len,
const char * key )
static

Definition at line 115 of file mov.c.

Referenced by mov_read_udta_string().

◆ mov_metadata_int8_no_padding()

static int mov_metadata_int8_no_padding ( MOVContext * c,
AVIOContext * pb,
unsigned len,
const char * key )
static

Definition at line 129 of file mov.c.

Referenced by mov_read_udta_string().

◆ mov_metadata_gnre()

static int mov_metadata_gnre ( MOVContext * c,
AVIOContext * pb,
unsigned len,
const char * key )
static

Definition at line 138 of file mov.c.

Referenced by mov_read_udta_string().

◆ mov_read_mac_string()

static int mov_read_mac_string ( MOVContext * c,
AVIOContext * pb,
int len,
char * dst,
int dstlen )
static

Definition at line 173 of file mov.c.

Referenced by mov_parse_stsd_video(), and mov_read_udta_string().

◆ get_heif_item()

◆ get_curr_st()

static AVStream * get_curr_st ( MOVContext * c)
static

Get the current stream in the parsing process.

This can either be the latest stream added to the context, or the stream referenced by an item.

Definition at line 217 of file mov.c.

Referenced by mov_read_cdsc_rndr(), mov_read_clap(), mov_read_colr(), and mov_read_glbl().

◆ mov_read_covr()

static int mov_read_covr ( MOVContext * c,
AVIOContext * pb,
int type,
int len )
static

Definition at line 235 of file mov.c.

Referenced by mov_read_udta_string().

◆ mov_metadata_loci()

static int mov_metadata_loci ( MOVContext * c,
AVIOContext * pb,
unsigned len )
static

Definition at line 278 of file mov.c.

Referenced by mov_read_udta_string().

◆ mov_metadata_hmmt()

static int mov_metadata_hmmt ( MOVContext * c,
AVIOContext * pb,
unsigned len )
static

Definition at line 328 of file mov.c.

Referenced by mov_read_udta_string().

◆ mov_read_udta_string()

static int mov_read_udta_string ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 349 of file mov.c.

Referenced by mov_read_default().

◆ mov_read_chpl()

static int mov_read_chpl ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 617 of file mov.c.

◆ mov_read_dref()

static int mov_read_dref ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 656 of file mov.c.

◆ mov_read_hdlr()

static int mov_read_hdlr ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 800 of file mov.c.

◆ mov_read_esds()

static int mov_read_esds ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 866 of file mov.c.

◆ mov_read_dac3()

static int mov_read_dac3 ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 871 of file mov.c.

◆ mov_read_srat()

static int mov_read_srat ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1095 of file mov.c.

◆ mov_read_dec3()

static int mov_read_dec3 ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1129 of file mov.c.

◆ mov_dts_stream_construction_to_profile()

static int mov_dts_stream_construction_to_profile ( unsigned int sc)
static

Definition at line 1183 of file mov.c.

Referenced by mov_read_ddts().

◆ mov_dts_channel_layout_to_mask()

static uint64_t mov_dts_channel_layout_to_mask ( unsigned int code)
static

Definition at line 1216 of file mov.c.

Referenced by mov_read_ddts().

◆ mov_read_ddts()

static int mov_read_ddts ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1244 of file mov.c.

◆ mov_read_chan()

static int mov_read_chan ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1306 of file mov.c.

◆ mov_read_chnl()

static int mov_read_chnl ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1325 of file mov.c.

◆ mov_read_wfex()

static int mov_read_wfex ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1359 of file mov.c.

◆ mov_read_clap()

static int mov_read_clap ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1374 of file mov.c.

◆ mov_read_pasp()

static int mov_read_pasp ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1483 of file mov.c.

◆ mov_read_mdat()

static int mov_read_mdat ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1505 of file mov.c.

Referenced by mov_read_wide().

◆ mov_read_adrm()

static int mov_read_adrm ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1515 of file mov.c.

◆ mov_aaxc_crypto()

static int mov_aaxc_crypto ( MOVContext * c)
static

Definition at line 1616 of file mov.c.

Referenced by mov_read_ftyp().

◆ aax_filter()

static int aax_filter ( uint8_t * input,
int size,
MOVContext * c )
static

Definition at line 1641 of file mov.c.

Referenced by mov_read_packet().

◆ mov_read_ftyp()

static int mov_read_ftyp ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1655 of file mov.c.

◆ mov_read_moov()

static int mov_read_moov ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1703 of file mov.c.

◆ get_frag_stream_info()

static MOVFragmentStreamInfo * get_frag_stream_info ( MOVFragmentIndex * frag_index,
int index,
int id )
static

◆ set_frag_stream()

static void set_frag_stream ( MOVFragmentIndex * frag_index,
int id )
static

Definition at line 1740 of file mov.c.

Referenced by mov_read_tfhd().

◆ get_current_frag_stream_info()

static MOVFragmentStreamInfo * get_current_frag_stream_info ( MOVFragmentIndex * frag_index)
static

Definition at line 1760 of file mov.c.

Referenced by get_current_encryption_info(), mov_read_tfdt(), mov_read_tfhd(), and mov_read_trun().

◆ search_frag_moof_offset()

static int search_frag_moof_offset ( MOVFragmentIndex * frag_index,
int64_t offset )
static

Definition at line 1776 of file mov.c.

Referenced by mov_switch_root(), and update_frag_index().

◆ get_stream_info_time()

static int64_t get_stream_info_time ( MOVFragmentStreamInfo * frag_stream_info)
static

Definition at line 1800 of file mov.c.

Referenced by get_frag_time().

◆ get_frag_time()

static int64_t get_frag_time ( AVFormatContext * s,
AVStream * dst_st,
MOVFragmentIndex * frag_index,
int index )
static

Definition at line 1810 of file mov.c.

Referenced by search_frag_timestamp().

◆ search_frag_timestamp()

static int search_frag_timestamp ( AVFormatContext * s,
MOVFragmentIndex * frag_index,
AVStream * st,
int64_t timestamp )
static

Definition at line 1852 of file mov.c.

Referenced by mov_seek_fragment().

◆ update_frag_index()

static int update_frag_index ( MOVContext * c,
int64_t offset )
static

Definition at line 1877 of file mov.c.

Referenced by mov_read_moof(), mov_read_sidx(), and read_tfra().

◆ fix_frag_index_entries()

static void fix_frag_index_entries ( MOVFragmentIndex * frag_index,
int index,
int id,
int entries )
static

Definition at line 1940 of file mov.c.

Referenced by mov_read_trun().

◆ mov_read_moof()

static int mov_read_moof ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 1955 of file mov.c.

◆ mov_metadata_creation_time()

static void mov_metadata_creation_time ( MOVContext * c,
AVIOContext * pb,
AVDictionary ** metadata,
int version )
static

Definition at line 1981 of file mov.c.

Referenced by mov_read_mdhd(), and mov_read_mvhd().

◆ mov_read_mdhd()

static int mov_read_mdhd ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2011 of file mov.c.

◆ mov_read_mvhd()

static int mov_read_mvhd ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2057 of file mov.c.

◆ set_last_stream_little_endian()

static void set_last_stream_little_endian ( AVFormatContext * fc)
static

Definition at line 2096 of file mov.c.

Referenced by mov_read_enda(), and mov_read_pcmc().

◆ mov_read_enda()

static int mov_read_enda ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2125 of file mov.c.

◆ mov_read_pcmc()

static int mov_read_pcmc ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2134 of file mov.c.

◆ mov_read_colr()

static int mov_read_colr ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2211 of file mov.c.

◆ mov_read_fiel()

static int mov_read_fiel ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2300 of file mov.c.

◆ mov_realloc_extradata()

static int mov_realloc_extradata ( AVCodecParameters * par,
MOVAtom atom )
static

Definition at line 2334 of file mov.c.

Referenced by mov_read_aclr(), mov_read_extradata(), and mov_read_lhvc().

◆ mov_read_atom_into_extradata()

static int64_t mov_read_atom_into_extradata ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom,
AVCodecParameters * par,
uint8_t * buf )
static

Definition at line 2349 of file mov.c.

Referenced by mov_read_aclr(), and mov_read_extradata().

◆ mov_read_extradata()

static int mov_read_extradata ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom,
enum AVCodecID codec_id )
static

◆ mov_read_alac()

static int mov_read_alac ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2397 of file mov.c.

◆ mov_read_avss()

static int mov_read_avss ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2402 of file mov.c.

◆ mov_read_jp2h()

static int mov_read_jp2h ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2407 of file mov.c.

◆ mov_read_dpxe()

static int mov_read_dpxe ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2412 of file mov.c.

◆ mov_read_avid()

static int mov_read_avid ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2417 of file mov.c.

Referenced by mov_read_ares().

◆ mov_read_targa_y216()

static int mov_read_targa_y216 ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2425 of file mov.c.

◆ mov_read_ares()

static int mov_read_ares ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2439 of file mov.c.

◆ mov_read_aclr()

static int mov_read_aclr ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2484 of file mov.c.

◆ mov_read_svq3()

static int mov_read_svq3 ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2527 of file mov.c.

◆ mov_read_wave()

static int mov_read_wave ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2532 of file mov.c.

◆ mov_read_glbl()

static int mov_read_glbl ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

This function reads atom content and puts data in extradata without tag nor size unlike mov_read_extradata.

Definition at line 2589 of file mov.c.

Referenced by mov_parse_stsd_subtitle().

◆ mov_read_dvc1()

static int mov_read_dvc1 ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2635 of file mov.c.

◆ mov_find_tref_id()

static int mov_find_tref_id ( const MovTref * tag,
uint32_t id )
static

Definition at line 2660 of file mov.c.

Referenced by mov_add_tref_id(), and tmcd_is_referenced().

◆ mov_add_tref_id()

static int mov_add_tref_id ( MovTref * tag,
uint32_t id )
static

Definition at line 2669 of file mov.c.

Referenced by mov_read_cdsc_rndr(), mov_read_sbas(), mov_read_tmcd(), and mov_read_vdep().

◆ mov_find_tref_tag()

static MovTref * mov_find_tref_tag ( const MOVStreamContext * sc,
uint32_t name )
static

◆ mov_add_tref_tag()

static MovTref * mov_add_tref_tag ( MOVStreamContext * sc,
uint32_t name )
static

Definition at line 2695 of file mov.c.

Referenced by mov_read_cdsc_rndr(), mov_read_sbas(), mov_read_tmcd(), and mov_read_vdep().

◆ mov_read_cdsc_rndr()

static int mov_read_cdsc_rndr ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2712 of file mov.c.

◆ mov_read_sbas()

static int mov_read_sbas ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2743 of file mov.c.

◆ mov_read_vdep()

static int mov_read_vdep ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2775 of file mov.c.

◆ mov_read_strf()

static int mov_read_strf ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

An strf atom is a BITMAPINFOHEADER struct.

This struct is 40 bytes itself, but can have extradata appended at the end after the 40 bytes belonging to the struct.

Definition at line 2807 of file mov.c.

◆ mov_read_stco()

static int mov_read_stco ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 2829 of file mov.c.

◆ mov_codec_id()

static int mov_codec_id ( AVStream * st,
uint32_t format )
static

◆ mov_parse_stsd_video()

static void mov_parse_stsd_video ( MOVContext * c,
AVIOContext * pb,
AVStream * st,
MOVStreamContext * sc )
static

Definition at line 2934 of file mov.c.

Referenced by ff_mov_read_stsd_entries().

◆ mov_parse_stsd_audio()

static void mov_parse_stsd_audio ( MOVContext * c,
AVIOContext * pb,
AVStream * st,
MOVStreamContext * sc )
static

Definition at line 2998 of file mov.c.

Referenced by ff_mov_read_stsd_entries().

◆ mov_parse_stsd_subtitle()

static void mov_parse_stsd_subtitle ( MOVContext * c,
AVIOContext * pb,
AVStream * st,
MOVStreamContext * sc,
int64_t size )
static

Definition at line 3119 of file mov.c.

Referenced by ff_mov_read_stsd_entries().

◆ mov_parse_stsd_data()

static int mov_parse_stsd_data ( MOVContext * c,
AVIOContext * pb,
AVStream * st,
MOVStreamContext * sc,
int64_t size )
static

Definition at line 3135 of file mov.c.

Referenced by ff_mov_read_stsd_entries().

◆ mov_finalize_stsd_codec()

static int mov_finalize_stsd_codec ( MOVContext * c,
AVIOContext * pb,
AVStream * st,
MOVStreamContext * sc )
static

Definition at line 3208 of file mov.c.

Referenced by mov_read_stsd().

◆ mov_skip_multiple_stsd()

static int mov_skip_multiple_stsd ( MOVContext * c,
AVIOContext * pb,
int codec_tag,
int format,
int64_t size )
static

Definition at line 3312 of file mov.c.

Referenced by ff_mov_read_stsd_entries().

◆ mov_finalize_stsd_entry()

static int mov_finalize_stsd_entry ( MOVContext * c,
AVStream * st )
static

Definition at line 3338 of file mov.c.

Referenced by ff_mov_read_stsd_entries().

◆ ff_mov_read_stsd_entries()

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

Definition at line 3359 of file mov.c.

Referenced by mov_read_stsd(), and qt_rtp_parse_packet().

◆ mov_read_stsd()

static int mov_read_stsd ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 3460 of file mov.c.

◆ mov_read_stsc()

static int mov_read_stsc ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 3526 of file mov.c.

◆ mov_stsc_index_valid()

static int mov_stsc_index_valid ( unsigned int index,
unsigned int count )
inlinestatic

Definition at line 3606 of file mov.c.

Referenced by mov_build_index(), mov_finalize_packet(), and mov_get_stsc_samples().

◆ mov_get_stsc_samples()

static int64_t mov_get_stsc_samples ( MOVStreamContext * sc,
unsigned int index )
inlinestatic

Definition at line 3612 of file mov.c.

Referenced by mov_finalize_packet(), and mov_seek_stream().

◆ mov_read_stps()

static int mov_read_stps ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 3627 of file mov.c.

◆ mov_read_stss()

static int mov_read_stss ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 3668 of file mov.c.

◆ mov_read_stsz()

static int mov_read_stsz ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 3723 of file mov.c.

◆ mov_read_stts()

static int mov_read_stts ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 3816 of file mov.c.

◆ mov_read_sdtp()

static int mov_read_sdtp ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 3936 of file mov.c.

◆ mov_update_dts_shift()

static void mov_update_dts_shift ( MOVStreamContext * sc,
int duration,
void * logctx )
static

Definition at line 3974 of file mov.c.

Referenced by mov_read_ctts(), and mov_read_trun().

◆ mov_read_ctts()

static int mov_read_ctts ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 3985 of file mov.c.

◆ mov_read_sgpd()

static int mov_read_sgpd ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 4066 of file mov.c.

◆ mov_read_sbgp()

static int mov_read_sbgp ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 4125 of file mov.c.

◆ get_edit_list_entry()

static int get_edit_list_entry ( MOVContext * mov,
const MOVStreamContext * msc,
unsigned int edit_list_index,
int64_t * edit_list_media_time,
int64_t * edit_list_duration,
int64_t global_timescale )
static

Get ith edit list entry (media time, duration).

Definition at line 4186 of file mov.c.

Referenced by mov_fix_index().

◆ find_prev_closest_index()

static int find_prev_closest_index ( AVStream * st,
AVIndexEntry * e_old,
int nb_old,
MOVTimeToSample * tts_data,
int64_t tts_count,
int64_t timestamp_pts,
int flag,
int64_t * index,
int64_t * tts_index,
int64_t * tts_sample )
static

Find the closest previous frame to the timestamp_pts, in e_old index entries.

Searching for just any frame / just key frames can be controlled by last argument 'flag'. Note that if ctts_data is not NULL, we will always search for a key frame irrespective of the value of 'flag'. If we don't find any keyframe, we will return the first frame of the video.

Here the timestamp_pts is considered to be a presentation timestamp and the timestamp of index entries are considered to be decoding timestamps.

Returns 0 if successful in finding a frame, else returns -1. Places the found index corresponding output arg.

If ctts_old is not NULL, then refines the searched entry by searching backwards from the found timestamp, to find the frame with correct PTS.

Places the found ctts_index and ctts_sample in corresponding output args.

Definition at line 4233 of file mov.c.

Referenced by mov_fix_index().

◆ add_index_entry()

static int64_t add_index_entry ( AVStream * st,
int64_t pos,
int64_t timestamp,
int size,
int distance,
int flags )
static

Add index entry with the given values, to the end of ffstream(st)->index_entries.

Returns the new size ffstream(st)->index_entries if successful, else returns -1.

This function is similar to ff_add_index_entry in libavformat/utils.c except that here we are always unconditionally adding an index entry to the end, instead of searching the entries list and skipping the add if there is an existing entry with the same timestamp. This is needed because the mov_fix_index calls this func with the same unincremented timestamp for successive discarded frames.

Definition at line 4320 of file mov.c.

Referenced by mov_fix_index().

◆ fix_index_entry_timestamps()

static void fix_index_entry_timestamps ( AVStream * st,
int end_index,
int64_t end_ts,
int64_t * frame_duration_buffer,
int frame_duration_buffer_size )
static

Rewrite timestamps of index entries in the range [end_index - frame_duration_buffer_size, end_index) by subtracting end_ts successively by the amounts given in frame_duration_buffer.

Definition at line 4361 of file mov.c.

Referenced by mov_fix_index().

◆ add_tts_entry()

static int add_tts_entry ( MOVTimeToSample ** tts_data,
unsigned int * tts_count,
unsigned int * allocated_size,
int count,
int offset,
unsigned int duration )
static

Definition at line 4373 of file mov.c.

Referenced by mov_fix_index().

◆ mov_estimate_video_delay()

static void mov_estimate_video_delay ( MOVContext * c,
AVStream * st )
static

Definition at line 4402 of file mov.c.

Referenced by mov_build_index().

◆ mov_current_sample_inc()

static void mov_current_sample_inc ( MOVStreamContext * sc)
static

Definition at line 4458 of file mov.c.

Referenced by mov_read_packet(), and mov_read_seek().

◆ mov_current_sample_dec()

static void mov_current_sample_dec ( MOVStreamContext * sc)
static

Definition at line 4470 of file mov.c.

Referenced by mov_read_packet().

◆ mov_current_sample_set()

static void mov_current_sample_set ( MOVStreamContext * sc,
int current_sample )
static

Definition at line 4482 of file mov.c.

Referenced by mov_read_packet(), mov_read_seek(), and mov_seek_stream().

◆ mov_fix_index()

static void mov_fix_index ( MOVContext * mov,
AVStream * st )
static

Fix ffstream(st)->index_entries, so that it contains only the entries (and the entries which are needed to decode them) that fall in the edit list time ranges.

Also fixes the timestamps of the index entries to match the timeline specified the edit lists.

Definition at line 4510 of file mov.c.

Referenced by mov_build_index().

◆ get_sgpd_sync_index()

static uint32_t get_sgpd_sync_index ( const MOVStreamContext * sc,
int nal_unit_type )
static

Definition at line 4828 of file mov.c.

Referenced by build_open_gop_key_points().

◆ build_open_gop_key_points()

static int build_open_gop_key_points ( AVStream * st)
static

Definition at line 4836 of file mov.c.

Referenced by mov_build_index().

◆ mov_merge_tts_data()

static int mov_merge_tts_data ( MOVContext * mov,
AVStream * st,
int flags )
static

Definition at line 4906 of file mov.c.

Referenced by mov_build_index().

◆ mov_build_index()

static void mov_build_index ( MOVContext * mov,
AVStream * st )
static

Definition at line 4969 of file mov.c.

Referenced by mov_parse_heif_items(), and mov_read_trak().

◆ mov_compare_presentation_samples()

static int mov_compare_presentation_samples ( const void * a,
const void * b )
static

Definition at line 5290 of file mov.c.

Referenced by mov_update_sample_durations().

◆ mov_update_sample_durations()

static void mov_update_sample_durations ( MOVContext * mov,
AVStream * st )
static

Definition at line 5303 of file mov.c.

Referenced by mov_read_trak().

◆ test_same_origin()

static int test_same_origin ( const char * src,
const char * ref )
static

Definition at line 5388 of file mov.c.

Referenced by mov_open_dref().

◆ mov_open_dref()

static int mov_open_dref ( MOVContext * c,
AVIOContext ** pb,
const char * src,
MOVDref * ref )
static

Definition at line 5417 of file mov.c.

Referenced by mov_read_trak().

◆ fix_timescale()

static void fix_timescale ( MOVContext * c,
MOVStreamContext * sc )
static

Definition at line 5489 of file mov.c.

Referenced by mov_read_header(), and mov_read_trak().

◆ sanity_checks()

static int sanity_checks ( void * log_obj,
MOVStreamContext * sc,
int index )
static

Definition at line 5545 of file mov.c.

Referenced by mov_parse_heif_items(), and mov_read_trak().

◆ mov_read_trak()

static int mov_read_trak ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 5564 of file mov.c.

◆ mov_read_ilst()

static int mov_read_ilst ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 5720 of file mov.c.

◆ mov_read_keys()

static int mov_read_keys ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 5729 of file mov.c.

Referenced by mov_read_default().

◆ mov_read_custom()

static int mov_read_custom ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 5781 of file mov.c.

◆ heif_add_stream()

static int heif_add_stream ( MOVContext * c,
HEIFItem * item )
static

Definition at line 5882 of file mov.c.

Referenced by mov_read_infe().

◆ mov_read_meta()

static int mov_read_meta ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 5941 of file mov.c.

◆ mov_read_tkhd()

static int mov_read_tkhd ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 5967 of file mov.c.

◆ mov_read_tfhd()

static int mov_read_tfhd ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6072 of file mov.c.

◆ mov_read_chap()

static int mov_read_chap ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6119 of file mov.c.

◆ mov_read_trex()

static int mov_read_trex ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6140 of file mov.c.

◆ mov_read_tfdt()

static int mov_read_tfdt ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6166 of file mov.c.

◆ mov_read_trun()

static int mov_read_trun ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6205 of file mov.c.

◆ mov_read_sidx()

static int mov_read_sidx ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6547 of file mov.c.

◆ mov_read_wide()

static int mov_read_wide ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6686 of file mov.c.

◆ mov_read_cmov()

static int mov_read_cmov ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6706 of file mov.c.

◆ mov_read_elst()

static int mov_read_elst ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6759 of file mov.c.

◆ mov_read_tmcd()

static int mov_read_tmcd ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6833 of file mov.c.

◆ mov_read_vpcc()

static int mov_read_vpcc ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6861 of file mov.c.

◆ mov_read_smdm()

static int mov_read_smdm ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6905 of file mov.c.

◆ mov_read_mdcv()

static int mov_read_mdcv ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6952 of file mov.c.

◆ mov_read_coll()

static int mov_read_coll ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 6996 of file mov.c.

◆ mov_read_clli()

static int mov_read_clli ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7033 of file mov.c.

◆ mov_read_amve()

static int mov_read_amve ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7062 of file mov.c.

◆ mov_read_st3d()

static int mov_read_st3d ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7087 of file mov.c.

◆ mov_read_pack()

static int mov_read_pack ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7134 of file mov.c.

Referenced by mov_read_vexu().

◆ mov_read_sv3d()

static int mov_read_sv3d ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7215 of file mov.c.

◆ mov_read_vexu_proj()

static int mov_read_vexu_proj ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7352 of file mov.c.

Referenced by mov_read_vexu().

◆ mov_read_eyes()

static int mov_read_eyes ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7425 of file mov.c.

Referenced by mov_read_vexu().

◆ mov_read_vexu()

static int mov_read_vexu ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7607 of file mov.c.

◆ mov_read_hfov()

static int mov_read_hfov ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7669 of file mov.c.

◆ mov_parse_uuid_spherical()

static int mov_parse_uuid_spherical ( MOVStreamContext * sc,
AVIOContext * pb,
size_t len )
static

Definition at line 7698 of file mov.c.

Referenced by mov_read_uuid().

◆ mov_read_uuid()

static int mov_read_uuid ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7761 of file mov.c.

◆ mov_read_free()

static int mov_read_free ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7866 of file mov.c.

◆ mov_read_frma()

static int mov_read_frma ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 7888 of file mov.c.

◆ get_current_encryption_info()

static int get_current_encryption_info ( MOVContext * c,
MOVEncryptionIndex ** encryption_index,
MOVStreamContext ** sc )
static

Gets the current encryption info and associated current stream context.

If we are parsing a track fragment, this will return the specific encryption info for this fragment; otherwise this will return the global encryption info for the current stream.

Definition at line 7935 of file mov.c.

Referenced by mov_read_saio(), mov_read_saiz(), and mov_read_senc().

◆ mov_read_sample_encryption_info()

static int mov_read_sample_encryption_info ( MOVContext * c,
AVIOContext * pb,
MOVStreamContext * sc,
AVEncryptionInfo ** sample,
int use_subsamples )
static

Definition at line 7986 of file mov.c.

Referenced by mov_parse_auxiliary_info(), and mov_read_senc().

◆ mov_read_senc()

static int mov_read_senc ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 8040 of file mov.c.

◆ mov_parse_auxiliary_info()

static int mov_parse_auxiliary_info ( MOVContext * c,
MOVStreamContext * sc,
AVIOContext * pb,
MOVEncryptionIndex * encryption_index )
static

Definition at line 8096 of file mov.c.

Referenced by mov_read_saio(), and mov_read_saiz().

◆ mov_read_saiz()

static int mov_read_saiz ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 8158 of file mov.c.

◆ mov_read_saio()

static int mov_read_saio ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 8242 of file mov.c.

◆ mov_read_pssh()

static int mov_read_pssh ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 8337 of file mov.c.

◆ mov_read_schm()

static int mov_read_schm ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 8458 of file mov.c.

◆ mov_read_tenc()

static int mov_read_tenc ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 8489 of file mov.c.

◆ mov_read_dfla()

static int mov_read_dfla ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 8560 of file mov.c.

◆ get_key_from_kid()

static int get_key_from_kid ( uint8_t * out,
int len,
MOVContext * c,
AVEncryptionInfo * sample )
static

◆ cenc_scheme_decrypt()

static int cenc_scheme_decrypt ( MOVContext * c,
MOVStreamContext * sc,
AVEncryptionInfo * sample,
uint8_t * input,
int size )
static

Definition at line 8637 of file mov.c.

Referenced by cenc_decrypt().

◆ cbc1_scheme_decrypt()

static int cbc1_scheme_decrypt ( MOVContext * c,
MOVStreamContext * sc,
AVEncryptionInfo * sample,
uint8_t * input,
int size )
static

Definition at line 8696 of file mov.c.

Referenced by cenc_decrypt().

◆ cens_scheme_decrypt()

static int cens_scheme_decrypt ( MOVContext * c,
MOVStreamContext * sc,
AVEncryptionInfo * sample,
uint8_t * input,
int size )
static

Definition at line 8762 of file mov.c.

Referenced by cenc_decrypt().

◆ cbcs_scheme_decrypt()

static int cbcs_scheme_decrypt ( MOVContext * c,
MOVStreamContext * sc,
AVEncryptionInfo * sample,
uint8_t * input,
int size )
static

Definition at line 8833 of file mov.c.

Referenced by cenc_decrypt().

◆ cenc_decrypt()

static int cenc_decrypt ( MOVContext * c,
MOVStreamContext * sc,
AVEncryptionInfo * sample,
uint8_t * input,
int size )
static

Definition at line 8905 of file mov.c.

Referenced by cenc_filter().

◆ get_frag_stream_info_from_pkt()

static MOVFragmentStreamInfo * get_frag_stream_info_from_pkt ( MOVFragmentIndex * frag_index,
AVPacket * pkt,
int id )
static

Definition at line 8921 of file mov.c.

Referenced by cenc_filter().

◆ cenc_filter()

static int cenc_filter ( MOVContext * mov,
AVStream * st,
MOVStreamContext * sc,
AVPacket * pkt,
int current_index )
static

Definition at line 8946 of file mov.c.

Referenced by mov_read_packet().

◆ mov_read_dops()

static int mov_read_dops ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9016 of file mov.c.

◆ mov_read_dmlp()

static int mov_read_dmlp ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9069 of file mov.c.

◆ mov_read_dvcc_dvvc()

static int mov_read_dvcc_dvvc ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9104 of file mov.c.

◆ mov_read_hvce()

static int mov_read_hvce ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9124 of file mov.c.

◆ mov_read_lhvc()

static int mov_read_lhvc ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9151 of file mov.c.

◆ mov_read_kind()

static int mov_read_kind ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9202 of file mov.c.

◆ mov_read_SA3D()

static int mov_read_SA3D ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9291 of file mov.c.

◆ mov_read_SAND()

static int mov_read_SAND ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9381 of file mov.c.

◆ rb_size()

static int rb_size ( AVIOContext * pb,
int64_t * value,
int size )
static

Definition at line 9407 of file mov.c.

Referenced by mov_read_iloc().

◆ mov_read_auxc()

static int mov_read_auxc ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9426 of file mov.c.

◆ mov_read_pitm()

static int mov_read_pitm ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9447 of file mov.c.

◆ mov_read_idat()

static int mov_read_idat ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9455 of file mov.c.

◆ mov_read_iloc()

static int mov_read_iloc ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9461 of file mov.c.

◆ mov_read_infe()

static int mov_read_infe ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9558 of file mov.c.

Referenced by mov_read_iinf().

◆ mov_read_iinf()

static int mov_read_iinf ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9636 of file mov.c.

◆ mov_read_iref_dimg_tmap()

static int mov_read_iref_dimg_tmap ( MOVContext * c,
AVIOContext * pb,
HEIFItem * item,
int version,
int entries )
static

Definition at line 9706 of file mov.c.

Referenced by mov_read_iref_dimg().

◆ mov_read_iref_dimg_grid()

static int mov_read_iref_dimg_grid ( MOVContext * c,
AVIOContext * pb,
HEIFItem * item,
int version,
int entries )
static

Definition at line 9756 of file mov.c.

Referenced by mov_read_iref_dimg().

◆ mov_read_iref_dimg()

static int mov_read_iref_dimg ( MOVContext * c,
AVIOContext * pb,
int version )
static

Definition at line 9798 of file mov.c.

Referenced by mov_read_iref().

◆ mov_read_iref_cdsc()

static int mov_read_iref_cdsc ( MOVContext * c,
AVIOContext * pb,
uint32_t type,
int version,
uint32_t size )
static

Definition at line 9859 of file mov.c.

Referenced by mov_read_iref().

◆ mov_read_iref_auxl()

static int mov_read_iref_auxl ( MOVContext * c,
AVIOContext * pb,
uint32_t type,
int version,
uint32_t size )
static

Definition at line 9905 of file mov.c.

Referenced by mov_read_iref().

◆ mov_read_iref()

static int mov_read_iref ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 9953 of file mov.c.

◆ mov_read_ispe()

static int mov_read_ispe ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 10003 of file mov.c.

◆ mov_read_irot()

static int mov_read_irot ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 10031 of file mov.c.

◆ mov_read_imir()

static int mov_read_imir ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 10051 of file mov.c.

◆ mov_read_iprp()

static int mov_read_iprp ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 10070 of file mov.c.

◆ mov_read_vmhd()

static int mov_read_vmhd ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 10187 of file mov.c.

◆ mov_read_mhac()

static int mov_read_mhac ( MOVContext * c,
AVIOContext * pb,
MOVAtom atom )
static

Definition at line 10220 of file mov.c.

◆ mov_probe()

static int mov_probe ( const AVProbeData * p)
static

Definition at line 10517 of file mov.c.

◆ mov_read_chapters()

static void mov_read_chapters ( AVFormatContext * s)
static

Definition at line 10612 of file mov.c.

Referenced by mov_read_header().

◆ parse_timecode_in_framenum_format()

static int parse_timecode_in_framenum_format ( AVFormatContext * s,
AVStream * st,
int64_t value,
int flags )
static

Definition at line 10711 of file mov.c.

Referenced by mov_read_timecode_track().

◆ mov_read_rtmd_track()

static int mov_read_rtmd_track ( AVFormatContext * s,
AVStream * st )
static

Definition at line 10725 of file mov.c.

Referenced by mov_read_header().

◆ mov_read_timecode_track()

static int mov_read_timecode_track ( AVFormatContext * s,
AVStream * st )
static

Definition at line 10751 of file mov.c.

Referenced by mov_read_header().

◆ mov_free_encryption_index()

static void mov_free_encryption_index ( MOVEncryptionIndex ** index)
static

Definition at line 10798 of file mov.c.

Referenced by mov_free_stream_context(), and mov_read_close().

◆ mov_read_close()

static int mov_read_close ( AVFormatContext * s)
static

Definition at line 10875 of file mov.c.

◆ tmcd_is_referenced()

static int tmcd_is_referenced ( AVFormatContext * s,
int tmcd_id )
static

Definition at line 10932 of file mov.c.

Referenced by export_orphan_timecode().

◆ export_orphan_timecode()

static void export_orphan_timecode ( AVFormatContext * s)
static

Definition at line 10950 of file mov.c.

Referenced by mov_parse_tmcd_streams().

◆ read_tfra()

static int read_tfra ( MOVContext * mov,
AVIOContext * f )
static

Definition at line 10968 of file mov.c.

Referenced by mov_read_mfra().

◆ set_exif_from_item()

static int set_exif_from_item ( AVFormatContext * s,
AVPacketSideData ** coded_side_data,
int * nb_coded_side_data,
const HEIFItem * item )
static

Definition at line 11069 of file mov.c.

Referenced by mov_apply_heif_item_references().

◆ set_icc_profile_from_item()

static int set_icc_profile_from_item ( AVPacketSideData ** coded_side_data,
int * nb_coded_side_data,
const HEIFItem * item )
static

Definition at line 11107 of file mov.c.

Referenced by mov_apply_heif_item_references().

◆ set_display_matrix_from_item()

static int set_display_matrix_from_item ( AVPacketSideData ** coded_side_data,
int * nb_coded_side_data,
const HEIFItem * item )
static

Definition at line 11129 of file mov.c.

Referenced by mov_apply_heif_item_references().

◆ read_image_grid()

static int read_image_grid ( AVFormatContext * s,
const HEIFGroup * grid,
AVStreamGroupTileGrid * tile_grid )
static

Definition at line 11157 of file mov.c.

Referenced by mov_parse_tiles().

◆ read_image_iovl()

static int read_image_iovl ( AVFormatContext * s,
const HEIFGroup * grid,
AVStreamGroupTileGrid * tile_grid )
static

Definition at line 11252 of file mov.c.

Referenced by mov_parse_tiles().

◆ mov_parse_exif_item()

static int mov_parse_exif_item ( AVFormatContext * s,
HEIFItem * item,
const HEIFItem * ref )
static

Definition at line 11321 of file mov.c.

Referenced by mov_parse_heif_item_references().

◆ mov_apply_heif_item_references()

static int mov_apply_heif_item_references ( AVFormatContext * s,
HEIFItem * item,
AVPacketSideData ** coded_side_data,
int * nb_coded_side_data )
static

Definition at line 11382 of file mov.c.

Referenced by mov_parse_heif_item_references(), and mov_parse_heif_layered_video_auxl().

◆ mov_parse_heif_item_references()

static int mov_parse_heif_item_references ( AVFormatContext * s,
HEIFItem * item,
AVPacketSideData ** coded_side_data,
int * nb_coded_side_data )
static

◆ mov_parse_tiles()

static int mov_parse_tiles ( AVFormatContext * s)
static

Definition at line 11441 of file mov.c.

Referenced by mov_parse_heif_items().

◆ mov_parse_heif_layered_video_tmap()

static int mov_parse_heif_layered_video_tmap ( AVFormatContext * s,
const HEIFGroup * tmap )
static

Definition at line 11537 of file mov.c.

Referenced by mov_parse_heif_layered_video().

◆ mov_parse_heif_layered_video_auxl()

static int mov_parse_heif_layered_video_auxl ( AVFormatContext * s,
HEIFItem * base,
HEIFItem * gain_map )
static

Definition at line 11711 of file mov.c.

Referenced by mov_parse_heif_layered_video().

◆ mov_parse_heif_layered_video()

static int mov_parse_heif_layered_video ( AVFormatContext * s)
static

Definition at line 11837 of file mov.c.

Referenced by mov_parse_heif_items().

◆ mov_parse_heif_items()

static int mov_parse_heif_items ( AVFormatContext * s)
static

Definition at line 11886 of file mov.c.

Referenced by mov_read_header().

◆ mov_parse_tmcd_streams()

static int mov_parse_tmcd_streams ( AVFormatContext * s)
static

Definition at line 11953 of file mov.c.

Referenced by mov_read_header().

◆ mov_find_reference_track()

static AVStream * mov_find_reference_track ( AVFormatContext * s,
AVStream * st,
uint32_t * tref_id,
int nb_tref_id,
int first_index )
static

◆ mov_parse_cdsc_and_rndr_streams()

static int mov_parse_cdsc_and_rndr_streams ( AVFormatContext * s)
static

Definition at line 12024 of file mov.c.

Referenced by mov_read_header().

◆ mov_parse_lcevc_streams()

static int mov_parse_lcevc_streams ( AVFormatContext * s)
static

Definition at line 12076 of file mov.c.

Referenced by mov_read_header().

◆ mov_parse_dovi_streams()

static int mov_parse_dovi_streams ( AVFormatContext * s)
static

Definition at line 12130 of file mov.c.

Referenced by mov_read_header().

◆ fix_stream_ids()

static void fix_stream_ids ( AVFormatContext * s)
static

Definition at line 12203 of file mov.c.

Referenced by mov_read_header().

◆ mov_read_header()

static int mov_read_header ( AVFormatContext * s)
static

Definition at line 12241 of file mov.c.

◆ mov_find_next_sample()

static AVIndexEntry * mov_find_next_sample ( AVFormatContext * s,
AVStream ** st )
static

Definition at line 12476 of file mov.c.

Referenced by mov_read_packet(), and mov_read_seek().

◆ should_retry()

static int should_retry ( AVIOContext * pb,
int error_code )
static

Definition at line 12506 of file mov.c.

Referenced by mov_read_packet().

◆ mov_switch_root()

static int mov_switch_root ( AVFormatContext * s,
int64_t target,
int index )
static

Definition at line 12513 of file mov.c.

Referenced by mov_read_packet(), and mov_seek_fragment().

◆ mov_change_extradata()

static int mov_change_extradata ( AVStream * st,
AVPacket * pkt )
static

Definition at line 12549 of file mov.c.

Referenced by mov_finalize_packet().

◆ get_eia608_packet()

static int get_eia608_packet ( AVIOContext * pb,
AVPacket * pkt,
int src_size )
static

Definition at line 12573 of file mov.c.

Referenced by mov_read_packet().

◆ mov_finalize_packet()

static int mov_finalize_packet ( AVFormatContext * s,
AVStream * st,
AVIndexEntry * sample,
int64_t current_index,
AVPacket * pkt )
static

Definition at line 12642 of file mov.c.

Referenced by mov_read_packet().

◆ mov_read_packet()

static int mov_read_packet ( AVFormatContext * s,
AVPacket * pkt )
static

Definition at line 12726 of file mov.c.

◆ mov_seek_fragment()

static int mov_seek_fragment ( AVFormatContext * s,
AVStream * st,
int64_t timestamp )
static

Definition at line 12907 of file mov.c.

Referenced by mov_seek_stream().

◆ is_open_key_sample()

static int is_open_key_sample ( const MOVStreamContext * sc,
int sample )
static

Definition at line 12926 of file mov.c.

Referenced by can_seek_to_key_sample().

◆ can_seek_to_key_sample()

static int can_seek_to_key_sample ( AVStream * st,
int sample,
int64_t requested_pts )
static

Definition at line 12943 of file mov.c.

Referenced by mov_seek_stream().

◆ mov_seek_stream()

static int mov_seek_stream ( AVFormatContext * s,
AVStream * st,
int64_t timestamp,
int flags )
static

Definition at line 12970 of file mov.c.

Referenced by mov_read_seek().

◆ mov_get_skip_samples()

static int64_t mov_get_skip_samples ( AVStream * st,
int sample )
static

Definition at line 13045 of file mov.c.

Referenced by mov_read_seek().

◆ mov_read_seek()

static int mov_read_seek ( AVFormatContext * s,
int stream_index,
int64_t sample_time,
int flags )
static

Definition at line 13061 of file mov.c.

Variable Documentation

◆ mac_to_unicode

const uint32_t mac_to_unicode[128]
static
Initial value:
= {
0x00C4,0x00C5,0x00C7,0x00C9,0x00D1,0x00D6,0x00DC,0x00E1,
0x00E0,0x00E2,0x00E4,0x00E3,0x00E5,0x00E7,0x00E9,0x00E8,
0x00EA,0x00EB,0x00ED,0x00EC,0x00EE,0x00EF,0x00F1,0x00F3,
0x00F2,0x00F4,0x00F6,0x00F5,0x00FA,0x00F9,0x00FB,0x00FC,
0x2020,0x00B0,0x00A2,0x00A3,0x00A7,0x2022,0x00B6,0x00DF,
0x00AE,0x00A9,0x2122,0x00B4,0x00A8,0x2260,0x00C6,0x00D8,
0x221E,0x00B1,0x2264,0x2265,0x00A5,0x00B5,0x2202,0x2211,
0x220F,0x03C0,0x222B,0x00AA,0x00BA,0x03A9,0x00E6,0x00F8,
0x00BF,0x00A1,0x00AC,0x221A,0x0192,0x2248,0x2206,0x00AB,
0x00BB,0x2026,0x00A0,0x00C0,0x00C3,0x00D5,0x0152,0x0153,
0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA,
0x00FF,0x0178,0x2044,0x20AC,0x2039,0x203A,0xFB01,0xFB02,
0x2021,0x00B7,0x201A,0x201E,0x2030,0x00C2,0x00CA,0x00C1,
0x00CB,0x00C8,0x00CD,0x00CE,0x00CF,0x00CC,0x00D3,0x00D4,
0xF8FF,0x00D2,0x00DA,0x00DB,0x00D9,0x0131,0x02C6,0x02DC,
0x00AF,0x02D8,0x02D9,0x02DA,0x00B8,0x02DD,0x02DB,0x02C7,
}

Definition at line 154 of file mov.c.

Referenced by mov_read_mac_string().

◆ mov_default_parse_table

const MOVParseTableEntry mov_default_parse_table[]
static

Definition at line 10258 of file mov.c.

Referenced by mov_read_default().

◆ mov_options

const AVOption mov_options[]
static

Definition at line 13119 of file mov.c.

◆ mov_class

const AVClass mov_class
static
Initial value:
= {
.class_name = "mov,mp4,m4a,3gp,3g2,mj2",
.item_name = av_default_item_name,
.option = mov_options,
}
const char * av_default_item_name(void *ptr)
Return the context name.
Definition log.c:241
#define LIBAVUTIL_VERSION_INT
Definition version.h:85
static const AVOption mov_options[]
Definition mov.c:13119

Definition at line 13173 of file mov.c.

◆ ff_mov_demuxer

const FFInputFormat ff_mov_demuxer
Initial value:
= {
.p.name = "mov,mp4,m4a,3gp,3g2,mj2",
.p.long_name = NULL_IF_CONFIG_SMALL("QuickTime / MOV"),
.p.priv_class = &mov_class,
.p.extensions = "mov,mp4,m4a,3gp,3g2,mj2,psp,m4v,m4b,ism,ismv,isma,f4v,avif,heic,heif",
.priv_data_size = sizeof(MOVContext),
.flags_internal = FF_INFMT_FLAG_INIT_CLEANUP,
}
#define AVFMT_NO_BYTE_SEEK
Format does not allow seeking by bytes.
Definition avformat.h:508
#define AVFMT_SHOW_IDS
Show format stream IDs numbers.
Definition avformat.h:498
#define AVFMT_SEEK_TO_PTS
Seeking is based on PTS.
Definition avformat.h:522
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
static int read_probe(const AVProbeData *p)
Definition cdg.c:30
#define FF_INFMT_FLAG_INIT_CLEANUP
For an FFInputFormat with this flag set read_close() needs to be called by the caller upon read_heade...
Definition demux.h:35
static int read_header(FFV1Context *f, RangeCoder *c)
Definition ffv1dec.c:578
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition internal.h:97
static av_cold int read_close(AVFormatContext *ctx)
Definition libcdio.c:143
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
Definition libcdio.c:151
static int mov_read_seek(AVFormatContext *s, int stream_index, int64_t sample_time, int flags)
Definition mov.c:13061
static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition mov.c:12726
static int mov_read_header(AVFormatContext *s)
Definition mov.c:12241
static const AVClass mov_class
Definition mov.c:13173
static int mov_read_close(AVFormatContext *s)
Definition mov.c:10875
static int mov_probe(const AVProbeData *p)
Definition mov.c:10517

Definition at line 13180 of file mov.c.