1 /*
2  * DO NOT EDIT, GENERATED WITH DATA2LIB2
3  *
4  * $Id: matroska_sem.c 868 2012-12-02 13:52:34Z mosub $
5  * Copyright (c) 2008-2011, Matroska (non-profit organisation)
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are met:
10  *     * Redistributions of source code must retain the above copyright
11  *       notice, this list of conditions and the following disclaimer.
12  *     * Redistributions in binary form must reproduce the above copyright
13  *       notice, this list of conditions and the following disclaimer in the
14  *       documentation and/or other materials provided with the distribution.
15  *     * Neither the name of the Matroska assocation nor the
16  *       names of its contributors may be used to endorse or promote products
17  *       derived from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY the Matroska association ``AS IS'' AND ANY
20  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22  * DISCLAIMED. IN NO EVENT SHALL The Matroska Foundation BE LIABLE FOR ANY
23  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30 #include "matroska/matroska.h"
31 #include "matroska/matroska_sem.h"
32 #include "matroska/matroska_internal.h"
33 
34 const ebml_context MATROSKA_ContextSeekID = {0x53AB, EBML_BINARY_CLASS, 0, 0, "SeekID", NULL, EBML_SemanticGlobals, NULL};
35 const ebml_context MATROSKA_ContextSeekPosition = {0x53AC, EBML_INTEGER_CLASS, 0, 0, "SeekPosition", NULL, EBML_SemanticGlobals, NULL};
36 
37 const ebml_semantic EBML_SemanticSeek[] = {
38     {1, 1, &MATROSKA_ContextSeekID, 0},
39     {1, 1, &MATROSKA_ContextSeekPosition, 0},
40     {0, 0, NULL ,0} // end of the table
41 };
42 const ebml_context MATROSKA_ContextSeek = {0x4DBB, MATROSKA_SEEKPOINT_CLASS, 0, 0, "Seek", EBML_SemanticSeek, EBML_SemanticGlobals, NULL};
43 
44 const ebml_semantic EBML_SemanticSeekHead[] = {
45     {1, 0, &MATROSKA_ContextSeek, 0},
46     {0, 0, NULL ,0} // end of the table
47 };
48 const ebml_context MATROSKA_ContextSeekHead = {0x114D9B74, EBML_MASTER_CLASS, 0, 0, "SeekHead", EBML_SemanticSeekHead, EBML_SemanticGlobals, NULL};
49 const ebml_context MATROSKA_ContextSegmentUID = {0x73A4, MATROSKA_SEGMENTUID_CLASS, 0, 0, "SegmentUID", NULL, EBML_SemanticGlobals, NULL};
50 const ebml_context MATROSKA_ContextSegmentFilename = {0x7384, EBML_UNISTRING_CLASS, 0, 0, "SegmentFilename", NULL, EBML_SemanticGlobals, NULL};
51 const ebml_context MATROSKA_ContextPrevUID = {0x3CB923, MATROSKA_SEGMENTUID_CLASS, 0, 0, "PrevUID", NULL, EBML_SemanticGlobals, NULL};
52 const ebml_context MATROSKA_ContextPrevFilename = {0x3C83AB, EBML_UNISTRING_CLASS, 0, 0, "PrevFilename", NULL, EBML_SemanticGlobals, NULL};
53 const ebml_context MATROSKA_ContextNextUID = {0x3EB923, MATROSKA_SEGMENTUID_CLASS, 0, 0, "NextUID", NULL, EBML_SemanticGlobals, NULL};
54 const ebml_context MATROSKA_ContextNextFilename = {0x3E83BB, EBML_UNISTRING_CLASS, 0, 0, "NextFilename", NULL, EBML_SemanticGlobals, NULL};
55 const ebml_context MATROSKA_ContextSegmentFamily = {0x4444, EBML_BINARY_CLASS, 0, 0, "SegmentFamily", NULL, EBML_SemanticGlobals, NULL};
56 const ebml_context MATROSKA_ContextChapterTranslateEditionUID = {0x69FC, EBML_INTEGER_CLASS, 0, 0, "ChapterTranslateEditionUID", NULL, EBML_SemanticGlobals, NULL};
57 const ebml_context MATROSKA_ContextChapterTranslateCodec = {0x69BF, EBML_INTEGER_CLASS, 0, 0, "ChapterTranslateCodec", NULL, EBML_SemanticGlobals, NULL};
58 const ebml_context MATROSKA_ContextChapterTranslateID = {0x69A5, EBML_BINARY_CLASS, 0, 0, "ChapterTranslateID", NULL, EBML_SemanticGlobals, NULL};
59 
60 const ebml_semantic EBML_SemanticChapterTranslate[] = {
61     {0, 0, &MATROSKA_ContextChapterTranslateEditionUID, PROFILE_WEBM},
62     {1, 1, &MATROSKA_ContextChapterTranslateCodec, PROFILE_WEBM},
63     {1, 1, &MATROSKA_ContextChapterTranslateID, PROFILE_WEBM},
64     {0, 0, NULL ,0} // end of the table
65 };
66 const ebml_context MATROSKA_ContextChapterTranslate = {0x6924, EBML_MASTER_CLASS, 0, 0, "ChapterTranslate", EBML_SemanticChapterTranslate, EBML_SemanticGlobals, NULL};
67 const ebml_context MATROSKA_ContextTimecodeScale = {0x2AD7B1, EBML_INTEGER_CLASS, 1, (intptr_t)1000000, "TimecodeScale", NULL, EBML_SemanticGlobals, NULL};
68 const ebml_context MATROSKA_ContextDuration = {0x4489, EBML_FLOAT_CLASS, 0, 0, "Duration", NULL, EBML_SemanticGlobals, NULL};
69 const ebml_context MATROSKA_ContextDateUTC = {0x4461, EBML_DATE_CLASS, 0, 0, "DateUTC", NULL, EBML_SemanticGlobals, NULL};
70 const ebml_context MATROSKA_ContextTitle = {0x7BA9, EBML_UNISTRING_CLASS, 0, 0, "Title", NULL, EBML_SemanticGlobals, NULL};
71 const ebml_context MATROSKA_ContextMuxingApp = {0x4D80, EBML_UNISTRING_CLASS, 0, 0, "MuxingApp", NULL, EBML_SemanticGlobals, NULL};
72 const ebml_context MATROSKA_ContextWritingApp = {0x5741, EBML_UNISTRING_CLASS, 0, 0, "WritingApp", NULL, EBML_SemanticGlobals, NULL};
73 
74 const ebml_semantic EBML_SemanticInfo[] = {
75     {0, 1, &MATROSKA_ContextSegmentUID, PROFILE_WEBM},
76     {0, 1, &MATROSKA_ContextSegmentFilename, PROFILE_WEBM},
77     {0, 1, &MATROSKA_ContextPrevUID, PROFILE_WEBM},
78     {0, 1, &MATROSKA_ContextPrevFilename, PROFILE_WEBM},
79     {0, 1, &MATROSKA_ContextNextUID, PROFILE_WEBM},
80     {0, 1, &MATROSKA_ContextNextFilename, PROFILE_WEBM},
81     {0, 0, &MATROSKA_ContextSegmentFamily, PROFILE_WEBM},
82     {0, 0, &MATROSKA_ContextChapterTranslate, PROFILE_WEBM},
83     {1, 1, &MATROSKA_ContextTimecodeScale, 0},
84     {0, 1, &MATROSKA_ContextDuration, 0},
85     {0, 1, &MATROSKA_ContextDateUTC, 0},
86     {0, 1, &MATROSKA_ContextTitle, PROFILE_WEBM},
87     {1, 1, &MATROSKA_ContextMuxingApp, 0},
88     {1, 1, &MATROSKA_ContextWritingApp, 0},
89     {0, 0, NULL ,0} // end of the table
90 };
91 const ebml_context MATROSKA_ContextInfo = {0x1549A966, EBML_MASTER_CLASS, 0, 0, "Info", EBML_SemanticInfo, EBML_SemanticGlobals, NULL};
92 const ebml_context MATROSKA_ContextTimecode = {0xE7, EBML_INTEGER_CLASS, 0, 0, "Timecode", NULL, EBML_SemanticGlobals, NULL};
93 const ebml_context MATROSKA_ContextSilentTrackNumber = {0x58D7, EBML_INTEGER_CLASS, 0, 0, "SilentTrackNumber", NULL, EBML_SemanticGlobals, NULL};
94 
95 const ebml_semantic EBML_SemanticSilentTracks[] = {
96     {0, 0, &MATROSKA_ContextSilentTrackNumber, PROFILE_WEBM},
97     {0, 0, NULL ,0} // end of the table
98 };
99 const ebml_context MATROSKA_ContextSilentTracks = {0x5854, EBML_MASTER_CLASS, 0, 0, "SilentTracks", EBML_SemanticSilentTracks, EBML_SemanticGlobals, NULL};
100 const ebml_context MATROSKA_ContextPosition = {0xA7, EBML_INTEGER_CLASS, 0, 0, "Position", NULL, EBML_SemanticGlobals, NULL};
101 const ebml_context MATROSKA_ContextPrevSize = {0xAB, EBML_INTEGER_CLASS, 0, 0, "PrevSize", NULL, EBML_SemanticGlobals, NULL};
102 const ebml_context MATROSKA_ContextSimpleBlock = {0xA3, MATROSKA_BLOCK_CLASS, 0, 0, "SimpleBlock", NULL, EBML_SemanticGlobals, NULL};
103 const ebml_context MATROSKA_ContextBlock = {0xA1, MATROSKA_BLOCK_CLASS, 0, 0, "Block", NULL, EBML_SemanticGlobals, NULL};
104 const ebml_context MATROSKA_ContextBlockVirtual = {0xA2, EBML_BINARY_CLASS, 0, 0, "BlockVirtual", NULL, EBML_SemanticGlobals, NULL};
105 const ebml_context MATROSKA_ContextBlockAddID = {0xEE, EBML_INTEGER_CLASS, 1, (intptr_t)1, "BlockAddID", NULL, EBML_SemanticGlobals, NULL};
106 const ebml_context MATROSKA_ContextBlockAdditional = {0xA5, EBML_BINARY_CLASS, 0, 0, "BlockAdditional", NULL, EBML_SemanticGlobals, NULL};
107 
108 const ebml_semantic EBML_SemanticBlockMore[] = {
109     {1, 1, &MATROSKA_ContextBlockAddID, PROFILE_WEBM},
110     {1, 1, &MATROSKA_ContextBlockAdditional, PROFILE_WEBM},
111     {0, 0, NULL ,0} // end of the table
112 };
113 const ebml_context MATROSKA_ContextBlockMore = {0xA6, EBML_MASTER_CLASS, 0, 0, "BlockMore", EBML_SemanticBlockMore, EBML_SemanticGlobals, NULL};
114 
115 const ebml_semantic EBML_SemanticBlockAdditions[] = {
116     {1, 0, &MATROSKA_ContextBlockMore, PROFILE_WEBM},
117     {0, 0, NULL ,0} // end of the table
118 };
119 const ebml_context MATROSKA_ContextBlockAdditions = {0x75A1, EBML_MASTER_CLASS, 0, 0, "BlockAdditions", EBML_SemanticBlockAdditions, EBML_SemanticGlobals, NULL};
120 const ebml_context MATROSKA_ContextBlockDuration = {0x9B, EBML_INTEGER_CLASS, 0, 0, "BlockDuration", NULL, EBML_SemanticGlobals, NULL};
121 const ebml_context MATROSKA_ContextReferencePriority = {0xFA, EBML_INTEGER_CLASS, 1, (intptr_t)0, "ReferencePriority", NULL, EBML_SemanticGlobals, NULL};
122 const ebml_context MATROSKA_ContextReferenceBlock = {0xFB, EBML_SINTEGER_CLASS, 0, 0, "ReferenceBlock", NULL, EBML_SemanticGlobals, NULL};
123 const ebml_context MATROSKA_ContextReferenceVirtual = {0xFD, EBML_SINTEGER_CLASS, 0, 0, "ReferenceVirtual", NULL, EBML_SemanticGlobals, NULL};
124 const ebml_context MATROSKA_ContextCodecState = {0xA4, EBML_BINARY_CLASS, 0, 0, "CodecState", NULL, EBML_SemanticGlobals, NULL};
125 const ebml_context MATROSKA_ContextLaceNumber = {0xCC, EBML_INTEGER_CLASS, 1, (intptr_t)0, "LaceNumber", NULL, EBML_SemanticGlobals, NULL};
126 const ebml_context MATROSKA_ContextFrameNumber = {0xCD, EBML_INTEGER_CLASS, 1, (intptr_t)0, "FrameNumber", NULL, EBML_SemanticGlobals, NULL};
127 const ebml_context MATROSKA_ContextBlockAdditionID = {0xCB, EBML_INTEGER_CLASS, 1, (intptr_t)0, "BlockAdditionID", NULL, EBML_SemanticGlobals, NULL};
128 const ebml_context MATROSKA_ContextDelay = {0xCE, EBML_INTEGER_CLASS, 1, (intptr_t)0, "Delay", NULL, EBML_SemanticGlobals, NULL};
129 const ebml_context MATROSKA_ContextSliceDuration = {0xCF, EBML_INTEGER_CLASS, 1, (intptr_t)0, "SliceDuration", NULL, EBML_SemanticGlobals, NULL};
130 
131 const ebml_semantic EBML_SemanticTimeSlice[] = {
132     {0, 1, &MATROSKA_ContextLaceNumber, PROFILE_DIVX},
133     {0, 1, &MATROSKA_ContextFrameNumber, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
134     {0, 1, &MATROSKA_ContextBlockAdditionID, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
135     {0, 1, &MATROSKA_ContextDelay, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
136     {0, 1, &MATROSKA_ContextSliceDuration, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
137     {0, 0, NULL ,0} // end of the table
138 };
139 const ebml_context MATROSKA_ContextTimeSlice = {0xE8, EBML_MASTER_CLASS, 0, 0, "TimeSlice", EBML_SemanticTimeSlice, EBML_SemanticGlobals, NULL};
140 
141 const ebml_semantic EBML_SemanticSlices[] = {
142     {0, 0, &MATROSKA_ContextTimeSlice, PROFILE_DIVX},
143     {0, 0, NULL ,0} // end of the table
144 };
145 const ebml_context MATROSKA_ContextSlices = {0x8E, EBML_MASTER_CLASS, 0, 0, "Slices", EBML_SemanticSlices, EBML_SemanticGlobals, NULL};
146 const ebml_context MATROSKA_ContextReferenceOffset = {0xC9, EBML_INTEGER_CLASS, 0, 0, "ReferenceOffset", NULL, EBML_SemanticGlobals, NULL};
147 const ebml_context MATROSKA_ContextReferenceTimeCode = {0xCA, EBML_INTEGER_CLASS, 0, 0, "ReferenceTimeCode", NULL, EBML_SemanticGlobals, NULL};
148 
149 const ebml_semantic EBML_SemanticReferenceFrame[] = {
150     {1, 1, &MATROSKA_ContextReferenceOffset, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_WEBM},
151     {1, 1, &MATROSKA_ContextReferenceTimeCode, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_WEBM},
152     {0, 0, NULL ,0} // end of the table
153 };
154 const ebml_context MATROSKA_ContextReferenceFrame = {0xC8, EBML_MASTER_CLASS, 0, 0, "ReferenceFrame", EBML_SemanticReferenceFrame, EBML_SemanticGlobals, NULL};
155 
156 const ebml_semantic EBML_SemanticBlockGroup[] = {
157     {1, 1, &MATROSKA_ContextBlock, 0},
158     {0, 1, &MATROSKA_ContextBlockVirtual, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
159     {0, 1, &MATROSKA_ContextBlockAdditions, PROFILE_WEBM},
160     {0, 1, &MATROSKA_ContextBlockDuration, 0},
161     {1, 1, &MATROSKA_ContextReferencePriority, PROFILE_WEBM},
162     {0, 0, &MATROSKA_ContextReferenceBlock, 0},
163     {0, 1, &MATROSKA_ContextReferenceVirtual, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
164     {0, 1, &MATROSKA_ContextCodecState, PROFILE_MATROSKA_V1|PROFILE_DIVX|PROFILE_WEBM},
165     {0, 1, &MATROSKA_ContextSlices, PROFILE_DIVX},
166     {0, 1, &MATROSKA_ContextReferenceFrame, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_WEBM},
167     {0, 0, NULL ,0} // end of the table
168 };
169 const ebml_context MATROSKA_ContextBlockGroup = {0xA0, MATROSKA_BLOCKGROUP_CLASS, 0, 0, "BlockGroup", EBML_SemanticBlockGroup, EBML_SemanticGlobals, NULL};
170 const ebml_context MATROSKA_ContextEncryptedBlock = {0xAF, EBML_BINARY_CLASS, 0, 0, "EncryptedBlock", NULL, EBML_SemanticGlobals, NULL};
171 
172 const ebml_semantic EBML_SemanticCluster[] = {
173     {1, 1, &MATROSKA_ContextTimecode, 0},
174     {0, 1, &MATROSKA_ContextSilentTracks, PROFILE_WEBM},
175     {0, 1, &MATROSKA_ContextPosition, PROFILE_WEBM},
176     {0, 1, &MATROSKA_ContextPrevSize, 0},
177     {0, 0, &MATROSKA_ContextSimpleBlock, PROFILE_MATROSKA_V1},
178     {0, 0, &MATROSKA_ContextBlockGroup, 0},
179     {0, 0, &MATROSKA_ContextEncryptedBlock, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
180     {0, 0, NULL ,0} // end of the table
181 };
182 const ebml_context MATROSKA_ContextCluster = {0x1F43B675, MATROSKA_CLUSTER_CLASS, 0, 0, "Cluster", EBML_SemanticCluster, EBML_SemanticGlobals, NULL};
183 const ebml_context MATROSKA_ContextTrackNumber = {0xD7, EBML_INTEGER_CLASS, 0, 0, "TrackNumber", NULL, EBML_SemanticGlobals, NULL};
184 const ebml_context MATROSKA_ContextTrackUID = {0x73C5, EBML_INTEGER_CLASS, 0, 0, "TrackUID", NULL, EBML_SemanticGlobals, NULL};
185 const ebml_context MATROSKA_ContextTrackType = {0x83, EBML_INTEGER_CLASS, 0, 0, "TrackType", NULL, EBML_SemanticGlobals, NULL};
186 const ebml_context MATROSKA_ContextFlagEnabled = {0xB9, EBML_BOOLEAN_CLASS, 1, (intptr_t)1, "FlagEnabled", NULL, EBML_SemanticGlobals, NULL};
187 const ebml_context MATROSKA_ContextFlagDefault = {0x88, EBML_BOOLEAN_CLASS, 1, (intptr_t)1, "FlagDefault", NULL, EBML_SemanticGlobals, NULL};
188 const ebml_context MATROSKA_ContextFlagForced = {0x55AA, EBML_BOOLEAN_CLASS, 1, (intptr_t)0, "FlagForced", NULL, EBML_SemanticGlobals, NULL};
189 const ebml_context MATROSKA_ContextFlagLacing = {0x9C, EBML_BOOLEAN_CLASS, 1, (intptr_t)1, "FlagLacing", NULL, EBML_SemanticGlobals, NULL};
190 const ebml_context MATROSKA_ContextMinCache = {0x6DE7, EBML_INTEGER_CLASS, 1, (intptr_t)0, "MinCache", NULL, EBML_SemanticGlobals, NULL};
191 const ebml_context MATROSKA_ContextMaxCache = {0x6DF8, EBML_INTEGER_CLASS, 0, 0, "MaxCache", NULL, EBML_SemanticGlobals, NULL};
192 const ebml_context MATROSKA_ContextDefaultDuration = {0x23E383, EBML_INTEGER_CLASS, 0, 0, "DefaultDuration", NULL, EBML_SemanticGlobals, NULL};
193 const ebml_context MATROSKA_ContextTrackTimecodeScale = {0x23314F, EBML_FLOAT_CLASS, 1, (intptr_t)1.0, "TrackTimecodeScale", NULL, EBML_SemanticGlobals, NULL};
194 const ebml_context MATROSKA_ContextTrackOffset = {0x537F, EBML_SINTEGER_CLASS, 1, (intptr_t)0, "TrackOffset", NULL, EBML_SemanticGlobals, NULL};
195 const ebml_context MATROSKA_ContextMaxBlockAdditionID = {0x55EE, EBML_INTEGER_CLASS, 1, (intptr_t)0, "MaxBlockAdditionID", NULL, EBML_SemanticGlobals, NULL};
196 const ebml_context MATROSKA_ContextName = {0x536E, EBML_UNISTRING_CLASS, 0, 0, "Name", NULL, EBML_SemanticGlobals, NULL};
197 const ebml_context MATROSKA_ContextLanguage = {0x22B59C, EBML_STRING_CLASS, 1, (intptr_t)"eng", "Language", NULL, EBML_SemanticGlobals, NULL};
198 const ebml_context MATROSKA_ContextCodecID = {0x86, EBML_STRING_CLASS, 0, 0, "CodecID", NULL, EBML_SemanticGlobals, NULL};
199 const ebml_context MATROSKA_ContextCodecPrivate = {0x63A2, EBML_BINARY_CLASS, 0, 0, "CodecPrivate", NULL, EBML_SemanticGlobals, NULL};
200 const ebml_context MATROSKA_ContextCodecName = {0x258688, EBML_UNISTRING_CLASS, 0, 0, "CodecName", NULL, EBML_SemanticGlobals, NULL};
201 const ebml_context MATROSKA_ContextAttachmentLink = {0x7446, EBML_INTEGER_CLASS, 0, 0, "AttachmentLink", NULL, EBML_SemanticGlobals, NULL};
202 const ebml_context MATROSKA_ContextCodecSettings = {0x3A9697, EBML_UNISTRING_CLASS, 0, 0, "CodecSettings", NULL, EBML_SemanticGlobals, NULL};
203 const ebml_context MATROSKA_ContextCodecInfoURL = {0x3B4040, EBML_STRING_CLASS, 0, 0, "CodecInfoURL", NULL, EBML_SemanticGlobals, NULL};
204 const ebml_context MATROSKA_ContextCodecDownloadURL = {0x26B240, EBML_STRING_CLASS, 0, 0, "CodecDownloadURL", NULL, EBML_SemanticGlobals, NULL};
205 const ebml_context MATROSKA_ContextCodecDecodeAll = {0xAA, EBML_BOOLEAN_CLASS, 1, (intptr_t)1, "CodecDecodeAll", NULL, EBML_SemanticGlobals, NULL};
206 const ebml_context MATROSKA_ContextTrackOverlay = {0x6FAB, EBML_INTEGER_CLASS, 0, 0, "TrackOverlay", NULL, EBML_SemanticGlobals, NULL};
207 const ebml_context MATROSKA_ContextTrackTranslateEditionUID = {0x66FC, EBML_INTEGER_CLASS, 0, 0, "TrackTranslateEditionUID", NULL, EBML_SemanticGlobals, NULL};
208 const ebml_context MATROSKA_ContextTrackTranslateCodec = {0x66BF, EBML_INTEGER_CLASS, 0, 0, "TrackTranslateCodec", NULL, EBML_SemanticGlobals, NULL};
209 const ebml_context MATROSKA_ContextTrackTranslateTrackID = {0x66A5, EBML_BINARY_CLASS, 0, 0, "TrackTranslateTrackID", NULL, EBML_SemanticGlobals, NULL};
210 
211 const ebml_semantic EBML_SemanticTrackTranslate[] = {
212     {0, 0, &MATROSKA_ContextTrackTranslateEditionUID, PROFILE_WEBM},
213     {1, 1, &MATROSKA_ContextTrackTranslateCodec, PROFILE_WEBM},
214     {1, 1, &MATROSKA_ContextTrackTranslateTrackID, PROFILE_WEBM},
215     {0, 0, NULL ,0} // end of the table
216 };
217 const ebml_context MATROSKA_ContextTrackTranslate = {0x6624, EBML_MASTER_CLASS, 0, 0, "TrackTranslate", EBML_SemanticTrackTranslate, EBML_SemanticGlobals, NULL};
218 const ebml_context MATROSKA_ContextFlagInterlaced = {0x9A, EBML_BOOLEAN_CLASS, 1, (intptr_t)0, "FlagInterlaced", NULL, EBML_SemanticGlobals, NULL};
219 const ebml_context MATROSKA_ContextStereoMode = {0x53B8, EBML_INTEGER_CLASS, 1, (intptr_t)0, "StereoMode", NULL, EBML_SemanticGlobals, NULL};
220 const ebml_context MATROSKA_ContextOldStereoMode = {0x53B9, EBML_INTEGER_CLASS, 0, 0, "OldStereoMode", NULL, EBML_SemanticGlobals, NULL};
221 const ebml_context MATROSKA_ContextPixelWidth = {0xB0, EBML_INTEGER_CLASS, 0, 0, "PixelWidth", NULL, EBML_SemanticGlobals, NULL};
222 const ebml_context MATROSKA_ContextPixelHeight = {0xBA, EBML_INTEGER_CLASS, 0, 0, "PixelHeight", NULL, EBML_SemanticGlobals, NULL};
223 const ebml_context MATROSKA_ContextPixelCropBottom = {0x54AA, EBML_INTEGER_CLASS, 1, (intptr_t)0, "PixelCropBottom", NULL, EBML_SemanticGlobals, NULL};
224 const ebml_context MATROSKA_ContextPixelCropTop = {0x54BB, EBML_INTEGER_CLASS, 1, (intptr_t)0, "PixelCropTop", NULL, EBML_SemanticGlobals, NULL};
225 const ebml_context MATROSKA_ContextPixelCropLeft = {0x54CC, EBML_INTEGER_CLASS, 1, (intptr_t)0, "PixelCropLeft", NULL, EBML_SemanticGlobals, NULL};
226 const ebml_context MATROSKA_ContextPixelCropRight = {0x54DD, EBML_INTEGER_CLASS, 1, (intptr_t)0, "PixelCropRight", NULL, EBML_SemanticGlobals, NULL};
227 const ebml_context MATROSKA_ContextDisplayWidth = {0x54B0, EBML_INTEGER_CLASS, 0, 0, "DisplayWidth", NULL, EBML_SemanticGlobals, NULL};
228 const ebml_context MATROSKA_ContextDisplayHeight = {0x54BA, EBML_INTEGER_CLASS, 0, 0, "DisplayHeight", NULL, EBML_SemanticGlobals, NULL};
229 const ebml_context MATROSKA_ContextDisplayUnit = {0x54B2, EBML_INTEGER_CLASS, 1, (intptr_t)0, "DisplayUnit", NULL, EBML_SemanticGlobals, NULL};
230 const ebml_context MATROSKA_ContextAspectRatioType = {0x54B3, EBML_INTEGER_CLASS, 1, (intptr_t)0, "AspectRatioType", NULL, EBML_SemanticGlobals, NULL};
231 const ebml_context MATROSKA_ContextColourSpace = {0x2EB524, EBML_BINARY_CLASS, 0, 0, "ColourSpace", NULL, EBML_SemanticGlobals, NULL};
232 const ebml_context MATROSKA_ContextGammaValue = {0x2FB523, EBML_FLOAT_CLASS, 0, 0, "GammaValue", NULL, EBML_SemanticGlobals, NULL};
233 const ebml_context MATROSKA_ContextFrameRate = {0x2383E3, EBML_FLOAT_CLASS, 0, 0, "FrameRate", NULL, EBML_SemanticGlobals, NULL};
234 
235 const ebml_semantic EBML_SemanticVideo[] = {
236     {1, 1, &MATROSKA_ContextFlagInterlaced, PROFILE_MATROSKA_V1|PROFILE_DIVX},
237     {0, 1, &MATROSKA_ContextStereoMode, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_DIVX},
238     {0, 1, &MATROSKA_ContextOldStereoMode, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
239     {1, 1, &MATROSKA_ContextPixelWidth, 0},
240     {1, 1, &MATROSKA_ContextPixelHeight, 0},
241     {0, 1, &MATROSKA_ContextPixelCropBottom, 0},
242     {0, 1, &MATROSKA_ContextPixelCropTop, 0},
243     {0, 1, &MATROSKA_ContextPixelCropLeft, 0},
244     {0, 1, &MATROSKA_ContextPixelCropRight, 0},
245     {0, 1, &MATROSKA_ContextDisplayWidth, 0},
246     {0, 1, &MATROSKA_ContextDisplayHeight, 0},
247     {0, 1, &MATROSKA_ContextDisplayUnit, 0},
248     {0, 1, &MATROSKA_ContextAspectRatioType, 0},
249     {0, 1, &MATROSKA_ContextColourSpace, PROFILE_WEBM},
250     {0, 1, &MATROSKA_ContextGammaValue, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
251     {0, 1, &MATROSKA_ContextFrameRate, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
252     {0, 0, NULL ,0} // end of the table
253 };
254 const ebml_context MATROSKA_ContextVideo = {0xE0, EBML_MASTER_CLASS, 0, 0, "Video", EBML_SemanticVideo, EBML_SemanticGlobals, NULL};
255 const ebml_context MATROSKA_ContextSamplingFrequency = {0xB5, EBML_FLOAT_CLASS, 1, (intptr_t)8000.0, "SamplingFrequency", NULL, EBML_SemanticGlobals, NULL};
256 const ebml_context MATROSKA_ContextOutputSamplingFrequency = {0x78B5, EBML_FLOAT_CLASS, 0, 0, "OutputSamplingFrequency", NULL, EBML_SemanticGlobals, NULL};
257 const ebml_context MATROSKA_ContextChannels = {0x9F, EBML_INTEGER_CLASS, 1, (intptr_t)1, "Channels", NULL, EBML_SemanticGlobals, NULL};
258 const ebml_context MATROSKA_ContextChannelPositions = {0x7D7B, EBML_BINARY_CLASS, 0, 0, "ChannelPositions", NULL, EBML_SemanticGlobals, NULL};
259 const ebml_context MATROSKA_ContextBitDepth = {0x6264, EBML_INTEGER_CLASS, 0, 0, "BitDepth", NULL, EBML_SemanticGlobals, NULL};
260 
261 const ebml_semantic EBML_SemanticAudio[] = {
262     {1, 1, &MATROSKA_ContextSamplingFrequency, 0},
263     {0, 1, &MATROSKA_ContextOutputSamplingFrequency, 0},
264     {1, 1, &MATROSKA_ContextChannels, 0},
265     {0, 1, &MATROSKA_ContextChannelPositions, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
266     {0, 1, &MATROSKA_ContextBitDepth, 0},
267     {0, 0, NULL ,0} // end of the table
268 };
269 const ebml_context MATROSKA_ContextAudio = {0xE1, EBML_MASTER_CLASS, 0, 0, "Audio", EBML_SemanticAudio, EBML_SemanticGlobals, NULL};
270 const ebml_context MATROSKA_ContextTrackPlaneUID = {0xE5, EBML_INTEGER_CLASS, 0, 0, "TrackPlaneUID", NULL, EBML_SemanticGlobals, NULL};
271 const ebml_context MATROSKA_ContextTrackPlaneType = {0xE6, EBML_INTEGER_CLASS, 0, 0, "TrackPlaneType", NULL, EBML_SemanticGlobals, NULL};
272 
273 const ebml_semantic EBML_SemanticTrackPlane[] = {
274     {1, 1, &MATROSKA_ContextTrackPlaneUID, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_DIVX|PROFILE_WEBM},
275     {1, 1, &MATROSKA_ContextTrackPlaneType, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_DIVX|PROFILE_WEBM},
276     {0, 0, NULL ,0} // end of the table
277 };
278 const ebml_context MATROSKA_ContextTrackPlane = {0xE4, EBML_MASTER_CLASS, 0, 0, "TrackPlane", EBML_SemanticTrackPlane, EBML_SemanticGlobals, NULL};
279 
280 const ebml_semantic EBML_SemanticTrackCombinePlanes[] = {
281     {1, 0, &MATROSKA_ContextTrackPlane, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_DIVX|PROFILE_WEBM},
282     {0, 0, NULL ,0} // end of the table
283 };
284 const ebml_context MATROSKA_ContextTrackCombinePlanes = {0xE3, EBML_MASTER_CLASS, 0, 0, "TrackCombinePlanes", EBML_SemanticTrackCombinePlanes, EBML_SemanticGlobals, NULL};
285 const ebml_context MATROSKA_ContextTrackJoinUID = {0xED, EBML_INTEGER_CLASS, 0, 0, "TrackJoinUID", NULL, EBML_SemanticGlobals, NULL};
286 
287 const ebml_semantic EBML_SemanticTrackJoinBlocks[] = {
288     {1, 0, &MATROSKA_ContextTrackJoinUID, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_DIVX|PROFILE_WEBM},
289     {0, 0, NULL ,0} // end of the table
290 };
291 const ebml_context MATROSKA_ContextTrackJoinBlocks = {0xE9, EBML_MASTER_CLASS, 0, 0, "TrackJoinBlocks", EBML_SemanticTrackJoinBlocks, EBML_SemanticGlobals, NULL};
292 
293 const ebml_semantic EBML_SemanticTrackOperation[] = {
294     {0, 1, &MATROSKA_ContextTrackCombinePlanes, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_DIVX|PROFILE_WEBM},
295     {0, 1, &MATROSKA_ContextTrackJoinBlocks, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_DIVX|PROFILE_WEBM},
296     {0, 0, NULL ,0} // end of the table
297 };
298 const ebml_context MATROSKA_ContextTrackOperation = {0xE2, EBML_MASTER_CLASS, 0, 0, "TrackOperation", EBML_SemanticTrackOperation, EBML_SemanticGlobals, NULL};
299 const ebml_context MATROSKA_ContextTrickTrackUID = {0xC0, EBML_INTEGER_CLASS, 0, 0, "TrickTrackUID", NULL, EBML_SemanticGlobals, NULL};
300 const ebml_context MATROSKA_ContextTrickTrackSegmentUID = {0xC1, EBML_BINARY_CLASS, 0, 0, "TrickTrackSegmentUID", NULL, EBML_SemanticGlobals, NULL};
301 const ebml_context MATROSKA_ContextTrickTrackFlag = {0xC6, EBML_INTEGER_CLASS, 1, (intptr_t)0, "TrickTrackFlag", NULL, EBML_SemanticGlobals, NULL};
302 const ebml_context MATROSKA_ContextTrickMasterTrackUID = {0xC7, EBML_INTEGER_CLASS, 0, 0, "TrickMasterTrackUID", NULL, EBML_SemanticGlobals, NULL};
303 const ebml_context MATROSKA_ContextTrickMasterTrackSegmentUID = {0xC4, EBML_BINARY_CLASS, 0, 0, "TrickMasterTrackSegmentUID", NULL, EBML_SemanticGlobals, NULL};
304 const ebml_context MATROSKA_ContextContentEncodingOrder = {0x5031, EBML_INTEGER_CLASS, 1, (intptr_t)0, "ContentEncodingOrder", NULL, EBML_SemanticGlobals, NULL};
305 const ebml_context MATROSKA_ContextContentEncodingScope = {0x5032, EBML_INTEGER_CLASS, 1, (intptr_t)1, "ContentEncodingScope", NULL, EBML_SemanticGlobals, NULL};
306 const ebml_context MATROSKA_ContextContentEncodingType = {0x5033, EBML_INTEGER_CLASS, 1, (intptr_t)0, "ContentEncodingType", NULL, EBML_SemanticGlobals, NULL};
307 const ebml_context MATROSKA_ContextContentCompAlgo = {0x4254, EBML_INTEGER_CLASS, 1, (intptr_t)0, "ContentCompAlgo", NULL, EBML_SemanticGlobals, NULL};
308 const ebml_context MATROSKA_ContextContentCompSettings = {0x4255, EBML_BINARY_CLASS, 0, 0, "ContentCompSettings", NULL, EBML_SemanticGlobals, NULL};
309 
310 const ebml_semantic EBML_SemanticContentCompression[] = {
311     {1, 1, &MATROSKA_ContextContentCompAlgo, PROFILE_WEBM},
312     {0, 1, &MATROSKA_ContextContentCompSettings, PROFILE_WEBM},
313     {0, 0, NULL ,0} // end of the table
314 };
315 const ebml_context MATROSKA_ContextContentCompression = {0x5034, EBML_MASTER_CLASS, 0, 0, "ContentCompression", EBML_SemanticContentCompression, EBML_SemanticGlobals, NULL};
316 const ebml_context MATROSKA_ContextContentEncAlgo = {0x47E1, EBML_INTEGER_CLASS, 1, (intptr_t)0, "ContentEncAlgo", NULL, EBML_SemanticGlobals, NULL};
317 const ebml_context MATROSKA_ContextContentEncKeyID = {0x47E2, EBML_BINARY_CLASS, 0, 0, "ContentEncKeyID", NULL, EBML_SemanticGlobals, NULL};
318 const ebml_context MATROSKA_ContextContentSignature = {0x47E3, EBML_BINARY_CLASS, 0, 0, "ContentSignature", NULL, EBML_SemanticGlobals, NULL};
319 const ebml_context MATROSKA_ContextContentSigKeyID = {0x47E4, EBML_BINARY_CLASS, 0, 0, "ContentSigKeyID", NULL, EBML_SemanticGlobals, NULL};
320 const ebml_context MATROSKA_ContextContentSigAlgo = {0x47E5, EBML_INTEGER_CLASS, 1, (intptr_t)0, "ContentSigAlgo", NULL, EBML_SemanticGlobals, NULL};
321 const ebml_context MATROSKA_ContextContentSigHashAlgo = {0x47E6, EBML_INTEGER_CLASS, 1, (intptr_t)0, "ContentSigHashAlgo", NULL, EBML_SemanticGlobals, NULL};
322 
323 const ebml_semantic EBML_SemanticContentEncryption[] = {
324     {0, 1, &MATROSKA_ContextContentEncAlgo, PROFILE_WEBM},
325     {0, 1, &MATROSKA_ContextContentEncKeyID, PROFILE_WEBM},
326     {0, 1, &MATROSKA_ContextContentSignature, PROFILE_WEBM},
327     {0, 1, &MATROSKA_ContextContentSigKeyID, PROFILE_WEBM},
328     {0, 1, &MATROSKA_ContextContentSigAlgo, PROFILE_WEBM},
329     {0, 1, &MATROSKA_ContextContentSigHashAlgo, PROFILE_WEBM},
330     {0, 0, NULL ,0} // end of the table
331 };
332 const ebml_context MATROSKA_ContextContentEncryption = {0x5035, EBML_MASTER_CLASS, 0, 0, "ContentEncryption", EBML_SemanticContentEncryption, EBML_SemanticGlobals, NULL};
333 
334 const ebml_semantic EBML_SemanticContentEncoding[] = {
335     {1, 1, &MATROSKA_ContextContentEncodingOrder, PROFILE_WEBM},
336     {1, 1, &MATROSKA_ContextContentEncodingScope, PROFILE_WEBM},
337     {1, 1, &MATROSKA_ContextContentEncodingType, PROFILE_WEBM},
338     {0, 1, &MATROSKA_ContextContentCompression, PROFILE_WEBM},
339     {0, 1, &MATROSKA_ContextContentEncryption, PROFILE_WEBM},
340     {0, 0, NULL ,0} // end of the table
341 };
342 const ebml_context MATROSKA_ContextContentEncoding = {0x6240, EBML_MASTER_CLASS, 0, 0, "ContentEncoding", EBML_SemanticContentEncoding, EBML_SemanticGlobals, NULL};
343 
344 const ebml_semantic EBML_SemanticContentEncodings[] = {
345     {1, 0, &MATROSKA_ContextContentEncoding, PROFILE_WEBM},
346     {0, 0, NULL ,0} // end of the table
347 };
348 const ebml_context MATROSKA_ContextContentEncodings = {0x6D80, EBML_MASTER_CLASS, 0, 0, "ContentEncodings", EBML_SemanticContentEncodings, EBML_SemanticGlobals, NULL};
349 
350 const ebml_semantic EBML_SemanticTrackEntry[] = {
351     {1, 1, &MATROSKA_ContextTrackNumber, 0},
352     {1, 1, &MATROSKA_ContextTrackUID, 0},
353     {1, 1, &MATROSKA_ContextTrackType, 0},
354     {1, 1, &MATROSKA_ContextFlagEnabled, PROFILE_MATROSKA_V1|PROFILE_DIVX},
355     {1, 1, &MATROSKA_ContextFlagDefault, 0},
356     {1, 1, &MATROSKA_ContextFlagForced, 0},
357     {1, 1, &MATROSKA_ContextFlagLacing, 0},
358     {1, 1, &MATROSKA_ContextMinCache, PROFILE_WEBM},
359     {0, 1, &MATROSKA_ContextMaxCache, PROFILE_WEBM},
360     {0, 1, &MATROSKA_ContextDefaultDuration, 0},
361     {1, 1, &MATROSKA_ContextTrackTimecodeScale, PROFILE_MATROSKA_V4|PROFILE_WEBM},
362     {0, 1, &MATROSKA_ContextTrackOffset, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
363     {1, 1, &MATROSKA_ContextMaxBlockAdditionID, PROFILE_WEBM},
364     {0, 1, &MATROSKA_ContextName, 0},
365     {0, 1, &MATROSKA_ContextLanguage, 0},
366     {1, 1, &MATROSKA_ContextCodecID, 0},
367     {0, 1, &MATROSKA_ContextCodecPrivate, 0},
368     {0, 1, &MATROSKA_ContextCodecName, 0},
369     {0, 1, &MATROSKA_ContextAttachmentLink, PROFILE_WEBM},
370     {0, 1, &MATROSKA_ContextCodecSettings, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
371     {0, 0, &MATROSKA_ContextCodecInfoURL, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
372     {0, 0, &MATROSKA_ContextCodecDownloadURL, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
373     {1, 1, &MATROSKA_ContextCodecDecodeAll, PROFILE_MATROSKA_V1|PROFILE_DIVX|PROFILE_WEBM},
374     {0, 0, &MATROSKA_ContextTrackOverlay, PROFILE_WEBM},
375     {0, 0, &MATROSKA_ContextTrackTranslate, PROFILE_WEBM},
376     {0, 1, &MATROSKA_ContextVideo, 0},
377     {0, 1, &MATROSKA_ContextAudio, 0},
378     {0, 1, &MATROSKA_ContextTrackOperation, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_DIVX|PROFILE_WEBM},
379     {0, 1, &MATROSKA_ContextTrickTrackUID, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_WEBM},
380     {0, 1, &MATROSKA_ContextTrickTrackSegmentUID, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_WEBM},
381     {0, 1, &MATROSKA_ContextTrickTrackFlag, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_WEBM},
382     {0, 1, &MATROSKA_ContextTrickMasterTrackUID, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_WEBM},
383     {0, 1, &MATROSKA_ContextTrickMasterTrackSegmentUID, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_WEBM},
384     {0, 1, &MATROSKA_ContextContentEncodings, PROFILE_WEBM},
385     {0, 0, NULL ,0} // end of the table
386 };
387 const ebml_context MATROSKA_ContextTrackEntry = {0xAE, MATROSKA_TRACKENTRY_CLASS, 0, 0, "TrackEntry", EBML_SemanticTrackEntry, EBML_SemanticGlobals, NULL};
388 
389 const ebml_semantic EBML_SemanticTracks[] = {
390     {1, 0, &MATROSKA_ContextTrackEntry, 0},
391     {0, 0, NULL ,0} // end of the table
392 };
393 const ebml_context MATROSKA_ContextTracks = {0x1654AE6B, EBML_MASTER_CLASS, 0, 0, "Tracks", EBML_SemanticTracks, EBML_SemanticGlobals, NULL};
394 const ebml_context MATROSKA_ContextCueTime = {0xB3, EBML_INTEGER_CLASS, 0, 0, "CueTime", NULL, EBML_SemanticGlobals, NULL};
395 const ebml_context MATROSKA_ContextCueTrack = {0xF7, EBML_INTEGER_CLASS, 0, 0, "CueTrack", NULL, EBML_SemanticGlobals, NULL};
396 const ebml_context MATROSKA_ContextCueClusterPosition = {0xF1, EBML_INTEGER_CLASS, 0, 0, "CueClusterPosition", NULL, EBML_SemanticGlobals, NULL};
397 const ebml_context MATROSKA_ContextCueRelativePosition = {0xF0, EBML_INTEGER_CLASS, 0, 0, "CueRelativePosition", NULL, EBML_SemanticGlobals, NULL};
398 const ebml_context MATROSKA_ContextCueDuration = {0xB2, EBML_INTEGER_CLASS, 0, 0, "CueDuration", NULL, EBML_SemanticGlobals, NULL};
399 const ebml_context MATROSKA_ContextCueBlockNumber = {0x5378, EBML_INTEGER_CLASS, 1, (intptr_t)1, "CueBlockNumber", NULL, EBML_SemanticGlobals, NULL};
400 const ebml_context MATROSKA_ContextCueCodecState = {0xEA, EBML_INTEGER_CLASS, 1, (intptr_t)0, "CueCodecState", NULL, EBML_SemanticGlobals, NULL};
401 const ebml_context MATROSKA_ContextCueRefTime = {0x96, EBML_INTEGER_CLASS, 0, 0, "CueRefTime", NULL, EBML_SemanticGlobals, NULL};
402 const ebml_context MATROSKA_ContextCueRefCluster = {0x97, EBML_INTEGER_CLASS, 0, 0, "CueRefCluster", NULL, EBML_SemanticGlobals, NULL};
403 const ebml_context MATROSKA_ContextCueRefNumber = {0x535F, EBML_INTEGER_CLASS, 1, (intptr_t)1, "CueRefNumber", NULL, EBML_SemanticGlobals, NULL};
404 const ebml_context MATROSKA_ContextCueRefCodecState = {0xEB, EBML_INTEGER_CLASS, 1, (intptr_t)0, "CueRefCodecState", NULL, EBML_SemanticGlobals, NULL};
405 
406 const ebml_semantic EBML_SemanticCueReference[] = {
407     {1, 1, &MATROSKA_ContextCueRefTime, PROFILE_MATROSKA_V1|PROFILE_DIVX|PROFILE_WEBM},
408     {1, 1, &MATROSKA_ContextCueRefCluster, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
409     {0, 1, &MATROSKA_ContextCueRefNumber, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
410     {0, 1, &MATROSKA_ContextCueRefCodecState, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
411     {0, 0, NULL ,0} // end of the table
412 };
413 const ebml_context MATROSKA_ContextCueReference = {0xDB, EBML_MASTER_CLASS, 0, 0, "CueReference", EBML_SemanticCueReference, EBML_SemanticGlobals, NULL};
414 
415 const ebml_semantic EBML_SemanticCueTrackPositions[] = {
416     {1, 1, &MATROSKA_ContextCueTrack, 0},
417     {1, 1, &MATROSKA_ContextCueClusterPosition, 0},
418     {0, 1, &MATROSKA_ContextCueRelativePosition, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_DIVX|PROFILE_WEBM},
419     {0, 1, &MATROSKA_ContextCueDuration, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_DIVX|PROFILE_WEBM},
420     {0, 1, &MATROSKA_ContextCueBlockNumber, 0},
421     {0, 1, &MATROSKA_ContextCueCodecState, PROFILE_MATROSKA_V1|PROFILE_DIVX|PROFILE_WEBM},
422     {0, 0, &MATROSKA_ContextCueReference, PROFILE_MATROSKA_V1|PROFILE_DIVX|PROFILE_WEBM},
423     {0, 0, NULL ,0} // end of the table
424 };
425 const ebml_context MATROSKA_ContextCueTrackPositions = {0xB7, EBML_MASTER_CLASS, 0, 0, "CueTrackPositions", EBML_SemanticCueTrackPositions, EBML_SemanticGlobals, NULL};
426 
427 const ebml_semantic EBML_SemanticCuePoint[] = {
428     {1, 1, &MATROSKA_ContextCueTime, 0},
429     {1, 0, &MATROSKA_ContextCueTrackPositions, 0},
430     {0, 0, NULL ,0} // end of the table
431 };
432 const ebml_context MATROSKA_ContextCuePoint = {0xBB, MATROSKA_CUEPOINT_CLASS, 0, 0, "CuePoint", EBML_SemanticCuePoint, EBML_SemanticGlobals, NULL};
433 
434 const ebml_semantic EBML_SemanticCues[] = {
435     {1, 0, &MATROSKA_ContextCuePoint, 0},
436     {0, 0, NULL ,0} // end of the table
437 };
438 const ebml_context MATROSKA_ContextCues = {0x1C53BB6B, EBML_MASTER_CLASS, 0, 0, "Cues", EBML_SemanticCues, EBML_SemanticGlobals, NULL};
439 const ebml_context MATROSKA_ContextFileDescription = {0x467E, EBML_UNISTRING_CLASS, 0, 0, "FileDescription", NULL, EBML_SemanticGlobals, NULL};
440 const ebml_context MATROSKA_ContextFileName = {0x466E, EBML_UNISTRING_CLASS, 0, 0, "FileName", NULL, EBML_SemanticGlobals, NULL};
441 const ebml_context MATROSKA_ContextFileMimeType = {0x4660, EBML_STRING_CLASS, 0, 0, "FileMimeType", NULL, EBML_SemanticGlobals, NULL};
442 const ebml_context MATROSKA_ContextFileData = {0x465C, MATROSKA_BIGBINARY_CLASS, 0, 0, "FileData", NULL, EBML_SemanticGlobals, NULL};
443 const ebml_context MATROSKA_ContextFileUID = {0x46AE, EBML_INTEGER_CLASS, 0, 0, "FileUID", NULL, EBML_SemanticGlobals, NULL};
444 const ebml_context MATROSKA_ContextFileReferral = {0x4675, EBML_BINARY_CLASS, 0, 0, "FileReferral", NULL, EBML_SemanticGlobals, NULL};
445 const ebml_context MATROSKA_ContextFileUsedStartTime = {0x4661, EBML_INTEGER_CLASS, 0, 0, "FileUsedStartTime", NULL, EBML_SemanticGlobals, NULL};
446 const ebml_context MATROSKA_ContextFileUsedEndTime = {0x4662, EBML_INTEGER_CLASS, 0, 0, "FileUsedEndTime", NULL, EBML_SemanticGlobals, NULL};
447 
448 const ebml_semantic EBML_SemanticAttachedFile[] = {
449     {0, 1, &MATROSKA_ContextFileDescription, PROFILE_WEBM},
450     {1, 1, &MATROSKA_ContextFileName, PROFILE_WEBM},
451     {1, 1, &MATROSKA_ContextFileMimeType, PROFILE_WEBM},
452     {1, 1, &MATROSKA_ContextFileData, PROFILE_WEBM},
453     {1, 1, &MATROSKA_ContextFileUID, PROFILE_WEBM},
454     {0, 1, &MATROSKA_ContextFileReferral, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_DIVX|PROFILE_WEBM},
455     {0, 1, &MATROSKA_ContextFileUsedStartTime, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_WEBM},
456     {0, 1, &MATROSKA_ContextFileUsedEndTime, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_MATROSKA_V3|PROFILE_MATROSKA_V4|PROFILE_WEBM},
457     {0, 0, NULL ,0} // end of the table
458 };
459 const ebml_context MATROSKA_ContextAttachedFile = {0x61A7, MATROSKA_ATTACHMENT_CLASS, 0, 0, "AttachedFile", EBML_SemanticAttachedFile, EBML_SemanticGlobals, NULL};
460 
461 const ebml_semantic EBML_SemanticAttachments[] = {
462     {1, 0, &MATROSKA_ContextAttachedFile, PROFILE_WEBM},
463     {0, 0, NULL ,0} // end of the table
464 };
465 const ebml_context MATROSKA_ContextAttachments = {0x1941A469, EBML_MASTER_CLASS, 0, 0, "Attachments", EBML_SemanticAttachments, EBML_SemanticGlobals, NULL};
466 const ebml_context MATROSKA_ContextEditionUID = {0x45BC, EBML_INTEGER_CLASS, 0, 0, "EditionUID", NULL, EBML_SemanticGlobals, NULL};
467 const ebml_context MATROSKA_ContextEditionFlagHidden = {0x45BD, EBML_BOOLEAN_CLASS, 1, (intptr_t)0, "EditionFlagHidden", NULL, EBML_SemanticGlobals, NULL};
468 const ebml_context MATROSKA_ContextEditionFlagDefault = {0x45DB, EBML_BOOLEAN_CLASS, 1, (intptr_t)0, "EditionFlagDefault", NULL, EBML_SemanticGlobals, NULL};
469 const ebml_context MATROSKA_ContextEditionFlagOrdered = {0x45DD, EBML_BOOLEAN_CLASS, 1, (intptr_t)0, "EditionFlagOrdered", NULL, EBML_SemanticGlobals, NULL};
470 const ebml_context MATROSKA_ContextChapterUID = {0x73C4, EBML_INTEGER_CLASS, 0, 0, "ChapterUID", NULL, EBML_SemanticGlobals, NULL};
471 const ebml_context MATROSKA_ContextChapterStringUID = {0x5654, EBML_UNISTRING_CLASS, 0, 0, "ChapterStringUID", NULL, EBML_SemanticGlobals, NULL};
472 const ebml_context MATROSKA_ContextChapterTimeStart = {0x91, EBML_INTEGER_CLASS, 0, 0, "ChapterTimeStart", NULL, EBML_SemanticGlobals, NULL};
473 const ebml_context MATROSKA_ContextChapterTimeEnd = {0x92, EBML_INTEGER_CLASS, 0, 0, "ChapterTimeEnd", NULL, EBML_SemanticGlobals, NULL};
474 const ebml_context MATROSKA_ContextChapterFlagHidden = {0x98, EBML_BOOLEAN_CLASS, 1, (intptr_t)0, "ChapterFlagHidden", NULL, EBML_SemanticGlobals, NULL};
475 const ebml_context MATROSKA_ContextChapterFlagEnabled = {0x4598, EBML_BOOLEAN_CLASS, 1, (intptr_t)1, "ChapterFlagEnabled", NULL, EBML_SemanticGlobals, NULL};
476 const ebml_context MATROSKA_ContextChapterSegmentUID = {0x6E67, EBML_BINARY_CLASS, 0, 0, "ChapterSegmentUID", NULL, EBML_SemanticGlobals, NULL};
477 const ebml_context MATROSKA_ContextChapterSegmentEditionUID = {0x6EBC, EBML_INTEGER_CLASS, 0, 0, "ChapterSegmentEditionUID", NULL, EBML_SemanticGlobals, NULL};
478 const ebml_context MATROSKA_ContextChapterPhysicalEquiv = {0x63C3, EBML_INTEGER_CLASS, 0, 0, "ChapterPhysicalEquiv", NULL, EBML_SemanticGlobals, NULL};
479 const ebml_context MATROSKA_ContextChapterTrackNumber = {0x89, EBML_INTEGER_CLASS, 0, 0, "ChapterTrackNumber", NULL, EBML_SemanticGlobals, NULL};
480 
481 const ebml_semantic EBML_SemanticChapterTrack[] = {
482     {1, 0, &MATROSKA_ContextChapterTrackNumber, PROFILE_WEBM},
483     {0, 0, NULL ,0} // end of the table
484 };
485 const ebml_context MATROSKA_ContextChapterTrack = {0x8F, EBML_MASTER_CLASS, 0, 0, "ChapterTrack", EBML_SemanticChapterTrack, EBML_SemanticGlobals, NULL};
486 const ebml_context MATROSKA_ContextChapString = {0x85, EBML_UNISTRING_CLASS, 0, 0, "ChapString", NULL, EBML_SemanticGlobals, NULL};
487 const ebml_context MATROSKA_ContextChapLanguage = {0x437C, EBML_STRING_CLASS, 1, (intptr_t)"eng", "ChapLanguage", NULL, EBML_SemanticGlobals, NULL};
488 const ebml_context MATROSKA_ContextChapCountry = {0x437E, EBML_STRING_CLASS, 0, 0, "ChapCountry", NULL, EBML_SemanticGlobals, NULL};
489 
490 const ebml_semantic EBML_SemanticChapterDisplay[] = {
491     {1, 1, &MATROSKA_ContextChapString, 0},
492     {1, 0, &MATROSKA_ContextChapLanguage, 0},
493     {0, 0, &MATROSKA_ContextChapCountry, PROFILE_WEBM},
494     {0, 0, NULL ,0} // end of the table
495 };
496 const ebml_context MATROSKA_ContextChapterDisplay = {0x80, EBML_MASTER_CLASS, 0, 0, "ChapterDisplay", EBML_SemanticChapterDisplay, EBML_SemanticGlobals, NULL};
497 const ebml_context MATROSKA_ContextChapProcessCodecID = {0x6955, EBML_INTEGER_CLASS, 1, (intptr_t)0, "ChapProcessCodecID", NULL, EBML_SemanticGlobals, NULL};
498 const ebml_context MATROSKA_ContextChapProcessPrivate = {0x450D, EBML_BINARY_CLASS, 0, 0, "ChapProcessPrivate", NULL, EBML_SemanticGlobals, NULL};
499 const ebml_context MATROSKA_ContextChapProcessTime = {0x6922, EBML_INTEGER_CLASS, 0, 0, "ChapProcessTime", NULL, EBML_SemanticGlobals, NULL};
500 const ebml_context MATROSKA_ContextChapProcessData = {0x6933, EBML_BINARY_CLASS, 0, 0, "ChapProcessData", NULL, EBML_SemanticGlobals, NULL};
501 
502 const ebml_semantic EBML_SemanticChapProcessCommand[] = {
503     {1, 1, &MATROSKA_ContextChapProcessTime, PROFILE_WEBM},
504     {1, 1, &MATROSKA_ContextChapProcessData, PROFILE_WEBM},
505     {0, 0, NULL ,0} // end of the table
506 };
507 const ebml_context MATROSKA_ContextChapProcessCommand = {0x6911, EBML_MASTER_CLASS, 0, 0, "ChapProcessCommand", EBML_SemanticChapProcessCommand, EBML_SemanticGlobals, NULL};
508 
509 const ebml_semantic EBML_SemanticChapProcess[] = {
510     {1, 1, &MATROSKA_ContextChapProcessCodecID, PROFILE_WEBM},
511     {0, 1, &MATROSKA_ContextChapProcessPrivate, PROFILE_WEBM},
512     {0, 0, &MATROSKA_ContextChapProcessCommand, PROFILE_WEBM},
513     {0, 0, NULL ,0} // end of the table
514 };
515 const ebml_context MATROSKA_ContextChapProcess = {0x6944, EBML_MASTER_CLASS, 0, 0, "ChapProcess", EBML_SemanticChapProcess, EBML_SemanticGlobals, NULL};
516 
517 const ebml_semantic EBML_SemanticChapterAtom[] = {
518     {0, 0, &MATROSKA_ContextChapterAtom, 0}, // recursive
519     {1, 1, &MATROSKA_ContextChapterUID, 0},
520     {0, 1, &MATROSKA_ContextChapterStringUID, PROFILE_MATROSKA_V1|PROFILE_MATROSKA_V2|PROFILE_DIVX},
521     {1, 1, &MATROSKA_ContextChapterTimeStart, 0},
522     {0, 1, &MATROSKA_ContextChapterTimeEnd, PROFILE_WEBM},
523     {1, 1, &MATROSKA_ContextChapterFlagHidden, PROFILE_WEBM},
524     {1, 1, &MATROSKA_ContextChapterFlagEnabled, PROFILE_WEBM},
525     {0, 1, &MATROSKA_ContextChapterSegmentUID, PROFILE_WEBM},
526     {0, 1, &MATROSKA_ContextChapterSegmentEditionUID, PROFILE_WEBM},
527     {0, 1, &MATROSKA_ContextChapterPhysicalEquiv, PROFILE_WEBM},
528     {0, 1, &MATROSKA_ContextChapterTrack, PROFILE_WEBM},
529     {0, 0, &MATROSKA_ContextChapterDisplay, 0},
530     {0, 0, &MATROSKA_ContextChapProcess, PROFILE_WEBM},
531     {0, 0, NULL ,0} // end of the table
532 };
533 const ebml_context MATROSKA_ContextChapterAtom = {0xB6, EBML_MASTER_CLASS, 0, 0, "ChapterAtom", EBML_SemanticChapterAtom, EBML_SemanticGlobals, NULL};
534 
535 const ebml_semantic EBML_SemanticEditionEntry[] = {
536     {0, 1, &MATROSKA_ContextEditionUID, PROFILE_WEBM},
537     {1, 1, &MATROSKA_ContextEditionFlagHidden, PROFILE_WEBM},
538     {1, 1, &MATROSKA_ContextEditionFlagDefault, PROFILE_WEBM},
539     {0, 1, &MATROSKA_ContextEditionFlagOrdered, PROFILE_WEBM},
540     {1, 0, &MATROSKA_ContextChapterAtom, 0},
541     {0, 0, NULL ,0} // end of the table
542 };
543 const ebml_context MATROSKA_ContextEditionEntry = {0x45B9, EBML_MASTER_CLASS, 0, 0, "EditionEntry", EBML_SemanticEditionEntry, EBML_SemanticGlobals, NULL};
544 
545 const ebml_semantic EBML_SemanticChapters[] = {
546     {1, 0, &MATROSKA_ContextEditionEntry, 0},
547     {0, 0, NULL ,0} // end of the table
548 };
549 const ebml_context MATROSKA_ContextChapters = {0x1043A770, EBML_MASTER_CLASS, 0, 0, "Chapters", EBML_SemanticChapters, EBML_SemanticGlobals, NULL};
550 const ebml_context MATROSKA_ContextTargetTypeValue = {0x68CA, EBML_INTEGER_CLASS, 1, (intptr_t)50, "TargetTypeValue", NULL, EBML_SemanticGlobals, NULL};
551 const ebml_context MATROSKA_ContextTargetType = {0x63CA, EBML_STRING_CLASS, 0, 0, "TargetType", NULL, EBML_SemanticGlobals, NULL};
552 const ebml_context MATROSKA_ContextTagTrackUID = {0x63C5, EBML_INTEGER_CLASS, 1, (intptr_t)0, "TagTrackUID", NULL, EBML_SemanticGlobals, NULL};
553 const ebml_context MATROSKA_ContextTagEditionUID = {0x63C9, EBML_INTEGER_CLASS, 1, (intptr_t)0, "TagEditionUID", NULL, EBML_SemanticGlobals, NULL};
554 const ebml_context MATROSKA_ContextTagChapterUID = {0x63C4, EBML_INTEGER_CLASS, 1, (intptr_t)0, "TagChapterUID", NULL, EBML_SemanticGlobals, NULL};
555 const ebml_context MATROSKA_ContextTagAttachmentUID = {0x63C6, EBML_INTEGER_CLASS, 1, (intptr_t)0, "TagAttachmentUID", NULL, EBML_SemanticGlobals, NULL};
556 
557 const ebml_semantic EBML_SemanticTargets[] = {
558     {0, 1, &MATROSKA_ContextTargetTypeValue, PROFILE_WEBM},
559     {0, 1, &MATROSKA_ContextTargetType, PROFILE_WEBM},
560     {0, 0, &MATROSKA_ContextTagTrackUID, PROFILE_WEBM},
561     {0, 0, &MATROSKA_ContextTagEditionUID, PROFILE_WEBM},
562     {0, 0, &MATROSKA_ContextTagChapterUID, PROFILE_WEBM},
563     {0, 0, &MATROSKA_ContextTagAttachmentUID, PROFILE_WEBM},
564     {0, 0, NULL ,0} // end of the table
565 };
566 const ebml_context MATROSKA_ContextTargets = {0x63C0, EBML_MASTER_CLASS, 0, 0, "Targets", EBML_SemanticTargets, EBML_SemanticGlobals, NULL};
567 const ebml_context MATROSKA_ContextTagName = {0x45A3, EBML_UNISTRING_CLASS, 0, 0, "TagName", NULL, EBML_SemanticGlobals, NULL};
568 const ebml_context MATROSKA_ContextTagLanguage = {0x447A, EBML_STRING_CLASS, 1, (intptr_t)"und", "TagLanguage", NULL, EBML_SemanticGlobals, NULL};
569 const ebml_context MATROSKA_ContextTagDefault = {0x4484, EBML_BOOLEAN_CLASS, 1, (intptr_t)1, "TagDefault", NULL, EBML_SemanticGlobals, NULL};
570 const ebml_context MATROSKA_ContextTagString = {0x4487, EBML_UNISTRING_CLASS, 0, 0, "TagString", NULL, EBML_SemanticGlobals, NULL};
571 const ebml_context MATROSKA_ContextTagBinary = {0x4485, EBML_BINARY_CLASS, 0, 0, "TagBinary", NULL, EBML_SemanticGlobals, NULL};
572 
573 const ebml_semantic EBML_SemanticSimpleTag[] = {
574     {0, 0, &MATROSKA_ContextSimpleTag, PROFILE_WEBM}, // recursive
575     {1, 1, &MATROSKA_ContextTagName, PROFILE_WEBM},
576     {1, 1, &MATROSKA_ContextTagLanguage, PROFILE_WEBM},
577     {1, 1, &MATROSKA_ContextTagDefault, PROFILE_WEBM},
578     {0, 1, &MATROSKA_ContextTagString, PROFILE_WEBM},
579     {0, 1, &MATROSKA_ContextTagBinary, PROFILE_WEBM},
580     {0, 0, NULL ,0} // end of the table
581 };
582 const ebml_context MATROSKA_ContextSimpleTag = {0x67C8, EBML_MASTER_CLASS, 0, 0, "SimpleTag", EBML_SemanticSimpleTag, EBML_SemanticGlobals, NULL};
583 
584 const ebml_semantic EBML_SemanticTag[] = {
585     {1, 1, &MATROSKA_ContextTargets, PROFILE_WEBM},
586     {1, 0, &MATROSKA_ContextSimpleTag, PROFILE_WEBM},
587     {0, 0, NULL ,0} // end of the table
588 };
589 const ebml_context MATROSKA_ContextTag = {0x7373, EBML_MASTER_CLASS, 0, 0, "Tag", EBML_SemanticTag, EBML_SemanticGlobals, NULL};
590 
591 const ebml_semantic EBML_SemanticTags[] = {
592     {1, 0, &MATROSKA_ContextTag, PROFILE_WEBM},
593     {0, 0, NULL ,0} // end of the table
594 };
595 const ebml_context MATROSKA_ContextTags = {0x1254C367, EBML_MASTER_CLASS, 0, 0, "Tags", EBML_SemanticTags, EBML_SemanticGlobals, NULL};
596 
597 const ebml_semantic EBML_SemanticSegment[] = {
598     {0, 0, &MATROSKA_ContextSeekHead, 0},
599     {1, 0, &MATROSKA_ContextInfo, 0},
600     {0, 0, &MATROSKA_ContextCluster, 0},
601     {0, 0, &MATROSKA_ContextTracks, 0},
602     {0, 1, &MATROSKA_ContextCues, 0},
603     {0, 1, &MATROSKA_ContextAttachments, PROFILE_WEBM},
604     {0, 1, &MATROSKA_ContextChapters, 0},
605     {0, 0, &MATROSKA_ContextTags, PROFILE_WEBM},
606     {0, 0, NULL ,0} // end of the table
607 };
608 const ebml_context MATROSKA_ContextSegment = {0x18538067, EBML_MASTER_CLASS, 0, 0, "Segment", EBML_SemanticSegment, EBML_SemanticGlobals, NULL};
609