xine-lib 1.2.13-20230125hg15249
Macros | Functions
demux_matroska.c File Reference
#include <ctype.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <zlib.h>
#include "group_video.h"
#include <xine/xine_internal.h>
#include <xine/xineutils.h>
#include <xine/demux.h>
#include <xine/buffer.h>
#include "bswap.h"
#include "ebml.h"
#include "matroska.h"
#include "demux_matroska.h"

Macros

#define LOG_MODULE   "demux_matroska"
 
#define LOG_VERBOSE
 
#define LITERAL_UTF_8_LEN   5
 
#define LITERAL_UTF_8_SIZE   6
 
#define LITERAL_UTF_8   "utf-8"
 
#define AAC_SYNC_EXTENSION_TYPE   0x02b7
 

Functions

static void check_newpts (demux_matroska_t *this, int64_t pts, matroska_track_t *track)
 
static int add_top_level_entry (demux_matroska_t *this, off_t pos)
 
static int find_top_level_entry (demux_matroska_t *this, off_t pos)
 
static int parse_info (demux_matroska_t *this)
 
static int parse_video_track (demux_matroska_t *this, matroska_video_track_t *vt)
 
static int parse_audio_track (demux_matroska_t *this, matroska_audio_track_t *at)
 
static int parse_content_compression (demux_matroska_t *this, matroska_track_t *track)
 
static int parse_content_encoding (demux_matroska_t *this, matroska_track_t *track)
 
static int parse_content_encodings (demux_matroska_t *this, matroska_track_t *track)
 
static void init_codec_video (demux_matroska_t *this, matroska_track_t *track)
 
static void init_codec_audio (demux_matroska_t *this, matroska_track_t *track)
 
static void init_codec_real (demux_matroska_t *this, matroska_track_t *track)
 
static void init_codec_xiph (demux_matroska_t *this, matroska_track_t *track)
 
static int aac_get_sr_index (uint32_t sample_rate)
 
static void init_codec_aac (demux_matroska_t *this, matroska_track_t *track)
 
static int vobsub_parse_size (matroska_track_t *t, const char *start)
 
static int vobsub_parse_palette (matroska_track_t *t, const char *start)
 
static int vobsub_parse_custom_colors (matroska_track_t *t, const char *start)
 
static int vobsub_parse_forced_subs (matroska_track_t *t, const char *start)
 
static void init_codec_vobsub (demux_matroska_t *this, matroska_track_t *track)
 
static void init_codec_dvbsub (demux_matroska_t *this, matroska_track_t *track)
 
static void init_codec_spu (demux_matroska_t *this, matroska_track_t *track)
 
static void handle_realvideo (demux_plugin_t *this_gen, matroska_track_t *track, int decoder_flags, uint8_t *data, size_t data_len, int64_t data_pts, int data_duration, int input_normpos, int input_time)
 
static void handle_sub_ssa (demux_plugin_t *this_gen, matroska_track_t *track, int decoder_flags, uint8_t *data, size_t data_len, int64_t data_pts, int data_duration, int input_normpos, int input_time)
 
static void handle_sub_utf8 (demux_plugin_t *this_gen, matroska_track_t *track, int decoder_flags, uint8_t *data, size_t data_len, int64_t data_pts, int data_duration, int input_normpos, int input_time)
 
static int vp9_frametype (const uint8_t *h)
 
static void handle_vp9 (demux_plugin_t *this_gen, matroska_track_t *track, int decoder_flags, uint8_t *data, size_t data_len, int64_t data_pts, int data_duration, int input_normpos, int input_time)
 
static int uncompress_zlib (demux_matroska_t *this, const uint8_t *data, size_t data_len, uint8_t **out_data, size_t *out_data_len)
 
static void handle_vobsub (demux_plugin_t *this_gen, matroska_track_t *track, int decoder_flags, uint8_t *data, size_t data_len, int64_t data_pts, int data_duration, int input_normpos, int input_time)
 
static void handle_dvbsub (demux_plugin_t *this_gen, matroska_track_t *track, int decoder_flags, uint8_t *data, size_t data_len, int64_t data_pts, int data_duration, int input_normpos, int input_time)
 
static void handle_hdmv_pgs (demux_plugin_t *this_gen, matroska_track_t *track, int decoder_flags, uint8_t *data, size_t data_len, int64_t data_pts, int data_duration, int input_normpos, int input_time)
 
static void handle_hdmv_textst (demux_plugin_t *this_gen, matroska_track_t *track, int decoder_flags, uint8_t *data, size_t data_len, int64_t data_pts, int data_duration, int input_normpos, int input_time)
 
static void fill_extra_data (matroska_track_t *track, uint32_t fourcc)
 
static int parse_track_entry (demux_matroska_t *this, matroska_track_t *track)
 
static int parse_tracks (demux_matroska_t *this)
 
static int parse_cue_trackposition (demux_matroska_t *this, int *track_num, int64_t *pos)
 
static int parse_cue_point (demux_matroska_t *this)
 
static int parse_cues (demux_matroska_t *this)
 
static int parse_attachments (demux_matroska_t *this)
 
static int parse_tags (demux_matroska_t *this)
 
static void alloc_block_data (demux_matroska_t *this, size_t len)
 
static int parse_ebml_uint (demux_matroska_t *this, uint8_t *data, uint64_t *num)
 
static int parse_ebml_sint (demux_matroska_t *this, uint8_t *data, int64_t *num)
 
static int find_track_by_id (demux_matroska_t *this, int track_num, matroska_track_t **track)
 
static int read_block_data (demux_matroska_t *this, size_t len, size_t offset)
 
static int parse_int16 (uint8_t *data)
 
static int parse_block (demux_matroska_t *this, size_t block_size, uint64_t cluster_timecode, uint64_t block_duration, int normpos, int is_key)
 
static int parse_simpleblock (demux_matroska_t *this, size_t block_len, uint64_t cluster_timecode, uint64_t block_duration)
 
static int parse_block_group (demux_matroska_t *this, uint64_t cluster_timecode, uint64_t cluster_duration)
 
static int demux_matroska_seek (demux_plugin_t *, off_t, int, int)
 
static void handle_events (demux_matroska_t *this)
 
static int parse_cluster (demux_matroska_t *this)
 
static int parse_top_level_head (demux_matroska_t *this, int *next_level)
 
static int parse_seek_entry (demux_matroska_t *this)
 
static int parse_seekhead (demux_matroska_t *this)
 
static int parse_top_level (demux_matroska_t *this, int *next_level)
 
static int parse_segment (demux_matroska_t *this)
 
static int demux_matroska_send_chunk (demux_plugin_t *this_gen)
 
static int demux_matroska_get_status (demux_plugin_t *this_gen)
 
static void demux_matroska_send_headers (demux_plugin_t *this_gen)
 
static int binary_seek (matroska_index_t *index, off_t start_pos, int start_time)
 
static void demux_matroska_dispose (demux_plugin_t *this_gen)
 
static int demux_matroska_get_stream_length (demux_plugin_t *this_gen)
 
static uint32_t demux_matroska_get_capabilities (demux_plugin_t *this_gen)
 
static int demux_matroska_get_optional_data (demux_plugin_t *this_gen, void *data, int data_type)
 
static demux_plugin_topen_plugin (demux_class_t *class_gen, xine_stream_t *stream, input_plugin_t *input)
 
void * demux_matroska_init_class (xine_t *xine, const void *data)
 

Macro Definition Documentation

◆ AAC_SYNC_EXTENSION_TYPE

#define AAC_SYNC_EXTENSION_TYPE   0x02b7

Referenced by init_codec_aac().

◆ LITERAL_UTF_8

#define LITERAL_UTF_8   "utf-8"

◆ LITERAL_UTF_8_LEN

#define LITERAL_UTF_8_LEN   5

◆ LITERAL_UTF_8_SIZE

#define LITERAL_UTF_8_SIZE   6

◆ LOG_MODULE

#define LOG_MODULE   "demux_matroska"

◆ LOG_VERBOSE

#define LOG_VERBOSE

Function Documentation

◆ aac_get_sr_index()

static int aac_get_sr_index ( uint32_t sample_rate)
static

Referenced by init_codec_aac().

◆ add_top_level_entry()

static int add_top_level_entry ( demux_matroska_t * this,
off_t pos )
static

References lprintf, and NULL.

Referenced by parse_top_level_head().

◆ alloc_block_data()

static void alloc_block_data ( demux_matroska_t * this,
size_t len )
static

Referenced by read_block_data().

◆ binary_seek()

static int binary_seek ( matroska_index_t * index,
off_t start_pos,
int start_time )
static

◆ check_newpts()

static void check_newpts ( demux_matroska_t * this,
int64_t pts,
matroska_track_t * track )
static

◆ demux_matroska_dispose()

static void demux_matroska_dispose ( demux_plugin_t * this_gen)
static

◆ demux_matroska_get_capabilities()

static uint32_t demux_matroska_get_capabilities ( demux_plugin_t * this_gen)
static

◆ demux_matroska_get_optional_data()

static int demux_matroska_get_optional_data ( demux_plugin_t * this_gen,
void * data,
int data_type )
static

◆ demux_matroska_get_status()

static int demux_matroska_get_status ( demux_plugin_t * this_gen)
static

Referenced by open_plugin().

◆ demux_matroska_get_stream_length()

static int demux_matroska_get_stream_length ( demux_plugin_t * this_gen)
static

Referenced by open_plugin().

◆ demux_matroska_init_class()

void * demux_matroska_init_class ( xine_t * xine,
const void * data )

◆ demux_matroska_seek()

static int demux_matroska_seek ( demux_plugin_t * this_gen,
off_t start_pos,
int start_time,
int playing )
static

◆ demux_matroska_send_chunk()

static int demux_matroska_send_chunk ( demux_plugin_t * this_gen)
static

References DEMUX_FINISHED, and parse_top_level().

Referenced by open_plugin().

◆ demux_matroska_send_headers()

static void demux_matroska_send_headers ( demux_plugin_t * this_gen)
static

◆ fill_extra_data()

static void fill_extra_data ( matroska_track_t * track,
uint32_t fourcc )
static

◆ find_top_level_entry()

static int find_top_level_entry ( demux_matroska_t * this,
off_t pos )
static

Referenced by parse_top_level_head().

◆ find_track_by_id()

static int find_track_by_id ( demux_matroska_t * this,
int track_num,
matroska_track_t ** track )
static

References NULL.

Referenced by demux_matroska_seek(), and parse_block().

◆ handle_dvbsub()

static void handle_dvbsub ( demux_plugin_t * this_gen,
matroska_track_t * track,
int decoder_flags,
uint8_t * data,
size_t data_len,
int64_t data_pts,
int data_duration,
int input_normpos,
int input_time )
static

◆ handle_events()

static void handle_events ( demux_matroska_t * this)
static

◆ handle_hdmv_pgs()

static void handle_hdmv_pgs ( demux_plugin_t * this_gen,
matroska_track_t * track,
int decoder_flags,
uint8_t * data,
size_t data_len,
int64_t data_pts,
int data_duration,
int input_normpos,
int input_time )
static

◆ handle_hdmv_textst()

static void handle_hdmv_textst ( demux_plugin_t * this_gen,
matroska_track_t * track,
int decoder_flags,
uint8_t * data,
size_t data_len,
int64_t data_pts,
int data_duration,
int input_normpos,
int input_time )
static

◆ handle_realvideo()

static void handle_realvideo ( demux_plugin_t * this_gen,
matroska_track_t * track,
int decoder_flags,
uint8_t * data,
size_t data_len,
int64_t data_pts,
int data_duration,
int input_normpos,
int input_time )
static

◆ handle_sub_ssa()

static void handle_sub_ssa ( demux_plugin_t * this_gen,
matroska_track_t * track,
int decoder_flags,
uint8_t * data,
size_t data_len,
int64_t data_pts,
int data_duration,
int input_normpos,
int input_time )
static

◆ handle_sub_utf8()

static void handle_sub_utf8 ( demux_plugin_t * this_gen,
matroska_track_t * track,
int decoder_flags,
uint8_t * data,
size_t data_len,
int64_t data_pts,
int data_duration,
int input_normpos,
int input_time )
static

◆ handle_vobsub()

static void handle_vobsub ( demux_plugin_t * this_gen,
matroska_track_t * track,
int decoder_flags,
uint8_t * data,
size_t data_len,
int64_t data_pts,
int data_duration,
int input_normpos,
int input_time )
static

◆ handle_vp9()

static void handle_vp9 ( demux_plugin_t * this_gen,
matroska_track_t * track,
int decoder_flags,
uint8_t * data,
size_t data_len,
int64_t data_pts,
int data_duration,
int input_normpos,
int input_time )
static

◆ init_codec_aac()

static void init_codec_aac ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ init_codec_audio()

static void init_codec_audio ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ init_codec_dvbsub()

static void init_codec_dvbsub ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ init_codec_real()

static void init_codec_real ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ init_codec_spu()

static void init_codec_spu ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ init_codec_video()

static void init_codec_video ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ init_codec_vobsub()

static void init_codec_vobsub ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ init_codec_xiph()

static void init_codec_xiph ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ open_plugin()

static demux_plugin_t * open_plugin ( demux_class_t * class_gen,
xine_stream_t * stream,
input_plugin_t * input )
static

◆ parse_attachments()

static int parse_attachments ( demux_matroska_t * this)
static

◆ parse_audio_track()

static int parse_audio_track ( demux_matroska_t * this,
matroska_audio_track_t * at )
static

◆ parse_block()

static int parse_block ( demux_matroska_t * this,
size_t block_size,
uint64_t cluster_timecode,
uint64_t block_duration,
int normpos,
int is_key )
static

◆ parse_block_group()

static int parse_block_group ( demux_matroska_t * this,
uint64_t cluster_timecode,
uint64_t cluster_duration )
static

◆ parse_cluster()

static int parse_cluster ( demux_matroska_t * this)
static

◆ parse_content_compression()

static int parse_content_compression ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ parse_content_encoding()

static int parse_content_encoding ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ parse_content_encodings()

static int parse_content_encodings ( demux_matroska_t * this,
matroska_track_t * track )
static

◆ parse_cue_point()

static int parse_cue_point ( demux_matroska_t * this)
static

◆ parse_cue_trackposition()

static int parse_cue_trackposition ( demux_matroska_t * this,
int * track_num,
int64_t * pos )
static

◆ parse_cues()

static int parse_cues ( demux_matroska_t * this)
static

◆ parse_ebml_sint()

static int parse_ebml_sint ( demux_matroska_t * this,
uint8_t * data,
int64_t * num )
static

References parse_ebml_uint().

Referenced by parse_block().

◆ parse_ebml_uint()

static int parse_ebml_uint ( demux_matroska_t * this,
uint8_t * data,
uint64_t * num )
static

References input(), XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_block(), and parse_ebml_sint().

◆ parse_info()

static int parse_info ( demux_matroska_t * this)
static

◆ parse_int16()

static int parse_int16 ( uint8_t * data)
static

References _X_BE_16.

Referenced by parse_block().

◆ parse_seek_entry()

static int parse_seek_entry ( demux_matroska_t * this)
static

◆ parse_seekhead()

static int parse_seekhead ( demux_matroska_t * this)
static

◆ parse_segment()

static int parse_segment ( demux_matroska_t * this)
static

◆ parse_simpleblock()

static int parse_simpleblock ( demux_matroska_t * this,
size_t block_len,
uint64_t cluster_timecode,
uint64_t block_duration )
static

References input(), lprintf, parse_block(), and read_block_data().

Referenced by parse_cluster().

◆ parse_tags()

static int parse_tags ( demux_matroska_t * this)
static

◆ parse_top_level()

static int parse_top_level ( demux_matroska_t * this,
int * next_level )
static

◆ parse_top_level_head()

static int parse_top_level_head ( demux_matroska_t * this,
int * next_level )
static

◆ parse_track_entry()

static int parse_track_entry ( demux_matroska_t * this,
matroska_track_t * track )
static

References _x_bmiheader_le2me(), _x_formattag_to_buf_audio(), _x_fourcc_to_buf_video(), _x_report_audio_format_tag(), _x_report_video_fourcc(), _x_waveformatex_le2me(), matroska_track_s::audio_track, xine_bmiheader::biCompression, BUF_AUDIO_A52, BUF_AUDIO_AAC, BUF_AUDIO_ATRK, BUF_AUDIO_COOK, BUF_AUDIO_DTS, BUF_AUDIO_EAC3, BUF_AUDIO_FLAC, BUF_AUDIO_LPCM_BE, BUF_AUDIO_LPCM_LE, BUF_AUDIO_MPEG, BUF_AUDIO_OPUS, BUF_AUDIO_SIPRO, BUF_AUDIO_TRUEHD, BUF_AUDIO_VORBIS, BUF_SPU_DVB, BUF_SPU_DVD, BUF_SPU_HDMV, BUF_SPU_OGM, matroska_track_s::buf_type, BUF_VIDEO_AV1, BUF_VIDEO_H264, BUF_VIDEO_HEVC, BUF_VIDEO_MPEG, BUF_VIDEO_MPEG4, BUF_VIDEO_MSMPEG4_V3, BUF_VIDEO_RV30, BUF_VIDEO_RV40, BUF_VIDEO_THEORA_RAW, BUF_VIDEO_VP8, BUF_VIDEO_VP9, matroska_track_s::codec_id, matroska_track_s::codec_private, matroska_track_s::codec_private_len, matroska_track_s::compress_algo, matroska_track_s::default_duration, matroska_track_s::default_flag, ebml_alloc_read_ascii(), ebml_get_next_level(), ebml_read_binary(), ebml_read_elem_head(), ebml_read_master(), ebml_read_uint(), ebml_skip(), matroska_track_s::fifo, fill_extra_data(), matroska_track_s::handle_content, handle_dvbsub(), handle_hdmv_pgs(), handle_hdmv_textst(), handle_realvideo(), handle_sub_ssa(), handle_sub_utf8(), handle_vobsub(), handle_vp9(), ebml_elem_s::id, init_codec(), init_codec_aac(), init_codec_audio(), init_codec_dvbsub(), init_codec_real(), init_codec_spu(), init_codec_video(), init_codec_vobsub(), init_codec_xiph(), matroska_track_s::language, ebml_elem_s::len, ebml_parser_s::level, LOG_MODULE, lprintf, MATROSKA_CODEC_ID_A_AAC, MATROSKA_CODEC_ID_A_AC3, MATROSKA_CODEC_ID_A_ACM, MATROSKA_CODEC_ID_A_DTS, MATROSKA_CODEC_ID_A_EAC3, MATROSKA_CODEC_ID_A_FLAC, MATROSKA_CODEC_ID_A_MPEG1_L1, MATROSKA_CODEC_ID_A_MPEG1_L2, MATROSKA_CODEC_ID_A_MPEG1_L3, MATROSKA_CODEC_ID_A_OPUS, MATROSKA_CODEC_ID_A_PCM_FLOAT, MATROSKA_CODEC_ID_A_PCM_INT_BE, MATROSKA_CODEC_ID_A_PCM_INT_LE, MATROSKA_CODEC_ID_A_REAL_14_4, MATROSKA_CODEC_ID_A_REAL_28_8, MATROSKA_CODEC_ID_A_REAL_ATRC, MATROSKA_CODEC_ID_A_REAL_COOK, MATROSKA_CODEC_ID_A_REAL_RALF, MATROSKA_CODEC_ID_A_REAL_SIPR, MATROSKA_CODEC_ID_A_TRUEHD, MATROSKA_CODEC_ID_A_VORBIS, MATROSKA_CODEC_ID_S_ASS, MATROSKA_CODEC_ID_S_DVBSUB, MATROSKA_CODEC_ID_S_HDMV_PGS, MATROSKA_CODEC_ID_S_HDMV_TEXTST, MATROSKA_CODEC_ID_S_SSA, MATROSKA_CODEC_ID_S_TEXT_ASS, MATROSKA_CODEC_ID_S_TEXT_SSA, MATROSKA_CODEC_ID_S_TEXT_USF, MATROSKA_CODEC_ID_S_TEXT_UTF8, MATROSKA_CODEC_ID_S_UTF8, MATROSKA_CODEC_ID_S_VOBSUB, MATROSKA_CODEC_ID_V_AV1, MATROSKA_CODEC_ID_V_HEVC, MATROSKA_CODEC_ID_V_MJPEG, MATROSKA_CODEC_ID_V_MPEG1, MATROSKA_CODEC_ID_V_MPEG2, MATROSKA_CODEC_ID_V_MPEG4_AP, MATROSKA_CODEC_ID_V_MPEG4_ASP, MATROSKA_CODEC_ID_V_MPEG4_AVC, MATROSKA_CODEC_ID_V_MPEG4_SP, MATROSKA_CODEC_ID_V_MSMPEG4V3, MATROSKA_CODEC_ID_V_REAL_RV10, MATROSKA_CODEC_ID_V_REAL_RV20, MATROSKA_CODEC_ID_V_REAL_RV30, MATROSKA_CODEC_ID_V_REAL_RV40, MATROSKA_CODEC_ID_V_THEORA, MATROSKA_CODEC_ID_V_UNCOMPRESSED, MATROSKA_CODEC_ID_V_VFW_FOURCC, MATROSKA_CODEC_ID_V_VP8, MATROSKA_CODEC_ID_V_VP9, MATROSKA_COMPRESS_NONE, MATROSKA_COMPRESS_UNKNOWN, MATROSKA_ID_CONTENTENCODINGS, MATROSKA_ID_TA, MATROSKA_ID_TR_CODECDECODEALL, MATROSKA_ID_TR_CODECDOWNLOADURL, MATROSKA_ID_TR_CODECID, MATROSKA_ID_TR_CODECINFOURL, MATROSKA_ID_TR_CODECNAME, MATROSKA_ID_TR_CODECPRIVATE, MATROSKA_ID_TR_CODECSETTINGS, MATROSKA_ID_TR_DEFAULTDURATION, MATROSKA_ID_TR_FLAGDEFAULT, MATROSKA_ID_TR_FLAGENABLED, MATROSKA_ID_TR_FLAGLACING, MATROSKA_ID_TR_LANGUAGE, MATROSKA_ID_TR_MAXCACHE, MATROSKA_ID_TR_MINCACHE, MATROSKA_ID_TR_NAME, MATROSKA_ID_TR_NUMBER, MATROSKA_ID_TR_OVERLAY, MATROSKA_ID_TR_TIMECODESCALE, MATROSKA_ID_TR_TYPE, MATROSKA_ID_TR_UID, MATROSKA_ID_TV, MATROSKA_TRACK_AUDIO, MATROSKA_TRACK_COMPLEX, MATROSKA_TRACK_CONTROL, MATROSKA_TRACK_LOGO, MATROSKA_TRACK_SUBTITLE, MATROSKA_TRACK_VIDEO, ME_FOURCC, NULL, parse_audio_track(), parse_content_encodings(), parse_video_track(), matroska_track_s::track_num, matroska_track_s::track_type, matroska_track_s::uid, matroska_track_s::video_track, xine_waveformatex::wFormatTag, XINE_VERBOSITY_DEBUG, XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_tracks().

◆ parse_tracks()

static int parse_tracks ( demux_matroska_t * this)
static

◆ parse_video_track()

static int parse_video_track ( demux_matroska_t * this,
matroska_video_track_t * vt )
static

◆ read_block_data()

static int read_block_data ( demux_matroska_t * this,
size_t len,
size_t offset )
static

◆ uncompress_zlib()

static int uncompress_zlib ( demux_matroska_t * this,
const uint8_t * data,
size_t data_len,
uint8_t ** out_data,
size_t * out_data_len )
static

◆ vobsub_parse_custom_colors()

static int vobsub_parse_custom_colors ( matroska_track_t * t,
const char * start )
static

◆ vobsub_parse_forced_subs()

static int vobsub_parse_forced_subs ( matroska_track_t * t,
const char * start )
static

◆ vobsub_parse_palette()

static int vobsub_parse_palette ( matroska_track_t * t,
const char * start )
static

◆ vobsub_parse_size()

static int vobsub_parse_size ( matroska_track_t * t,
const char * start )
static

◆ vp9_frametype()

static int vp9_frametype ( const uint8_t * h)
static

Referenced by handle_vp9().