annotate libmpdemux/ebml.h @ 26733:99458e732ebd

Add detection code for abnormal pts jump when seeking previous. This patch make the vobsub works more accurately according to the requested pts.
author ulion
date Wed, 14 May 2008 03:43:45 +0000
parents 268ecf0e1ba4
children d643e4643313
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 23689
diff changeset
1 #ifndef MPLAYER_EBML_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 23689
diff changeset
2 #define MPLAYER_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>
26143
268ecf0e1ba4 Add missing header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
5 #include "stream/stream.h"
11807
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
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
8 /* EBML version supported */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
9 #define EBML_VERSION 1
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 /*
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
12 * EBML element IDs. max. 32-bit.
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
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
15 /* top-level master-IDs */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
16 #define EBML_ID_HEADER 0x1A45DFA3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
17
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
18 /* IDs in the HEADER master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
19 #define EBML_ID_EBMLVERSION 0x4286
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
20 #define EBML_ID_EBMLREADVERSION 0x42F7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
21 #define EBML_ID_EBMLMAXIDLENGTH 0x42F2
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
22 #define EBML_ID_EBMLMAXSIZELENGTH 0x42F3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
23 #define EBML_ID_DOCTYPE 0x4282
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
24 #define EBML_ID_DOCTYPEVERSION 0x4287
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
25 #define EBML_ID_DOCTYPEREADVERSION 0x4285
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
26
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
27 /* general EBML types */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
28 #define EBML_ID_VOID 0xEC
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
29
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
30 /* ID returned in error cases */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
31 #define EBML_ID_INVALID 0xFFFFFFFF
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 /*
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
35 * Matroska element IDs. max. 32-bit.
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
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
38 /* toplevel segment */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
39 #define MATROSKA_ID_SEGMENT 0x18538067
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
40
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
41 /* matroska top-level master IDs */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
42 #define MATROSKA_ID_INFO 0x1549A966
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
43 #define MATROSKA_ID_TRACKS 0x1654AE6B
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
44 #define MATROSKA_ID_CUES 0x1C53BB6B
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
45 #define MATROSKA_ID_TAGS 0x1254C367
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
46 #define MATROSKA_ID_SEEKHEAD 0x114D9B74
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
47 #define MATROSKA_ID_ATTACHMENTS 0x1941A469
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
48 #define MATROSKA_ID_CHAPTERS 0x1043A770
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
49 #define MATROSKA_ID_CLUSTER 0x1F43B675
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
50
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
51 /* IDs in the info master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
52 #define MATROSKA_ID_TIMECODESCALE 0x2AD7B1
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
53 #define MATROSKA_ID_DURATION 0x4489
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
54 #define MATROSKA_ID_WRITINGAPP 0x5741
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
55 #define MATROSKA_ID_MUXINGAPP 0x4D80
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
56 #define MATROSKA_ID_DATEUTC 0x4461
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
57
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
58 /* ID in the tracks master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
59 #define MATROSKA_ID_TRACKENTRY 0xAE
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
60
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
61 /* IDs in the trackentry master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
62 #define MATROSKA_ID_TRACKNUMBER 0xD7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
63 #define MATROSKA_ID_TRACKUID 0x73C5
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
64 #define MATROSKA_ID_TRACKTYPE 0x83
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
65 #define MATROSKA_ID_TRACKAUDIO 0xE1
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
66 #define MATROSKA_ID_TRACKVIDEO 0xE0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
67 #define MATROSKA_ID_CODECID 0x86
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
68 #define MATROSKA_ID_CODECPRIVATE 0x63A2
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
69 #define MATROSKA_ID_CODECNAME 0x258688
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
70 #define MATROSKA_ID_CODECINFOURL 0x3B4040
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
71 #define MATROSKA_ID_CODECDOWNLOADURL 0x26B240
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
72 #define MATROSKA_ID_TRACKNAME 0x536E
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
73 #define MATROSKA_ID_TRACKLANGUAGE 0x22B59C
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
74 #define MATROSKA_ID_TRACKFLAGENABLED 0xB9
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
75 #define MATROSKA_ID_TRACKFLAGDEFAULT 0x88
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
76 #define MATROSKA_ID_TRACKFLAGLACING 0x9C
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
77 #define MATROSKA_ID_TRACKMINCACHE 0x6DE7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
78 #define MATROSKA_ID_TRACKMAXCACHE 0x6DF8
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
79 #define MATROSKA_ID_TRACKDEFAULTDURATION 0x23E383
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
80 #define MATROSKA_ID_TRACKENCODINGS 0x6D80
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
81
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
82 /* IDs in the trackaudio master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
83 #define MATROSKA_ID_AUDIOSAMPLINGFREQ 0xB5
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
84 #define MATROSKA_ID_AUDIOBITDEPTH 0x6264
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
85 #define MATROSKA_ID_AUDIOCHANNELS 0x9F
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
86
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
87 /* IDs in the trackvideo master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
88 #define MATROSKA_ID_VIDEOFRAMERATE 0x2383E3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
89 #define MATROSKA_ID_VIDEODISPLAYWIDTH 0x54B0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
90 #define MATROSKA_ID_VIDEODISPLAYHEIGHT 0x54BA
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
91 #define MATROSKA_ID_VIDEOPIXELWIDTH 0xB0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
92 #define MATROSKA_ID_VIDEOPIXELHEIGHT 0xBA
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
93 #define MATROSKA_ID_VIDEOFLAGINTERLACED 0x9A
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
94 #define MATROSKA_ID_VIDEOSTEREOMODE 0x53B9
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
95 #define MATROSKA_ID_VIDEODISPLAYUNIT 0x54B2
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
96 #define MATROSKA_ID_VIDEOASPECTRATIO 0x54B3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
97 #define MATROSKA_ID_VIDEOCOLOURSPACE 0x2EB524
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
98 #define MATROSKA_ID_VIDEOGAMMA 0x2FB523
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
99
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
100 /* IDs in the trackencodings master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
101 #define MATROSKA_ID_CONTENTENCODING 0x6240
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
102 #define MATROSKA_ID_CONTENTENCODINGORDER 0x5031
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
103 #define MATROSKA_ID_CONTENTENCODINGSCOPE 0x5032
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
104 #define MATROSKA_ID_CONTENTENCODINGTYPE 0x5033
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
105 #define MATROSKA_ID_CONTENTCOMPRESSION 0x5034
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
106 #define MATROSKA_ID_CONTENTCOMPALGO 0x4254
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
107 #define MATROSKA_ID_CONTENTCOMPSETTINGS 0x4255
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
108
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
109 /* ID in the cues master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
110 #define MATROSKA_ID_POINTENTRY 0xBB
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
111
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
112 /* IDs in the pointentry master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
113 #define MATROSKA_ID_CUETIME 0xB3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
114 #define MATROSKA_ID_CUETRACKPOSITION 0xB7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
115
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
116 /* IDs in the cuetrackposition master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
117 #define MATROSKA_ID_CUETRACK 0xF7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
118 #define MATROSKA_ID_CUECLUSTERPOSITION 0xF1
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
119
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
120 /* IDs in the seekhead master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
121 #define MATROSKA_ID_SEEKENTRY 0x4DBB
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
122
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
123 /* IDs in the seekpoint master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
124 #define MATROSKA_ID_SEEKID 0x53AB
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
125 #define MATROSKA_ID_SEEKPOSITION 0x53AC
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
126
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
127 /* IDs in the chapters master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
128 #define MATROSKA_ID_EDITIONENTRY 0x45B9
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
129 #define MATROSKA_ID_CHAPTERATOM 0xB6
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
130 #define MATROSKA_ID_CHAPTERTIMESTART 0x91
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
131 #define MATROSKA_ID_CHAPTERTIMEEND 0x92
19342
4e68a3881201 Add matroska chapter seeking capability.
eugeni
parents: 18937
diff changeset
132 #define MATROSKA_ID_CHAPTERDISPLAY 0x80
4e68a3881201 Add matroska chapter seeking capability.
eugeni
parents: 18937
diff changeset
133 #define MATROSKA_ID_CHAPSTRING 0x85
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
134
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
135 /* IDs in the cluster master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
136 #define MATROSKA_ID_CLUSTERTIMECODE 0xE7
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
137 #define MATROSKA_ID_BLOCKGROUP 0xA0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
138
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
139 /* IDs in the blockgroup master */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
140 #define MATROSKA_ID_BLOCKDURATION 0x9B
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
141 #define MATROSKA_ID_BLOCK 0xA1
19977
8ada6970000a Add matroska v2 (SimpleBlock) support.
eugeni
parents: 19342
diff changeset
142 #define MATROSKA_ID_SIMPLEBLOCK 0xA3
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
143 #define MATROSKA_ID_REFERENCEBLOCK 0xFB
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
144
18937
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
145 /* IDs in the attachments master */
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
146 #define MATROSKA_ID_ATTACHEDFILE 0x61A7
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
147 #define MATROSKA_ID_FILENAME 0x466E
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
148 #define MATROSKA_ID_FILEMIMETYPE 0x4660
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
149 #define MATROSKA_ID_FILEDATA 0x465C
9e95ac641e77 Initial libass release (without mencoder support).
eugeni
parents: 11845
diff changeset
150 #define MATROSKA_ID_FILEUID 0x46AE
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
151
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
152 /* matroska track types */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
153 #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
154 #define MATROSKA_TRACK_AUDIO 0x02 /* anything you can hear */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
155 #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
156 #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
157 #define MATROSKA_TRACK_SUBTITLE 0x11 /* text-subtitles */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
158 #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
159
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
160 /* matroska subtitle types */
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
161 #define MATROSKA_SUBTYPE_UNKNOWN 0
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
162 #define MATROSKA_SUBTYPE_TEXT 1
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
163 #define MATROSKA_SUBTYPE_SSA 2
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
164 #define MATROSKA_SUBTYPE_VOBSUB 3
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
165
11845
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
166 #ifndef UINT64_MAX
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
167 #define UINT64_MAX 18446744073709551615ULL
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
168 #endif
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
169
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
170 #ifndef INT64_MAX
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
171 #define INT64_MAX 9223372036854775807LL
c047ebdb0461 freebsd fix (btw, why does it needs this int_max shit?
alex
parents: 11815
diff changeset
172 #endif
11807
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
173
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
174 #define EBML_UINT_INVALID UINT64_MAX
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
175 #define EBML_INT_INVALID INT64_MAX
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
176 #define EBML_FLOAT_INVALID -1000000000.0
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
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
179 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
180 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
181 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
182 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
183 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
184 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
185 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
186 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
187 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
188 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
189 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
190 char *ebml_read_header (stream_t *s, int *version);
9a81d7b4c0b6 Added the new C based Matroska demuxer by Aurelien Jacobs.
mosu
parents:
diff changeset
191
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 23689
diff changeset
192 #endif /* MPLAYER_EBML_H */