Logo Search packages:      
Sourcecode: blender version File versions  Download package

matroska.c File Reference


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 matroska.c.

#include "avformat.h"
#include "avi.h"
#include "intfloat_readwrite.h"

Go to the source code of this file.

Classes

struct  CodecTags
struct  MatroskaAudioTrack
struct  MatroskaDemuxContext
struct  MatroskaDemuxIndex
struct  MatroskaLevel
struct  MatroskaSubtitleTrack
struct  MatroskaVideoTrack
struct  Track

Defines

#define EBML_ID_DOCTYPE   0x4282
#define EBML_ID_DOCTYPEREADVERSION   0x4285
#define EBML_ID_DOCTYPEVERSION   0x4287
#define EBML_ID_EBMLMAXIDLENGTH   0x42F2
#define EBML_ID_EBMLMAXSIZELENGTH   0x42F3
#define EBML_ID_EBMLREADVERSION   0x42F7
#define EBML_ID_EBMLVERSION   0x4286
#define EBML_ID_HEADER   0x1A45DFA3
#define EBML_ID_VOID   0xEC
#define EBML_MAX_DEPTH   16
#define EBML_VERSION   1
#define MATROSKA_CODEC_ID_AUDIO_ACM   "A_MS/ACM"
#define MATROSKA_CODEC_ID_VIDEO_VFW_FOURCC   "V_MS/VFW/FOURCC"
#define MATROSKA_ID_AUDIOBITDEPTH   0x6264
#define MATROSKA_ID_AUDIOCHANNELS   0x9F
#define MATROSKA_ID_AUDIOSAMPLINGFREQ   0xB5
#define MATROSKA_ID_BLOCK   0xA1
#define MATROSKA_ID_BLOCKDURATION   0x9B
#define MATROSKA_ID_BLOCKGROUP   0xA0
#define MATROSKA_ID_BLOCKREFERENCE   0xFB
#define MATROSKA_ID_CLUSTER   0x1F43B675
#define MATROSKA_ID_CLUSTERTIMECODE   0xE7
#define MATROSKA_ID_CODECDOWNLOADURL   0x26B240
#define MATROSKA_ID_CODECID   0x86
#define MATROSKA_ID_CODECINFOURL   0x3B4040
#define MATROSKA_ID_CODECNAME   0x258688
#define MATROSKA_ID_CODECPRIVATE   0x63A2
#define MATROSKA_ID_CUECLUSTERPOSITION   0xF1
#define MATROSKA_ID_CUES   0x1C53BB6B
#define MATROSKA_ID_CUETIME   0xB3
#define MATROSKA_ID_CUETRACK   0xF7
#define MATROSKA_ID_CUETRACKPOSITION   0xB7
#define MATROSKA_ID_DATEUTC   0x4461
#define MATROSKA_ID_DURATION   0x4489
#define MATROSKA_ID_INFO   0x1549A966
#define MATROSKA_ID_MUXINGAPP   0x4D80
#define MATROSKA_ID_POINTENTRY   0xBB
#define MATROSKA_ID_SEEKENTRY   0x4DBB
#define MATROSKA_ID_SEEKHEAD   0x114D9B74
#define MATROSKA_ID_SEEKID   0x53AB
#define MATROSKA_ID_SEEKPOSITION   0x53AC
#define MATROSKA_ID_SEGMENT   0x18538067
#define MATROSKA_ID_TAGS   0x1254C367
#define MATROSKA_ID_TIMECODESCALE   0x2AD7B1
#define MATROSKA_ID_TRACKAUDIO   0xE1
#define MATROSKA_ID_TRACKDEFAULTDURATION   0x23E383
#define MATROSKA_ID_TRACKENTRY   0xAE
#define MATROSKA_ID_TRACKFLAGDEFAULT   0x88
#define MATROSKA_ID_TRACKFLAGENABLED   0xB9
#define MATROSKA_ID_TRACKFLAGLACING   0x9C
#define MATROSKA_ID_TRACKLANGUAGE   0x22B59C
#define MATROSKA_ID_TRACKMAXCACHE   0x6DF8
#define MATROSKA_ID_TRACKMINCACHE   0x6DE7
#define MATROSKA_ID_TRACKNAME   0x536E
#define MATROSKA_ID_TRACKNUMBER   0xD7
#define MATROSKA_ID_TRACKS   0x1654AE6B
#define MATROSKA_ID_TRACKTYPE   0x83
#define MATROSKA_ID_TRACKUID   0x73C5
#define MATROSKA_ID_TRACKVIDEO   0xE0
#define MATROSKA_ID_VIDEOASPECTRATIO   0x54B3
#define MATROSKA_ID_VIDEOCOLOURSPACE   0x2EB524
#define MATROSKA_ID_VIDEODISPLAYHEIGHT   0x54BA
#define MATROSKA_ID_VIDEODISPLAYWIDTH   0x54B0
#define MATROSKA_ID_VIDEOFLAGINTERLACED   0x9A
#define MATROSKA_ID_VIDEOFRAMERATE   0x2383E3
#define MATROSKA_ID_VIDEOPIXELHEIGHT   0xBA
#define MATROSKA_ID_VIDEOPIXELWIDTH   0xB0
#define MATROSKA_ID_VIDEOSTEREOMODE   0x53B9
#define MATROSKA_ID_WRITINGAPP   0x5741

Typedefs

typedef struct Track MatroskaTrack

Enumerations

enum  MatroskaAspectRatioMode { MATROSKA_ASPECT_RATIO_MODE_FREE = 0x0, MATROSKA_ASPECT_RATIO_MODE_KEEP = 0x1, MATROSKA_ASPECT_RATIO_MODE_FIXED = 0x2 }
enum  MatroskaEyeMode { MATROSKA_EYE_MODE_MONO = 0x0, MATROSKA_EYE_MODE_RIGHT = 0x1, MATROSKA_EYE_MODE_LEFT = 0x2, MATROSKA_EYE_MODE_BOTH = 0x3 }
enum  MatroskaTrackFlags { MATROSKA_TRACK_ENABLED = (1<<0), MATROSKA_TRACK_DEFAULT = (1<<1), MATROSKA_TRACK_LACING = (1<<2), MATROSKA_TRACK_SHIFT = (1<<16) }
enum  MatroskaTrackType {
  MATROSKA_TRACK_TYPE_VIDEO = 0x1, MATROSKA_TRACK_TYPE_AUDIO = 0x2, MATROSKA_TRACK_TYPE_COMPLEX = 0x3, MATROSKA_TRACK_TYPE_LOGO = 0x10,
  MATROSKA_TRACK_TYPE_SUBTITLE = 0x11, MATROSKA_TRACK_TYPE_CONTROL = 0x20
}
enum  MatroskaVideoTrackFlags { MATROSKA_VIDEOTRACK_INTERLACED = (MATROSKA_TRACK_SHIFT<<0) }

Functions

static uint32_t ebml_peek_id (MatroskaDemuxContext *matroska, int *level_up)
static int ebml_read_ascii (MatroskaDemuxContext *matroska, uint32_t *id, char **str)
static int ebml_read_binary (MatroskaDemuxContext *matroska, uint32_t *id, uint8_t **binary, int *size)
static int ebml_read_date (MatroskaDemuxContext *matroska, uint32_t *id, int64_t *date)
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 int ebml_read_element_level_up (MatroskaDemuxContext *matroska)
static int ebml_read_float (MatroskaDemuxContext *matroska, uint32_t *id, double *num)
static int ebml_read_header (MatroskaDemuxContext *matroska, char **doctype, int *version)
static int ebml_read_master (MatroskaDemuxContext *matroska, uint32_t *id)
static int ebml_read_num (MatroskaDemuxContext *matroska, int max_size, uint64_t *number)
static int ebml_read_seek (MatroskaDemuxContext *matroska, offset_t offset)
static int ebml_read_sint (MatroskaDemuxContext *matroska, uint32_t *id, int64_t *num)
static int ebml_read_skip (MatroskaDemuxContext *matroska)
static int ebml_read_uint (MatroskaDemuxContext *matroska, uint32_t *id, uint64_t *num)
static int ebml_read_utf8 (MatroskaDemuxContext *matroska, uint32_t *id, char **str)
static int matroska_add_stream (MatroskaDemuxContext *matroska)
static int matroska_deliver_packet (MatroskaDemuxContext *matroska, AVPacket *pkt)
static int matroska_ebmlnum_sint (uint8_t *data, uint32_t size, int64_t *num)
static int matroska_ebmlnum_uint (uint8_t *data, uint32_t size, uint64_t *num)
static int matroska_find_track_by_num (MatroskaDemuxContext *matroska, int num)
int matroska_init (void)
static int matroska_parse_blockgroup (MatroskaDemuxContext *matroska, uint64_t cluster_time)
static int matroska_parse_cluster (MatroskaDemuxContext *matroska)
static int matroska_parse_index (MatroskaDemuxContext *matroska)
static int matroska_parse_info (MatroskaDemuxContext *matroska)
static int matroska_parse_metadata (MatroskaDemuxContext *matroska)
static int matroska_parse_seekhead (MatroskaDemuxContext *matroska)
static int matroska_parse_tracks (MatroskaDemuxContext *matroska)
static int matroska_probe (AVProbeData *p)
static void matroska_queue_packet (MatroskaDemuxContext *matroska, AVPacket *pkt)
static int matroska_read_close (AVFormatContext *s)
static int matroska_read_header (AVFormatContext *s, AVFormatParameters *ap)
static int matroska_read_packet (AVFormatContext *s, AVPacket *pkt)

Variables

CodecTags codec_tags []
static AVInputFormat matroska_iformat


Generated by  Doxygen 1.6.0   Back to index