libavformat/matroskadec.c File Reference

Matroska file demuxer by Ronald Bultje <rbultje@ronald.bitfreak.net> with a little help from Moritz Bunkus <moritz@bunkus.org> Specs available on the matroska project page: http://www.matroska.org/. More...

#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


Detailed Description

Matroska file demuxer by Ronald Bultje <rbultje@ronald.bitfreak.net> with a little help from Moritz Bunkus <moritz@bunkus.org> Specs available on the matroska project page: http://www.matroska.org/.

Definition in file matroskadec.c.


Define Documentation

#define ARRAY_SIZE (  )     (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:

Definition at line 100 of file matroskadec.c.

Referenced by matroska_add_stream().


Typedef Documentation

typedef struct Track MatroskaTrack


Function Documentation

static uint32_t ebml_peek_id ( MatroskaDemuxContext matroska,
int *  level_up 
) [static]

static int ebml_read_ascii ( MatroskaDemuxContext matroska,
uint32_t *  id,
char **  str 
) [static]

static int ebml_read_binary ( MatroskaDemuxContext matroska,
uint32_t *  id,
uint8_t **  binary,
int *  size 
) [static]

static int ebml_read_date ( MatroskaDemuxContext matroska,
uint32_t *  id,
int64_t *  date 
) [static]

Definition at line 518 of file matroskadec.c.

Referenced by matroska_parse_info().

static int ebml_read_element_id ( MatroskaDemuxContext matroska,
uint32_t *  id,
int *  level_up 
) [static]

static int ebml_read_element_length ( MatroskaDemuxContext matroska,
uint64_t *  length 
) [static]

static int ebml_read_element_level_up ( MatroskaDemuxContext matroska  )  [static]

Definition at line 175 of file matroskadec.c.

Referenced by ebml_read_element_id().

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]

Definition at line 670 of file matroskadec.c.

Referenced by matroska_read_header().

static int ebml_read_master ( MatroskaDemuxContext matroska,
uint32_t *  id 
) [static]

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]

Definition at line 323 of file matroskadec.c.

Referenced by matroska_parse_seekhead().

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]

static int ebml_read_uint ( MatroskaDemuxContext matroska,
uint32_t *  id,
uint64_t *  num 
) [static]

static int ebml_read_utf8 ( MatroskaDemuxContext matroska,
uint32_t *  id,
char **  str 
) [static]

static int matroska_aac_profile ( char *  codec_id  )  [static]

Definition at line 1984 of file matroskadec.c.

Referenced by matroska_read_header().

static int matroska_aac_sri ( int  samplerate  )  [static]

Definition at line 1998 of file matroskadec.c.

Referenced by matroska_read_header().

static int matroska_add_stream ( MatroskaDemuxContext matroska  )  [static]

Definition at line 1001 of file matroskadec.c.

Referenced by matroska_parse_tracks().

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]

Definition at line 809 of file matroskadec.c.

Referenced by matroska_read_packet().

static int matroska_ebmlnum_sint ( uint8_t data,
uint32_t  size,
int64_t *  num 
) [static]

Definition at line 644 of file matroskadec.c.

Referenced by matroska_parse_block().

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]

Definition at line 1869 of file matroskadec.c.

Referenced by matroska_read_header().

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]

Definition at line 2583 of file matroskadec.c.

Referenced by matroska_parse_cluster().

static int matroska_parse_cluster ( MatroskaDemuxContext matroska  )  [static]

Definition at line 2663 of file matroskadec.c.

Referenced by matroska_read_packet().

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]

Definition at line 913 of file matroskadec.c.

Referenced by matroska_read_header().

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]

Definition at line 1691 of file matroskadec.c.

Referenced by matroska_read_header().

static int matroska_parse_tracks ( MatroskaDemuxContext matroska  )  [static]

Definition at line 1455 of file matroskadec.c.

Referenced by matroska_read_header().

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]

Definition at line 837 of file matroskadec.c.

Referenced by matroska_parse_block().

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.


Variable Documentation

Initial value:

Definition at line 2833 of file matroskadec.c.


Generated on Fri Oct 3 22:47:00 2008 for ffmpeg by  doxygen 1.5.6