annotate matroska.h @ 3754:8d267b43eaba libavformat

Move malloc() down until after all initializations, so that the resource is only allocated if initialization worked. This means that on failure, we don't have to deallocate it.
author rbultje
date Sat, 23 Aug 2008 18:46:30 +0000
parents f65dc584662d
children 1b6245500d8c
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
2620
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2288
diff changeset
22 #ifndef FFMPEG_MATROSKA_H
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2288
diff changeset
23 #define FFMPEG_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
2620
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2288
diff changeset
234 #endif /* FFMPEG_MATROSKA_H */