xine-lib: xine-lib-1.2.13/src/demuxers/ebml.h File Reference

xine-lib 1.2.13-20230125hg15249

Data Structures | Macros | Typedefs | Functions
ebml.h File Reference

Go to the source code of this file.

## Data Structures
struct | ebml_elem_s
struct | ebml_parser_s

## Macros
#define | EBML_STACK_SIZE 10
#define | EBML_VERSION 1
#define | EBML_ID_EBML 0x1A45DFA3
#define | EBML_ID_EBMLVERSION 0x4286
#define | EBML_ID_EBMLREADVERSION 0x42F7
#define | EBML_ID_EBMLMAXIDLENGTH 0x42F2
#define | EBML_ID_EBMLMAXSIZELENGTH 0x42F3
#define | EBML_ID_DOCTYPE 0x4282
#define | EBML_ID_DOCTYPEVERSION 0x4287
#define | EBML_ID_DOCTYPEREADVERSION 0x4285

## Typedefs
typedef struct ebml_elem_s | ebml_elem_t
typedef struct ebml_parser_s | ebml_parser_t

## Functions
ebml_parser_t * | new_ebml_parser (xine_t *xine, input_plugin_t *input)
void | dispose_ebml_parser (ebml_parser_t *ebml)
int | ebml_check_header (ebml_parser_t *read)
int | ebml_read_elem_head (ebml_parser_t *ebml, ebml_elem_t *elem)
uint32_t | ebml_get_next_level (ebml_parser_t *ebml, ebml_elem_t *elem)
int | ebml_skip (ebml_parser_t *ebml, ebml_elem_t *elem)
int | ebml_read_uint (ebml_parser_t *ebml, ebml_elem_t *elem, uint64_t *val)
int | ebml_read_float (ebml_parser_t *ebml, ebml_elem_t *elem, double *val)
int | ebml_read_ascii (ebml_parser_t *ebml, ebml_elem_t *elem, char *str)
char * | ebml_alloc_read_ascii (ebml_parser_t *ebml, ebml_elem_t *elem)
int | ebml_read_master (ebml_parser_t *ebml, ebml_elem_t *elem)
int | ebml_read_binary (ebml_parser_t *ebml, ebml_elem_t *elem, void *binary)

## Macro Definition Documentation

## ◆ EBML_ID_DOCTYPE

#define EBML_ID_DOCTYPE 0x4282

Referenced by ebml_check_header().

## ◆ EBML_ID_DOCTYPEREADVERSION

#define EBML_ID_DOCTYPEREADVERSION 0x4285

Referenced by ebml_check_header().

## ◆ EBML_ID_DOCTYPEVERSION

#define EBML_ID_DOCTYPEVERSION 0x4287

Referenced by ebml_check_header().

## ◆ EBML_ID_EBML

#define EBML_ID_EBML 0x1A45DFA3

Referenced by ebml_check_header().

## ◆ EBML_ID_EBMLMAXIDLENGTH

#define EBML_ID_EBMLMAXIDLENGTH 0x42F2

Referenced by ebml_check_header().

## ◆ EBML_ID_EBMLMAXSIZELENGTH

#define EBML_ID_EBMLMAXSIZELENGTH 0x42F3

Referenced by ebml_check_header().

## ◆ EBML_ID_EBMLREADVERSION

#define EBML_ID_EBMLREADVERSION 0x42F7

Referenced by ebml_check_header().

## ◆ EBML_ID_EBMLVERSION

#define EBML_ID_EBMLVERSION 0x4286

Referenced by ebml_check_header().

## ◆ EBML_STACK_SIZE

#define EBML_STACK_SIZE 10

Referenced by ebml_read_master().

## ◆ EBML_VERSION

#define EBML_VERSION 1

Referenced by ebml_check_header().

## Typedef Documentation

## ◆ ebml_elem_t

typedef struct ebml_elem_s ebml_elem_t

## ◆ ebml_parser_t

typedef struct ebml_parser_s ebml_parser_t

## Function Documentation

## ◆ dispose_ebml_parser()

void dispose_ebml_parser | ( | ebml_parser_t * | ebml | ) |

References _x_freep(), and ebml_parser_s::doctype.

Referenced by demux_matroska_dispose(), and open_plugin().

## ◆ ebml_alloc_read_ascii()

char * ebml_alloc_read_ascii | ( | ebml_parser_t * | ebml,
|  | ebml_elem_t * | elem )

References ebml_read_ascii(), ebml_elem_s::len, and NULL.

Referenced by ebml_check_header(), parse_chapter_display(), parse_info(), and parse_track_entry().

## ◆ ebml_check_header()

int ebml_check_header | ( | ebml_parser_t * | read | ) |

References ebml_parser_s::doctype, ebml_parser_s::doctype_read_version, ebml_parser_s::doctype_version, ebml_alloc_read_ascii(), ebml_get_next_level(), EBML_ID_DOCTYPE, EBML_ID_DOCTYPEREADVERSION, EBML_ID_DOCTYPEVERSION, EBML_ID_EBML, EBML_ID_EBMLMAXIDLENGTH, EBML_ID_EBMLMAXSIZELENGTH, EBML_ID_EBMLREADVERSION, EBML_ID_EBMLVERSION, ebml_read_elem_head(), ebml_read_master(), ebml_read_uint(), ebml_skip(), EBML_VERSION, ebml_elem_s::id, lprintf, ebml_parser_s::max_id_len, ebml_parser_s::max_size_len, ebml_parser_s::read_version, ebml_parser_s::version, ebml_parser_s::xine, XINE_VERBOSITY_LOG, and xprintf.

Referenced by open_plugin().

## ◆ ebml_get_next_level()

uint32_t ebml_get_next_level | ( | ebml_parser_t * | ebml,
|  | ebml_elem_t * | elem )

References ebml_parser_s::elem_stack, ebml_elem_s::id, ebml_elem_s::len, ebml_parser_s::level, lprintf, and ebml_elem_s::start.

Referenced by ebml_check_header(), matroska_parse_chapters(), parse_attachments(), parse_audio_track(), parse_block_group(), parse_chapter_atom(), parse_chapter_display(), parse_cluster(), parse_content_compression(), parse_content_encoding(), parse_content_encodings(), parse_cue_point(), parse_cue_trackposition(), parse_cues(), parse_edition_entry(), parse_info(), parse_seek_entry(), parse_seekhead(), parse_tags(), parse_top_level(), parse_top_level_head(), parse_track_entry(), parse_tracks(), and parse_video_track().

## ◆ ebml_read_ascii()

int ebml_read_ascii | ( | ebml_parser_t * | ebml,
|  | ebml_elem_t * | elem,
|  | char * | str )

References ebml_read_elem_data(), and ebml_elem_s::len.

Referenced by ebml_alloc_read_ascii().

## ◆ ebml_read_binary()

int ebml_read_binary | ( | ebml_parser_t * | ebml,
|  | ebml_elem_t * | elem,
|  | void * | binary )

References ebml_read_elem_data(), and ebml_elem_s::len.

Referenced by parse_content_compression(), and parse_track_entry().

## ◆ ebml_read_elem_head()

int ebml_read_elem_head | ( | ebml_parser_t * | ebml,
|  | ebml_elem_t * | elem )

References ebml_read_elem_id(), ebml_read_elem_len(), input_plugin_s::get_current_pos, ebml_elem_s::id, ebml_parser_s::input, ebml_elem_s::len, and ebml_elem_s::start.

Referenced by ebml_check_header(), matroska_parse_chapters(), parse_attachments(), parse_audio_track(), parse_block_group(), parse_chapter_atom(), parse_chapter_display(), parse_cluster(), parse_content_compression(), parse_content_encoding(), parse_content_encodings(), parse_cue_point(), parse_cue_trackposition(), parse_cues(), parse_edition_entry(), parse_info(), parse_seek_entry(), parse_seekhead(), parse_segment(), parse_tags(), parse_top_level(), parse_top_level_head(), parse_track_entry(), parse_tracks(), and parse_video_track().

## ◆ ebml_read_float()

int ebml_read_float | ( | ebml_parser_t * | ebml,
|  | ebml_elem_t * | elem,
|  | double * | val )

References _X_BE_32, _X_BE_64, ebml_read_elem_data(), ebml_elem_s::len, ebml_parser_s::xine, XINE_VERBOSITY_LOG, and xprintf.

Referenced by parse_audio_track(), and parse_info().

## ◆ ebml_read_master()

int ebml_read_master | ( | ebml_parser_t * | ebml,
|  | ebml_elem_t * | elem )

References EBML_STACK_SIZE, ebml_parser_s::elem_stack, ebml_elem_s::id, ebml_elem_s::len, ebml_parser_s::level, lprintf, ebml_elem_s::start, ebml_parser_s::xine, XINE_VERBOSITY_LOG, and xprintf.

Referenced by demux_matroska_send_headers(), ebml_check_header(), matroska_parse_chapters(), parse_chapter_atom(), parse_cluster(), parse_content_encoding(), parse_content_encodings(), parse_cue_point(), parse_cues(), parse_edition_entry(), parse_seekhead(), parse_segment(), parse_top_level(), parse_top_level_head(), parse_track_entry(), and parse_tracks().

## ◆ ebml_read_uint()

int ebml_read_uint | ( | ebml_parser_t * | ebml,
|  | ebml_elem_t * | elem,
|  | uint64_t * | val )

References ebml_read_elem_data(), ebml_elem_s::len, ebml_parser_s::xine, XINE_VERBOSITY_LOG, and xprintf.

Referenced by ebml_check_header(), parse_audio_track(), parse_block_group(), parse_chapter_atom(), parse_cluster(), parse_content_compression(), parse_content_encoding(), parse_cue_point(), parse_cue_trackposition(), parse_edition_entry(), parse_info(), parse_seek_entry(), parse_track_entry(), and parse_video_track().

## ◆ ebml_skip()

int ebml_skip | ( | ebml_parser_t * | ebml,
|  | ebml_elem_t * | elem )

References ebml_parser_s::input, ebml_elem_s::len, input_plugin_s::seek, ebml_parser_s::xine, XINE_VERBOSITY_LOG, and xprintf.

Referenced by ebml_check_header(), matroska_parse_chapters(), parse_attachments(), parse_audio_track(), parse_block_group(), parse_chapter_atom(), parse_chapter_display(), parse_cluster(), parse_content_compression(), parse_content_encoding(), parse_content_encodings(), parse_cue_point(), parse_cue_trackposition(), parse_cues(), parse_edition_entry(), parse_info(), parse_seek_entry(), parse_seekhead(), parse_tags(), parse_top_level(), parse_top_level_head(), parse_track_entry(), parse_tracks(), and parse_video_track().

## ◆ new_ebml_parser()

ebml_parser_t * new_ebml_parser | ( | xine_t * | xine,
|  | input_plugin_t * | input )

References ebml_parser_s::input, input(), and ebml_parser_s::xine.

Referenced by open_plugin().