#include "avformat.h"
#include "riff.h"
#include "intfloat_readwrite.h"
#include "matroska.h"
Go to the source code of this file.
Data Structures | |
struct | Track |
struct | MatroskaVideoTrack |
struct | MatroskaAudioTrack |
struct | MatroskaSubtitleTrack |
struct | MatroskaLevel |
struct | MatroskaDemuxIndex |
struct | MatroskaDemuxContext |
Defines | |
#define | MAX_TRACK_SIZE |
#define | ARRAY_SIZE(x) (sizeof(x)/sizeof(*x)) |
Typedefs | |
typedef struct Track | MatroskaTrack |
Functions | |
static int | ebml_read_element_level_up (MatroskaDemuxContext *matroska) |
static int | ebml_read_num (MatroskaDemuxContext *matroska, int max_size, uint64_t *number) |
static int | ebml_read_element_id (MatroskaDemuxContext *matroska, uint32_t *id, int *level_up) |
static int | ebml_read_element_length (MatroskaDemuxContext *matroska, uint64_t *length) |
static uint32_t | ebml_peek_id (MatroskaDemuxContext *matroska, int *level_up) |
static int | ebml_read_seek (MatroskaDemuxContext *matroska, offset_t offset) |
static int | ebml_read_skip (MatroskaDemuxContext *matroska) |
static int | ebml_read_uint (MatroskaDemuxContext *matroska, uint32_t *id, uint64_t *num) |
static int | ebml_read_sint (MatroskaDemuxContext *matroska, uint32_t *id, int64_t *num) |
static int | ebml_read_float (MatroskaDemuxContext *matroska, uint32_t *id, double *num) |
static int | ebml_read_ascii (MatroskaDemuxContext *matroska, uint32_t *id, char **str) |
static int | ebml_read_utf8 (MatroskaDemuxContext *matroska, uint32_t *id, char **str) |
static int | ebml_read_date (MatroskaDemuxContext *matroska, uint32_t *id, int64_t *date) |
static int | ebml_read_master (MatroskaDemuxContext *matroska, uint32_t *id) |
static int | ebml_read_binary (MatroskaDemuxContext *matroska, uint32_t *id, uint8_t **binary, int *size) |
static int | matroska_ebmlnum_uint (uint8_t *data, uint32_t size, uint64_t *num) |
static int | matroska_ebmlnum_sint (uint8_t *data, uint32_t size, int64_t *num) |
static int | ebml_read_header (MatroskaDemuxContext *matroska, char **doctype, int *version) |
static int | matroska_find_track_by_num (MatroskaDemuxContext *matroska, int num) |
static int | matroska_deliver_packet (MatroskaDemuxContext *matroska, AVPacket *pkt) |
static void | matroska_queue_packet (MatroskaDemuxContext *matroska, AVPacket *pkt) |
static void | matroska_clear_queue (MatroskaDemuxContext *matroska) |
static int | matroska_probe (AVProbeData *p) |
static int | matroska_parse_info (MatroskaDemuxContext *matroska) |
static int | matroska_add_stream (MatroskaDemuxContext *matroska) |
static int | matroska_parse_tracks (MatroskaDemuxContext *matroska) |
static int | matroska_parse_index (MatroskaDemuxContext *matroska) |
static int | matroska_parse_metadata (MatroskaDemuxContext *matroska) |
static int | matroska_parse_seekhead (MatroskaDemuxContext *matroska) |
static int | matroska_parse_attachments (AVFormatContext *s) |
static int | matroska_aac_profile (char *codec_id) |
static int | matroska_aac_sri (int samplerate) |
static int | matroska_read_header (AVFormatContext *s, AVFormatParameters *ap) |
static int | matroska_parse_block (MatroskaDemuxContext *matroska, uint8_t *data, int size, int64_t pos, uint64_t cluster_time, uint64_t duration, int is_keyframe, int is_bframe) |
static int | matroska_parse_blockgroup (MatroskaDemuxContext *matroska, uint64_t cluster_time) |
static int | matroska_parse_cluster (MatroskaDemuxContext *matroska) |
static int | matroska_read_packet (AVFormatContext *s, AVPacket *pkt) |
static int | matroska_read_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags) |
static int | matroska_read_close (AVFormatContext *s) |
Variables | |
AVInputFormat | matroska_demuxer |
Definition in file matroskadec.c.
#define ARRAY_SIZE | ( | x | ) | (sizeof(x)/sizeof(*x)) |
Definition at line 1981 of file matroskadec.c.
Referenced by matroska_aac_profile(), and matroska_aac_sri().
#define MAX_TRACK_SIZE |
Value:
(FFMAX(FFMAX(sizeof(MatroskaVideoTrack), \ sizeof(MatroskaAudioTrack)), \ sizeof(MatroskaSubtitleTrack)))
Definition at line 100 of file matroskadec.c.
Referenced by matroska_add_stream().
typedef struct Track MatroskaTrack |
static uint32_t ebml_peek_id | ( | MatroskaDemuxContext * | matroska, | |
int * | level_up | |||
) | [static] |
Definition at line 306 of file matroskadec.c.
Referenced by ebml_read_header(), matroska_add_stream(), matroska_parse_attachments(), matroska_parse_blockgroup(), matroska_parse_cluster(), matroska_parse_index(), matroska_parse_info(), matroska_parse_metadata(), matroska_parse_seekhead(), matroska_parse_tracks(), matroska_read_header(), and matroska_read_packet().
static int ebml_read_ascii | ( | MatroskaDemuxContext * | matroska, | |
uint32_t * | id, | |||
char ** | str | |||
) | [static] |
Definition at line 469 of file matroskadec.c.
Referenced by ebml_read_header(), ebml_read_utf8(), matroska_add_stream(), and matroska_parse_attachments().
static int ebml_read_binary | ( | MatroskaDemuxContext * | matroska, | |
uint32_t * | id, | |||
uint8_t ** | binary, | |||
int * | size | |||
) | [static] |
Definition at line 565 of file matroskadec.c.
Referenced by matroska_add_stream(), matroska_parse_attachments(), matroska_parse_blockgroup(), and matroska_parse_cluster().
static int ebml_read_date | ( | MatroskaDemuxContext * | matroska, | |
uint32_t * | id, | |||
int64_t * | date | |||
) | [static] |
static int ebml_read_element_id | ( | MatroskaDemuxContext * | matroska, | |
uint32_t * | id, | |||
int * | level_up | |||
) | [static] |
Definition at line 256 of file matroskadec.c.
Referenced by ebml_peek_id(), ebml_read_ascii(), ebml_read_binary(), ebml_read_float(), ebml_read_master(), ebml_read_sint(), ebml_read_skip(), and ebml_read_uint().
static int ebml_read_element_length | ( | MatroskaDemuxContext * | matroska, | |
uint64_t * | length | |||
) | [static] |
Definition at line 289 of file matroskadec.c.
Referenced by ebml_read_ascii(), ebml_read_binary(), ebml_read_float(), ebml_read_master(), ebml_read_sint(), ebml_read_skip(), and ebml_read_uint().
static int ebml_read_element_level_up | ( | MatroskaDemuxContext * | matroska | ) | [static] |
static int ebml_read_float | ( | MatroskaDemuxContext * | matroska, | |
uint32_t * | id, | |||
double * | num | |||
) | [static] |
Definition at line 435 of file matroskadec.c.
Referenced by matroska_add_stream(), and matroska_parse_info().
static int ebml_read_header | ( | MatroskaDemuxContext * | matroska, | |
char ** | doctype, | |||
int * | version | |||
) | [static] |
static int ebml_read_master | ( | MatroskaDemuxContext * | matroska, | |
uint32_t * | id | |||
) | [static] |
Definition at line 532 of file matroskadec.c.
Referenced by ebml_read_header(), matroska_add_stream(), matroska_parse_attachments(), matroska_parse_cluster(), matroska_parse_index(), matroska_parse_seekhead(), matroska_read_header(), and matroska_read_packet().
static int ebml_read_num | ( | MatroskaDemuxContext * | matroska, | |
int | max_size, | |||
uint64_t * | number | |||
) | [static] |
Definition at line 205 of file matroskadec.c.
Referenced by ebml_read_element_id(), and ebml_read_element_length().
static int ebml_read_seek | ( | MatroskaDemuxContext * | matroska, | |
offset_t | offset | |||
) | [static] |
static int ebml_read_sint | ( | MatroskaDemuxContext * | matroska, | |
uint32_t * | id, | |||
int64_t * | num | |||
) | [static] |
Definition at line 396 of file matroskadec.c.
Referenced by ebml_read_date(), and matroska_parse_blockgroup().
static int ebml_read_skip | ( | MatroskaDemuxContext * | matroska | ) | [static] |
Definition at line 340 of file matroskadec.c.
Referenced by ebml_read_header(), matroska_add_stream(), matroska_parse_attachments(), matroska_parse_blockgroup(), matroska_parse_cluster(), matroska_parse_index(), matroska_parse_info(), matroska_parse_metadata(), matroska_parse_seekhead(), matroska_parse_tracks(), matroska_read_header(), and matroska_read_packet().
static int ebml_read_uint | ( | MatroskaDemuxContext * | matroska, | |
uint32_t * | id, | |||
uint64_t * | num | |||
) | [static] |
Definition at line 362 of file matroskadec.c.
Referenced by ebml_read_header(), matroska_add_stream(), matroska_parse_blockgroup(), matroska_parse_cluster(), matroska_parse_index(), matroska_parse_info(), and matroska_parse_seekhead().
static int ebml_read_utf8 | ( | MatroskaDemuxContext * | matroska, | |
uint32_t * | id, | |||
char ** | str | |||
) | [static] |
Definition at line 505 of file matroskadec.c.
Referenced by matroska_add_stream(), matroska_parse_attachments(), and matroska_parse_info().
static int matroska_aac_profile | ( | char * | codec_id | ) | [static] |
static int matroska_aac_sri | ( | int | samplerate | ) | [static] |
static int matroska_add_stream | ( | MatroskaDemuxContext * | matroska | ) | [static] |
static void matroska_clear_queue | ( | MatroskaDemuxContext * | matroska | ) | [static] |
Definition at line 851 of file matroskadec.c.
Referenced by matroska_read_close(), and matroska_read_seek().
static int matroska_deliver_packet | ( | MatroskaDemuxContext * | matroska, | |
AVPacket * | pkt | |||
) | [static] |
static int matroska_ebmlnum_sint | ( | uint8_t * | data, | |
uint32_t | size, | |||
int64_t * | num | |||
) | [static] |
static int matroska_ebmlnum_uint | ( | uint8_t * | data, | |
uint32_t | size, | |||
uint64_t * | num | |||
) | [static] |
Definition at line 602 of file matroskadec.c.
Referenced by matroska_ebmlnum_sint(), and matroska_parse_block().
static int matroska_find_track_by_num | ( | MatroskaDemuxContext * | matroska, | |
int | num | |||
) | [static] |
Definition at line 790 of file matroskadec.c.
Referenced by matroska_parse_block(), and matroska_read_header().
static int matroska_parse_attachments | ( | AVFormatContext * | s | ) | [static] |
static int matroska_parse_block | ( | MatroskaDemuxContext * | matroska, | |
uint8_t * | data, | |||
int | size, | |||
int64_t | pos, | |||
uint64_t | cluster_time, | |||
uint64_t | duration, | |||
int | is_keyframe, | |||
int | is_bframe | |||
) | [static] |
Definition at line 2367 of file matroskadec.c.
Referenced by matroska_parse_blockgroup(), and matroska_parse_cluster().
static int matroska_parse_blockgroup | ( | MatroskaDemuxContext * | matroska, | |
uint64_t | cluster_time | |||
) | [static] |
static int matroska_parse_cluster | ( | MatroskaDemuxContext * | matroska | ) | [static] |
static int matroska_parse_index | ( | MatroskaDemuxContext * | matroska | ) | [static] |
Definition at line 1497 of file matroskadec.c.
Referenced by matroska_parse_seekhead(), and matroska_read_header().
static int matroska_parse_info | ( | MatroskaDemuxContext * | matroska | ) | [static] |
static int matroska_parse_metadata | ( | MatroskaDemuxContext * | matroska | ) | [static] |
Definition at line 1655 of file matroskadec.c.
Referenced by matroska_parse_seekhead(), and matroska_read_header().
static int matroska_parse_seekhead | ( | MatroskaDemuxContext * | matroska | ) | [static] |
static int matroska_parse_tracks | ( | MatroskaDemuxContext * | matroska | ) | [static] |
static int matroska_probe | ( | AVProbeData * | p | ) | [static] |
Definition at line 871 of file matroskadec.c.
static void matroska_queue_packet | ( | MatroskaDemuxContext * | matroska, | |
AVPacket * | pkt | |||
) | [static] |
static int matroska_read_close | ( | AVFormatContext * | s | ) | [static] |
Definition at line 2804 of file matroskadec.c.
static int matroska_read_header | ( | AVFormatContext * | s, | |
AVFormatParameters * | ap | |||
) | [static] |
Definition at line 2013 of file matroskadec.c.
static int matroska_read_packet | ( | AVFormatContext * | s, | |
AVPacket * | pkt | |||
) | [static] |
Definition at line 2730 of file matroskadec.c.
static int matroska_read_seek | ( | AVFormatContext * | s, | |
int | stream_index, | |||
int64_t | timestamp, | |||
int | flags | |||
) | [static] |
Definition at line 2781 of file matroskadec.c.
Initial value:
{ "matroska", "Matroska file format", sizeof(MatroskaDemuxContext), matroska_probe, matroska_read_header, matroska_read_packet, matroska_read_close, matroska_read_seek, }
Definition at line 2833 of file matroskadec.c.