FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
matroskadec.c File Reference
#include "config.h"
#include "config_components.h"
#include <inttypes.h>
#include <stdio.h>
#include "libavutil/avstring.h"
#include "libavutil/base64.h"
#include "libavutil/bprint.h"
#include "libavutil/dict.h"
#include "libavutil/dict_internal.h"
#include "libavutil/display.h"
#include "libavutil/hdr_dynamic_metadata.h"
#include "libavutil/intfloat.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/lzo.h"
#include "libavutil/mastering_display_metadata.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "libavutil/time_internal.h"
#include "libavutil/spherical.h"
#include "libavcodec/bytestream.h"
#include "libavcodec/defs.h"
#include "libavcodec/flac.h"
#include "libavcodec/itut35.h"
#include "libavcodec/mpeg4audio.h"
#include "libavcodec/packet_internal.h"
#include "avformat.h"
#include "avio_internal.h"
#include "demux.h"
#include "dovi_isom.h"
#include "internal.h"
#include "isom.h"
#include "matroska.h"
#include "oggdec.h"
#include "riff.h"
#include "rmsipr.h"
#include "qtpalette.h"

Go to the source code of this file.

Data Structures

struct  CountedElement
 
struct  EbmlSyntax
 
struct  EbmlList
 
struct  EbmlBin
 
struct  Ebml
 
struct  MatroskaTrackCompression
 
struct  MatroskaTrackEncryption
 
struct  MatroskaTrackEncoding
 
struct  MatroskaMasteringMeta
 
struct  MatroskaTrackVideoColor
 
struct  MatroskaTrackVideoProjection
 
struct  MatroskaTrackVideo
 
struct  MatroskaTrackAudio
 
struct  MatroskaTrackPlane
 
struct  MatroskaTrackOperation
 
struct  MatroskaBlockAdditionMapping
 
struct  MatroskaTrack
 
struct  MatroskaAttachment
 
struct  MatroskaChapter
 
struct  MatroskaIndexPos
 
struct  MatroskaIndex
 
struct  MatroskaTag
 
struct  MatroskaTagTarget
 
struct  MatroskaTags
 
struct  MatroskaSeekhead
 
struct  MatroskaLevel
 
struct  MatroskaBlockMore
 
struct  MatroskaBlock
 
struct  MatroskaCluster
 
struct  MatroskaLevel1Element
 
struct  MatroskaDemuxContext
 

Macros

#define EBML_UNKNOWN_LENGTH   UINT64_MAX /* EBML unknown length, in uint64_t */
 
#define NEEDS_CHECKING
 
#define LEVEL_ENDED
 
#define SKIP_THRESHOLD
 
#define UNKNOWN_EQUIV
 
#define CHILD_OF(parent)   { .def = { .n = parent } }
 
#define STEREO_MODE_CONV(STEREOMODETYPE, STEREO3DTYPE, FLAGS, WDIV, HDIV, WEBM)   [(STEREOMODETYPE)] = { .type = (STEREO3DTYPE), .flags = (FLAGS) },
 
#define NOTHING(STEREOMODETYPE, WDIV, HDIV, WEBM)
 
#define AAC_MAX_EXTRADATA_SIZE   5
 
#define TTA_EXTRADATA_SIZE   22
 
#define WAVPACK_EXTRADATA_SIZE   2
 

Enumerations

enum  EbmlType {
  EBML_NONE, EBML_UINT, EBML_SINT, EBML_FLOAT,
  EBML_STR, EBML_UTF8, EBML_BIN, EBML_NEST,
  EBML_LEVEL1, EBML_STOP, EBML_TYPE_COUNT, EBML_UINT,
  EBML_SINT, EBML_FLOAT, EBML_UID, EBML_STR,
  EBML_UTF8 = EBML_STR, EBML_BIN, EBML_BLOCK, EBML_MASTER
}
 
enum  { SKIP_TRACK = 1 }
 

Functions

static int matroska_reset_status (MatroskaDemuxContext *matroska, uint32_t id, int64_t position)
 
static int matroska_resync (MatroskaDemuxContext *matroska, int64_t last_pos)
 
static int ebml_read_num (MatroskaDemuxContext *matroska, AVIOContext *pb, int max_size, uint64_t *number, int eof_forbidden)
 
static int ebml_read_length (MatroskaDemuxContext *matroska, AVIOContext *pb, uint64_t *number)
 Read a EBML length value. More...
 
static int ebml_read_uint (AVIOContext *pb, int size, uint64_t default_value, uint64_t *num)
 
static int ebml_read_sint (AVIOContext *pb, int size, int64_t default_value, int64_t *num)
 
static int ebml_read_float (AVIOContext *pb, int size, double default_value, double *num)
 
static int ebml_read_ascii (AVIOContext *pb, int size, const char *default_value, char **str)
 
static int ebml_read_binary (AVIOContext *pb, int length, int64_t pos, EbmlBin *bin)
 
static int ebml_read_master (MatroskaDemuxContext *matroska, uint64_t length, int64_t pos)
 
static int matroska_ebmlnum_sint (MatroskaDemuxContext *matroska, AVIOContext *pb, int64_t *num)
 
static int ebml_parse (MatroskaDemuxContext *matroska, EbmlSyntax *syntax, void *data)
 
static EbmlSyntaxebml_parse_id (EbmlSyntax *syntax, uint32_t id)
 
static int ebml_parse_nest (MatroskaDemuxContext *matroska, EbmlSyntax *syntax, void *data)
 
static int is_ebml_id_valid (uint32_t id)
 
static MatroskaLevel1Elementmatroska_find_level1_elem (MatroskaDemuxContext *matroska, uint32_t id, int64_t pos)
 
static void ebml_free (EbmlSyntax *syntax, void *data)
 
static int matroska_probe (const AVProbeData *p)
 
static MatroskaTrackmatroska_find_track_by_num (MatroskaDemuxContext *matroska, uint64_t num)
 
static int matroska_decode_buffer (uint8_t **buf, int *buf_size, MatroskaTrack *track)
 
static void matroska_convert_tag (AVFormatContext *s, EbmlList *list, AVDictionary **metadata, char *prefix)
 
static void matroska_convert_tags (AVFormatContext *s)
 
static int matroska_parse_seekhead_entry (MatroskaDemuxContext *matroska, int64_t pos)
 
static void matroska_execute_seekhead (MatroskaDemuxContext *matroska)
 
static void matroska_add_index_entries (MatroskaDemuxContext *matroska)
 
static void matroska_parse_cues (MatroskaDemuxContext *matroska)
 
static int matroska_parse_content_encodings (MatroskaTrackEncoding *encodings, unsigned nb_encodings, MatroskaTrack *track, char **key_id_base64, void *logctx)
 
static int matroska_aac_profile (char *codec_id)
 
static int matroska_aac_sri (int samplerate)
 
static void matroska_metadata_creation_time (AVDictionary **metadata, int64_t date_utc)
 
static int matroska_parse_flac (AVFormatContext *s, MatroskaTrack *track, int *offset)
 
static int mkv_field_order (const MatroskaDemuxContext *matroska, uint64_t field_order)
 
static void mkv_stereo_mode_display_mul (int stereo_mode, int *h_width, int *h_height)
 
static int mkv_stereo3d_conv (AVStream *st, MatroskaVideoStereoModeType stereo_mode)
 
static int mkv_parse_video_color (AVStream *st, const MatroskaTrack *track)
 
static int mkv_create_display_matrix (AVStream *st, const MatroskaTrackVideoProjection *proj, void *logctx)
 
static int mkv_parse_video_projection (AVStream *st, const MatroskaTrack *track, void *logctx)
 
static int mkv_parse_dvcc_dvvc (AVFormatContext *s, AVStream *st, const MatroskaTrack *track, EbmlBin *bin)
 
static int mkv_parse_block_addition_mappings (AVFormatContext *s, AVStream *st, MatroskaTrack *track)
 
static int get_qt_codec (MatroskaTrack *track, uint32_t *fourcc, enum AVCodecID *codec_id)
 
static int mka_parse_audio_codec (MatroskaTrack *track, AVCodecParameters *par, const MatroskaDemuxContext *matroska, AVFormatContext *s, int *extradata_offset)
 
static int mka_parse_audio (MatroskaTrack *track, AVStream *st, AVCodecParameters *par, const MatroskaDemuxContext *matroska, AVFormatContext *s, int *extradata_offset)
 
static int mkv_parse_video_codec (MatroskaTrack *track, AVCodecParameters *par, const MatroskaDemuxContext *matroska, int *extradata_offset)
 
static int mkv_parse_video (MatroskaTrack *track, AVStream *st, AVCodecParameters *par, const MatroskaDemuxContext *matroska, int *extradata_offset)
 
static int mkv_parse_subtitle_codec (MatroskaTrack *track, AVStream *st, AVCodecParameters *par, const MatroskaDemuxContext *matroska)
 
static int matroska_parse_tracks (AVFormatContext *s)
 
static int matroska_read_header (AVFormatContext *s)
 
static int matroska_deliver_packet (MatroskaDemuxContext *matroska, AVPacket *pkt)
 
static void matroska_clear_queue (MatroskaDemuxContext *matroska)
 
static int matroska_parse_laces (MatroskaDemuxContext *matroska, uint8_t **buf, int size, int type, AVIOContext *pb, uint32_t lace_size[256], int *laces)
 
static int matroska_parse_rm_audio (MatroskaDemuxContext *matroska, MatroskaTrack *track, AVStream *st, uint8_t *data, int size, uint64_t timecode, int64_t pos)
 
static int matroska_parse_wavpack (MatroskaTrack *track, uint8_t **data, int *size)
 
static int matroska_parse_prores (MatroskaTrack *track, uint8_t **data, int *size)
 
static int matroska_parse_webvtt (MatroskaDemuxContext *matroska, MatroskaTrack *track, AVStream *st, uint8_t *data, int data_len, uint64_t timecode, uint64_t duration, int64_t pos)
 
static int matroska_parse_block_additional (MatroskaDemuxContext *matroska, MatroskaTrack *track, AVPacket *pkt, const uint8_t *data, int size, uint64_t id)
 
static int matroska_parse_frame (MatroskaDemuxContext *matroska, MatroskaTrack *track, AVStream *st, AVBufferRef *buf, uint8_t *data, int pkt_size, uint64_t timecode, uint64_t lace_duration, int64_t pos, int is_keyframe, MatroskaBlockMore *blockmore, int nb_blockmore, int64_t discard_padding)
 
static int matroska_parse_block (MatroskaDemuxContext *matroska, AVBufferRef *buf, uint8_t *data, int size, int64_t pos, uint64_t cluster_time, uint64_t block_duration, int is_keyframe, MatroskaBlockMore *blockmore, int nb_blockmore, int64_t cluster_pos, int64_t discard_padding)
 
static int matroska_parse_cluster (MatroskaDemuxContext *matroska)
 
static int matroska_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int matroska_read_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
 
static int matroska_read_close (AVFormatContext *s)
 

Variables

static EbmlSyntax ebml_syntax [3]
 
static EbmlSyntax matroska_segment [9]
 
static EbmlSyntax matroska_track_video_color [15]
 
static EbmlSyntax matroska_track_video [19]
 
static EbmlSyntax matroska_track [33]
 
static EbmlSyntax matroska_track_encoding [6]
 
static EbmlSyntax matroska_track_encodings [2]
 
static EbmlSyntax matroska_track_combine_planes [2]
 
static EbmlSyntax matroska_track_operation [2]
 
static EbmlSyntax matroska_block_addition_mapping [5]
 
static EbmlSyntax matroska_tracks [2]
 
static EbmlSyntax matroska_attachments [2]
 
static EbmlSyntax matroska_chapter_entry [9]
 
static EbmlSyntax matroska_chapter [6]
 
static EbmlSyntax matroska_chapters [2]
 
static EbmlSyntax matroska_index_entry [3]
 
static EbmlSyntax matroska_index [2]
 
static EbmlSyntax matroska_tag [3]
 
static EbmlSyntax matroska_tags [2]
 
static EbmlSyntax matroska_seekhead [2]
 
static EbmlSyntax matroska_blockadditions [2]
 
static EbmlSyntax matroska_blockgroup [8]
 
static EbmlSyntax matroska_cluster_parsing [8]
 
static EbmlSyntax ebml_header []
 
static EbmlSyntax matroska_info []
 
static EbmlSyntax matroska_mastering_meta []
 
static EbmlSyntax matroska_track_video_projection []
 
static EbmlSyntax matroska_track_audio []
 
static EbmlSyntax matroska_track_encoding_compression []
 
static EbmlSyntax matroska_track_encoding_encryption []
 
static EbmlSyntax matroska_track_plane []
 
static EbmlSyntax matroska_attachment []
 
static EbmlSyntax matroska_chapter_display []
 
static EbmlSyntax matroska_index_pos []
 
static EbmlSyntax matroska_simpletag []
 
static EbmlSyntax matroska_tagtargets []
 
static EbmlSyntax matroska_seekhead_entry []
 
static EbmlSyntax matroska_segments []
 
static EbmlSyntax matroska_blockmore []
 
static EbmlSyntax matroska_cluster_enter []
 
static const CodecMime mkv_image_mime_tags []
 
static const CodecMime mkv_mime_tags []
 
static const char *const matroska_video_stereo_plane [MATROSKA_VIDEO_STEREO_PLANE_COUNT]
 
static const char *const matroska_doctypes [] = { "matroska", "webm" }
 
const FFInputFormat ff_matroska_demuxer
 

Detailed Description

Matroska file demuxer

Author
Ronald Bultje rbult.nosp@m.je@r.nosp@m.onald.nosp@m..bit.nosp@m.freak.nosp@m..net
with a little help from Moritz Bunkus morit.nosp@m.z@bu.nosp@m.nkus..nosp@m.org
totally reworked by Aurelien Jacobs aurel.nosp@m.@gnu.nosp@m.age.o.nosp@m.rg
See also
specs available on the Matroska project page: http://www.matroska.org/

Definition in file matroskadec.c.

Macro Definition Documentation

◆ EBML_UNKNOWN_LENGTH

#define EBML_UNKNOWN_LENGTH   UINT64_MAX /* EBML unknown length, in uint64_t */

Definition at line 82 of file matroskadec.c.

◆ NEEDS_CHECKING

#define NEEDS_CHECKING
Value:
2 /* Indicates that some error checks
* still need to be performed */

Definition at line 83 of file matroskadec.c.

◆ LEVEL_ENDED

#define LEVEL_ENDED
Value:
3 /* return value of ebml_parse when the
* syntax level used for parsing ended. */

Definition at line 84 of file matroskadec.c.

◆ SKIP_THRESHOLD

#define SKIP_THRESHOLD
Value:
1024 * 1024 /* In non-seekable mode, if more than SKIP_THRESHOLD
* of unkown, potentially damaged data is encountered,
* it is considered an error. */

Definition at line 85 of file matroskadec.c.

◆ UNKNOWN_EQUIV

#define UNKNOWN_EQUIV
Value:
50 * 1024 /* An unknown element is considered equivalent
* to this many bytes of unknown data for the
* SKIP_THRESHOLD check. */

Definition at line 86 of file matroskadec.c.

◆ CHILD_OF

#define CHILD_OF (   parent)    { .def = { .n = parent } }

Definition at line 431 of file matroskadec.c.

◆ STEREO_MODE_CONV

#define STEREO_MODE_CONV (   STEREOMODETYPE,
  STEREO3DTYPE,
  FLAGS,
  WDIV,
  HDIV,
  WEBM 
)    [(STEREOMODETYPE)] = { .type = (STEREO3DTYPE), .flags = (FLAGS) },

◆ NOTHING

#define NOTHING (   STEREOMODETYPE,
  WDIV,
  HDIV,
  WEBM 
)

◆ AAC_MAX_EXTRADATA_SIZE

#define AAC_MAX_EXTRADATA_SIZE   5

Definition at line 2579 of file matroskadec.c.

◆ TTA_EXTRADATA_SIZE

#define TTA_EXTRADATA_SIZE   22

Definition at line 2580 of file matroskadec.c.

◆ WAVPACK_EXTRADATA_SIZE

#define WAVPACK_EXTRADATA_SIZE   2

Definition at line 2581 of file matroskadec.c.

Enumeration Type Documentation

◆ EbmlType

enum EbmlType
Enumerator
EBML_NONE 
EBML_UINT 
EBML_SINT 
EBML_FLOAT 
EBML_STR 
EBML_UTF8 
EBML_BIN 
EBML_NEST 
EBML_LEVEL1 
EBML_STOP 
EBML_TYPE_COUNT 
EBML_UINT 
EBML_SINT 
EBML_FLOAT 
EBML_UID 
EBML_STR 
EBML_UTF8 
EBML_BIN 
EBML_BLOCK 

pseudo-type for writing (Simple)Blocks

EBML_MASTER 

Definition at line 88 of file matroskadec.c.

◆ anonymous enum

anonymous enum
Enumerator
SKIP_TRACK 

Definition at line 2575 of file matroskadec.c.

Function Documentation

◆ matroska_reset_status()

static int matroska_reset_status ( MatroskaDemuxContext matroska,
uint32_t  id,
int64_t  position 
)
static

Definition at line 833 of file matroskadec.c.

◆ matroska_resync()

static int matroska_resync ( MatroskaDemuxContext matroska,
int64_t  last_pos 
)
static

Definition at line 854 of file matroskadec.c.

◆ ebml_read_num()

static int ebml_read_num ( MatroskaDemuxContext matroska,
AVIOContext pb,
int  max_size,
uint64_t *  number,
int  eof_forbidden 
)
static

Definition at line 901 of file matroskadec.c.

Referenced by ebml_read_length().

◆ ebml_read_length()

static int ebml_read_length ( MatroskaDemuxContext matroska,
AVIOContext pb,
uint64_t *  number 
)
static

Read a EBML length value.

This needs special handling for the "unknown length" case which has multiple encodings.

Definition at line 966 of file matroskadec.c.

◆ ebml_read_uint()

static int ebml_read_uint ( AVIOContext pb,
int  size,
uint64_t  default_value,
uint64_t *  num 
)
static

Definition at line 979 of file matroskadec.c.

◆ ebml_read_sint()

static int ebml_read_sint ( AVIOContext pb,
int  size,
int64_t  default_value,
int64_t *  num 
)
static

Definition at line 1000 of file matroskadec.c.

◆ ebml_read_float()

static int ebml_read_float ( AVIOContext pb,
int  size,
double  default_value,
double num 
)
static

Definition at line 1023 of file matroskadec.c.

◆ ebml_read_ascii()

static int ebml_read_ascii ( AVIOContext pb,
int  size,
const char *  default_value,
char **  str 
)
static

Definition at line 1043 of file matroskadec.c.

◆ ebml_read_binary()

static int ebml_read_binary ( AVIOContext pb,
int  length,
int64_t  pos,
EbmlBin bin 
)
static

Definition at line 1074 of file matroskadec.c.

◆ ebml_read_master()

static int ebml_read_master ( MatroskaDemuxContext matroska,
uint64_t  length,
int64_t  pos 
)
static

Definition at line 1102 of file matroskadec.c.

◆ matroska_ebmlnum_sint()

static int matroska_ebmlnum_sint ( MatroskaDemuxContext matroska,
AVIOContext pb,
int64_t *  num 
)
static

Definition at line 1124 of file matroskadec.c.

◆ ebml_parse()

static int ebml_parse ( MatroskaDemuxContext matroska,
EbmlSyntax syntax,
void *  data 
)
static

Definition at line 1246 of file matroskadec.c.

◆ ebml_parse_id()

static EbmlSyntax* ebml_parse_id ( EbmlSyntax syntax,
uint32_t  id 
)
static

Definition at line 1143 of file matroskadec.c.

◆ ebml_parse_nest()

static int ebml_parse_nest ( MatroskaDemuxContext matroska,
EbmlSyntax syntax,
void *  data 
)
static

Definition at line 1156 of file matroskadec.c.

◆ is_ebml_id_valid()

static int is_ebml_id_valid ( uint32_t  id)
static

Definition at line 1199 of file matroskadec.c.

◆ matroska_find_level1_elem()

static MatroskaLevel1Element* matroska_find_level1_elem ( MatroskaDemuxContext matroska,
uint32_t  id,
int64_t  pos 
)
static

Definition at line 1212 of file matroskadec.c.

◆ ebml_free()

static void ebml_free ( EbmlSyntax syntax,
void *  data 
)
static

Definition at line 1565 of file matroskadec.c.

◆ matroska_probe()

static int matroska_probe ( const AVProbeData p)
static

Definition at line 1600 of file matroskadec.c.

◆ matroska_find_track_by_num()

static MatroskaTrack* matroska_find_track_by_num ( MatroskaDemuxContext matroska,
uint64_t  num 
)
static

Definition at line 1647 of file matroskadec.c.

◆ matroska_decode_buffer()

static int matroska_decode_buffer ( uint8_t **  buf,
int buf_size,
MatroskaTrack track 
)
static

Definition at line 1661 of file matroskadec.c.

◆ matroska_convert_tag()

static void matroska_convert_tag ( AVFormatContext s,
EbmlList list,
AVDictionary **  metadata,
char *  prefix 
)
static

Definition at line 1799 of file matroskadec.c.

◆ matroska_convert_tags()

static void matroska_convert_tags ( AVFormatContext s)
static

Definition at line 1834 of file matroskadec.c.

◆ matroska_parse_seekhead_entry()

static int matroska_parse_seekhead_entry ( MatroskaDemuxContext matroska,
int64_t  pos 
)
static

Definition at line 1899 of file matroskadec.c.

◆ matroska_execute_seekhead()

static void matroska_execute_seekhead ( MatroskaDemuxContext matroska)
static

Definition at line 1937 of file matroskadec.c.

◆ matroska_add_index_entries()

static void matroska_add_index_entries ( MatroskaDemuxContext matroska)
static

Definition at line 1975 of file matroskadec.c.

◆ matroska_parse_cues()

static void matroska_parse_cues ( MatroskaDemuxContext matroska)
static

Definition at line 2008 of file matroskadec.c.

◆ matroska_parse_content_encodings()

static int matroska_parse_content_encodings ( MatroskaTrackEncoding encodings,
unsigned  nb_encodings,
MatroskaTrack track,
char **  key_id_base64,
void *  logctx 
)
static

Definition at line 2027 of file matroskadec.c.

◆ matroska_aac_profile()

static int matroska_aac_profile ( char *  codec_id)
static

Definition at line 2101 of file matroskadec.c.

◆ matroska_aac_sri()

static int matroska_aac_sri ( int  samplerate)
static

Definition at line 2112 of file matroskadec.c.

◆ matroska_metadata_creation_time()

static void matroska_metadata_creation_time ( AVDictionary **  metadata,
int64_t  date_utc 
)
static

Definition at line 2122 of file matroskadec.c.

◆ matroska_parse_flac()

static int matroska_parse_flac ( AVFormatContext s,
MatroskaTrack track,
int offset 
)
static

Definition at line 2128 of file matroskadec.c.

◆ mkv_field_order()

static int mkv_field_order ( const MatroskaDemuxContext matroska,
uint64_t  field_order 
)
static

Definition at line 2183 of file matroskadec.c.

◆ mkv_stereo_mode_display_mul()

static void mkv_stereo_mode_display_mul ( int  stereo_mode,
int h_width,
int h_height 
)
static

Definition at line 2210 of file matroskadec.c.

◆ mkv_stereo3d_conv()

static int mkv_stereo3d_conv ( AVStream st,
MatroskaVideoStereoModeType  stereo_mode 
)
static

Definition at line 2235 of file matroskadec.c.

◆ mkv_parse_video_color()

static int mkv_parse_video_color ( AVStream st,
const MatroskaTrack track 
)
static

Definition at line 2264 of file matroskadec.c.

◆ mkv_create_display_matrix()

static int mkv_create_display_matrix ( AVStream st,
const MatroskaTrackVideoProjection proj,
void *  logctx 
)
static

Definition at line 2347 of file matroskadec.c.

◆ mkv_parse_video_projection()

static int mkv_parse_video_projection ( AVStream st,
const MatroskaTrack track,
void *  logctx 
)
static

Definition at line 2389 of file matroskadec.c.

◆ mkv_parse_dvcc_dvvc()

static int mkv_parse_dvcc_dvvc ( AVFormatContext s,
AVStream st,
const MatroskaTrack track,
EbmlBin bin 
)
static

Definition at line 2483 of file matroskadec.c.

◆ mkv_parse_block_addition_mappings()

static int mkv_parse_block_addition_mappings ( AVFormatContext s,
AVStream st,
MatroskaTrack track 
)
static

Definition at line 2489 of file matroskadec.c.

◆ get_qt_codec()

static int get_qt_codec ( MatroskaTrack track,
uint32_t *  fourcc,
enum AVCodecID codec_id 
)
static

Definition at line 2544 of file matroskadec.c.

◆ mka_parse_audio_codec()

static int mka_parse_audio_codec ( MatroskaTrack track,
AVCodecParameters par,
const MatroskaDemuxContext matroska,
AVFormatContext s,
int extradata_offset 
)
static

Definition at line 2583 of file matroskadec.c.

◆ mka_parse_audio()

static int mka_parse_audio ( MatroskaTrack track,
AVStream st,
AVCodecParameters par,
const MatroskaDemuxContext matroska,
AVFormatContext s,
int extradata_offset 
)
static

Definition at line 2813 of file matroskadec.c.

◆ mkv_parse_video_codec()

static int mkv_parse_video_codec ( MatroskaTrack track,
AVCodecParameters par,
const MatroskaDemuxContext matroska,
int extradata_offset 
)
static

Definition at line 2857 of file matroskadec.c.

◆ mkv_parse_video()

static int mkv_parse_video ( MatroskaTrack track,
AVStream st,
AVCodecParameters par,
const MatroskaDemuxContext matroska,
int extradata_offset 
)
static

Definition at line 2925 of file matroskadec.c.

◆ mkv_parse_subtitle_codec()

static int mkv_parse_subtitle_codec ( MatroskaTrack track,
AVStream st,
AVCodecParameters par,
const MatroskaDemuxContext matroska 
)
static

Definition at line 3025 of file matroskadec.c.

◆ matroska_parse_tracks()

static int matroska_parse_tracks ( AVFormatContext s)
static

Definition at line 3076 of file matroskadec.c.

◆ matroska_read_header()

static int matroska_read_header ( AVFormatContext s)
static

Definition at line 3253 of file matroskadec.c.

◆ matroska_deliver_packet()

static int matroska_deliver_packet ( MatroskaDemuxContext matroska,
AVPacket pkt 
)
static

Definition at line 3409 of file matroskadec.c.

◆ matroska_clear_queue()

static void matroska_clear_queue ( MatroskaDemuxContext matroska)
static

Definition at line 3436 of file matroskadec.c.

◆ matroska_parse_laces()

static int matroska_parse_laces ( MatroskaDemuxContext matroska,
uint8_t **  buf,
int  size,
int  type,
AVIOContext pb,
uint32_t  lace_size[256],
int laces 
)
static

Definition at line 3441 of file matroskadec.c.

◆ matroska_parse_rm_audio()

static int matroska_parse_rm_audio ( MatroskaDemuxContext matroska,
MatroskaTrack track,
AVStream st,
uint8_t *  data,
int  size,
uint64_t  timecode,
int64_t  pos 
)
static

Definition at line 3537 of file matroskadec.c.

◆ matroska_parse_wavpack()

static int matroska_parse_wavpack ( MatroskaTrack track,
uint8_t **  data,
int size 
)
static

Definition at line 3615 of file matroskadec.c.

◆ matroska_parse_prores()

static int matroska_parse_prores ( MatroskaTrack track,
uint8_t **  data,
int size 
)
static

Definition at line 3699 of file matroskadec.c.

◆ matroska_parse_webvtt()

static int matroska_parse_webvtt ( MatroskaDemuxContext matroska,
MatroskaTrack track,
AVStream st,
uint8_t *  data,
int  data_len,
uint64_t  timecode,
uint64_t  duration,
int64_t  pos 
)
static

Definition at line 3720 of file matroskadec.c.

◆ matroska_parse_block_additional()

static int matroska_parse_block_additional ( MatroskaDemuxContext matroska,
MatroskaTrack track,
AVPacket pkt,
const uint8_t *  data,
int  size,
uint64_t  id 
)
static

Definition at line 3835 of file matroskadec.c.

◆ matroska_parse_frame()

static int matroska_parse_frame ( MatroskaDemuxContext matroska,
MatroskaTrack track,
AVStream st,
AVBufferRef buf,
uint8_t *  data,
int  pkt_size,
uint64_t  timecode,
uint64_t  lace_duration,
int64_t  pos,
int  is_keyframe,
MatroskaBlockMore blockmore,
int  nb_blockmore,
int64_t  discard_padding 
)
static

Definition at line 3925 of file matroskadec.c.

◆ matroska_parse_block()

static int matroska_parse_block ( MatroskaDemuxContext matroska,
AVBufferRef buf,
uint8_t *  data,
int  size,
int64_t  pos,
uint64_t  cluster_time,
uint64_t  block_duration,
int  is_keyframe,
MatroskaBlockMore blockmore,
int  nb_blockmore,
int64_t  cluster_pos,
int64_t  discard_padding 
)
static

Definition at line 4046 of file matroskadec.c.

◆ matroska_parse_cluster()

static int matroska_parse_cluster ( MatroskaDemuxContext matroska)
static

Definition at line 4198 of file matroskadec.c.

◆ matroska_read_packet()

static int matroska_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 4252 of file matroskadec.c.

◆ matroska_read_seek()

static int matroska_read_seek ( AVFormatContext s,
int  stream_index,
int64_t  timestamp,
int  flags 
)
static

Definition at line 4272 of file matroskadec.c.

◆ matroska_read_close()

static int matroska_read_close ( AVFormatContext s)
static

Definition at line 4340 of file matroskadec.c.

Variable Documentation

◆ ebml_syntax

static EbmlSyntax ebml_syntax
static
Initial value:
= {
{ EBML_ID_HEADER, EBML_NEST, 0, 0, 0, { .n = ebml_header } },
{ 0 }
}

Definition at line 437 of file matroskadec.c.

◆ matroska_segment

static EbmlSyntax matroska_segment
static
Initial value:

Definition at line 437 of file matroskadec.c.

◆ matroska_track_video_color

static EbmlSyntax matroska_track_video_color
static

◆ matroska_track_video

static EbmlSyntax matroska_track_video
static

◆ matroska_track

static EbmlSyntax matroska_track
static

Definition at line 438 of file matroskadec.c.

◆ matroska_track_encoding

static EbmlSyntax matroska_track_encoding
static
Initial value:

Definition at line 438 of file matroskadec.c.

◆ matroska_track_encodings

static EbmlSyntax matroska_track_encodings
static
Initial value:

Definition at line 438 of file matroskadec.c.

◆ matroska_track_combine_planes

static EbmlSyntax matroska_track_combine_planes
static
Initial value:

Definition at line 439 of file matroskadec.c.

◆ matroska_track_operation

static EbmlSyntax matroska_track_operation
static
Initial value:

Definition at line 439 of file matroskadec.c.

◆ matroska_block_addition_mapping

static EbmlSyntax matroska_block_addition_mapping
static
Initial value:

Definition at line 439 of file matroskadec.c.

◆ matroska_tracks

static EbmlSyntax matroska_tracks
static
Initial value:
= {
}

Definition at line 439 of file matroskadec.c.

◆ matroska_attachments

static EbmlSyntax matroska_attachments
static
Initial value:

Definition at line 440 of file matroskadec.c.

◆ matroska_chapter_entry

static EbmlSyntax matroska_chapter_entry
static

◆ matroska_chapter

static EbmlSyntax matroska_chapter
static

◆ matroska_chapters

static EbmlSyntax matroska_chapters
static
Initial value:
= {
}

Definition at line 440 of file matroskadec.c.

◆ matroska_index_entry

static EbmlSyntax matroska_index_entry
static
Initial value:

Definition at line 441 of file matroskadec.c.

◆ matroska_index

static EbmlSyntax matroska_index
static
Initial value:
= {
}

Definition at line 441 of file matroskadec.c.

◆ matroska_tag

static EbmlSyntax matroska_tag
static
Initial value:
= {
}

Definition at line 441 of file matroskadec.c.

◆ matroska_tags

static EbmlSyntax matroska_tags
static
Initial value:
= {
{ MATROSKA_ID_TAG, EBML_NEST, 0, sizeof(MatroskaTags), 0x42, { .n = matroska_tag } },
}

Definition at line 441 of file matroskadec.c.

◆ matroska_seekhead

static EbmlSyntax matroska_seekhead
static
Initial value:

Definition at line 441 of file matroskadec.c.

◆ matroska_blockadditions

static EbmlSyntax matroska_blockadditions
static
Initial value:
= {
}

Definition at line 442 of file matroskadec.c.

◆ matroska_blockgroup

static EbmlSyntax matroska_blockgroup
static
Initial value:
= {
{ MATROSKA_ID_BLOCK, EBML_BIN, 0, 0, 0x42 },
{ 1, EBML_UINT, 0, 0, 0x42, { .u = 1 } },
}

Definition at line 442 of file matroskadec.c.

◆ matroska_cluster_parsing

static EbmlSyntax matroska_cluster_parsing
static

◆ ebml_header

EbmlSyntax ebml_header[]
static
Initial value:
= {
{ EBML_ID_EBMLREADVERSION, EBML_UINT, 0, 0, 0x42, { .u = EBML_VERSION } },
{ EBML_ID_EBMLMAXSIZELENGTH, EBML_UINT, 0, 0, 0x42, { .u = 8 } },
{ EBML_ID_EBMLMAXIDLENGTH, EBML_UINT, 0, 0, 0x42, { .u = 4 } },
{ EBML_ID_DOCTYPE, EBML_STR, 0, 0, 0x42, { .s = "(none)" } },
{ EBML_ID_DOCTYPEREADVERSION, EBML_UINT, 0, 0, 0x42, { .u = 1 } },
}

Definition at line 444 of file matroskadec.c.

◆ matroska_info

EbmlSyntax matroska_info[]
static
Initial value:
= {
{ MATROSKA_ID_TIMECODESCALE, EBML_UINT, 0, 0, 0x42, { .u = 1000000 } },
{ MATROSKA_ID_DURATION, EBML_FLOAT, 0, 0, 0x42 },
{ MATROSKA_ID_TITLE, EBML_UTF8, 0, 0, 0x42 },
{ MATROSKA_ID_MUXINGAPP, EBML_UTF8, 0, 0, 0x42 },
{ MATROSKA_ID_DATEUTC, EBML_BIN, 0, 0, 0x42 },
}

Definition at line 461 of file matroskadec.c.

◆ matroska_mastering_meta

EbmlSyntax matroska_mastering_meta[]
static

◆ matroska_track_video_projection

EbmlSyntax matroska_track_video_projection[]
static
Initial value:

Definition at line 504 of file matroskadec.c.

◆ matroska_track_audio

EbmlSyntax matroska_track_audio[]
static
Initial value:
= {
{ MATROSKA_ID_AUDIOSAMPLINGFREQ, EBML_FLOAT, 0, 0, 0x42, { .f = 8000.0 } },
{ MATROSKA_ID_AUDIOCHANNELS, EBML_UINT, 0, 0, 0x42, { .u = 1 } },
}

Definition at line 535 of file matroskadec.c.

◆ matroska_track_encoding_compression

EbmlSyntax matroska_track_encoding_compression[]
static
Initial value:

Definition at line 543 of file matroskadec.c.

◆ matroska_track_encoding_encryption

EbmlSyntax matroska_track_encoding_encryption[]
static

◆ matroska_track_plane

EbmlSyntax matroska_track_plane[]
static
Initial value:
= {
}

Definition at line 573 of file matroskadec.c.

◆ matroska_attachment

EbmlSyntax matroska_attachment[]
static
Initial value:
= {
{ MATROSKA_ID_FILEUID, EBML_UINT, 0, 0, 0x42 },
{ MATROSKA_ID_FILENAME, EBML_UTF8, 0, 0, 0x42 },
{ MATROSKA_ID_FILEDATA, EBML_BIN, 0, 0, 0x42 },
{ MATROSKA_ID_FILEDESC, EBML_UTF8, 0, 0, 0x42 },
}

Definition at line 638 of file matroskadec.c.

◆ matroska_chapter_display

EbmlSyntax matroska_chapter_display[]
static
Initial value:

Definition at line 652 of file matroskadec.c.

◆ matroska_index_pos

EbmlSyntax matroska_index_pos[]
static

◆ matroska_simpletag

EbmlSyntax matroska_simpletag[]
static
Initial value:
= {
{ MATROSKA_ID_TAGNAME, EBML_UTF8, 0, 0, 0x42 },
{ MATROSKA_ID_TAGSTRING, EBML_UTF8, 0, 0, 0x42 },
{ MATROSKA_ID_TAGLANG, EBML_STR, 0, 0, 0x42, { .s = "und" } },
}

Definition at line 705 of file matroskadec.c.

◆ matroska_tagtargets

EbmlSyntax matroska_tagtargets[]
static
Initial value:
= {
{ MATROSKA_ID_TAGTARGETS_TYPEVALUE, EBML_UINT, 0, 0, 0x42, { .u = 50 } },
{ MATROSKA_ID_TAGTARGETS_TRACKUID, EBML_UINT, 0, 0, 0x42, { .u = 0 } },
{ MATROSKA_ID_TAGTARGETS_CHAPTERUID, EBML_UINT, 0, 0, 0x42, { .u = 0 } },
{ MATROSKA_ID_TAGTARGETS_ATTACHUID, EBML_UINT, 0, 0, 0x42, { .u = 0 } },
}

Definition at line 715 of file matroskadec.c.

◆ matroska_seekhead_entry

EbmlSyntax matroska_seekhead_entry[]
static
Initial value:
= {
{ MATROSKA_ID_SEEKID, EBML_UINT, 0, 0, 0x42 },
{ MATROSKA_ID_SEEKPOSITION, EBML_UINT, 0, 0, 0x42, { .u = -1 } },
}

Definition at line 735 of file matroskadec.c.

◆ matroska_segments

EbmlSyntax matroska_segments[]
static
Initial value:
= {
{ 0 }
}

Definition at line 758 of file matroskadec.c.

◆ matroska_blockmore

EbmlSyntax matroska_blockmore[]
static
Initial value:

Definition at line 763 of file matroskadec.c.

◆ matroska_cluster_enter

EbmlSyntax matroska_cluster_enter[]
static
Initial value:
= {
{ 0 }
}

Definition at line 798 of file matroskadec.c.

◆ mkv_image_mime_tags

const CodecMime mkv_image_mime_tags[]
static
Initial value:
= {
{"image/gif" , AV_CODEC_ID_GIF},
{"image/jpeg" , AV_CODEC_ID_MJPEG},
{"image/png" , AV_CODEC_ID_PNG},
{"image/tiff" , AV_CODEC_ID_TIFF},
}

Definition at line 804 of file matroskadec.c.

◆ mkv_mime_tags

const CodecMime mkv_mime_tags[]
static
Initial value:
= {
{"application/x-truetype-font", AV_CODEC_ID_TTF},
{"application/x-font" , AV_CODEC_ID_TTF},
{"application/vnd.ms-opentype", AV_CODEC_ID_OTF},
{"binary" , AV_CODEC_ID_BIN_DATA},
}

Definition at line 813 of file matroskadec.c.

◆ matroska_video_stereo_plane

const char* const matroska_video_stereo_plane[MATROSKA_VIDEO_STEREO_PLANE_COUNT]
static
Initial value:
= {
"left",
"right",
"background",
}

Definition at line 822 of file matroskadec.c.

◆ matroska_doctypes

const char* const matroska_doctypes[] = { "matroska", "webm" }
static

Definition at line 828 of file matroskadec.c.

◆ ff_matroska_demuxer

const FFInputFormat ff_matroska_demuxer
Initial value:
= {
.p.name = "matroska,webm",
.p.long_name = NULL_IF_CONFIG_SMALL("Matroska / WebM"),
.p.extensions = "mkv,mk3d,mka,mks,webm",
.p.mime_type = "audio/webm,audio/x-matroska,video/webm,video/x-matroska",
.priv_data_size = sizeof(MatroskaDemuxContext),
.flags_internal = FF_INFMT_FLAG_INIT_CLEANUP,
}

Definition at line 4800 of file matroskadec.c.

MATROSKA_ID_ENCODINGENCRYPTION
#define MATROSKA_ID_ENCODINGENCRYPTION
Definition: matroska.h:183
MATROSKA_ID_TAGTARGETS_ATTACHUID
#define MATROSKA_ID_TAGTARGETS_ATTACHUID
Definition: matroska.h:225
MATROSKA_ID_CHAPCOUNTRY
#define MATROSKA_ID_CHAPCOUNTRY
Definition: matroska.h:268
MATROSKA_ID_VIDEODISPLAYUNIT
#define MATROSKA_ID_VIDEODISPLAYUNIT
Definition: matroska.h:125
MatroskaTag
Definition: matroskadec.c:317
MATROSKA_ID_CHAPSTRING
#define MATROSKA_ID_CHAPSTRING
Definition: matroska.h:266
MATROSKA_BLOCK_ADD_ID_OPAQUE
#define MATROSKA_BLOCK_ADD_ID_OPAQUE
Definition: matroska.h:368
MATROSKA_ID_ENCODINGSIGHASHALGO
#define MATROSKA_ID_ENCODINGSIGHASHALGO
Definition: matroska.h:188
MATROSKA_ID_TAGTARGETS
#define MATROSKA_ID_TAGTARGETS
Definition: matroska.h:220
MATROSKA_ID_CLUSTERTIMECODE
#define MATROSKA_ID_CLUSTERTIMECODE
Definition: matroska.h:235
matroska_attachment
static EbmlSyntax matroska_attachment[]
Definition: matroskadec.c:638
ebml_header
static EbmlSyntax ebml_header[]
Definition: matroskadec.c:444
MATROSKA_ID_TITLE
#define MATROSKA_ID_TITLE
Definition: matroska.h:67
MATROSKA_ID_VIDEOCOLORMASTERINGMETA
#define MATROSKA_ID_VIDEOCOLORMASTERINGMETA
Definition: matroska.h:149
EBML_BIN
@ EBML_BIN
Definition: matroskadec.c:95
MATROSKA_ID_CHAPTERFLAGENABLED
#define MATROSKA_ID_CHAPTERFLAGENABLED
Definition: matroska.h:275
MatroskaTrackPlane
Definition: matroskadec.c:236
EBML_ID_EBMLMAXSIZELENGTH
#define EBML_ID_EBMLMAXSIZELENGTH
Definition: matroska.h:38
MatroskaTags
Definition: matroskadec.c:333
EBML_STOP
@ EBML_STOP
Definition: matroskadec.c:98
MATROSKA_ID_VIDEOPIXELWIDTH
#define MATROSKA_ID_VIDEOPIXELWIDTH
Definition: matroska.h:119
MATROSKA_ID_AUDIOSAMPLINGFREQ
#define MATROSKA_ID_AUDIOSAMPLINGFREQ
Definition: matroska.h:169
MATROSKA_VIDEO_PROJECTION_TYPE_RECTANGULAR
@ MATROSKA_VIDEO_PROJECTION_TYPE_RECTANGULAR
Definition: matroska.h:354
matroska_track_combine_planes
static EbmlSyntax matroska_track_combine_planes[2]
Definition: matroskadec.c:439
MATROSKA_ID_DISCARDPADDING
#define MATROSKA_ID_DISCARDPADDING
Definition: matroska.h:250
matroska_cluster_parsing
static EbmlSyntax matroska_cluster_parsing[8]
Definition: matroskadec.c:442
MATROSKA_ID_EDITIONFLAGORDERED
#define MATROSKA_ID_EDITIONFLAGORDERED
Definition: matroska.h:272
MATROSKA_ID_DURATION
#define MATROSKA_ID_DURATION
Definition: matroska.h:66
MATROSKA_ID_VIDEOCOLORCHROMASITINGVERT
#define MATROSKA_ID_VIDEOCOLORCHROMASITINGVERT
Definition: matroska.h:141
matroska_read_header
static int matroska_read_header(AVFormatContext *s)
Definition: matroskadec.c:3253
MATROSKA_ID_VIDEOCOLORPRIMARIES
#define MATROSKA_ID_VIDEOCOLORPRIMARIES
Definition: matroska.h:145
matroska_chapters
static EbmlSyntax matroska_chapters[2]
Definition: matroskadec.c:440
MATROSKA_VIDEO_DISPLAYUNIT_PIXELS
@ MATROSKA_VIDEO_DISPLAYUNIT_PIXELS
Definition: matroska.h:332
MATROSKA_ID_ENCODINGSIGNATURE
#define MATROSKA_ID_ENCODINGSIGNATURE
Definition: matroska.h:190
MATROSKA_ID_SEGMENT
#define MATROSKA_ID_SEGMENT
Definition: matroska.h:52
MATROSKA_ID_BLKADDIDTYPE
#define MATROSKA_ID_BLKADDIDTYPE
Definition: matroska.h:195
MATROSKA_ID_CHAPTERS
#define MATROSKA_ID_CHAPTERS
Definition: matroska.h:62
MATROSKA_ID_VIDEOCOLOR_BY
#define MATROSKA_ID_VIDEOCOLOR_BY
Definition: matroska.h:155
MATROSKA_ID_BLOCKDURATION
#define MATROSKA_ID_BLOCKDURATION
Definition: matroska.h:247
MATROSKA_ID_VIDEOCOLORRANGE
#define MATROSKA_ID_VIDEOCOLORRANGE
Definition: matroska.h:142
MATROSKA_ID_BLOCK
#define MATROSKA_ID_BLOCK
Definition: matroska.h:246
matroska_tags
static EbmlSyntax matroska_tags[2]
Definition: matroskadec.c:441
MATROSKA_ID_TAGTARGETS_TYPE
#define MATROSKA_ID_TAGTARGETS_TYPE
Definition: matroska.h:221
MatroskaSeekhead
Definition: matroskadec.c:338
AVCOL_TRC_UNSPECIFIED
@ AVCOL_TRC_UNSPECIFIED
Definition: pixfmt.h:583
matroska_read_seek
static int matroska_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
Definition: matroskadec.c:4272
matroska_read_close
static int matroska_read_close(AVFormatContext *s)
Definition: matroskadec.c:4340
MATROSKA_ID_ENCODINGSCOPE
#define MATROSKA_ID_ENCODINGSCOPE
Definition: matroska.h:177
MATROSKA_ID_DATEUTC
#define MATROSKA_ID_DATEUTC
Definition: matroska.h:70
MATROSKA_ID_VIDEOCOLORCHROMASUBHORZ
#define MATROSKA_ID_VIDEOCOLORCHROMASUBHORZ
Definition: matroska.h:136
MatroskaTrackEncoding
Definition: matroskadec.c:158
MATROSKA_ID_VIDEOPIXELCROPT
#define MATROSKA_ID_VIDEOPIXELCROPT
Definition: matroska.h:122
MATROSKA_ID_VIDEOPIXELCROPB
#define MATROSKA_ID_VIDEOPIXELCROPB
Definition: matroska.h:121
MATROSKA_ID_VIDEOCOLORCBSUBVERT
#define MATROSKA_ID_VIDEOCOLORCBSUBVERT
Definition: matroska.h:139
MatroskaTrackVideoColor
Definition: matroskadec.c:178
MATROSKA_COLOUR_CHROMASITINGHORZ_UNDETERMINED
@ MATROSKA_COLOUR_CHROMASITINGHORZ_UNDETERMINED
Definition: matroska.h:340
MATROSKA_ID_CUES
#define MATROSKA_ID_CUES
Definition: matroska.h:57
matroska_blockadditions
static EbmlSyntax matroska_blockadditions[2]
Definition: matroskadec.c:442
MATROSKA_ID_CUETIME
#define MATROSKA_ID_CUETIME
Definition: matroska.h:202
matroska_read_packet
static int matroska_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: matroskadec.c:4252
MATROSKA_ID_CUERELATIVEPOSITION
#define MATROSKA_ID_CUERELATIVEPOSITION
Definition: matroska.h:208
MATROSKA_ID_CHAPLANG
#define MATROSKA_ID_CHAPLANG
Definition: matroska.h:267
MATROSKA_ID_CUEDURATION
#define MATROSKA_ID_CUEDURATION
Definition: matroska.h:209
MATROSKA_ID_VIDEOCOLORBITSPERCHANNEL
#define MATROSKA_ID_VIDEOCOLORBITSPERCHANNEL
Definition: matroska.h:135
matroska_segment
static EbmlSyntax matroska_segment[9]
Definition: matroskadec.c:437
AV_CODEC_ID_BIN_DATA
@ AV_CODEC_ID_BIN_DATA
Definition: codec_id.h:589
MatroskaDemuxContext
Definition: matroskadec.c:374
MATROSKA_ID_VIDEOCOLOR_LUMINANCEMAX
#define MATROSKA_ID_VIDEOCOLOR_LUMINANCEMAX
Definition: matroska.h:158
matroska_track_encoding_compression
static EbmlSyntax matroska_track_encoding_compression[]
Definition: matroskadec.c:543
MATROSKA_ID_VIDEOCOLOR_WHITEY
#define MATROSKA_ID_VIDEOCOLOR_WHITEY
Definition: matroska.h:157
MATROSKA_ID_AUDIOOUTSAMPLINGFREQ
#define MATROSKA_ID_AUDIOOUTSAMPLINGFREQ
Definition: matroska.h:170
MATROSKA_BLOCK_ADD_ID_TYPE_DEFAULT
@ MATROSKA_BLOCK_ADD_ID_TYPE_DEFAULT
Definition: matroska.h:361
MATROSKA_ID_VIDEOPROJECTIONPRIVATE
#define MATROSKA_ID_VIDEOPROJECTIONPRIVATE
Definition: matroska.h:163
MATROSKA_ID_ENCODINGSIGALGO
#define MATROSKA_ID_ENCODINGSIGALGO
Definition: matroska.h:187
MATROSKA_ID_VIDEOASPECTRATIO
#define MATROSKA_ID_VIDEOASPECTRATIO
Definition: matroska.h:130
read_seek
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
Definition: libcdio.c:151
MATROSKA_ID_CHAPTERDISPLAY
#define MATROSKA_ID_CHAPTERDISPLAY
Definition: matroska.h:265
MATROSKA_ID_ENCODINGSIGKEYID
#define MATROSKA_ID_ENCODINGSIGKEYID
Definition: matroska.h:189
EBML_ID_DOCTYPEVERSION
#define EBML_ID_DOCTYPEVERSION
Definition: matroska.h:40
read_close
static av_cold int read_close(AVFormatContext *ctx)
Definition: libcdio.c:143
MatroskaTrack
Definition: matroskadec.c:252
matroska_probe
static int matroska_probe(const AVProbeData *p)
Definition: matroskadec.c:1600
MATROSKA_ID_VIDEOALPHAMODE
#define MATROSKA_ID_VIDEOALPHAMODE
Definition: matroska.h:129
EBML_ID_DOCTYPE
#define EBML_ID_DOCTYPE
Definition: matroska.h:39
MATROSKA_ID_VIDEOCOLOR_WHITEX
#define MATROSKA_ID_VIDEOCOLOR_WHITEX
Definition: matroska.h:156
matroska_tag
static EbmlSyntax matroska_tag[3]
Definition: matroskadec.c:441
MATROSKA_ID_BLKADDIDNAME
#define MATROSKA_ID_BLKADDIDNAME
Definition: matroska.h:194
MATROSKA_ID_BLOCKADDITIONAL
#define MATROSKA_ID_BLOCKADDITIONAL
Definition: matroska.h:242
MATROSKA_ID_TRACKCONTENTENCODING
#define MATROSKA_ID_TRACKCONTENTENCODING
Definition: matroska.h:110
MATROSKA_ID_TAGDEFAULT_BUG
#define MATROSKA_ID_TAGDEFAULT_BUG
Definition: matroska.h:219
MATROSKA_ID_VIDEOFIELDORDER
#define MATROSKA_ID_VIDEOFIELDORDER
Definition: matroska.h:127
matroska_info
static EbmlSyntax matroska_info[]
Definition: matroskadec.c:461
MATROSKA_ID_VIDEOPIXELCROPR
#define MATROSKA_ID_VIDEOPIXELCROPR
Definition: matroska.h:124
MATROSKA_ID_TAGS
#define MATROSKA_ID_TAGS
Definition: matroska.h:58
matroska_index_entry
static EbmlSyntax matroska_index_entry[3]
Definition: matroskadec.c:441
AV_CODEC_ID_TTF
@ AV_CODEC_ID_TTF
Definition: codec_id.h:578
read_packet
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Definition: avio_read_callback.c:41
EBML_ID_EBMLMAXIDLENGTH
#define EBML_ID_EBMLMAXIDLENGTH
Definition: matroska.h:37
MATROSKA_COLOUR_CHROMASITINGVERT_UNDETERMINED
@ MATROSKA_COLOUR_CHROMASITINGVERT_UNDETERMINED
Definition: matroska.h:347
MATROSKA_ID_FILEUID
#define MATROSKA_ID_FILEUID
Definition: matroska.h:258
MATROSKA_ID_VIDEODISPLAYWIDTH
#define MATROSKA_ID_VIDEODISPLAYWIDTH
Definition: matroska.h:117
MATROSKA_ID_TAGNAME
#define MATROSKA_ID_TAGNAME
Definition: matroska.h:215
MatroskaChapter
Definition: matroskadec.c:298
MATROSKA_ID_TAG
#define MATROSKA_ID_TAG
Definition: matroska.h:213
MATROSKA_ID_TIMECODESCALE
#define MATROSKA_ID_TIMECODESCALE
Definition: matroska.h:65
MATROSKA_ID_CLUSTERPOSITION
#define MATROSKA_ID_CLUSTERPOSITION
Definition: matroska.h:236
MATROSKA_ID_CUETRACKPOSITION
#define MATROSKA_ID_CUETRACKPOSITION
Definition: matroska.h:203
MATROSKA_ID_SEEKENTRY
#define MATROSKA_ID_SEEKENTRY
Definition: matroska.h:228
MATROSKA_ID_SEGMENTUID
#define MATROSKA_ID_SEGMENTUID
Definition: matroska.h:71
matroska_track
static EbmlSyntax matroska_track[33]
Definition: matroskadec.c:438
matroska_track_video_projection
static EbmlSyntax matroska_track_video_projection[]
Definition: matroskadec.c:504
MATROSKA_ID_INFO
#define MATROSKA_ID_INFO
Definition: matroska.h:55
MATROSKA_ID_AUDIOCHANNELS
#define MATROSKA_ID_AUDIOCHANNELS
Definition: matroska.h:173
MATROSKA_ID_BLKADDIDVALUE
#define MATROSKA_ID_BLKADDIDVALUE
Definition: matroska.h:193
AVCOL_PRI_UNSPECIFIED
@ AVCOL_PRI_UNSPECIFIED
Definition: pixfmt.h:558
MATROSKA_ID_VIDEOSTEREOMODE
#define MATROSKA_ID_VIDEOSTEREOMODE
Definition: matroska.h:128
MATROSKA_ID_VIDEOCOLORSPACE
#define MATROSKA_ID_VIDEOCOLORSPACE
Definition: matroska.h:131
AV_CODEC_ID_PNG
@ AV_CODEC_ID_PNG
Definition: codec_id.h:113
FF_INFMT_FLAG_INIT_CLEANUP
#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
EBML_ID_DOCTYPEREADVERSION
#define EBML_ID_DOCTYPEREADVERSION
Definition: matroska.h:41
MATROSKA_ID_CODECSTATE
#define MATROSKA_ID_CODECSTATE
Definition: matroska.h:249
MATROSKA_ID_ENCODINGENCALGO
#define MATROSKA_ID_ENCODINGENCALGO
Definition: matroska.h:185
read_header
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:550
MATROSKA_ID_BLOCKGROUP
#define MATROSKA_ID_BLOCKGROUP
Definition: matroska.h:238
MATROSKA_ID_VIDEOCOLOR_LUMINANCEMIN
#define MATROSKA_ID_VIDEOCOLOR_LUMINANCEMIN
Definition: matroska.h:159
MATROSKA_ID_ATTACHMENTS
#define MATROSKA_ID_ATTACHMENTS
Definition: matroska.h:60
MATROSKA_ID_CHAPTERATOM
#define MATROSKA_ID_CHAPTERATOM
Definition: matroska.h:262
MATROSKA_ID_EDITIONUID
#define MATROSKA_ID_EDITIONUID
Definition: matroska.h:269
MATROSKA_ID_ENCODINGORDER
#define MATROSKA_ID_ENCODINGORDER
Definition: matroska.h:176
MATROSKA_ID_WRITINGAPP
#define MATROSKA_ID_WRITINGAPP
Definition: matroska.h:68
MATROSKA_ID_VIDEOCOLOR_GY
#define MATROSKA_ID_VIDEOCOLOR_GY
Definition: matroska.h:153
MATROSKA_ID_SIMPLETAG
#define MATROSKA_ID_SIMPLETAG
Definition: matroska.h:214
MATROSKA_ID_TRACKPLANEUID
#define MATROSKA_ID_TRACKPLANEUID
Definition: matroska.h:85
MATROSKA_ID_VIDEOPROJECTION
#define MATROSKA_ID_VIDEOPROJECTION
Definition: matroska.h:161
MATROSKA_ID_SEEKID
#define MATROSKA_ID_SEEKID
Definition: matroska.h:231
MATROSKA_ID_CHAPTERTIMESTART
#define MATROSKA_ID_CHAPTERTIMESTART
Definition: matroska.h:263
MATROSKA_ID_CUEBLOCKNUMBER
#define MATROSKA_ID_CUEBLOCKNUMBER
Definition: matroska.h:210
MATROSKA_ID_FILEMIMETYPE
#define MATROSKA_ID_FILEMIMETYPE
Definition: matroska.h:256
MATROSKA_ID_VIDEODISPLAYHEIGHT
#define MATROSKA_ID_VIDEODISPLAYHEIGHT
Definition: matroska.h:118
AVCOL_RANGE_UNSPECIFIED
@ AVCOL_RANGE_UNSPECIFIED
Definition: pixfmt.h:649
matroska_index_pos
static EbmlSyntax matroska_index_pos[]
Definition: matroskadec.c:685
EBML_STR
@ EBML_STR
Definition: matroskadec.c:93
MATROSKA_ID_VIDEOCOLORMAXCLL
#define MATROSKA_ID_VIDEOCOLORMAXCLL
Definition: matroska.h:146
MATROSKA_ID_TRACKENTRY
#define MATROSKA_ID_TRACKENTRY
Definition: matroska.h:74
matroska_track_encoding_encryption
static EbmlSyntax matroska_track_encoding_encryption[]
Definition: matroskadec.c:549
EBML_FLOAT
@ EBML_FLOAT
Definition: matroskadec.c:92
MATROSKA_ID_TAGDEFAULT
#define MATROSKA_ID_TAGDEFAULT
Definition: matroska.h:218
MATROSKA_ID_AUDIOBITDEPTH
#define MATROSKA_ID_AUDIOBITDEPTH
Definition: matroska.h:172
MATROSKA_ID_ENCODINGCOMPALGO
#define MATROSKA_ID_ENCODINGCOMPALGO
Definition: matroska.h:180
AV_CODEC_ID_OTF
@ AV_CODEC_ID_OTF
Definition: codec_id.h:585
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:106
MATROSKA_ID_VIDEOCOLOR_GX
#define MATROSKA_ID_VIDEOCOLOR_GX
Definition: matroska.h:152
EBML_NONE
@ EBML_NONE
Definition: matroskadec.c:89
MATROSKA_ID_FILEDATA
#define MATROSKA_ID_FILEDATA
Definition: matroska.h:257
MATROSKA_ID_VIDEOPROJECTIONPOSEPITCH
#define MATROSKA_ID_VIDEOPROJECTIONPOSEPITCH
Definition: matroska.h:165
MATROSKA_VIDEO_FIELDORDER_UNDETERMINED
@ MATROSKA_VIDEO_FIELDORDER_UNDETERMINED
Definition: matroska.h:306
MATROSKA_ID_BLOCKMORE
#define MATROSKA_ID_BLOCKMORE
Definition: matroska.h:240
AV_NOPTS_VALUE
#define AV_NOPTS_VALUE
Undefined timestamp value.
Definition: avutil.h:248
MATROSKA_ID_VIDEOCOLORMAXFALL
#define MATROSKA_ID_VIDEOCOLORMAXFALL
Definition: matroska.h:147
matroska_attachments
static EbmlSyntax matroska_attachments[2]
Definition: matroskadec.c:440
MATROSKA_ID_VIDEOCOLORCBSUBHORZ
#define MATROSKA_ID_VIDEOCOLORCBSUBHORZ
Definition: matroska.h:138
EBML_NEST
@ EBML_NEST
Definition: matroskadec.c:96
MATROSKA_ID_POINTENTRY
#define MATROSKA_ID_POINTENTRY
Definition: matroska.h:199
MATROSKA_ID_BLKADDIDEXTRADATA
#define MATROSKA_ID_BLKADDIDEXTRADATA
Definition: matroska.h:196
matroska_simpletag
static EbmlSyntax matroska_simpletag[]
Definition: matroskadec.c:705
MATROSKA_ID_ENCODINGTYPE
#define MATROSKA_ID_ENCODINGTYPE
Definition: matroska.h:178
EBML_SINT
@ EBML_SINT
Definition: matroskadec.c:91
MATROSKA_ID_VIDEOPIXELHEIGHT
#define MATROSKA_ID_VIDEOPIXELHEIGHT
Definition: matroska.h:120
MATROSKA_ID_VIDEOFRAMERATE
#define MATROSKA_ID_VIDEOFRAMERATE
Definition: matroska.h:116
EBML_UTF8
@ EBML_UTF8
Definition: matroskadec.c:94
MATROSKA_ID_MUXINGAPP
#define MATROSKA_ID_MUXINGAPP
Definition: matroska.h:69
MATROSKA_ID_EDITIONFLAGDEFAULT
#define MATROSKA_ID_EDITIONFLAGDEFAULT
Definition: matroska.h:271
MATROSKA_ID_TRACKPLANETYPE
#define MATROSKA_ID_TRACKPLANETYPE
Definition: matroska.h:86
MATROSKA_ID_FILEDESC
#define MATROSKA_ID_FILEDESC
Definition: matroska.h:254
AV_CODEC_ID_GIF
@ AV_CODEC_ID_GIF
Definition: codec_id.h:149
MATROSKA_ID_VIDEOPROJECTIONTYPE
#define MATROSKA_ID_VIDEOPROJECTIONTYPE
Definition: matroska.h:162
AV_CODEC_ID_MJPEG
@ AV_CODEC_ID_MJPEG
Definition: codec_id.h:59
MATROSKA_ID_FILENAME
#define MATROSKA_ID_FILENAME
Definition: matroska.h:255
AV_CODEC_ID_NONE
@ AV_CODEC_ID_NONE
Definition: codec_id.h:50
MatroskaIndexPos
Definition: matroskadec.c:307
matroska_tagtargets
static EbmlSyntax matroska_tagtargets[]
Definition: matroskadec.c:715
MATROSKA_ID_CUECLUSTERPOSITION
#define MATROSKA_ID_CUECLUSTERPOSITION
Definition: matroska.h:207
MATROSKA_TRACK_ENCODING_COMP_ZLIB
@ MATROSKA_TRACK_ENCODING_COMP_ZLIB
Definition: matroska.h:291
MATROSKA_ID_CHAPTERPHYSEQUIV
#define MATROSKA_ID_CHAPTERPHYSEQUIV
Definition: matroska.h:276
MATROSKA_ID_CUETRACK
#define MATROSKA_ID_CUETRACK
Definition: matroska.h:206
MATROSKA_ID_SEEKPOSITION
#define MATROSKA_ID_SEEKPOSITION
Definition: matroska.h:232
MATROSKA_ID_CLUSTER
#define MATROSKA_ID_CLUSTER
Definition: matroska.h:61
MATROSKA_ID_VIDEOFLAGINTERLACED
#define MATROSKA_ID_VIDEOFLAGINTERLACED
Definition: matroska.h:126
matroska_chapter
static EbmlSyntax matroska_chapter[6]
Definition: matroskadec.c:440
AVCOL_SPC_UNSPECIFIED
@ AVCOL_SPC_UNSPECIFIED
Definition: pixfmt.h:612
MATROSKA_ID_EDITIONFLAGHIDDEN
#define MATROSKA_ID_EDITIONFLAGHIDDEN
Definition: matroska.h:270
MATROSKA_ID_CHAPTERUID
#define MATROSKA_ID_CHAPTERUID
Definition: matroska.h:273
matroska_index
static EbmlSyntax matroska_index[2]
Definition: matroskadec.c:441
matroska_mastering_meta
static EbmlSyntax matroska_mastering_meta[]
Definition: matroskadec.c:472
MATROSKA_ID_VIDEOPROJECTIONPOSEYAW
#define MATROSKA_ID_VIDEOPROJECTIONPOSEYAW
Definition: matroska.h:164
matroska_track_video_color
static EbmlSyntax matroska_track_video_color[15]
Definition: matroskadec.c:437
MATROSKA_ID_TRACKCOMBINEPLANES
#define MATROSKA_ID_TRACKCOMBINEPLANES
Definition: matroska.h:83
matroska_blockmore
static EbmlSyntax matroska_blockmore[]
Definition: matroskadec.c:763
MATROSKA_ID_VIDEOCOLOR_BX
#define MATROSKA_ID_VIDEOCOLOR_BX
Definition: matroska.h:154
MATROSKA_ID_TAGSTRING
#define MATROSKA_ID_TAGSTRING
Definition: matroska.h:216
MATROSKA_ID_VIDEOCOLORMATRIXCOEFF
#define MATROSKA_ID_VIDEOCOLORMATRIXCOEFF
Definition: matroska.h:134
MatroskaAttachment
Definition: matroskadec.c:288
MATROSKA_ID_SIMPLEBLOCK
#define MATROSKA_ID_SIMPLEBLOCK
Definition: matroska.h:243
MATROSKA_ID_TRACKPLANE
#define MATROSKA_ID_TRACKPLANE
Definition: matroska.h:84
MATROSKA_ID_VIDEOPIXELCROPL
#define MATROSKA_ID_VIDEOPIXELCROPL
Definition: matroska.h:123
MatroskaIndex
Definition: matroskadec.c:312
MATROSKA_ID_EDITIONENTRY
#define MATROSKA_ID_EDITIONENTRY
Definition: matroska.h:261
matroska_seekhead_entry
static EbmlSyntax matroska_seekhead_entry[]
Definition: matroskadec.c:735
matroska_seekhead
static EbmlSyntax matroska_seekhead[2]
Definition: matroskadec.c:441
EBML_ID_HEADER
#define EBML_ID_HEADER
Definition: matroska.h:32
matroska_blockgroup
static EbmlSyntax matroska_blockgroup[8]
Definition: matroskadec.c:442
MATROSKA_ID_TAGTARGETS_TYPEVALUE
#define MATROSKA_ID_TAGTARGETS_TYPEVALUE
Definition: matroska.h:222
EBML_ID_EBMLVERSION
#define EBML_ID_EBMLVERSION
Definition: matroska.h:35
MATROSKA_ID_CLUSTERPREVSIZE
#define MATROSKA_ID_CLUSTERPREVSIZE
Definition: matroska.h:237
MATROSKA_ID_TAGLANG
#define MATROSKA_ID_TAGLANG
Definition: matroska.h:217
MATROSKA_ID_VIDEOCOLOR
#define MATROSKA_ID_VIDEOCOLOR
Definition: matroska.h:132
matroska_tracks
static EbmlSyntax matroska_tracks[2]
Definition: matroskadec.c:439
MATROSKA_ID_VIDEOCOLORTRANSFERCHARACTERISTICS
#define MATROSKA_ID_VIDEOCOLORTRANSFERCHARACTERISTICS
Definition: matroska.h:143
MATROSKA_ID_VIDEOCOLOR_RX
#define MATROSKA_ID_VIDEOCOLOR_RX
Definition: matroska.h:150
MATROSKA_ID_VIDEOCOLORCHROMASUBVERT
#define MATROSKA_ID_VIDEOCOLORCHROMASUBVERT
Definition: matroska.h:137
EBML_UINT
@ EBML_UINT
Definition: matroskadec.c:90
MATROSKA_ID_VIDEOCOLORCHROMASITINGHORZ
#define MATROSKA_ID_VIDEOCOLORCHROMASITINGHORZ
Definition: matroska.h:140
MATROSKA_ID_BLOCKREFERENCE
#define MATROSKA_ID_BLOCKREFERENCE
Definition: matroska.h:248
read_probe
static int read_probe(const AVProbeData *p)
Definition: cdg.c:30
MATROSKA_ID_VIDEOCOLOR_RY
#define MATROSKA_ID_VIDEOCOLOR_RY
Definition: matroska.h:151
MATROSKA_VIDEO_STEREOMODE_TYPE_NB
@ MATROSKA_VIDEO_STEREOMODE_TYPE_NB
Definition: matroska.h:328
MatroskaBlockMore
Definition: matroskadec.c:348
EBML_VERSION
#define EBML_VERSION
Definition: matroska.h:29
EBML_ID_EBMLREADVERSION
#define EBML_ID_EBMLREADVERSION
Definition: matroska.h:36
MATROSKA_ID_ENCODINGENCAESSETTINGS
#define MATROSKA_ID_ENCODINGENCAESSETTINGS
Definition: matroska.h:184
MATROSKA_ID_CHAPTERFLAGHIDDEN
#define MATROSKA_ID_CHAPTERFLAGHIDDEN
Definition: matroska.h:274
MATROSKA_ID_ATTACHEDFILE
#define MATROSKA_ID_ATTACHEDFILE
Definition: matroska.h:253
matroska_track_plane
static EbmlSyntax matroska_track_plane[]
Definition: matroskadec.c:573
MATROSKA_ID_ENCODINGCOMPRESSION
#define MATROSKA_ID_ENCODINGCOMPRESSION
Definition: matroska.h:179
MATROSKA_ID_TAGTARGETS_TRACKUID
#define MATROSKA_ID_TAGTARGETS_TRACKUID
Definition: matroska.h:223
MATROSKA_ID_CHAPTERTIMEEND
#define MATROSKA_ID_CHAPTERTIMEEND
Definition: matroska.h:264
matroska_track_encoding
static EbmlSyntax matroska_track_encoding[6]
Definition: matroskadec.c:438
matroska_chapter_display
static EbmlSyntax matroska_chapter_display[]
Definition: matroskadec.c:652
MATROSKA_ID_TRACKS
#define MATROSKA_ID_TRACKS
Definition: matroska.h:56
MATROSKA_ID_ENCODINGENCKEYID
#define MATROSKA_ID_ENCODINGENCKEYID
Definition: matroska.h:186
AV_CODEC_ID_TIFF
@ AV_CODEC_ID_TIFF
Definition: codec_id.h:148
MATROSKA_ID_ENCODINGCOMPSETTINGS
#define MATROSKA_ID_ENCODINGCOMPSETTINGS
Definition: matroska.h:181
MATROSKA_ID_SEEKHEAD
#define MATROSKA_ID_SEEKHEAD
Definition: matroska.h:59
EBML_LEVEL1
@ EBML_LEVEL1
Definition: matroskadec.c:97
MATROSKA_ID_VIDEOPROJECTIONPOSEROLL
#define MATROSKA_ID_VIDEOPROJECTIONPOSEROLL
Definition: matroska.h:166
MATROSKA_ID_BLOCKADDID
#define MATROSKA_ID_BLOCKADDID
Definition: matroska.h:241
MATROSKA_ID_TAGTARGETS_CHAPTERUID
#define MATROSKA_ID_TAGTARGETS_CHAPTERUID
Definition: matroska.h:224
matroska_chapter_entry
static EbmlSyntax matroska_chapter_entry[9]
Definition: matroskadec.c:440
MATROSKA_ID_BLOCKADDITIONS
#define MATROSKA_ID_BLOCKADDITIONS
Definition: matroska.h:239
MATROSKA_VIDEO_INTERLACE_FLAG_UNDETERMINED
@ MATROSKA_VIDEO_INTERLACE_FLAG_UNDETERMINED
Definition: matroska.h:298