annotate matroska.h @ 4050:7bc64c735f8b libavformat

Change function prototype from taking an AVStream to taking an index to the stream itself, plus a name change to signify that there may be multiple AVStreams per RDT set. See discussion in "[PATCH] RDT/Realmedia patches #2" thread on ML.
author rbultje
date Sun, 30 Nov 2008 20:39:16 +0000
parents 1b6245500d8c
children 4b63fdf6ecc3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
1 /*
2142
3aa1f0f698de split some common code from the mkv demuxer that will be useful to the muxer
aurel
parents: 2023
diff changeset
2 * Matroska constants
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
3 * Copyright (c) 2003-2004 The ffmpeg Project
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
4 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
5 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
6 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
11 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
15 * Lesser General Public License for more details.
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
16 *
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
896
edbe5c3717f9 Update licensing information: The FSF changed postal address.
diego
parents: 887
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
20 */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
21
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3717
diff changeset
22 #ifndef AVFORMAT_MATROSKA_H
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3717
diff changeset
23 #define AVFORMAT_MATROSKA_H
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
24
3286
6f61c3b36632 Use full path for #includes from another directory.
diego
parents: 3279
diff changeset
25 #include "libavcodec/avcodec.h"
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
26
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
27 /* EBML version supported */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
28 #define EBML_VERSION 1
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
29
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
30 /* top-level master-IDs */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
31 #define EBML_ID_HEADER 0x1A45DFA3
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
32
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
33 /* IDs in the HEADER master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
34 #define EBML_ID_EBMLVERSION 0x4286
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
35 #define EBML_ID_EBMLREADVERSION 0x42F7
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
36 #define EBML_ID_EBMLMAXIDLENGTH 0x42F2
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
37 #define EBML_ID_EBMLMAXSIZELENGTH 0x42F3
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
38 #define EBML_ID_DOCTYPE 0x4282
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
39 #define EBML_ID_DOCTYPEVERSION 0x4287
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
40 #define EBML_ID_DOCTYPEREADVERSION 0x4285
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
41
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
42 /* general EBML types */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
43 #define EBML_ID_VOID 0xEC
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
44 #define EBML_ID_CRC32 0xBF
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
45
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
46 /*
3694
191f342eb840 Fix small typo.
diego
parents: 3692
diff changeset
47 * Matroska element IDs, max. 32 bits
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
48 */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
49
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
50 /* toplevel segment */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
51 #define MATROSKA_ID_SEGMENT 0x18538067
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
52
3692
e8f67b6063c3 misc spelling/grammar fixes
diego
parents: 3687
diff changeset
53 /* Matroska top-level master IDs */
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
54 #define MATROSKA_ID_INFO 0x1549A966
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
55 #define MATROSKA_ID_TRACKS 0x1654AE6B
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
56 #define MATROSKA_ID_CUES 0x1C53BB6B
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
57 #define MATROSKA_ID_TAGS 0x1254C367
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
58 #define MATROSKA_ID_SEEKHEAD 0x114D9B74
2973
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
59 #define MATROSKA_ID_ATTACHMENTS 0x1941A469
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
60 #define MATROSKA_ID_CLUSTER 0x1F43B675
3315
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
61 #define MATROSKA_ID_CHAPTERS 0x1043A770
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
62
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
63 /* IDs in the info master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
64 #define MATROSKA_ID_TIMECODESCALE 0x2AD7B1
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
65 #define MATROSKA_ID_DURATION 0x4489
1459
571b1b1c7984 Allow reading matroska title.
aurel
parents: 1458
diff changeset
66 #define MATROSKA_ID_TITLE 0x7BA9
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
67 #define MATROSKA_ID_WRITINGAPP 0x5741
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
68 #define MATROSKA_ID_MUXINGAPP 0x4D80
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
69 #define MATROSKA_ID_DATEUTC 0x4461
2288
1fdb025071d8 Add EBML ID for Segment UID
conrad
parents: 2142
diff changeset
70 #define MATROSKA_ID_SEGMENTUID 0x73A4
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
71
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
72 /* ID in the tracks master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
73 #define MATROSKA_ID_TRACKENTRY 0xAE
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
74
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
75 /* IDs in the trackentry master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
76 #define MATROSKA_ID_TRACKNUMBER 0xD7
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
77 #define MATROSKA_ID_TRACKUID 0x73C5
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
78 #define MATROSKA_ID_TRACKTYPE 0x83
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
79 #define MATROSKA_ID_TRACKAUDIO 0xE1
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
80 #define MATROSKA_ID_TRACKVIDEO 0xE0
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
81 #define MATROSKA_ID_CODECID 0x86
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
82 #define MATROSKA_ID_CODECPRIVATE 0x63A2
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
83 #define MATROSKA_ID_CODECNAME 0x258688
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
84 #define MATROSKA_ID_CODECINFOURL 0x3B4040
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
85 #define MATROSKA_ID_CODECDOWNLOADURL 0x26B240
3407
ffd297928ed8 matroskadec: silently discard some element ID that we don't care about
aurel
parents: 3315
diff changeset
86 #define MATROSKA_ID_CODECDECODEALL 0xAA
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
87 #define MATROSKA_ID_TRACKNAME 0x536E
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
88 #define MATROSKA_ID_TRACKLANGUAGE 0x22B59C
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
89 #define MATROSKA_ID_TRACKFLAGENABLED 0xB9
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
90 #define MATROSKA_ID_TRACKFLAGDEFAULT 0x88
3407
ffd297928ed8 matroskadec: silently discard some element ID that we don't care about
aurel
parents: 3315
diff changeset
91 #define MATROSKA_ID_TRACKFLAGFORCED 0x55AA
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
92 #define MATROSKA_ID_TRACKFLAGLACING 0x9C
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
93 #define MATROSKA_ID_TRACKMINCACHE 0x6DE7
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
94 #define MATROSKA_ID_TRACKMAXCACHE 0x6DF8
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
95 #define MATROSKA_ID_TRACKDEFAULTDURATION 0x23E383
3279
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
96 #define MATROSKA_ID_TRACKCONTENTENCODINGS 0x6D80
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
97 #define MATROSKA_ID_TRACKCONTENTENCODING 0x6240
3408
da09478c97ce matroskadec: read TrackTimecodeScale and set timebase accordingly
aurel
parents: 3407
diff changeset
98 #define MATROSKA_ID_TRACKTIMECODESCALE 0x23314F
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
99 #define MATROSKA_ID_TRACKMAXBLKADDID 0x55EE
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
100
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
101 /* IDs in the trackvideo master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
102 #define MATROSKA_ID_VIDEOFRAMERATE 0x2383E3
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
103 #define MATROSKA_ID_VIDEODISPLAYWIDTH 0x54B0
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
104 #define MATROSKA_ID_VIDEODISPLAYHEIGHT 0x54BA
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
105 #define MATROSKA_ID_VIDEOPIXELWIDTH 0xB0
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
106 #define MATROSKA_ID_VIDEOPIXELHEIGHT 0xBA
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
107 #define MATROSKA_ID_VIDEOPIXELCROPB 0x54AA
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
108 #define MATROSKA_ID_VIDEOPIXELCROPT 0x54BB
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
109 #define MATROSKA_ID_VIDEOPIXELCROPL 0x54CC
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
110 #define MATROSKA_ID_VIDEOPIXELCROPR 0x54DD
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
111 #define MATROSKA_ID_VIDEODISPLAYUNIT 0x54B2
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
112 #define MATROSKA_ID_VIDEOFLAGINTERLACED 0x9A
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
113 #define MATROSKA_ID_VIDEOSTEREOMODE 0x53B9
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
114 #define MATROSKA_ID_VIDEOASPECTRATIO 0x54B3
2805
888d5439eac6 colour --> color in variable names
diego
parents: 2793
diff changeset
115 #define MATROSKA_ID_VIDEOCOLORSPACE 0x2EB524
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
116
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
117 /* IDs in the trackaudio master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
118 #define MATROSKA_ID_AUDIOSAMPLINGFREQ 0xB5
1467
24c082e20a6a add audio output sampling freqency reading in matroska
aurel
parents: 1465
diff changeset
119 #define MATROSKA_ID_AUDIOOUTSAMPLINGFREQ 0x78B5
24c082e20a6a add audio output sampling freqency reading in matroska
aurel
parents: 1465
diff changeset
120
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
121 #define MATROSKA_ID_AUDIOBITDEPTH 0x6264
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
122 #define MATROSKA_ID_AUDIOCHANNELS 0x9F
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
123
3279
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
124 /* IDs in the content encoding master */
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
125 #define MATROSKA_ID_ENCODINGORDER 0x5031
3279
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
126 #define MATROSKA_ID_ENCODINGSCOPE 0x5032
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
127 #define MATROSKA_ID_ENCODINGTYPE 0x5033
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
128 #define MATROSKA_ID_ENCODINGCOMPRESSION 0x5034
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
129 #define MATROSKA_ID_ENCODINGCOMPALGO 0x4254
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
130 #define MATROSKA_ID_ENCODINGCOMPSETTINGS 0x4255
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
131
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
132 /* ID in the cues master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
133 #define MATROSKA_ID_POINTENTRY 0xBB
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
134
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
135 /* IDs in the pointentry master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
136 #define MATROSKA_ID_CUETIME 0xB3
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
137 #define MATROSKA_ID_CUETRACKPOSITION 0xB7
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
138
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
139 /* IDs in the cuetrackposition master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
140 #define MATROSKA_ID_CUETRACK 0xF7
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
141 #define MATROSKA_ID_CUECLUSTERPOSITION 0xF1
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
142 #define MATROSKA_ID_CUEBLOCKNUMBER 0x5378
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
143
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
144 /* IDs in the tags master */
3702
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
145 #define MATROSKA_ID_TAG 0x7373
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
146 #define MATROSKA_ID_SIMPLETAG 0x67C8
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
147 #define MATROSKA_ID_TAGNAME 0x45A3
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
148 #define MATROSKA_ID_TAGSTRING 0x4487
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
149 #define MATROSKA_ID_TAGLANG 0x447A
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
150 #define MATROSKA_ID_TAGDEFAULT 0x44B4
b4f34511ccd3 matroskadec: add basic tags support (metadata)
aurel
parents: 3694
diff changeset
151 #define MATROSKA_ID_TAGTARGETS 0x63C0
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
152
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
153 /* IDs in the seekhead master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
154 #define MATROSKA_ID_SEEKENTRY 0x4DBB
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
155
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
156 /* IDs in the seekpoint master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
157 #define MATROSKA_ID_SEEKID 0x53AB
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
158 #define MATROSKA_ID_SEEKPOSITION 0x53AC
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
159
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
160 /* IDs in the cluster master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
161 #define MATROSKA_ID_CLUSTERTIMECODE 0xE7
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
162 #define MATROSKA_ID_CLUSTERPOSITION 0xA7
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
163 #define MATROSKA_ID_CLUSTERPREVSIZE 0xAB
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
164 #define MATROSKA_ID_BLOCKGROUP 0xA0
1831
bdca904db5e5 add support for simple blocks (ie. matroska v2)
aurel
parents: 1830
diff changeset
165 #define MATROSKA_ID_SIMPLEBLOCK 0xA3
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
166
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
167 /* IDs in the blockgroup master */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
168 #define MATROSKA_ID_BLOCK 0xA1
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
169 #define MATROSKA_ID_BLOCKDURATION 0x9B
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
170 #define MATROSKA_ID_BLOCKREFERENCE 0xFB
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
171
2973
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
172 /* IDs in the attachments master */
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
173 #define MATROSKA_ID_ATTACHEDFILE 0x61A7
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
174 #define MATROSKA_ID_FILEDESC 0x467E
2973
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
175 #define MATROSKA_ID_FILENAME 0x466E
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
176 #define MATROSKA_ID_FILEMIMETYPE 0x4660
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
177 #define MATROSKA_ID_FILEDATA 0x465C
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
178 #define MATROSKA_ID_FILEUID 0x46AE
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
179
3315
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
180 /* IDs in the chapters master */
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
181 #define MATROSKA_ID_EDITIONENTRY 0x45B9
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
182 #define MATROSKA_ID_CHAPTERATOM 0xB6
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
183 #define MATROSKA_ID_CHAPTERTIMESTART 0x91
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
184 #define MATROSKA_ID_CHAPTERTIMEEND 0x92
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
185 #define MATROSKA_ID_CHAPTERDISPLAY 0x80
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
186 #define MATROSKA_ID_CHAPSTRING 0x85
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
187 #define MATROSKA_ID_CHAPLANG 0x437C
3315
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
188 #define MATROSKA_ID_EDITIONUID 0x45BC
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
189 #define MATROSKA_ID_EDITIONFLAGHIDDEN 0x45BD
3407
ffd297928ed8 matroskadec: silently discard some element ID that we don't care about
aurel
parents: 3315
diff changeset
190 #define MATROSKA_ID_EDITIONFLAGDEFAULT 0x45DB
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
191 #define MATROSKA_ID_EDITIONFLAGORDERED 0x45DD
3315
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
192 #define MATROSKA_ID_CHAPTERUID 0x73C4
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
193 #define MATROSKA_ID_CHAPTERFLAGHIDDEN 0x98
3717
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
194 #define MATROSKA_ID_CHAPTERFLAGENABLED 0x4598
f65dc584662d matroskadec: list some more ebml IDs found in the wild and that we ignore
aurel
parents: 3702
diff changeset
195 #define MATROSKA_ID_CHAPTERPHYSEQUIV 0x63C3
3315
22ba37584545 demux chapters out of matroska
aurel
parents: 3290
diff changeset
196
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
197 typedef enum {
3290
fa502e142b44 Add MATROSKA_TRACK_TYPE_NONE.
cehoyos
parents: 3286
diff changeset
198 MATROSKA_TRACK_TYPE_NONE = 0x0,
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
199 MATROSKA_TRACK_TYPE_VIDEO = 0x1,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
200 MATROSKA_TRACK_TYPE_AUDIO = 0x2,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
201 MATROSKA_TRACK_TYPE_COMPLEX = 0x3,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
202 MATROSKA_TRACK_TYPE_LOGO = 0x10,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
203 MATROSKA_TRACK_TYPE_SUBTITLE = 0x11,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
204 MATROSKA_TRACK_TYPE_CONTROL = 0x20,
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
205 } MatroskaTrackType;
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
206
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
207 typedef enum {
3279
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
208 MATROSKA_TRACK_ENCODING_COMP_ZLIB = 0,
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
209 MATROSKA_TRACK_ENCODING_COMP_BZLIB = 1,
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
210 MATROSKA_TRACK_ENCODING_COMP_LZO = 2,
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
211 MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP = 3,
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
212 } MatroskaTrackEncodingCompAlgo;
807c5f54e8b5 matroskadec: add support for track content encoding
aurel
parents: 2973
diff changeset
213
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
214 /*
3692
e8f67b6063c3 misc spelling/grammar fixes
diego
parents: 3687
diff changeset
215 * Matroska Codec IDs, strings
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
216 */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
217
1024
144729fd2d6c cleanup codec_id mapping (untested)
michael
parents: 1021
diff changeset
218 typedef struct CodecTags{
3602
70edc1aeaf68 matroska: add support for A_QUICKTIME/QDM2 codec
aurel
parents: 3477
diff changeset
219 char str[20];
1024
144729fd2d6c cleanup codec_id mapping (untested)
michael
parents: 1021
diff changeset
220 enum CodecID id;
144729fd2d6c cleanup codec_id mapping (untested)
michael
parents: 1021
diff changeset
221 }CodecTags;
144729fd2d6c cleanup codec_id mapping (untested)
michael
parents: 1021
diff changeset
222
2973
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
223 typedef struct CodecMime{
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
224 char str[32];
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
225 enum CodecID id;
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
226 }CodecMime;
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
227
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
228 /* max. depth in the EBML tree structure */
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
229 #define EBML_MAX_DEPTH 16
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
230
2793
d5842afe8539 Make ff_mkv_codec_tags array const, it is never written.
reimar
parents: 2654
diff changeset
231 extern const CodecTags ff_mkv_codec_tags[];
2973
910ac68ab3b5 Add support for Matroska attachments.
aurel
parents: 2905
diff changeset
232 extern const CodecMime ff_mkv_mime_tags[];
380
9416dc106e06 matroska demuxer by ("Ronald S. Bultje" <R dot S dot Bultje at students dot uu dot nl>)
michael
parents:
diff changeset
233
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3717
diff changeset
234 #endif /* AVFORMAT_MATROSKA_H */