FFmpeg  4.4.4
Data Structures | Macros | Enumerations | Functions | Variables
matroskadec.c File Reference

Matroska file demuxer. More...

#include "config.h"
#include <inttypes.h>
#include <stdio.h>
#include "libavutil/avstring.h"
#include "libavutil/base64.h"
#include "libavutil/dict.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/time_internal.h"
#include "libavutil/spherical.h"
#include "libavcodec/bytestream.h"
#include "libavcodec/flac.h"
#include "libavcodec/mpeg4audio.h"
#include "libavcodec/packet_internal.h"
#include "avformat.h"
#include "avio_internal.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  MatroskaTrack
 
struct  MatroskaAttachment
 
struct  MatroskaChapter
 
struct  MatroskaIndexPos
 
struct  MatroskaIndex
 
struct  MatroskaTag
 
struct  MatroskaTagTarget
 
struct  MatroskaTags
 
struct  MatroskaSeekhead
 
struct  MatroskaLevel
 
struct  MatroskaBlock
 
struct  MatroskaCluster
 
struct  MatroskaLevel1Element
 
struct  MatroskaDemuxContext
 
struct  CueDesc
 

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 OFFSET(x)   offsetof(MatroskaDemuxContext, x)
 

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
}
 

Functions

static int matroska_read_close (AVFormatContext *s)
 
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_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 (MatroskaDemuxContext *matroska, int64_t field_order)
 
static void mkv_stereo_mode_display_mul (int stereo_mode, int *h_width, int *h_height)
 
static int mkv_parse_video_color (AVStream *st, const MatroskaTrack *track)
 
static int mkv_parse_video_projection (AVStream *st, const MatroskaTrack *track, void *logctx)
 
static int get_qt_codec (MatroskaTrack *track, uint32_t *fourcc, enum AVCodecID *codec_id)
 
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_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, uint8_t *additional, uint64_t additional_id, int additional_size, 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, uint8_t *additional, uint64_t additional_id, int additional_size, 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 CueDesc get_cue_desc (AVFormatContext *s, int64_t ts, int64_t cues_start)
 
static int webm_clusters_start_with_keyframe (AVFormatContext *s)
 
static int buffer_size_after_time_downloaded (int64_t time_ns, double search_sec, int64_t bps, double min_buffer, double *buffer, double *sec_to_download, AVFormatContext *s, int64_t cues_start)
 
static int64_t webm_dash_manifest_compute_bandwidth (AVFormatContext *s, int64_t cues_start)
 
static int webm_dash_manifest_cues (AVFormatContext *s, int64_t init_range)
 
static int webm_dash_manifest_read_header (AVFormatContext *s)
 
static int webm_dash_manifest_read_packet (AVFormatContext *s, AVPacket *pkt)
 

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 [32]
 
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_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_doctypes [] = { "matroska", "webm" }
 
static const AVOption options []
 
static const AVClass webm_dash_class
 
AVInputFormat ff_matroska_demuxer
 
AVInputFormat ff_webm_dash_manifest_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 72 of file matroskadec.c.

◆ NEEDS_CHECKING

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

Definition at line 73 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 74 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 75 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 76 of file matroskadec.c.

◆ CHILD_OF

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

Definition at line 406 of file matroskadec.c.

◆ OFFSET

#define OFFSET (   x)    offsetof(MatroskaDemuxContext, x)

Definition at line 4327 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 

Definition at line 78 of file matroskadec.c.

Function Documentation

◆ matroska_read_close()

static int matroska_read_close ( AVFormatContext s)
static

Definition at line 3903 of file matroskadec.c.

◆ matroska_reset_status()

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

Definition at line 796 of file matroskadec.c.

◆ matroska_resync()

static int matroska_resync ( MatroskaDemuxContext matroska,
int64_t  last_pos 
)
static

Definition at line 817 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 864 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 929 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 942 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 963 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 986 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 1006 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 1037 of file matroskadec.c.

◆ ebml_read_master()

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

Definition at line 1065 of file matroskadec.c.

◆ matroska_ebmlnum_sint()

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

Definition at line 1087 of file matroskadec.c.

◆ ebml_parse()

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

Definition at line 1209 of file matroskadec.c.

◆ ebml_parse_id()

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

Definition at line 1106 of file matroskadec.c.

◆ ebml_parse_nest()

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

Definition at line 1119 of file matroskadec.c.

◆ is_ebml_id_valid()

static int is_ebml_id_valid ( uint32_t  id)
static

Definition at line 1162 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 1175 of file matroskadec.c.

◆ ebml_free()

static void ebml_free ( EbmlSyntax syntax,
void data 
)
static

Definition at line 1528 of file matroskadec.c.

◆ matroska_probe()

static int matroska_probe ( const AVProbeData p)
static

Definition at line 1563 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 1610 of file matroskadec.c.

◆ matroska_decode_buffer()

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

Definition at line 1624 of file matroskadec.c.

◆ matroska_convert_tag()

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

Definition at line 1764 of file matroskadec.c.

◆ matroska_convert_tags()

static void matroska_convert_tags ( AVFormatContext s)
static

Definition at line 1799 of file matroskadec.c.

◆ matroska_parse_seekhead_entry()

static int matroska_parse_seekhead_entry ( MatroskaDemuxContext matroska,
int64_t  pos 
)
static

Definition at line 1864 of file matroskadec.c.

◆ matroska_execute_seekhead()

static void matroska_execute_seekhead ( MatroskaDemuxContext matroska)
static

Definition at line 1902 of file matroskadec.c.

◆ matroska_add_index_entries()

static void matroska_add_index_entries ( MatroskaDemuxContext matroska)
static

Definition at line 1940 of file matroskadec.c.

◆ matroska_parse_cues()

static void matroska_parse_cues ( MatroskaDemuxContext matroska)
static

Definition at line 1973 of file matroskadec.c.

◆ matroska_aac_profile()

static int matroska_aac_profile ( char *  codec_id)
static

Definition at line 1992 of file matroskadec.c.

◆ matroska_aac_sri()

static int matroska_aac_sri ( int  samplerate)
static

Definition at line 2003 of file matroskadec.c.

◆ matroska_metadata_creation_time()

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

Definition at line 2013 of file matroskadec.c.

◆ matroska_parse_flac()

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

Definition at line 2019 of file matroskadec.c.

◆ mkv_field_order()

static int mkv_field_order ( MatroskaDemuxContext matroska,
int64_t  field_order 
)
static

Definition at line 2074 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 2101 of file matroskadec.c.

◆ mkv_parse_video_color()

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

Definition at line 2126 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 2210 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 2307 of file matroskadec.c.

◆ matroska_parse_tracks()

static int matroska_parse_tracks ( AVFormatContext s)
static

Definition at line 2335 of file matroskadec.c.

◆ matroska_read_header()

static int matroska_read_header ( AVFormatContext s)
static

Definition at line 2903 of file matroskadec.c.

◆ matroska_deliver_packet()

static int matroska_deliver_packet ( MatroskaDemuxContext matroska,
AVPacket pkt 
)
static

Definition at line 3070 of file matroskadec.c.

◆ matroska_clear_queue()

static void matroska_clear_queue ( MatroskaDemuxContext matroska)
static

Definition at line 3097 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 3102 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 3198 of file matroskadec.c.

◆ matroska_parse_wavpack()

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

Definition at line 3276 of file matroskadec.c.

◆ matroska_parse_prores()

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

Definition at line 3360 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 3381 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,
uint8_t additional,
uint64_t  additional_id,
int  additional_size,
int64_t  discard_padding 
)
static

Definition at line 3496 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,
uint8_t additional,
uint64_t  additional_id,
int  additional_size,
int64_t  cluster_pos,
int64_t  discard_padding 
)
static

Definition at line 3613 of file matroskadec.c.

◆ matroska_parse_cluster()

static int matroska_parse_cluster ( MatroskaDemuxContext matroska)
static

Definition at line 3763 of file matroskadec.c.

◆ matroska_read_packet()

static int matroska_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 3819 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 3839 of file matroskadec.c.

◆ get_cue_desc()

static CueDesc get_cue_desc ( AVFormatContext s,
int64_t  ts,
int64_t  cues_start 
)
static

Definition at line 3931 of file matroskadec.c.

Referenced by webm_dash_manifest_compute_bandwidth().

◆ webm_clusters_start_with_keyframe()

static int webm_clusters_start_with_keyframe ( AVFormatContext s)
static

Definition at line 3962 of file matroskadec.c.

◆ buffer_size_after_time_downloaded()

static int buffer_size_after_time_downloaded ( int64_t  time_ns,
double  search_sec,
int64_t  bps,
double  min_buffer,
double *  buffer,
double *  sec_to_download,
AVFormatContext s,
int64_t  cues_start 
)
static

Definition at line 4008 of file matroskadec.c.

Referenced by webm_dash_manifest_compute_bandwidth().

◆ webm_dash_manifest_compute_bandwidth()

static int64_t webm_dash_manifest_compute_bandwidth ( AVFormatContext s,
int64_t  cues_start 
)
static

Definition at line 4089 of file matroskadec.c.

◆ webm_dash_manifest_cues()

static int webm_dash_manifest_cues ( AVFormatContext s,
int64_t  init_range 
)
static

Definition at line 4182 of file matroskadec.c.

◆ webm_dash_manifest_read_header()

static int webm_dash_manifest_read_header ( AVFormatContext s)
static

Definition at line 4262 of file matroskadec.c.

◆ webm_dash_manifest_read_packet()

static int webm_dash_manifest_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 4322 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 }
}
#define EBML_ID_HEADER
Definition: matroska.h:33
#define MATROSKA_ID_SEGMENT
Definition: matroska.h:53
@ EBML_NEST
Definition: matroskadec.c:86
@ EBML_STOP
Definition: matroskadec.c:88
static EbmlSyntax ebml_header[]
Definition: matroskadec.c:419

Definition at line 412 of file matroskadec.c.

◆ matroska_segment

static EbmlSyntax matroska_segment
static
Initial value:
= {
{ MATROSKA_ID_INFO, EBML_LEVEL1, 0, 0, 0, { .n = matroska_info } },
{ MATROSKA_ID_CUES, EBML_LEVEL1, 0, 0, 0, { .n = matroska_index } },
{ MATROSKA_ID_TAGS, EBML_LEVEL1, 0, 0, 0, { .n = matroska_tags } },
{ 0 }
}
#define MATROSKA_ID_CHAPTERS
Definition: matroska.h:63
#define MATROSKA_ID_ATTACHMENTS
Definition: matroska.h:61
#define MATROSKA_ID_SEEKHEAD
Definition: matroska.h:60
#define MATROSKA_ID_INFO
Definition: matroska.h:56
#define MATROSKA_ID_TAGS
Definition: matroska.h:59
#define MATROSKA_ID_CLUSTER
Definition: matroska.h:62
#define MATROSKA_ID_TRACKS
Definition: matroska.h:57
#define MATROSKA_ID_CUES
Definition: matroska.h:58
static EbmlSyntax matroska_attachments[2]
Definition: matroskadec.c:415
@ EBML_LEVEL1
Definition: matroskadec.c:87
static EbmlSyntax matroska_chapters[2]
Definition: matroskadec.c:415
static EbmlSyntax matroska_info[]
Definition: matroskadec.c:436
static EbmlSyntax matroska_index[2]
Definition: matroskadec.c:416
static EbmlSyntax matroska_tags[2]
Definition: matroskadec.c:416
static EbmlSyntax matroska_seekhead[2]
Definition: matroskadec.c:416
static EbmlSyntax matroska_tracks[2]
Definition: matroskadec.c:414

Definition at line 412 of file matroskadec.c.

◆ matroska_track_video_color

static EbmlSyntax matroska_track_video_color
static
Initial value:
= {
{ MATROSKA_ID_VIDEOCOLORBITSPERCHANNEL, EBML_UINT, 0, 0, 0x42, { .u = 0 } },
}
#define MATROSKA_ID_VIDEOCOLORCBSUBVERT
Definition: matroska.h:139
#define MATROSKA_ID_VIDEOCOLORMAXFALL
Definition: matroska.h:147
#define MATROSKA_ID_VIDEOCOLORCBSUBHORZ
Definition: matroska.h:138
#define MATROSKA_ID_VIDEOCOLORTRANSFERCHARACTERISTICS
Definition: matroska.h:143
#define MATROSKA_ID_VIDEOCOLORCHROMASITINGHORZ
Definition: matroska.h:140
@ MATROSKA_COLOUR_CHROMASITINGHORZ_UNDETERMINED
Definition: matroska.h:334
#define MATROSKA_ID_VIDEOCOLORCHROMASITINGVERT
Definition: matroska.h:141
#define MATROSKA_ID_VIDEOCOLORMASTERINGMETA
Definition: matroska.h:149
#define MATROSKA_ID_VIDEOCOLORCHROMASUBHORZ
Definition: matroska.h:136
#define MATROSKA_ID_VIDEOCOLORBITSPERCHANNEL
Definition: matroska.h:135
#define MATROSKA_ID_VIDEOCOLORCHROMASUBVERT
Definition: matroska.h:137
#define MATROSKA_ID_VIDEOCOLORRANGE
Definition: matroska.h:142
#define MATROSKA_ID_VIDEOCOLORMAXCLL
Definition: matroska.h:146
#define MATROSKA_ID_VIDEOCOLORPRIMARIES
Definition: matroska.h:145
#define MATROSKA_ID_VIDEOCOLORMATRIXCOEFF
Definition: matroska.h:134
@ MATROSKA_COLOUR_CHROMASITINGVERT_UNDETERMINED
Definition: matroska.h:341
@ EBML_UINT
Definition: matroskadec.c:80
static EbmlSyntax matroska_mastering_meta[]
Definition: matroskadec.c:447
@ AVCOL_RANGE_UNSPECIFIED
Definition: pixfmt.h:552
@ AVCOL_PRI_UNSPECIFIED
Definition: pixfmt.h:461
@ AVCOL_TRC_UNSPECIFIED
Definition: pixfmt.h:486
@ AVCOL_SPC_UNSPECIFIED
Definition: pixfmt.h:515

Definition at line 412 of file matroskadec.c.

◆ matroska_track_video

static EbmlSyntax matroska_track_video
static
Initial value:
= {
{ MATROSKA_ID_VIDEODISPLAYWIDTH, EBML_UINT, 0, 0, 0x42, { .u=-1 } },
{ MATROSKA_ID_VIDEODISPLAYHEIGHT, EBML_UINT, 0, 0, 0x42, { .u=-1 } },
{ MATROSKA_ID_VIDEOALPHAMODE, EBML_UINT, 0, 0, 0x42, { .u = 0 } },
}
@ MATROSKA_VIDEO_STEREOMODE_TYPE_NB
Definition: matroska.h:322
#define MATROSKA_ID_VIDEOSTEREOMODE
Definition: matroska.h:128
#define MATROSKA_ID_VIDEOPIXELWIDTH
Definition: matroska.h:119
#define MATROSKA_ID_VIDEOFIELDORDER
Definition: matroska.h:127
#define MATROSKA_ID_VIDEOALPHAMODE
Definition: matroska.h:129
#define MATROSKA_ID_VIDEOCOLORSPACE
Definition: matroska.h:131
#define MATROSKA_ID_VIDEODISPLAYUNIT
Definition: matroska.h:125
#define MATROSKA_ID_VIDEOPIXELHEIGHT
Definition: matroska.h:120
#define MATROSKA_ID_VIDEOPIXELCROPL
Definition: matroska.h:123
@ MATROSKA_VIDEO_INTERLACE_FLAG_UNDETERMINED
Definition: matroska.h:292
@ MATROSKA_VIDEO_FIELDORDER_UNDETERMINED
Definition: matroska.h:300
#define MATROSKA_ID_VIDEODISPLAYHEIGHT
Definition: matroska.h:118
#define MATROSKA_ID_VIDEOFRAMERATE
Definition: matroska.h:116
#define MATROSKA_ID_VIDEOFLAGINTERLACED
Definition: matroska.h:126
#define MATROSKA_ID_VIDEOASPECTRATIO
Definition: matroska.h:130
#define MATROSKA_ID_VIDEOPIXELCROPB
Definition: matroska.h:121
#define MATROSKA_ID_VIDEOCOLOR
Definition: matroska.h:132
#define MATROSKA_ID_VIDEODISPLAYWIDTH
Definition: matroska.h:117
#define MATROSKA_ID_VIDEOPROJECTION
Definition: matroska.h:161
#define MATROSKA_ID_VIDEOPIXELCROPT
Definition: matroska.h:122
@ MATROSKA_VIDEO_DISPLAYUNIT_PIXELS
Definition: matroska.h:326
#define MATROSKA_ID_VIDEOPIXELCROPR
Definition: matroska.h:124
@ EBML_FLOAT
Definition: matroskadec.c:82
@ EBML_NONE
Definition: matroskadec.c:79
@ EBML_BIN
Definition: matroskadec.c:85
static EbmlSyntax matroska_track_video_projection[]
Definition: matroskadec.c:479
static EbmlSyntax matroska_track_video_color[15]
Definition: matroskadec.c:412

Definition at line 412 of file matroskadec.c.

◆ matroska_track

static EbmlSyntax matroska_track
static

Definition at line 413 of file matroskadec.c.

◆ matroska_track_encoding

static EbmlSyntax matroska_track_encoding
static
Initial value:
= {
{ MATROSKA_ID_ENCODINGSCOPE, EBML_UINT, 0, 0, 0x42, { .u = 1 } },
{ MATROSKA_ID_ENCODINGTYPE, EBML_UINT, 0, 0, 0x42, { .u = 0 } },
}
#define MATROSKA_ID_ENCODINGTYPE
Definition: matroska.h:178
#define MATROSKA_ID_ENCODINGENCRYPTION
Definition: matroska.h:183
#define MATROSKA_ID_ENCODINGCOMPRESSION
Definition: matroska.h:179
#define MATROSKA_ID_ENCODINGORDER
Definition: matroska.h:176
#define MATROSKA_ID_ENCODINGSCOPE
Definition: matroska.h:177
static EbmlSyntax matroska_track_encoding_compression[]
Definition: matroskadec.c:518
static EbmlSyntax matroska_track_encoding_encryption[]
Definition: matroskadec.c:524

Definition at line 413 of file matroskadec.c.

◆ matroska_track_encodings

static EbmlSyntax matroska_track_encodings
static
Initial value:
= {
}
#define MATROSKA_ID_TRACKCONTENTENCODING
Definition: matroska.h:111
static EbmlSyntax matroska_track_encoding[6]
Definition: matroskadec.c:413

Definition at line 413 of file matroskadec.c.

◆ matroska_track_combine_planes

static EbmlSyntax matroska_track_combine_planes
static
Initial value:
= {
}
#define MATROSKA_ID_TRACKPLANE
Definition: matroska.h:85
static EbmlSyntax matroska_track_plane[]
Definition: matroskadec.c:548

Definition at line 414 of file matroskadec.c.

◆ matroska_track_operation

static EbmlSyntax matroska_track_operation
static
Initial value:
= {
}
#define MATROSKA_ID_TRACKCOMBINEPLANES
Definition: matroska.h:84
static EbmlSyntax matroska_track_combine_planes[2]
Definition: matroskadec.c:414

Definition at line 414 of file matroskadec.c.

◆ matroska_tracks

static EbmlSyntax matroska_tracks
static
Initial value:
= {
}
#define MATROSKA_ID_TRACKENTRY
Definition: matroska.h:75
static EbmlSyntax matroska_track[32]
Definition: matroskadec.c:413

Definition at line 414 of file matroskadec.c.

◆ matroska_attachments

static EbmlSyntax matroska_attachments
static
Initial value:
= {
}
#define MATROSKA_ID_ATTACHEDFILE
Definition: matroska.h:247
static EbmlSyntax matroska_attachment[]
Definition: matroskadec.c:604

Definition at line 415 of file matroskadec.c.

◆ matroska_chapter_entry

static EbmlSyntax matroska_chapter_entry
static
Initial value:
= {
}
#define AV_NOPTS_VALUE
Undefined timestamp value.
Definition: avutil.h:248
#define MATROSKA_ID_CHAPTERFLAGENABLED
Definition: matroska.h:269
#define MATROSKA_ID_CHAPTERATOM
Definition: matroska.h:256
#define MATROSKA_ID_CHAPTERTIMESTART
Definition: matroska.h:257
#define MATROSKA_ID_CHAPTERPHYSEQUIV
Definition: matroska.h:270
#define MATROSKA_ID_CHAPTERFLAGHIDDEN
Definition: matroska.h:268
#define MATROSKA_ID_CHAPTERTIMEEND
Definition: matroska.h:258
#define MATROSKA_ID_CHAPTERUID
Definition: matroska.h:267
#define MATROSKA_ID_CHAPTERDISPLAY
Definition: matroska.h:259
static EbmlSyntax matroska_chapter_display[]
Definition: matroskadec.c:618

Definition at line 415 of file matroskadec.c.

◆ matroska_chapter

static EbmlSyntax matroska_chapter
static
Initial value:
= {
}
#define MATROSKA_ID_EDITIONFLAGORDERED
Definition: matroska.h:266
#define MATROSKA_ID_EDITIONFLAGDEFAULT
Definition: matroska.h:265
#define MATROSKA_ID_EDITIONUID
Definition: matroska.h:263
#define MATROSKA_ID_EDITIONFLAGHIDDEN
Definition: matroska.h:264
static EbmlSyntax matroska_chapter_entry[9]
Definition: matroskadec.c:415

Definition at line 415 of file matroskadec.c.

◆ matroska_chapters

static EbmlSyntax matroska_chapters
static
Initial value:
= {
}
#define MATROSKA_ID_EDITIONENTRY
Definition: matroska.h:255
static EbmlSyntax matroska_chapter[6]
Definition: matroskadec.c:415

Definition at line 415 of file matroskadec.c.

◆ matroska_index_entry

static EbmlSyntax matroska_index_entry
static
Initial value:
= {
{ MATROSKA_ID_CUETIME, EBML_UINT, 0, 0, 0x42 },
}
#define MATROSKA_ID_CUETIME
Definition: matroska.h:196
#define MATROSKA_ID_CUETRACKPOSITION
Definition: matroska.h:197
static EbmlSyntax matroska_index_pos[]
Definition: matroskadec.c:651

Definition at line 416 of file matroskadec.c.

◆ matroska_index

static EbmlSyntax matroska_index
static
Initial value:
= {
}
#define MATROSKA_ID_POINTENTRY
Definition: matroska.h:193
static EbmlSyntax matroska_index_entry[3]
Definition: matroskadec.c:416

Definition at line 416 of file matroskadec.c.

◆ matroska_tag

static EbmlSyntax matroska_tag
static
Initial value:
= {
}
#define MATROSKA_ID_TAGTARGETS
Definition: matroska.h:214
#define MATROSKA_ID_SIMPLETAG
Definition: matroska.h:208
static EbmlSyntax matroska_tagtargets[]
Definition: matroskadec.c:681
static EbmlSyntax matroska_simpletag[]
Definition: matroskadec.c:671

Definition at line 416 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 } },
}
#define MATROSKA_ID_TAG
Definition: matroska.h:207
static EbmlSyntax matroska_tag[3]
Definition: matroskadec.c:416

Definition at line 416 of file matroskadec.c.

◆ matroska_seekhead

static EbmlSyntax matroska_seekhead
static
Initial value:
= {
}
#define MATROSKA_ID_SEEKENTRY
Definition: matroska.h:222
static EbmlSyntax matroska_seekhead_entry[]
Definition: matroskadec.c:701

Definition at line 416 of file matroskadec.c.

◆ matroska_blockadditions

static EbmlSyntax matroska_blockadditions
static
Initial value:
= {
}
#define MATROSKA_ID_BLOCKMORE
Definition: matroska.h:234
static EbmlSyntax matroska_blockmore[]
Definition: matroskadec.c:729

Definition at line 417 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 } },
}
#define MATROSKA_ID_DISCARDPADDING
Definition: matroska.h:244
#define MATROSKA_ID_BLOCKDURATION
Definition: matroska.h:241
#define MATROSKA_ID_BLOCK
Definition: matroska.h:240
#define MATROSKA_ID_BLOCKREFERENCE
Definition: matroska.h:242
#define MATROSKA_ID_CODECSTATE
Definition: matroska.h:243
#define MATROSKA_ID_BLOCKADDITIONS
Definition: matroska.h:233
@ EBML_SINT
Definition: matroskadec.c:81
static EbmlSyntax matroska_blockadditions[2]
Definition: matroskadec.c:417

Definition at line 417 of file matroskadec.c.

◆ matroska_cluster_parsing

static EbmlSyntax matroska_cluster_parsing
static
Initial value:
= {
}
#define MATROSKA_ID_CLUSTERPOSITION
Definition: matroska.h:230
#define MATROSKA_ID_CLUSTERPREVSIZE
Definition: matroska.h:231
#define MATROSKA_ID_SIMPLEBLOCK
Definition: matroska.h:237
#define MATROSKA_ID_BLOCKGROUP
Definition: matroska.h:232
#define MATROSKA_ID_CLUSTERTIMECODE
Definition: matroska.h:229
static EbmlSyntax matroska_blockgroup[8]
Definition: matroskadec.c:417

Definition at line 417 of file matroskadec.c.

◆ 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 } },
}
#define EBML_ID_DOCTYPE
Definition: matroska.h:40
#define EBML_ID_EBMLVERSION
Definition: matroska.h:36
#define EBML_ID_DOCTYPEVERSION
Definition: matroska.h:41
#define EBML_VERSION
Definition: matroska.h:30
#define EBML_ID_DOCTYPEREADVERSION
Definition: matroska.h:42
#define EBML_ID_EBMLMAXIDLENGTH
Definition: matroska.h:38
#define EBML_ID_EBMLMAXSIZELENGTH
Definition: matroska.h:39
#define EBML_ID_EBMLREADVERSION
Definition: matroska.h:37
@ EBML_STR
Definition: matroskadec.c:83

Definition at line 419 of file matroskadec.c.

Referenced by mkv_write_header().

◆ 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 },
}
#define MATROSKA_ID_TIMECODESCALE
Definition: matroska.h:66
#define MATROSKA_ID_TITLE
Definition: matroska.h:68
#define MATROSKA_ID_MUXINGAPP
Definition: matroska.h:70
#define MATROSKA_ID_DATEUTC
Definition: matroska.h:71
#define MATROSKA_ID_SEGMENTUID
Definition: matroska.h:72
#define MATROSKA_ID_DURATION
Definition: matroska.h:67
#define MATROSKA_ID_WRITINGAPP
Definition: matroska.h:69
@ EBML_UTF8
Definition: matroskadec.c:84

Definition at line 436 of file matroskadec.c.

◆ matroska_mastering_meta

EbmlSyntax matroska_mastering_meta[]
static
Initial value:
= {
}
#define MATROSKA_ID_VIDEOCOLOR_LUMINANCEMIN
Definition: matroska.h:159
#define MATROSKA_ID_VIDEOCOLOR_GY
Definition: matroska.h:153
#define MATROSKA_ID_VIDEOCOLOR_BY
Definition: matroska.h:155
#define MATROSKA_ID_VIDEOCOLOR_RY
Definition: matroska.h:151
#define MATROSKA_ID_VIDEOCOLOR_BX
Definition: matroska.h:154
#define MATROSKA_ID_VIDEOCOLOR_LUMINANCEMAX
Definition: matroska.h:158
#define MATROSKA_ID_VIDEOCOLOR_RX
Definition: matroska.h:150
#define MATROSKA_ID_VIDEOCOLOR_WHITEY
Definition: matroska.h:157
#define MATROSKA_ID_VIDEOCOLOR_WHITEX
Definition: matroska.h:156
#define MATROSKA_ID_VIDEOCOLOR_GX
Definition: matroska.h:152

Definition at line 447 of file matroskadec.c.

◆ matroska_track_video_projection

EbmlSyntax matroska_track_video_projection[]
static
Initial value:
= {
{ MATROSKA_ID_VIDEOPROJECTIONPOSEYAW, EBML_FLOAT, 0, 0, 0x42, { .f = 0.0 } },
{ MATROSKA_ID_VIDEOPROJECTIONPOSEPITCH, EBML_FLOAT, 0, 0, 0x42, { .f = 0.0 } },
{ MATROSKA_ID_VIDEOPROJECTIONPOSEROLL, EBML_FLOAT, 0, 0, 0x42, { .f = 0.0 } },
}
#define MATROSKA_ID_VIDEOPROJECTIONPOSEROLL
Definition: matroska.h:166
#define MATROSKA_ID_VIDEOPROJECTIONTYPE
Definition: matroska.h:162
#define MATROSKA_ID_VIDEOPROJECTIONPRIVATE
Definition: matroska.h:163
@ MATROSKA_VIDEO_PROJECTION_TYPE_RECTANGULAR
Definition: matroska.h:348
#define MATROSKA_ID_VIDEOPROJECTIONPOSEYAW
Definition: matroska.h:164
#define MATROSKA_ID_VIDEOPROJECTIONPOSEPITCH
Definition: matroska.h:165

Definition at line 479 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 } },
}
#define MATROSKA_ID_AUDIOOUTSAMPLINGFREQ
Definition: matroska.h:170
#define MATROSKA_ID_AUDIOCHANNELS
Definition: matroska.h:173
#define MATROSKA_ID_AUDIOBITDEPTH
Definition: matroska.h:172
#define MATROSKA_ID_AUDIOSAMPLINGFREQ
Definition: matroska.h:169

Definition at line 510 of file matroskadec.c.

◆ matroska_track_encoding_compression

EbmlSyntax matroska_track_encoding_compression[]
static
Initial value:
= {
}
@ MATROSKA_TRACK_ENCODING_COMP_ZLIB
Definition: matroska.h:285
#define MATROSKA_ID_ENCODINGCOMPALGO
Definition: matroska.h:180
#define MATROSKA_ID_ENCODINGCOMPSETTINGS
Definition: matroska.h:181

Definition at line 518 of file matroskadec.c.

◆ matroska_track_encoding_encryption

EbmlSyntax matroska_track_encoding_encryption[]
static
Initial value:
= {
{ MATROSKA_ID_ENCODINGENCALGO, EBML_UINT, 0, 0, 0x42, {.u = 0} },
}
#define MATROSKA_ID_ENCODINGSIGALGO
Definition: matroska.h:187
#define MATROSKA_ID_ENCODINGENCAESSETTINGS
Definition: matroska.h:184
#define MATROSKA_ID_ENCODINGENCKEYID
Definition: matroska.h:186
#define MATROSKA_ID_ENCODINGSIGKEYID
Definition: matroska.h:189
#define MATROSKA_ID_ENCODINGSIGHASHALGO
Definition: matroska.h:188
#define MATROSKA_ID_ENCODINGENCALGO
Definition: matroska.h:185
#define MATROSKA_ID_ENCODINGSIGNATURE
Definition: matroska.h:190

Definition at line 524 of file matroskadec.c.

◆ matroska_track_plane

EbmlSyntax matroska_track_plane[]
static
Initial value:
= {
}
#define MATROSKA_ID_TRACKPLANEUID
Definition: matroska.h:86
#define MATROSKA_ID_TRACKPLANETYPE
Definition: matroska.h:87

Definition at line 548 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 },
}
#define MATROSKA_ID_FILEMIMETYPE
Definition: matroska.h:250
#define MATROSKA_ID_FILEUID
Definition: matroska.h:252
#define MATROSKA_ID_FILEDESC
Definition: matroska.h:248
#define MATROSKA_ID_FILENAME
Definition: matroska.h:249
#define MATROSKA_ID_FILEDATA
Definition: matroska.h:251

Definition at line 604 of file matroskadec.c.

◆ matroska_chapter_display

EbmlSyntax matroska_chapter_display[]
static
Initial value:
= {
}
#define MATROSKA_ID_CHAPCOUNTRY
Definition: matroska.h:262
#define MATROSKA_ID_CHAPSTRING
Definition: matroska.h:260
#define MATROSKA_ID_CHAPLANG
Definition: matroska.h:261

Definition at line 618 of file matroskadec.c.

◆ matroska_index_pos

EbmlSyntax matroska_index_pos[]
static
Initial value:
= {
{ MATROSKA_ID_CUETRACK, EBML_UINT, 0, 0, 0x42 },
}
#define MATROSKA_ID_CUERELATIVEPOSITION
Definition: matroska.h:202
#define MATROSKA_ID_CUETRACK
Definition: matroska.h:200
#define MATROSKA_ID_CUEDURATION
Definition: matroska.h:203
#define MATROSKA_ID_CUEBLOCKNUMBER
Definition: matroska.h:204
#define MATROSKA_ID_CUECLUSTERPOSITION
Definition: matroska.h:201

Definition at line 651 of file matroskadec.c.

◆ 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" } },
}
#define MATROSKA_ID_TAGDEFAULT_BUG
Definition: matroska.h:213
#define MATROSKA_ID_TAGLANG
Definition: matroska.h:211
#define MATROSKA_ID_TAGSTRING
Definition: matroska.h:210
#define MATROSKA_ID_TAGNAME
Definition: matroska.h:209
#define MATROSKA_ID_TAGDEFAULT
Definition: matroska.h:212

Definition at line 671 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 } },
}
#define MATROSKA_ID_TAGTARGETS_TYPEVALUE
Definition: matroska.h:216
#define MATROSKA_ID_TAGTARGETS_TYPE
Definition: matroska.h:215
#define MATROSKA_ID_TAGTARGETS_CHAPTERUID
Definition: matroska.h:218
#define MATROSKA_ID_TAGTARGETS_TRACKUID
Definition: matroska.h:217
#define MATROSKA_ID_TAGTARGETS_ATTACHUID
Definition: matroska.h:219

Definition at line 681 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 } },
}
#define MATROSKA_ID_SEEKID
Definition: matroska.h:225
#define MATROSKA_ID_SEEKPOSITION
Definition: matroska.h:226

Definition at line 701 of file matroskadec.c.

◆ matroska_segments

EbmlSyntax matroska_segments[]
static
Initial value:
= {
{ 0 }
}
static EbmlSyntax matroska_segment[9]
Definition: matroskadec.c:412

Definition at line 724 of file matroskadec.c.

◆ matroska_blockmore

EbmlSyntax matroska_blockmore[]
static
Initial value:
= {
{ MATROSKA_ID_BLOCKADDID, EBML_UINT, 0, 0, 0x42, { .u = 1 } },
}
#define MATROSKA_ID_BLOCKADDITIONAL
Definition: matroska.h:236
#define MATROSKA_ID_BLOCKADDID
Definition: matroska.h:235

Definition at line 729 of file matroskadec.c.

◆ matroska_cluster_enter

EbmlSyntax matroska_cluster_enter[]
static
Initial value:
= {
{ 0 }
}
static EbmlSyntax matroska_cluster_parsing[8]
Definition: matroskadec.c:417

Definition at line 764 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},
}
@ AV_CODEC_ID_PNG
Definition: codec_id.h:110
@ AV_CODEC_ID_GIF
Definition: codec_id.h:146
@ AV_CODEC_ID_NONE
Definition: codec_id.h:47
@ AV_CODEC_ID_TIFF
Definition: codec_id.h:145
@ AV_CODEC_ID_MJPEG
Definition: codec_id.h:56

Definition at line 770 of file matroskadec.c.

◆ mkv_mime_tags

const CodecMime mkv_mime_tags[]
static
Initial value:
= {
{"text/plain" , AV_CODEC_ID_TEXT},
{"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},
}
@ AV_CODEC_ID_TEXT
raw UTF-8 text
Definition: codec_id.h:525
@ AV_CODEC_ID_TTF
Definition: codec_id.h:553
@ AV_CODEC_ID_BIN_DATA
Definition: codec_id.h:564
@ AV_CODEC_ID_OTF
Definition: codec_id.h:560

Definition at line 779 of file matroskadec.c.

◆ matroska_doctypes

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

Definition at line 789 of file matroskadec.c.

◆ options

const AVOption options[]
static
Initial value:
= {
{ "live", "flag indicating that the input is a live file that only has the headers.", OFFSET(is_live), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_DECODING_PARAM },
{ "bandwidth", "bandwidth of this stream to be specified in the DASH manifest.", OFFSET(bandwidth), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
{ NULL },
}
#define NULL
Definition: coverity.c:32
@ AV_OPT_TYPE_INT
Definition: opt.h:225
@ AV_OPT_TYPE_BOOL
Definition: opt.h:242
#define OFFSET(x)
Definition: matroskadec.c:4327
#define AV_OPT_FLAG_DECODING_PARAM
a generic parameter which can be set by the user for demuxing or decoding
Definition: opt.h:279

Definition at line 4328 of file matroskadec.c.

◆ webm_dash_class

const AVClass webm_dash_class
static
Initial value:
= {
.class_name = "WebM DASH Manifest demuxer",
.item_name = av_default_item_name,
.option = options,
}
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:235
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
static const AVOption options[]
Definition: matroskadec.c:4328

Definition at line 4334 of file matroskadec.c.

◆ ff_matroska_demuxer

AVInputFormat ff_matroska_demuxer
Initial value:
= {
.name = "matroska,webm",
.long_name = NULL_IF_CONFIG_SMALL("Matroska / WebM"),
.extensions = "mkv,mk3d,mka,mks,webm",
.priv_data_size = sizeof(MatroskaDemuxContext),
.mime_type = "audio/webm,audio/x-matroska,video/webm,video/x-matroska"
}
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Definition: avio_reading.c:42
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:545
static int read_probe(const AVProbeData *pd)
Definition: jvdec.c:55
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:117
static av_cold int read_close(AVFormatContext *ctx)
Definition: libcdio.c:145
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
Definition: libcdio.c:153
static int matroska_read_close(AVFormatContext *s)
Definition: matroskadec.c:3903
static int matroska_read_header(AVFormatContext *s)
Definition: matroskadec.c:2903
static int matroska_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
Definition: matroskadec.c:3839
static int matroska_probe(const AVProbeData *p)
Definition: matroskadec.c:1563
static int matroska_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: matroskadec.c:3819

Definition at line 4341 of file matroskadec.c.

◆ ff_webm_dash_manifest_demuxer

AVInputFormat ff_webm_dash_manifest_demuxer
Initial value:
= {
.name = "webm_dash_manifest",
.long_name = NULL_IF_CONFIG_SMALL("WebM DASH Manifest"),
.priv_data_size = sizeof(MatroskaDemuxContext),
.priv_class = &webm_dash_class,
}
static int webm_dash_manifest_read_header(AVFormatContext *s)
Definition: matroskadec.c:4262
static const AVClass webm_dash_class
Definition: matroskadec.c:4334
static int webm_dash_manifest_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: matroskadec.c:4322

Definition at line 4354 of file matroskadec.c.