xine-lib: xine-lib-1.2.12/src/demuxers/demux_matroska.c File Reference

xine-lib 1.2.12

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_t * | open_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

## ◆ 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

References matroska_index_t::num_entries, matroska_index_t::pos, and matroska_index_t::timecode.

Referenced by demux_matroska_seek().

## ◆ check_newpts()

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

References _x_demux_control_newpts(), BUF_FLAG_SEEK, matroska_track_s::last_pts, lprintf, MATROSKA_TRACK_AUDIO, MATROSKA_TRACK_VIDEO, matroska_track_s::track_num, matroska_track_s::track_type, and WRAP_THRESHOLD.

Referenced by parse_block().

## ◆ demux_matroska_dispose()

static void demux_matroska_dispose | ( | demux_plugin_t * | this_gen | ) |
| static

References _x_freep(), matroska_track_s::audio_track, matroska_track_s::codec_id, matroska_track_s::codec_private, dispose_ebml_parser(), matroska_track_s::language, matroska_free_editions(), matroska_track_s::sub_track, matroska_track_s::video_track, and xine_event_dispose_queue().

Referenced by open_plugin().

## ◆ demux_matroska_get_capabilities()

static uint32_t demux_matroska_get_capabilities | ( | demux_plugin_t * | this_gen | ) |
| static

References DEMUX_CAP_AUDIOLANG, DEMUX_CAP_CHAPTERS, and DEMUX_CAP_SPULANG.

Referenced by open_plugin().

## ◆ demux_matroska_get_optional_data()

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

References BUF_AUDIO_BASE, BUF_SPU_BASE, matroska_track_s::buf_type, DEMUX_OPTIONAL_DATA_AUDIOLANG, DEMUX_OPTIONAL_DATA_SPULANG, DEMUX_OPTIONAL_SUCCESS, DEMUX_OPTIONAL_UNSUPPORTED, matroska_track_s::language, lprintf, and XINE_LANG_MAX.

Referenced by open_plugin().

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

References N_, NULL, open_plugin(), and demux_class_s::open_plugin.

## ◆ demux_matroska_seek()

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

References _x_demux_flush_engine(), binary_seek(), DEMUX_FINISHED, DEMUX_OK, find_track_by_id(), input(), lprintf, MATROSKA_TRACK_VIDEO, NULL, matroska_index_t::pos, matroska_index_t::timecode, matroska_index_t::track_num, matroska_track_s::track_num, and matroska_track_s::track_type.

Referenced by handle_events(), and open_plugin().

## ◆ 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

References _x_demux_control_start(), _x_stream_info_set(), DEMUX_FINISHED, DEMUX_OK, ebml_read_master(), input(), NUM_PREVIEW_BUFFERS, parse_segment(), parse_top_level(), XINE_STREAM_INFO_HAS_AUDIO, XINE_STREAM_INFO_HAS_VIDEO, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by open_plugin().

## ◆ fill_extra_data()

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

References xine_bmiheader::biCompression, xine_bmiheader::biHeight, xine_bmiheader::biSize, xine_bmiheader::biWidth, matroska_track_s::codec_private, matroska_track_s::codec_private_len, fourcc, matroska_video_track_t::pixel_height, matroska_video_track_t::pixel_width, and matroska_track_s::video_track.

Referenced by parse_track_entry().

## ◆ 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

References _x_demux_send_data(), matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_alloc, matroska_track_s::compress_algo, buf_element_s::content, buf_element_s::decoder_info, matroska_track_s::fifo, MATROSKA_COMPRESS_ZLIB, NULL, buf_element_s::pts, fifo_buffer_s::put, buf_element_s::size, buf_element_s::type, and uncompress_zlib().

Referenced by parse_track_entry().

## ◆ handle_events()

static void handle_events | ( | demux_matroska_t * | this | ) |
| static

References matroska_edition_t::chapters, demux_matroska_seek(), matroska_get_chapter(), matroska_chapter_t::time_start, xine_event_t::type, xine_event_free(), xine_event_get(), XINE_EVENT_INPUT_NEXT, and XINE_EVENT_INPUT_PREVIOUS.

Referenced by parse_cluster().

## ◆ 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

References _x_demux_send_data(), matroska_track_s::buf_type, matroska_track_s::compress_algo, matroska_track_s::fifo, MATROSKA_COMPRESS_ZLIB, NULL, and uncompress_zlib().

Referenced by parse_track_entry().

## ◆ 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

References BUF_FLAG_SPECIAL, BUF_SPECIAL_CHARSET_ENCODING, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_alloc, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, matroska_track_s::fifo, LITERAL_UTF_8_LEN, LITERAL_UTF_8_SIZE, lprintf, buf_element_s::max_size, fifo_buffer_s::put, buf_element_s::type, and type.

Referenced by parse_track_entry().

## ◆ 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

References _x_demux_send_data(), BUF_FLAG_FRAMERATE, BUF_FLAG_SPECIAL, BUF_SPECIAL_RV_CHUNK_TABLE, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_size_alloc, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, matroska_track_s::fifo, buf_element_s::free_buffer, lprintf, buf_element_s::max_size, fifo_buffer_s::put, buf_element_s::type, xine_fast_memcpy, XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_track_entry().

## ◆ 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

References BUF_FLAG_SPECIAL, BUF_SPECIAL_CHARSET_ENCODING, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_size_alloc, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, buf_element_s::extra_info, matroska_track_s::fifo, buf_element_s::free_buffer, extra_info_s::input_normpos, extra_info_s::input_time, LITERAL_UTF_8_LEN, LITERAL_UTF_8_SIZE, lprintf, buf_element_s::max_size, fifo_buffer_s::put, buf_element_s::size, and buf_element_s::type.

Referenced by parse_track_entry().

## ◆ 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

References BUF_FLAG_SPECIAL, BUF_SPECIAL_CHARSET_ENCODING, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_size_alloc, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, buf_element_s::extra_info, matroska_track_s::fifo, buf_element_s::free_buffer, extra_info_s::input_normpos, extra_info_s::input_time, LITERAL_UTF_8_LEN, LITERAL_UTF_8_SIZE, lprintf, buf_element_s::max_size, fifo_buffer_s::put, buf_element_s::size, buf_element_s::type, xine_fast_memcpy, XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_track_entry().

## ◆ 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

References BUF_FLAG_SPECIAL, BUF_SPECIAL_SPU_DVD_SUBTYPE, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_size_alloc, matroska_track_s::compress_algo, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::extra_info, matroska_track_s::fifo, buf_element_s::free_buffer, extra_info_s::input_normpos, extra_info_s::input_time, lprintf, MATROSKA_COMPRESS_NONE, MATROSKA_COMPRESS_UNKNOWN, MATROSKA_COMPRESS_ZLIB, buf_element_s::max_size, NULL, buf_element_s::pts, fifo_buffer_s::put, buf_element_s::size, SPU_DVD_SUBTYPE_VOBSUB_PACKAGE, matroska_track_s::track_num, buf_element_s::type, uncompress_zlib(), xine_fast_memcpy, XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_track_entry().

## ◆ 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

References _x_demux_send_data(), BUF_FLAG_KEYFRAME, matroska_track_s::buf_type, matroska_track_s::delayed_pts, matroska_track_s::fifo, type, and vp9_frametype().

Referenced by parse_track_entry().

## ◆ init_codec_aac()

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

References aac_get_sr_index(), AAC_SYNC_EXTENSION_TYPE, matroska_track_s::audio_track, BUF_FLAG_HEADER, BUF_FLAG_SPECIAL, BUF_SPECIAL_DECODER_CONFIG, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_alloc, matroska_audio_track_t::channels, matroska_track_s::codec_id, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, matroska_track_s::fifo, buf_element_s::mem, NULL, buf_element_s::pts, matroska_audio_track_t::sampling_freq, buf_element_s::size, and buf_element_s::type.

Referenced by parse_track_entry().

## ◆ init_codec_audio()

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

References matroska_track_s::audio_track, matroska_audio_track_t::bits_per_sample, BUF_FLAG_FRAME_END, BUF_FLAG_HEADER, BUF_FLAG_SPECIAL, BUF_FLAG_STDHEADER, BUF_SPECIAL_DECODER_CONFIG, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_size_alloc, matroska_audio_track_t::channels, matroska_track_s::codec_private, matroska_track_s::codec_private_len, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, matroska_track_s::fifo, buf_element_s::free_buffer, lprintf, buf_element_s::max_size, buf_element_s::pts, fifo_buffer_s::put, matroska_audio_track_t::sampling_freq, buf_element_s::size, buf_element_s::type, XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_track_entry().

## ◆ init_codec_dvbsub()

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

References _X_BE_16, spu_dvb_descriptor_s::aux_page_id, BUF_FLAG_SPECIAL, BUF_SPECIAL_SPU_DVB_DESCRIPTOR, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_alloc, matroska_track_s::codec_private, matroska_track_s::codec_private_len, spu_dvb_descriptor_s::comp_page_id, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, matroska_track_s::fifo, buf_element_s::mem, fifo_buffer_s::put, and buf_element_s::type.

Referenced by parse_track_entry().

## ◆ init_codec_real()

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

References BUF_FLAG_ASPECT, BUF_FLAG_FRAME_END, BUF_FLAG_FRAMERATE, BUF_FLAG_HEADER, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_size_alloc, matroska_track_s::codec_private, matroska_track_s::codec_private_len, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, matroska_track_s::default_duration, matroska_video_track_t::display_height, matroska_video_track_t::display_width, matroska_track_s::fifo, buf_element_s::free_buffer, buf_element_s::max_size, buf_element_s::pts, fifo_buffer_s::put, buf_element_s::size, buf_element_s::type, matroska_track_s::video_track, xine_fast_memcpy, XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_track_entry().

## ◆ init_codec_spu()

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

References matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_alloc, matroska_track_s::fifo, fifo_buffer_s::put, and buf_element_s::type.

Referenced by parse_track_entry().

## ◆ init_codec_video()

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

References BUF_FLAG_ASPECT, BUF_FLAG_FRAME_END, BUF_FLAG_FRAMERATE, BUF_FLAG_HEADER, BUF_FLAG_STDHEADER, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_size_alloc, matroska_track_s::codec_private, matroska_track_s::codec_private_len, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, matroska_track_s::default_duration, matroska_video_track_t::display_height, matroska_video_track_t::display_width, matroska_track_s::fifo, buf_element_s::free_buffer, buf_element_s::max_size, buf_element_s::pts, fifo_buffer_s::put, buf_element_s::size, buf_element_s::type, matroska_track_s::video_track, xine_fast_memcpy, XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_track_entry().

## ◆ init_codec_vobsub()

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

References BUF_FLAG_SPECIAL, BUF_SPECIAL_SPU_DVD_SUBTYPE, BUF_SPU_DVD, fifo_buffer_s::buffer_pool_alloc, matroska_track_s::codec_private, matroska_track_s::codec_private_len, buf_element_s::content, buf_element_s::decoder_flags, buf_element_s::decoder_info, matroska_track_s::fifo, lprintf, NULL, matroska_sub_track_t::palette, fifo_buffer_s::put, SPU_DVD_SUBTYPE_CLUT, matroska_track_s::sub_track, matroska_track_s::track_num, buf_element_s::type, matroska_sub_track_t::type, vobsub_parse_custom_colors(), vobsub_parse_forced_subs(), vobsub_parse_palette(), vobsub_parse_size(), and xine_fast_memcpy.

Referenced by parse_track_entry().

## ◆ init_codec_xiph()

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

References BUF_FLAG_FRAME_END, BUF_FLAG_FRAME_START, BUF_FLAG_HEADER, matroska_track_s::buf_type, fifo_buffer_s::buffer_pool_size_alloc, matroska_track_s::codec_private, matroska_track_s::codec_private_len, buf_element_s::content, buf_element_s::decoder_flags, matroska_track_s::fifo, buf_element_s::free_buffer, buf_element_s::max_size, buf_element_s::pts, fifo_buffer_s::put, buf_element_s::size, buf_element_s::type, xine_fast_memcpy, XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_track_entry().

## ◆ open_plugin()

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

References xine_stream_s::content_detection_method, DEMUX_FINISHED, demux_matroska_dispose(), demux_matroska_get_capabilities(), demux_matroska_get_optional_data(), demux_matroska_get_status(), demux_matroska_get_stream_length(), demux_matroska_seek(), demux_matroska_send_chunk(), demux_matroska_send_headers(), dispose_ebml_parser(), ebml_parser_s::doctype, ebml_check_header(), input(), INPUT_CAP_SEEKABLE, lprintf, ebml_parser_s::max_id_len, ebml_parser_s::max_size_len, METHOD_BY_CONTENT, METHOD_BY_MRL, METHOD_EXPLICIT, new_ebml_parser(), NULL, xine_stream_s::xine, xine_event_dispose_queue(), and xine_event_new_queue().

Referenced by demux_matroska_init_class().

## ◆ parse_attachments()

static int parse_attachments | ( | demux_matroska_t * | this | ) |
| static

References ebml_get_next_level(), ebml_read_elem_head(), ebml_skip(), ebml_elem_s::id, and lprintf.

Referenced by parse_top_level_head().

## ◆ parse_audio_track()

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

References matroska_audio_track_t::bits_per_sample, matroska_audio_track_t::channels, ebml_get_next_level(), ebml_read_elem_head(), ebml_read_float(), ebml_read_uint(), ebml_skip(), ebml_elem_s::id, ebml_parser_s::level, lprintf, MATROSKA_ID_TA_BITDEPTH, MATROSKA_ID_TA_CHANNELS, MATROSKA_ID_TA_OUTPUTSAMPLINGFREQUENCY, MATROSKA_ID_TA_SAMPLINGFREQUENCY, matroska_audio_track_t::output_sampling_freq, and matroska_audio_track_t::sampling_freq.

Referenced by parse_track_entry().

## ◆ 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

References _x_demux_send_data(), BUF_FLAG_KEYFRAME, BUF_FLAG_PREVIEW, matroska_track_s::buf_type, check_newpts(), matroska_track_s::compress_algo, matroska_track_s::compress_len, matroska_track_s::compress_settings, matroska_track_s::default_duration, matroska_track_s::fifo, find_track_by_id(), matroska_track_s::handle_content, lprintf, MATROSKA_COMPRESS_HEADER_STRIP, MATROSKA_EBML_LACING, MATROSKA_FIXED_SIZE_LACING, MATROSKA_NO_LACING, MATROSKA_XIPH_LACING, MAX_FRAMES, NULL, parse_ebml_sint(), parse_ebml_uint(), parse_int16(), matroska_track_s::track_num, xine_fast_memcpy, XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_block_group(), and parse_simpleblock().

## ◆ parse_block_group()

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

References ebml_get_next_level(), ebml_read_elem_head(), ebml_read_uint(), ebml_skip(), ebml_elem_s::id, input(), ebml_elem_s::len, lprintf, MATROSKA_ID_CL_BLOCK, MATROSKA_ID_CL_BLOCKDURATION, MATROSKA_ID_CL_REFERENCEBLOCK, parse_block(), and read_block_data().

Referenced by parse_cluster().

## ◆ parse_cluster()

static int parse_cluster | ( | demux_matroska_t * | this | ) |
| static

References _x_meta_info_get(), _x_meta_info_set_utf8(), matroska_edition_t::chapters, ebml_get_next_level(), ebml_read_elem_head(), ebml_read_master(), ebml_read_uint(), ebml_skip(), handle_events(), ebml_elem_s::id, ebml_elem_s::len, ebml_parser_s::level, lprintf, matroska_get_chapter(), MATROSKA_ID_CL_BLOCK, MATROSKA_ID_CL_BLOCKGROUP, MATROSKA_ID_CL_DURATION, MATROSKA_ID_CL_SIMPLEBLOCK, MATROSKA_ID_CL_TIMECODE, NULL, matroska_edition_t::num_chapters, matroska_index_t::num_entries, parse_block_group(), parse_simpleblock(), xine_ui_data_t::str, xine_ui_data_t::str_len, matroska_index_t::timecode, matroska_chapter_t::title, and XINE_META_INFO_TITLE.

Referenced by parse_top_level().

## ◆ parse_content_compression()

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

References matroska_track_s::compress_algo, matroska_track_s::compress_len, matroska_track_s::compress_settings, ebml_get_next_level(), ebml_read_binary(), ebml_read_elem_head(), ebml_read_uint(), ebml_skip(), ebml_elem_s::id, ebml_elem_s::len, ebml_parser_s::level, lprintf, MATROSKA_COMPRESS_BZLIB, MATROSKA_COMPRESS_HEADER_STRIP, MATROSKA_COMPRESS_LZO1X, MATROSKA_COMPRESS_UNKNOWN, MATROSKA_COMPRESS_ZLIB, MATROSKA_ID_CE_COMPALGO, and MATROSKA_ID_CE_COMPSETTINGS.

Referenced by parse_content_encoding().

## ◆ parse_content_encoding()

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

References matroska_track_s::compress_algo, ebml_get_next_level(), ebml_read_elem_head(), ebml_read_master(), ebml_read_uint(), ebml_skip(), ebml_elem_s::id, ebml_elem_s::len, ebml_parser_s::level, lprintf, MATROSKA_ID_CE_COMPRESSION, MATROSKA_ID_CE_ENCRYPTION, MATROSKA_ID_CE_ORDER, MATROSKA_ID_CE_SCOPE, MATROSKA_ID_CE_TYPE, and parse_content_compression().

Referenced by parse_content_encodings().

## ◆ parse_content_encodings()

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

References ebml_get_next_level(), ebml_read_elem_head(), ebml_read_master(), ebml_skip(), ebml_elem_s::id, ebml_elem_s::len, ebml_parser_s::level, lprintf, MATROSKA_ID_CONTENTENCODING, and parse_content_encoding().

Referenced by parse_track_entry().

## ◆ parse_cue_point()

static int parse_cue_point | ( | demux_matroska_t * | this | ) |
| static

References ebml_get_next_level(), ebml_read_elem_head(), ebml_read_master(), ebml_read_uint(), ebml_skip(), ebml_elem_s::id, ebml_elem_s::len, lprintf, MATROSKA_ID_CU_TIME, MATROSKA_ID_CU_TRACKPOSITION, NULL, matroska_index_t::num_entries, parse_cue_trackposition(), matroska_index_t::pos, matroska_index_t::timecode, and matroska_index_t::track_num.

Referenced by parse_cues().

## ◆ parse_cue_trackposition()

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

References ebml_get_next_level(), ebml_read_elem_head(), ebml_read_uint(), ebml_skip(), ebml_elem_s::id, lprintf, MATROSKA_ID_CU_CLUSTERPOSITION, and MATROSKA_ID_CU_TRACK.

Referenced by parse_cue_point().

## ◆ parse_cues()

static int parse_cues | ( | demux_matroska_t * | this | ) |
| static

References ebml_get_next_level(), ebml_read_elem_head(), ebml_read_master(), ebml_skip(), ebml_elem_s::id, ebml_elem_s::len, lprintf, MATROSKA_ID_CU_POINT, and parse_cue_point().

Referenced by parse_top_level_head().

## ◆ 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

References _x_meta_info_set_utf8(), ebml_alloc_read_ascii(), ebml_get_next_level(), ebml_read_elem_head(), ebml_read_float(), ebml_read_uint(), ebml_skip(), ebml_elem_s::id, lprintf, MATROSKA_ID_I_DURATION, MATROSKA_ID_I_TIMECODESCALE, MATROSKA_ID_I_TITLE, NULL, and XINE_META_INFO_TITLE.

Referenced by parse_top_level_head().

## ◆ 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

References ebml_get_next_level(), ebml_read_elem_head(), ebml_read_uint(), ebml_skip(), ebml_elem_s::id, input(), ebml_parser_s::level, lprintf, MATROSKA_ID_CLUSTER, MATROSKA_ID_S_ID, MATROSKA_ID_S_POSITION, parse_top_level_head(), XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by parse_seekhead().

## ◆ parse_seekhead()

static int parse_seekhead | ( | demux_matroska_t * | this | ) |
| static

References ebml_get_next_level(), ebml_read_elem_head(), ebml_read_master(), ebml_skip(), ebml_elem_s::id, ebml_elem_s::len, lprintf, MATROSKA_ID_S_ENTRY, and parse_seek_entry().

Referenced by parse_top_level_head().

## ◆ parse_segment()

static int parse_segment | ( | demux_matroska_t * | this | ) |
| static

References ebml_read_elem_head(), ebml_read_master(), lprintf, MATROSKA_ID_SEGMENT, parse_top_level_head(), XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by demux_matroska_send_headers().

## ◆ 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

References ebml_get_next_level(), ebml_read_elem_head(), ebml_skip(), ebml_elem_s::id, and lprintf.

Referenced by parse_top_level_head().

## ◆ parse_top_level()

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

References ebml_get_next_level(), ebml_read_elem_head(), ebml_read_master(), ebml_skip(), ebml_elem_s::id, ebml_parser_s::input, input(), ebml_elem_s::len, LOG_MODULE, lprintf, MATROSKA_ID_ATTACHMENTS, MATROSKA_ID_CHAPTERS, MATROSKA_ID_CLUSTER, MATROSKA_ID_CUES, MATROSKA_ID_INFO, MATROSKA_ID_SEEKHEAD, MATROSKA_ID_TAGS, MATROSKA_ID_TRACKS, parse_cluster(), ebml_parser_s::xine, XINE_VERBOSITY_LOG, and xprintf.

Referenced by demux_matroska_send_chunk(), and demux_matroska_send_headers().

## ◆ parse_top_level_head()

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

References add_top_level_entry(), ebml_get_next_level(), ebml_read_elem_head(), ebml_read_master(), ebml_skip(), find_top_level_entry(), ebml_elem_s::id, input(), ebml_elem_s::len, lprintf, MATROSKA_ID_ATTACHMENTS, MATROSKA_ID_CHAPTERS, MATROSKA_ID_CLUSTER, MATROSKA_ID_CUES, MATROSKA_ID_INFO, MATROSKA_ID_SEEKHEAD, MATROSKA_ID_TAGS, MATROSKA_ID_TRACKS, matroska_parse_chapters(), parse_attachments(), parse_cues(), parse_info(), parse_seekhead(), parse_tags(), and parse_tracks().

Referenced by parse_seek_entry(), and parse_segment().

## ◆ 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

References matroska_track_s::compress_algo, ebml_get_next_level(), ebml_read_elem_head(), ebml_read_master(), ebml_skip(), ebml_elem_s::id, ebml_elem_s::len, ebml_parser_s::level, lprintf, MATROSKA_COMPRESS_NONE, MATROSKA_ID_TR_ENTRY, MAX_STREAMS, and parse_track_entry().

Referenced by parse_top_level_head().

## ◆ parse_video_track()

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

References matroska_video_track_t::display_height, matroska_video_track_t::display_width, ebml_get_next_level(), ebml_read_elem_head(), ebml_read_uint(), ebml_skip(), matroska_video_track_t::flag_interlaced, ebml_elem_s::id, ebml_parser_s::level, lprintf, MATROSKA_ID_TV_FLAGINTERLACED, MATROSKA_ID_TV_PIXELHEIGHT, MATROSKA_ID_TV_PIXELWIDTH, MATROSKA_ID_TV_VIDEODISPLAYHEIGHT, MATROSKA_ID_TV_VIDEODISPLAYWIDTH, matroska_video_track_t::pixel_height, and matroska_video_track_t::pixel_width.

Referenced by parse_track_entry().

## ◆ read_block_data()

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

References alloc_block_data(), input(), XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_block_group(), and parse_simpleblock().

## ◆ 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

References NULL, XINE_VERBOSITY_LOG, and xprintf.

Referenced by handle_dvbsub(), handle_hdmv_pgs(), and handle_vobsub().

## ◆ vobsub_parse_custom_colors()

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

References matroska_sub_track_t::colors, matroska_sub_track_t::custom_colors, lprintf, NULL, and matroska_track_s::sub_track.

Referenced by init_codec_vobsub().

## ◆ vobsub_parse_forced_subs()

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

References matroska_sub_track_t::forced_subs_only, lprintf, and matroska_track_s::sub_track.

Referenced by init_codec_vobsub().

## ◆ vobsub_parse_palette()

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

References lprintf, MAX, MIN, matroska_sub_track_t::palette, matroska_track_s::sub_track, and v.

Referenced by init_codec_vobsub().

## ◆ vobsub_parse_size()

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

References matroska_sub_track_t::height, lprintf, matroska_track_s::sub_track, and matroska_sub_track_t::width.

Referenced by init_codec_vobsub().

## ◆ vp9_frametype()

static int vp9_frametype | ( | const uint8_t * | h | ) |
| static

Referenced by handle_vp9().