annotate libmpdemux/ebml.h @ 24427:50159082a80b

Check wLongsPerEntry before using it. This fixes a potential crash for some values of it. As a side effect it works around broken callocs with an integer overflow vulnerability, but using MPlayer on such systems should never be assumed to be safe!
author reimar
date Thu, 13 Sep 2007 15:18:57 +0000
parents 3f0d00abc073
children 4129c8cfa742
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 19977
diff changeset
1 #ifndef EBML_H
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 19977
diff changeset
2 #define EBML_H
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
3
11815
0fa6f4fcfcbb Compiler/system compatibility fixes.
mosu
parents: 11807
diff changeset
4 #include <inttypes.h>
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
5
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
6
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
7 /* EBML version supported */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
8 #define EBML_VERSION 1
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
9
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
10 /*
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
11 * EBML element IDs. max. 32-bit.
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
12 */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
13
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
14 /* top-level master-IDs */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
15 #define EBML_ID_HEADER 0x1A45DFA3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
16
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
17 /* IDs in the HEADER master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
18 #define EBML_ID_EBMLVERSION 0x4286
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
19 #define EBML_ID_EBMLREADVERSION 0x42F7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
20 #define EBML_ID_EBMLMAXIDLENGTH 0x42F2
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
21 #define EBML_ID_EBMLMAXSIZELENGTH 0x42F3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
22 #define EBML_ID_DOCTYPE 0x4282
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
23 #define EBML_ID_DOCTYPEVERSION 0x4287
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
24 #define EBML_ID_DOCTYPEREADVERSION 0x4285
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
25
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
26 /* general EBML types */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
27 #define EBML_ID_VOID 0xEC
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
28
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
29 /* ID returned in error cases */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
30 #define EBML_ID_INVALID 0xFFFFFFFF
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
31
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
32
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
33 /*
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
34 * Matroska element IDs. max. 32-bit.
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
35 */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
36
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
37 /* toplevel segment */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
38 #define MATROSKA_ID_SEGMENT 0x18538067
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
39
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
40 /* matroska top-level master IDs */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
41 #define MATROSKA_ID_INFO 0x1549A966
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
42 #define MATROSKA_ID_TRACKS 0x1654AE6B
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
43 #define MATROSKA_ID_CUES 0x1C53BB6B
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
44 #define MATROSKA_ID_TAGS 0x1254C367
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
45 #define MATROSKA_ID_SEEKHEAD 0x114D9B74
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
46 #define MATROSKA_ID_ATTACHMENTS 0x1941A469
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
47 #define MATROSKA_ID_CHAPTERS 0x1043A770
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
48 #define MATROSKA_ID_CLUSTER 0x1F43B675
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
49
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
50 /* IDs in the info master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
51 #define MATROSKA_ID_TIMECODESCALE 0x2AD7B1
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
52 #define MATROSKA_ID_DURATION 0x4489
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
53 #define MATROSKA_ID_WRITINGAPP 0x5741
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
54 #define MATROSKA_ID_MUXINGAPP 0x4D80
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
55 #define MATROSKA_ID_DATEUTC 0x4461
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
56
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
57 /* ID in the tracks master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
58 #define MATROSKA_ID_TRACKENTRY 0xAE
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
59
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
60 /* IDs in the trackentry master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
61 #define MATROSKA_ID_TRACKNUMBER 0xD7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
62 #define MATROSKA_ID_TRACKUID 0x73C5
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
63 #define MATROSKA_ID_TRACKTYPE 0x83
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
64 #define MATROSKA_ID_TRACKAUDIO 0xE1
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
65 #define MATROSKA_ID_TRACKVIDEO 0xE0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
66 #define MATROSKA_ID_CODECID 0x86
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
67 #define MATROSKA_ID_CODECPRIVATE 0x63A2
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
68 #define MATROSKA_ID_CODECNAME 0x258688
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
69 #define MATROSKA_ID_CODECINFOURL 0x3B4040
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
70 #define MATROSKA_ID_CODECDOWNLOADURL 0x26B240
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
71 #define MATROSKA_ID_TRACKNAME 0x536E
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
72 #define MATROSKA_ID_TRACKLANGUAGE 0x22B59C
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
73 #define MATROSKA_ID_TRACKFLAGENABLED 0xB9
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
74 #define MATROSKA_ID_TRACKFLAGDEFAULT 0x88
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
75 #define MATROSKA_ID_TRACKFLAGLACING 0x9C
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
76 #define MATROSKA_ID_TRACKMINCACHE 0x6DE7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
77 #define MATROSKA_ID_TRACKMAXCACHE 0x6DF8
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
78 #define MATROSKA_ID_TRACKDEFAULTDURATION 0x23E383
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
79 #define MATROSKA_ID_TRACKENCODINGS 0x6D80
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
80
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
81 /* IDs in the trackaudio master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
82 #define MATROSKA_ID_AUDIOSAMPLINGFREQ 0xB5
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
83 #define MATROSKA_ID_AUDIOBITDEPTH 0x6264
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
84 #define MATROSKA_ID_AUDIOCHANNELS 0x9F
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
85
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
86 /* IDs in the trackvideo master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
87 #define MATROSKA_ID_VIDEOFRAMERATE 0x2383E3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
88 #define MATROSKA_ID_VIDEODISPLAYWIDTH 0x54B0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
89 #define MATROSKA_ID_VIDEODISPLAYHEIGHT 0x54BA
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
90 #define MATROSKA_ID_VIDEOPIXELWIDTH 0xB0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
91 #define MATROSKA_ID_VIDEOPIXELHEIGHT 0xBA
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
92 #define MATROSKA_ID_VIDEOFLAGINTERLACED 0x9A
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
93 #define MATROSKA_ID_VIDEOSTEREOMODE 0x53B9
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
94 #define MATROSKA_ID_VIDEODISPLAYUNIT 0x54B2
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
95 #define MATROSKA_ID_VIDEOASPECTRATIO 0x54B3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
96 #define MATROSKA_ID_VIDEOCOLOURSPACE 0x2EB524
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
97 #define MATROSKA_ID_VIDEOGAMMA 0x2FB523
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
98
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
99 /* IDs in the trackencodings master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
100 #define MATROSKA_ID_CONTENTENCODING 0x6240
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
101 #define MATROSKA_ID_CONTENTENCODINGORDER 0x5031
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
102 #define MATROSKA_ID_CONTENTENCODINGSCOPE 0x5032
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
103 #define MATROSKA_ID_CONTENTENCODINGTYPE 0x5033
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
104 #define MATROSKA_ID_CONTENTCOMPRESSION 0x5034
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
105 #define MATROSKA_ID_CONTENTCOMPALGO 0x4254
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
106 #define MATROSKA_ID_CONTENTCOMPSETTINGS 0x4255
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
107
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
108 /* ID in the cues master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
109 #define MATROSKA_ID_POINTENTRY 0xBB
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
110
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
111 /* IDs in the pointentry master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
112 #define MATROSKA_ID_CUETIME 0xB3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
113 #define MATROSKA_ID_CUETRACKPOSITION 0xB7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
114
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
115 /* IDs in the cuetrackposition master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
116 #define MATROSKA_ID_CUETRACK 0xF7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
117 #define MATROSKA_ID_CUECLUSTERPOSITION 0xF1
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
118
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
119 /* IDs in the seekhead master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
120 #define MATROSKA_ID_SEEKENTRY 0x4DBB
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
121
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
122 /* IDs in the seekpoint master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
123 #define MATROSKA_ID_SEEKID 0x53AB
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
124 #define MATROSKA_ID_SEEKPOSITION 0x53AC
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
125
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
126 /* IDs in the chapters master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
127 #define MATROSKA_ID_EDITIONENTRY 0x45B9
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
128 #define MATROSKA_ID_CHAPTERATOM 0xB6
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
129 #define MATROSKA_ID_CHAPTERTIMESTART 0x91
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
130 #define MATROSKA_ID_CHAPTERTIMEEND 0x92
19342
4e68a3881201 Add matroska chapter seeking capability.
eugeni
parents: 18937
diff changeset
131 #define MATROSKA_ID_CHAPTERDISPLAY 0x80
4e68a3881201 Add matroska chapter seeking capability.
eugeni
parents: 18937
diff changeset
132 #define MATROSKA_ID_CHAPSTRING 0x85
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
133
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
134 /* IDs in the cluster master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
135 #define MATROSKA_ID_CLUSTERTIMECODE 0xE7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
136 #define MATROSKA_ID_BLOCKGROUP 0xA0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
137
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
138 /* IDs in the blockgroup master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
139 #define MATROSKA_ID_BLOCKDURATION 0x9B
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
140 #define MATROSKA_ID_BLOCK 0xA1
19977
8ada6970000a Add matroska v2 (SimpleBlock) support.
eugeni
parents: 19342
diff changeset
141 #define MATROSKA_ID_SIMPLEBLOCK 0xA3
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
142 #define MATROSKA_ID_REFERENCEBLOCK 0xFB
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
143
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
144 /* IDs in the attachments master */
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
145 #define MATROSKA_ID_ATTACHEDFILE 0x61A7
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
146 #define MATROSKA_ID_FILENAME 0x466E
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
147 #define MATROSKA_ID_FILEMIMETYPE 0x4660
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
148 #define MATROSKA_ID_FILEDATA 0x465C
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
149 #define MATROSKA_ID_FILEUID 0x46AE
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
150
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
151 /* matroska track types */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
152 #define MATROSKA_TRACK_VIDEO 0x01 /* rectangle-shaped pictures aka video */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
153 #define MATROSKA_TRACK_AUDIO 0x02 /* anything you can hear */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
154 #define MATROSKA_TRACK_COMPLEX 0x03 /* audio+video in same track used by DV */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
155 #define MATROSKA_TRACK_LOGO 0x10 /* overlay-pictures displayed over video*/
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
156 #define MATROSKA_TRACK_SUBTITLE 0x11 /* text-subtitles */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
157 #define MATROSKA_TRACK_CONTROL 0x20 /* control-codes for menu or other stuff*/
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
158
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
159 /* matroska subtitle types */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
160 #define MATROSKA_SUBTYPE_UNKNOWN 0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
161 #define MATROSKA_SUBTYPE_TEXT 1
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
162 #define MATROSKA_SUBTYPE_SSA 2
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
163 #define MATROSKA_SUBTYPE_VOBSUB 3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
164
11845
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
165 #ifndef UINT64_MAX
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
166 #define UINT64_MAX 18446744073709551615ULL
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
167 #endif
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
168
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
169 #ifndef INT64_MAX
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
170 #define INT64_MAX 9223372036854775807LL
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
171 #endif
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
172
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
173 #define EBML_UINT_INVALID UINT64_MAX
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
174 #define EBML_INT_INVALID INT64_MAX
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
175 #define EBML_FLOAT_INVALID -1000000000.0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
176
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
177
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
178 uint32_t ebml_read_id (stream_t *s, int *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
179 uint64_t ebml_read_vlen_uint (uint8_t *buffer, int *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
180 int64_t ebml_read_vlen_int (uint8_t *buffer, int *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
181 uint64_t ebml_read_length (stream_t *s, int *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
182 uint64_t ebml_read_uint (stream_t *s, uint64_t *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
183 int64_t ebml_read_int (stream_t *s, uint64_t *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
184 long double ebml_read_float (stream_t *s, uint64_t *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
185 char *ebml_read_ascii (stream_t *s, uint64_t *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
186 char *ebml_read_utf8 (stream_t *s, uint64_t *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
187 int ebml_read_skip (stream_t *s, uint64_t *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
188 uint32_t ebml_read_master (stream_t *s, uint64_t *length);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
189 char *ebml_read_header (stream_t *s, int *version);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
190
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 19977
diff changeset
191 #endif /* EBML_H */