Implemented a basic form of schema representation.
[~jspiros/python-ebml.git] / ebml / schema / matroska.py
1 from .base import *
2
3
4 class SegmentElement(Element):
5         class_id = 0x18538067
6         class_name = 'Segment'
7         class_root = True
8         data_type = CONTAINER
9
10
11 class SeekHeadElement(Element):
12         class_id = 0x114d9b74
13         class_name = 'SeekHead'
14         class_parents = (SegmentElement,)
15         data_type = CONTAINER
16
17
18 class SeekElement(Element):
19         class_id = 0x4dbb
20         class_name = 'Seek'
21         class_parents = (SeekHeadElement,)
22         data_type = CONTAINER
23
24
25 class SeekIDElement(Element):
26         class_id = 0x53ab
27         class_name = 'SeekID'
28         class_parents = (SeekElement,)
29         data_type = BINARY
30
31
32 class SeekPositionElement(Element):
33         class_id = 0x53ac
34         class_name = 'SeekPosition'
35         class_parents = (SeekElement,)
36         data_type = UINT
37
38
39 class InfoElement(Element):
40         class_id = 0x1549a966
41         class_name = 'Info'
42         class_parents = (SegmentElement,)
43         data_type = CONTAINER
44
45
46 class SegmentUIDElement(Element):
47         class_id = 0x73a4
48         class_name = 'SegmentUID'
49         class_parents = (InfoElement,)
50         data_type = BINARY
51
52
53 class SegmentFilenameElement(Element):
54         class_id = 0x7384
55         class_name = 'SegmentFilename'
56         class_parents = (InfoElement,)
57         data_type = UNICODE
58
59
60 class PrevUIDElement(Element):
61         class_id = 0x3cb923
62         class_name = 'PrevUID'
63         class_parents = (InfoElement,)
64         data_type = BINARY
65
66
67 class PrevFilenameElement(Element):
68         class_id = 0x3c83ab
69         class_name = 'PrevFilename'
70         class_parents = (InfoElement,)
71         data_type = UNICODE
72
73
74 class NextUIDElement(Element):
75         class_id = 0x3eb923
76         class_name = 'NextUID'
77         class_parents = (InfoElement,)
78         data_type = BINARY
79
80
81 class NextFilenameElement(Element):
82         class_id = 0x3e83bb
83         class_name = 'NextFilename'
84         class_parents = (InfoElement,)
85         data_type = UNICODE
86
87
88 class SegmentFamilyElement(Element):
89         class_id = 0x4444
90         class_name = 'SegmentFamily'
91         class_parents = (InfoElement,)
92         data_type = BINARY
93
94
95 class ChapterTranslateElement(Element):
96         class_id = 0x6924
97         class_name = 'ChapterTranslate'
98         class_parents = (InfoElement,)
99         data_type = CONTAINER
100
101
102 class ChapterTranslateEditionUIDElement(Element):
103         class_id = 0x69FC
104         class_name = 'ChapterTranslateEditionUID'
105         class_parents = (ChapterTranslateElement,)
106         data_type = UINT
107
108
109 class ChapterTranslateCodecElement(Element):
110         class_id = 0x69bf
111         class_name = 'ChapterTranslateCodec'
112         class_parents = (ChapterTranslateElement,)
113         data_type = UINT
114
115
116 class ChapterTranslateIDElement(Element):
117         class_id = 0x69a5
118         class_name = 'ChapterTranslateID'
119         class_parents = (ChapterTranslateElement,)
120         data_type = BINARY
121
122
123 class TimecodeScaleElement(Element):
124         class_id = 0x2ad7b1
125         class_name = 'TimecodeScale'
126         class_parents = (InfoElement,)
127         data_type = UINT
128
129
130 class DurationElement(Element):
131         class_id = 0x4489
132         class_name = 'Duration'
133         class_parents = (InfoElement,)
134         data_type = FLOAT
135
136
137 class DateUTCElement(Element):
138         class_id = 0x4461
139         class_name = 'DateUTC'
140         class_parents = (InfoElement,)
141         data_type = DATE
142
143
144 class TitleElement(Element):
145         class_id = 0x7ba9
146         class_name = 'Title'
147         class_parents = (InfoElement,)
148         data_type = UNICODE
149
150
151 class MuxingAppElement(Element):
152         class_id = 0x4d80
153         class_name = 'MuxingApp'
154         class_parents = (InfoElement,)
155         data_type = UNICODE
156
157
158 class WritingAppElement(Element):
159         class_id = 0x5741
160         class_name = 'WritingApp'
161         class_parents = (InfoElement,)
162         data_type = UNICODE
163
164
165 class ClusterElement(Element):
166         class_id = 0x1f43b675
167         class_name = 'Cluster'
168         class_parents = (SegmentElement,)
169         data_type = CONTAINER
170
171
172 class TimecodeElement(Element):
173         class_id = 0xe7
174         class_name = 'Timecode'
175         class_parents = (ClusterElement,)
176         data_type = UINT
177
178
179 class SilentTracksElement(Element):
180         class_id = 0x5854
181         class_name = 'SilentTracks'
182         class_parents = (ClusterElement,)
183         data_type = CONTAINER
184
185
186 class SilentTrackNumberElement(Element):
187         class_id = 0x58d7
188         class_name = 'SilentTrackNumber'
189         class_parents = (SilentTracksElement,)
190         data_type = UINT
191
192
193 class PositionElement(Element):
194         class_id = 0xa7
195         class_name = 'Position'
196         class_parents = (ClusterElement,)
197         data_type = UINT
198
199
200 class PrevSizeElement(Element):
201         class_id = 0xab
202         class_name = 'PrevSize'
203         class_parents = (ClusterElement,)
204         data_type = UINT
205
206
207 class SimpleBlockElement(Element):
208         class_id = 0xa3
209         class_name = 'SimpleBlock'
210         class_parents = (ClusterElement,)
211         data_type = BINARY
212
213
214 class BlockGroupElement(Element):
215         class_id = 0xa0
216         class_name = 'BlockGroup'
217         class_parents = (ClusterElement,)
218         data_type = CONTAINER
219
220
221 class BlockElement(Element):
222         class_id = 0xa1
223         class_name = 'Block'
224         class_parents = (BlockGroupElement,)
225         data_type = BINARY
226
227
228 class BlockVirtualElement(Element):
229         class_id = 0xa2
230         class_name = 'BlockVirtual'
231         class_parents = (BlockGroupElement,)
232         data_type = BINARY
233
234
235 class BlockAdditionsElement(Element):
236         class_id = 0x75a1
237         class_name = 'BlockAdditions'
238         class_parents = (BlockGroupElement,)
239         data_type = CONTAINER
240
241
242 class BlockMoreElement(Element):
243         class_id = 0xa6
244         class_name = 'BlockMore'
245         class_parents = (BlockAdditionsElement,)
246         data_type = CONTAINER
247
248
249 class BlockAddIDElement(Element):
250         class_id = 0xee
251         class_name = 'BlockAddID'
252         class_parents = (BlockMoreElement,)
253         data_type = UINT
254
255
256 class BlockAdditionalElement(Element):
257         class_id = 0xa5
258         class_name = 'BlockAdditional'
259         class_parents = (BlockMoreElement,)
260         data_type = BINARY
261
262
263 class BlockDurationElement(Element):
264         class_id = 0x9b
265         class_name = 'BlockDuration'
266         class_parents = (BlockGroupElement,)
267         data_type = UINT
268
269
270 class ReferencePriorityElement(Element):
271         class_id = 0xfa
272         class_name = 'ReferencePriority'
273         class_parents = (BlockGroupElement,)
274         data_type = UINT
275
276
277 class ReferenceBlockElement(Element):
278         class_id = 0xfb
279         class_name = 'ReferenceBlock'
280         class_parents = (BlockGroupElement,)
281         data_type = INT
282
283
284 class ReferenceVirtualElement(Element):
285         class_id = 0xfd
286         class_name = 'ReferenceVirtual'
287         class_parents = (BlockGroupElement,)
288         data_type = INT
289
290
291 class CodecStateElement(Element):
292         class_id = 0xa4
293         class_name = 'CodecState'
294         class_parents = (BlockGroupElement,)
295         data_type = BINARY
296
297
298 class SlicesElement(Element):
299         class_id = 0x8e
300         class_name = 'Slices'
301         class_parents = (BlockGroupElement,)
302         data_type = CONTAINER
303
304
305 class TimeSliceElement(Element):
306         class_id = 0xe8
307         class_name = 'TimeSlice'
308         class_parents = (SlicesElement,)
309         data_type = CONTAINER
310
311
312 class LaceNumberElement(Element):
313         class_id = 0xcc
314         class_name = 'LaceNumber'
315         class_parents = (TimeSliceElement,)
316         data_type = UINT
317
318
319 class FrameNumberElement(Element):
320         class_id = 0xcd
321         class_name = 'FrameNumber'
322         class_parents = (TimeSliceElement,)
323         data_type = UINT
324
325
326 class BlockAdditionIDElement(Element):
327         class_id = 0xcb
328         class_name = 'BlockAdditionID'
329         class_parents = (TimeSliceElement,)
330         data_type = UINT
331
332
333 class DelayElement(Element):
334         class_id = 0xce
335         class_name = 'Delay'
336         class_parents = (TimeSliceElement,)
337         data_type = UINT
338
339
340 class SliceDurationElement(Element):
341         class_id = 0xcf
342         class_name = 'SliceDuration'
343         class_parents = (TimeSliceElement,)
344         data_type = UINT
345
346
347 class ReferenceFrameElement(Element):
348         class_id = 0xc8
349         class_name = 'ReferenceFrame'
350         class_parents = (BlockGroupElement,)
351         data_type = CONTAINER
352
353
354 class ReferenceOffsetElement(Element):
355         class_id = 0xc9
356         class_name = 'ReferenceOffset'
357         class_parents = (ReferenceFrameElement,)
358         data_type = UINT
359
360
361 class ReferenceTimeCodeElement(Element):
362         class_id = 0xca
363         class_name = 'ReferenceTimeCode'
364         class_parents = (ReferenceFrameElement,)
365         data_type = UINT
366
367
368 class EncryptedBlockElement(Element):
369         class_id = 0xaf
370         class_name = 'EncryptedBlock'
371         class_parents = (ClusterElement,)
372         data_type = BINARY
373
374
375 class TracksElement(Element):
376         class_id = 0x1654ae6b
377         class_name = 'Tracks'
378         class_parents = (SegmentElement,)
379         data_type = CONTAINER
380
381
382 class TrackEntryElement(Element):
383         class_id = 0xae
384         class_name = 'TrackEntry'
385         class_parents = (TracksElement,)
386         data_type = CONTAINER
387
388
389 class TrackNumberElement(Element):
390         class_id = 0xd7
391         class_name = 'TrackNumber'
392         class_parents = (TrackEntryElement,)
393         data_type = UINT
394
395
396 class TrackUIDElement(Element):
397         class_id = 0x73c5
398         class_name = 'TrackUID'
399         class_parents = (TrackEntryElement,)
400         data_type = UINT
401
402
403 class TrackTypeElement(Element):
404         class_id = 0x83
405         class_name = 'TrackType'
406         class_parents = (TrackEntryElement,)
407         data_type = UINT
408
409
410 class FlagEnabledElement(Element):
411         class_id = 0xb9
412         class_name = 'FlagEnabled'
413         class_parents = (TrackEntryElement,)
414         data_type = UINT
415
416
417 class FlagDefaultElement(Element):
418         class_id = 0x88
419         class_name = 'FlagDefault'
420         class_parents = (TrackEntryElement,)
421         data_type = UINT
422
423
424 class FlagForcedElement(Element):
425         class_id = 0x55aa
426         class_name = 'FlagForced'
427         class_parents = (TrackEntryElement,)
428         data_type = UINT
429
430
431 class FlagLacingElement(Element):
432         class_id = 0x9c
433         class_name = 'FlagLacing'
434         class_parents = (TrackEntryElement,)
435         data_type = UINT
436
437
438 class MinCacheElement(Element):
439         class_id = 0x6de7
440         class_name = 'MinCache'
441         class_parents = (TrackEntryElement,)
442         data_type = UINT
443
444
445 class MaxCacheElement(Element):
446         class_id = 0x6df8
447         class_name = 'MaxCache'
448         class_parents = (TrackEntryElement,)
449         data_type = UINT
450
451
452 class DefaultDurationElement(Element):
453         class_id = 0x23e383
454         class_name = 'DefaultDuration'
455         class_parents = (TrackEntryElement,)
456         data_type = UINT
457
458
459 class TrackTimecodeScaleElement(Element):
460         class_id = 0x23314f
461         class_name = 'TrackTimecodeScale'
462         class_parents = (TrackEntryElement,)
463         data_type = FLOAT
464
465
466 class TrackOffsetElement(Element):
467         class_id = 0x537F
468         class_name = 'TrackOffset'
469         class_parents = (TrackEntryElement,)
470         data_type = INT
471
472
473 class MaxBlockAdditionIDElement(Element):
474         class_id = 0x55EE
475         class_name = 'MaxBlockAdditionID'
476         class_parents = (TrackEntryElement,)
477         data_type = UINT
478
479
480 class NameElement(Element):
481         class_id = 0x536E
482         class_name = 'Name'
483         class_parents = (TrackEntryElement,)
484         data_type = UNICODE
485
486
487 class LanguageElement(Element):
488         class_id = 0x22B59C
489         class_name = 'Language'
490         class_parents = (TrackEntryElement,)
491         data_type = STRING
492
493
494 class CodecIDElement(Element):
495         class_id = 0x86
496         class_name = 'CodecID'
497         class_parents = (TrackEntryElement,)
498         data_type = STRING
499
500
501 class CodecPrivateElement(Element):
502         class_id = 0x63A2
503         class_name = 'CodecPrivate'
504         class_parents = (TrackEntryElement,)
505         data_type = BINARY
506
507
508 class CodecNameElement(Element):
509         class_id = 0x258688
510         class_name = 'CodecName'
511         class_parents = (TrackEntryElement,)
512         data_type = UNICODE
513
514
515 class AttachmentLinkElement(Element):
516         class_id = 0x7446
517         class_name = 'AttachmentLink'
518         class_parents = (TrackEntryElement,)
519         data_type = UINT
520
521
522 class CodecSettingsElement(Element):
523         class_id = 0x3A9697
524         class_name = 'CodecSettings'
525         class_parents = (TrackEntryElement,)
526         data_type = UNICODE
527
528
529 class CodecInfoURLElement(Element):
530         class_id = 0x3B4040
531         class_name = 'CodecInfoURL'
532         class_parents = (TrackEntryElement,)
533         data_type = STRING
534
535
536 class CodecDownloadURLElement(Element):
537         class_id = 0x26B240
538         class_name = 'CodecDownloadURL'
539         class_parents = (TrackEntryElement,)
540         data_type = STRING
541
542
543 class CodecDecodeAllElement(Element):
544         class_id = 0xAA
545         class_name = 'CodecDecodeAll'
546         class_parents = (TrackEntryElement,)
547         data_type = UINT
548
549
550 class TrackOverlayElement(Element):
551         class_id = 0x6FAB
552         class_name = 'TrackOverlay'
553         class_parents = (TrackEntryElement,)
554         data_type = UINT
555
556
557 class TrackTranslateElement(Element):
558         class_id = 0x6624
559         class_name = 'TrackTranslate'
560         class_parents = (TrackEntryElement,)
561         data_type = CONTAINER
562
563
564 class TrackTranslateEditionUIDElement(Element):
565         class_id = 0x66FC
566         class_name = 'TrackTranslateEditionUID'
567         class_parents = (TrackTranslateElement,)
568         data_type = UINT
569
570
571 class TrackTranslateCodecElement(Element):
572         class_id = 0x66BF
573         class_name = 'TrackTranslateCodec'
574         class_parents = (TrackTranslateElement,)
575         data_type = UINT
576
577
578 class TrackTranslateTrackIDElement(Element):
579         class_id = 0x66A5
580         class_name = 'TrackTranslateTrackID'
581         class_parents = (TrackTranslateElement,)
582         data_type = BINARY
583
584
585 class VideoElement(Element):
586         class_id = 0xE0
587         class_name = 'Video'
588         class_parents = (TrackEntryElement,)
589         data_type = CONTAINER
590
591
592 class FlagInterlacedElement(Element):
593         class_id = 0x9A
594         class_name = 'FlagInterlaced'
595         class_parents = (VideoElement,)
596         data_type = UINT
597
598
599 class StereoModeElement(Element):
600         class_id = 0x53B8
601         class_name = 'StereoMode'
602         class_parents = (VideoElement,)
603         data_type = UINT
604
605
606 class OldStereoModeElement(Element):
607         class_id = 0x53B9
608         class_name = 'OldStereoMode'
609         class_parents = (VideoElement,)
610         data_type = UINT
611
612
613 class PixelWidthElement(Element):
614         class_id = 0xB0
615         class_name = 'PixelWidth'
616         class_parents = (VideoElement,)
617         data_type = UINT
618
619
620 class PixelHeightElement(Element):
621         class_id = 0xBA
622         class_name = 'PixelHeight'
623         class_parents = (VideoElement,)
624         data_type = UINT
625
626
627 class PixelCropBottomElement(Element):
628         class_id = 0x54AA
629         class_name = 'PixelCropBottom'
630         class_parents = (VideoElement,)
631         data_type = UINT
632
633
634 class PixelCropTopElement(Element):
635         class_id = 0x54BB
636         class_name = 'PixelCropTop'
637         class_parents = (VideoElement,)
638         data_type = UINT
639
640
641 class PixelCropLeftElement(Element):
642         class_id = 0x54CC
643         class_name = 'PixelCropLeft'
644         class_parents = (VideoElement,)
645         data_type = UINT
646
647
648 class PixelCropRightElement(Element):
649         class_id = 0x54DD
650         class_name = 'PixelCropRight'
651         class_parents = (VideoElement,)
652         data_type = UINT
653
654
655 class DisplayWidthElement(Element):
656         class_id = 0x54B0
657         class_name = 'DisplayWidth'
658         class_parents = (VideoElement,)
659         data_type = UINT
660
661
662 class DisplayHeightElement(Element):
663         class_id = 0x54BA
664         class_name = 'DisplayHeight'
665         class_parents = (VideoElement,)
666         data_type = UINT
667
668
669 class DisplayUnitElement(Element):
670         class_id = 0x54B2
671         class_name = 'DisplayUnit'
672         class_parents = (VideoElement,)
673         data_type = UINT
674
675
676 class AspectRatioTypeElement(Element):
677         class_id = 0x54B3
678         class_name = 'AspectRatioType'
679         class_parents = (VideoElement,)
680         data_type = UINT
681
682
683 class ColourSpaceElement(Element):
684         class_id = 0x2EB524
685         class_name = 'ColourSpace'
686         class_parents = (VideoElement,)
687         data_type = BINARY
688
689
690 class GammaValueElement(Element):
691         class_id = 0x2FB523
692         class_name = 'GammaValue'
693         class_parents = (VideoElement,)
694         data_type = FLOAT
695
696
697 class FrameRateElement(Element):
698         class_id = 0x2383E3
699         class_name = 'FrameRate'
700         class_parents = (VideoElement,)
701         data_type = FLOAT
702
703
704 class AudioElement(Element):
705         class_id = 0xE1
706         class_name = 'Audio'
707         class_parents = (TrackEntryElement,)
708         data_type = CONTAINER
709
710
711 class SamplingFrequencyElement(Element):
712         class_id = 0xB5
713         class_name = 'SamplingFrequency'
714         class_parents = (AudioElement,)
715         data_type = FLOAT
716
717
718 class OutputSamplingFrequencyElement(Element):
719         class_id = 0x78B5
720         class_name = 'OutputSamplingFrequency'
721         class_parents = (AudioElement,)
722         data_type = FLOAT
723
724
725 class ChannelsElement(Element):
726         class_id = 0x9F
727         class_name = 'Channels'
728         class_parents = (AudioElement,)
729         data_type = UINT
730
731
732 class ChannelPositionsElement(Element):
733         class_id = 0x7D7B
734         class_name = 'ChannelPositions'
735         class_parents = (AudioElement,)
736         data_type = BINARY
737
738
739 class BitDepthElement(Element):
740         class_id = 0x6264
741         class_name = 'BitDepth'
742         class_parents = (AudioElement,)
743         data_type = UINT
744
745
746 class TrackOperationElement(Element):
747         class_id = 0xE2
748         class_name = 'TrackOperation'
749         class_parents = (TrackEntryElement,)
750         data_type = CONTAINER
751
752
753 class TrackCombinePlanesElement(Element):
754         class_id = 0xE3
755         class_name = 'TrackCombinePlanes'
756         class_parents = (TrackOperationElement,)
757         data_type = CONTAINER
758
759
760 class TrackPlaneElement(Element):
761         class_id = 0xE4
762         class_name = 'TrackPlane'
763         class_parents = (TrackCombinePlanesElement,)
764         data_type = CONTAINER
765
766
767 class TrackPlaneUIDElement(Element):
768         class_id = 0xE5
769         class_name = 'TrackPlaneUID'
770         class_parents = (TrackPlaneElement,)
771         data_type = UINT
772
773
774 class TrackPlaneTypeElement(Element):
775         class_id = 0xE6
776         class_name = 'TrackPlaneType'
777         class_parents = (TrackPlaneElement,)
778         data_type = UINT
779
780
781 class TrackJoinBlocksElement(Element):
782         class_id = 0xE9
783         class_name = 'TrackJoinBlocks'
784         class_parents = (TrackOperationElement,)
785         data_type = CONTAINER
786
787
788 class TrackJoinUIDElement(Element):
789         class_id = 0xED
790         class_name = 'TrackJoinUID'
791         class_parents = (TrackJoinBlocksElement,)
792         data_type = UINT
793
794
795 class TrickTrackUIDElement(Element):
796         class_id = 0xC0
797         class_name = 'TrickTrackUID'
798         class_parents = (TrackEntryElement,)
799         data_type = UINT
800
801
802 class TrickTrackSegmentUIDElement(Element):
803         class_id = 0xC1
804         class_name = 'TrickTrackSegmentUID'
805         class_parents = (TrackEntryElement,)
806         data_type = BINARY
807
808
809 class TrickTrackFlagElement(Element):
810         class_id = 0xC6
811         class_name = 'TrickTrackFlag'
812         class_parents = (TrackEntryElement,)
813         data_type = UINT
814
815
816 class TrickMasterTrackUIDElement(Element):
817         class_id = 0xC7
818         class_name = 'TrickMasterTrackUID'
819         class_parents = (TrackEntryElement,)
820         data_type = UINT
821
822
823 class TrickMasterTrackSegmentUIDElement(Element):
824         class_id = 0xC4
825         class_name = 'TrickMasterTrackSegmentUID'
826         class_parents = (TrackEntryElement,)
827         data_type = BINARY
828
829
830 class ContentEncodingsElement(Element):
831         class_id = 0x6D80
832         class_name = 'ContentEncodings'
833         class_parents = (TrackEntryElement,)
834         data_type = CONTAINER
835
836
837 class ContentEncodingElement(Element):
838         class_id = 0x6240
839         class_name = 'ContentEncoding'
840         class_parents = (ContentEncodingsElement,)
841         data_type = CONTAINER
842
843
844 class ContentEncodingOrderElement(Element):
845         class_id = 0x5031
846         class_name = 'ContentEncodingOrder'
847         class_parents = (ContentEncodingElement,)
848         data_type = UINT
849
850
851 class ContentEncodingScopeElement(Element):
852         class_id = 0x5032
853         class_name = 'ContentEncodingScope'
854         class_parents = (ContentEncodingElement,)
855         data_type = UINT
856
857
858 class ContentEncodingTypeElement(Element):
859         class_id = 0x5033
860         class_name = 'ContentEncodingType'
861         class_parents = (ContentEncodingElement,)
862         data_type = UINT
863
864
865 class ContentCompressionElement(Element):
866         class_id = 0x5034
867         class_name = 'ContentCompression'
868         class_parents = (ContentEncodingElement,)
869         data_type = CONTAINER
870
871
872 class ContentCompAlgoElement(Element):
873         class_id = 0x4254
874         class_name = 'ContentCompAlgo'
875         class_parents = (ContentCompressionElement,)
876         data_type = UINT
877
878
879 class ContentCompSettingsElement(Element):
880         class_id = 0x4255
881         class_name = 'ContentCompSettings'
882         class_parents = (ContentCompressionElement,)
883         data_type = BINARY
884
885
886 class ContentEncryptionElement(Element):
887         class_id = 0x5035
888         class_name = 'ContentEncryption'
889         class_parents = (ContentEncodingElement,)
890         data_type = CONTAINER
891
892
893 class ContentEncAlgoElement(Element):
894         class_id = 0x47E1
895         class_name = 'ContentEncAlgo'
896         class_parents = (ContentEncryptionElement,)
897         data_type = UINT
898
899
900 class ContentEncKeyIDElement(Element):
901         class_id = 0x47E2
902         class_name = 'ContentEncKeyID'
903         class_parents = (ContentEncryptionElement,)
904         data_type = BINARY
905
906
907 class ContentSignatureElement(Element):
908         class_id = 0x47E3
909         class_name = 'ContentSignature'
910         class_parents = (ContentEncryptionElement,)
911         data_type = BINARY
912
913
914 class ContentSigKeyIDElement(Element):
915         class_id = 0x47E4
916         class_name = 'ContentSigKeyID'
917         class_parents = (ContentEncryptionElement,)
918         data_type = BINARY
919
920
921 class ContentSigAlgoElement(Element):
922         class_id = 0x47E5
923         class_name = 'ContentSigAlgo'
924         class_parents = (ContentEncryptionElement,)
925         data_type = UINT
926
927
928 class ContentSigHashAlgoElement(Element):
929         class_id = 0x47E6
930         class_name = 'ContentSigHashAlgo'
931         class_parents = (ContentEncryptionElement,)
932         data_type = UINT
933
934
935 class CuesElement(Element):
936         class_id = 0x1c53bb6b
937         class_name = 'Cues'
938         class_parents = (SegmentElement,)
939         data_type = CONTAINER
940
941
942 class CuePointElement(Element):
943         class_id = 0xbb
944         class_name = 'CuePoint'
945         class_parents = (CuesElement,)
946         data_type = CONTAINER
947
948
949 class CueTimeElement(Element):
950         class_id = 0xb3
951         class_name = 'CueTime'
952         class_parents = (CuePointElement,)
953         data_type = UINT
954
955
956 class CueTrackPositionsElement(Element):
957         class_id = 0xb7
958         class_name = 'CueTrackPositions'
959         class_parents = (CuePointElement,)
960         data_type = CONTAINER
961
962
963 class CueTrackElement(Element):
964         class_id = 0xf7
965         class_name = 'CueTrack'
966         class_parents = (CueTrackPositionsElement,)
967         data_type = UINT
968
969
970 class CueClusterPositionElement(Element):
971         class_id = 0xf1
972         class_name = 'CueClusterPosition'
973         class_parents = (CueTrackPositionsElement,)
974         data_type = UINT
975
976
977 class CueBlockNumberElement(Element):
978         class_id = 0x5378
979         class_name = 'CueBlockNumber'
980         class_parents = (CueTrackPositionsElement,)
981         data_type = UINT
982
983
984 class CueCodecStateElement(Element):
985         class_id = 0xea
986         class_name = 'CueCodecState'
987         class_parents = (CueTrackPositionsElement,)
988         data_type = UINT
989
990
991 class CueReferenceElement(Element):
992         class_id = 0xdb
993         class_name = 'CueReference'
994         class_parents = (CueTrackPositionsElement,)
995         data_type = CONTAINER
996
997
998 class CueRefTimeElement(Element):
999         class_id = 0x96
1000         class_name = 'CueRefTime'
1001         class_parents = (CueReferenceElement,)
1002         data_type = UINT
1003
1004
1005 class CueRefClusterElement(Element):
1006         class_id = 0x97
1007         class_name = 'CueRefCluster'
1008         class_parents = (CueReferenceElement,)
1009         data_type = UINT
1010
1011
1012 class CueRefNumberElement(Element):
1013         class_id = 0x535f
1014         class_name = 'CueRefNumber'
1015         class_parents = (CueReferenceElement,)
1016         data_type = UINT
1017
1018
1019 class CueRefCodecStateElement(Element):
1020         class_id = 0xeb
1021         class_name = 'CueRefCodecState'
1022         class_parents = (CueReferenceElement,)
1023         data_type = UINT
1024
1025
1026 class AttachmentsElement(Element):
1027         class_id = 0x1941a469
1028         class_name = 'Attachments'
1029         class_parents = (SegmentElement,)
1030         data_type = CONTAINER
1031
1032
1033 class AttachedFileElement(Element):
1034         class_id = 0x61a7
1035         class_name = 'AttachedFile'
1036         class_parents = (AttachmentsElement,)
1037         data_type = CONTAINER
1038
1039
1040 class FileDescriptionElement(Element):
1041         class_id = 0x467e
1042         class_name = 'FileDescription'
1043         class_parents = (AttachedFileElement,)
1044         data_type = UNICODE
1045
1046
1047 class FileNameElement(Element):
1048         class_id = 0x466e
1049         class_name = 'FileName'
1050         class_parents = (AttachedFileElement,)
1051         data_type = UNICODE
1052
1053
1054 class FileMimeTypeElement(Element):
1055         class_id = 0x4660
1056         class_name = 'FileMimeType'
1057         class_parents = (AttachedFileElement,)
1058         data_type = STRING
1059
1060
1061 class FileDataElement(Element):
1062         class_id = 0x465c
1063         class_name = 'FileData'
1064         class_parents = (AttachedFileElement,)
1065         data_type = BINARY
1066
1067
1068 class FileUIDElement(Element):
1069         class_id = 0x46ae
1070         class_name = 'FileUID'
1071         class_parents = (AttachedFileElement,)
1072         data_type = UINT
1073
1074
1075 class FileReferralElement(Element):
1076         class_id = 0x4675
1077         class_name = 'FileReferral'
1078         class_parents = (AttachedFileElement,)
1079         data_type = BINARY
1080
1081
1082 class FileUsedStartTimeElement(Element):
1083         class_id = 0x4661
1084         class_name = 'FileUsedStartTime'
1085         class_parents = (AttachedFileElement,)
1086         data_type = UINT
1087
1088
1089 class FileUsedEndTimeElement(Element):
1090         class_id = 0x4662
1091         class_name = 'FileUsedEndTime'
1092         class_parents = (AttachedFileElement,)
1093         data_type = UINT
1094
1095
1096 class ChaptersElement(Element):
1097         class_id = 0x1043a770
1098         class_name = 'Chapters'
1099         class_parents = (SegmentElement,)
1100         data_type = CONTAINER
1101
1102
1103 class EditionEntryElement(Element):
1104         class_id = 0x45b9
1105         class_name = 'EditionEntry'
1106         class_parents = (ChaptersElement,)
1107         data_type = CONTAINER
1108
1109
1110 class EditionUIDElement(Element):
1111         class_id = 0x45bc
1112         class_name = 'EditionUID'
1113         class_parents = (EditionEntryElement,)
1114         data_type = UINT
1115
1116
1117 class EditionFlagHiddenElement(Element):
1118         class_id = 0x45bd
1119         class_name = 'EditionFlagHidden'
1120         class_parents = (EditionEntryElement,)
1121         data_type = UINT
1122
1123
1124 class EditionFlagDefaultElement(Element):
1125         class_id = 0x45db
1126         class_name = 'EditionFlagDefault'
1127         class_parents = (EditionEntryElement,)
1128         data_type = UINT
1129
1130
1131 class EditionFlagOrderedElement(Element):
1132         class_id = 0x45dd
1133         class_name = 'EditionFlagOrdered'
1134         class_parents = (EditionEntryElement,)
1135         data_type = UINT
1136
1137
1138 class ChapterAtomElement(Element):
1139         class_id = 0xb6
1140         class_name = 'ChapterAtom'
1141         class_parents = (EditionEntryElement, 'self')
1142         data_type = CONTAINER
1143
1144
1145 class ChapterUIDElement(Element):
1146         class_id = 0x73c4
1147         class_name = 'ChapterUID'
1148         class_parents = (ChapterAtomElement,)
1149         data_type = UINT
1150
1151
1152 class ChapterTimeStartElement(Element):
1153         class_id = 0x91
1154         class_name = 'ChapterTimeStart'
1155         class_parents = (ChapterAtomElement,)
1156         data_type = UINT
1157
1158
1159 class ChapterTimeEndElement(Element):
1160         class_id = 0x92
1161         class_name = 'ChapterTimeEnd'
1162         class_parents = (ChapterAtomElement,)
1163         data_type = UINT
1164
1165
1166 class ChapterFlagHiddenElement(Element):
1167         class_id = 0x98
1168         class_name = 'ChapterFlagHidden'
1169         class_parents = (ChapterAtomElement,)
1170         data_type = UINT
1171
1172
1173 class ChapterFlagEnabledElement(Element):
1174         class_id = 0x4598
1175         class_name = 'ChapterFlagEnabled'
1176         class_parents = (ChapterAtomElement,)
1177         data_type = UINT
1178
1179
1180 class ChapterSegmentUIDElement(Element):
1181         class_id = 0x6e67
1182         class_name = 'ChapterSegmentUID'
1183         class_parents = (ChapterAtomElement,)
1184         data_type = BINARY
1185
1186
1187 class ChapterSegmentEditionUIDElement(Element):
1188         class_id = 0x6ebc
1189         class_name = 'ChapterSegmentEditionUID'
1190         class_parents = (ChapterAtomElement,)
1191         data_type = BINARY
1192
1193
1194 class ChapterPhysicalEquivElement(Element):
1195         class_id = 0x63c3
1196         class_name = 'ChapterPhysicalEquiv'
1197         class_parents = (ChapterAtomElement,)
1198         data_type = UINT
1199
1200
1201 class ChapterTrackElement(Element):
1202         class_id = 0x8f
1203         class_name = 'ChapterTrack'
1204         class_parents = (ChapterAtomElement,)
1205         data_type = CONTAINER
1206
1207
1208 class ChapterTrackNumberElement(Element):
1209         class_id = 0x89
1210         class_name = 'ChapterTrackNumber'
1211         class_parents = (ChapterTrackElement,)
1212         data_type = UINT
1213
1214
1215 class ChapterDisplayElement(Element):
1216         class_id = 0x80
1217         class_name = 'ChapterDisplay'
1218         class_parents = (ChapterAtomElement,)
1219         data_type = CONTAINER
1220
1221
1222 class ChapStringElement(Element):
1223         class_id = 0x85
1224         class_name = 'ChapString'
1225         class_parents = (ChapterDisplayElement,)
1226         data_type = UNICODE
1227
1228
1229 class ChapLanguageElement(Element):
1230         class_id = 0x437c
1231         class_name = 'ChapLanguage'
1232         class_parents = (ChapterDisplayElement,)
1233         data_type = STRING
1234
1235
1236 class ChapCountryElement(Element):
1237         class_id = 0x437e
1238         class_name = 'ChapCountry'
1239         class_parents = (ChapterDisplayElement,)
1240         data_type = STRING
1241
1242
1243 class ChapProcessElement(Element):
1244         class_id = 0x6944
1245         class_name = 'ChapProcess'
1246         class_parents = (ChapterAtomElement,)
1247         data_type = CONTAINER
1248
1249
1250 class ChapProcessCodecIDElement(Element):
1251         class_id = 0x6955
1252         class_name = 'ChapProcessCodecID'
1253         class_parents = (ChapProcessElement,)
1254         data_type = UINT
1255
1256
1257 class ChapProcessPrivateElement(Element):
1258         class_id = 0x450d
1259         class_name = 'ChapProcessPrivate'
1260         class_parents = (ChapProcessElement,)
1261         data_type = BINARY
1262
1263
1264 class ChapProcessCommandElement(Element):
1265         class_id = 0x6911
1266         class_name = 'ChapProcessCommand'
1267         class_parents = (ChapProcessElement,)
1268         data_type = CONTAINER
1269
1270
1271 class ChapProcessTimeElement(Element):
1272         class_id = 0x6922
1273         class_name = 'ChapProcessTime'
1274         class_parents = (ChapProcessCommandElement,)
1275         data_type = UINT
1276
1277
1278 class ChapProcessDataElement(Element):
1279         class_id = 0x6933
1280         class_name = 'ChapProcessData'
1281         class_parents = (ChapProcessCommandElement,)
1282         data_type = BINARY
1283
1284
1285 class TagsElement(Element):
1286         class_id = 0x1254c367
1287         class_name = 'Tags'
1288         class_parents = (SegmentElement,)
1289         data_type = CONTAINER
1290
1291
1292 class TagElement(Element):
1293         class_id = 0x7373
1294         class_name = 'Tag'
1295         class_parents = (TagsElement,)
1296         data_type = CONTAINER
1297
1298
1299 class TargetsElement(Element):
1300         class_id = 0x63c0
1301         class_name = 'Targets'
1302         class_parents = (TagElement,)
1303         data_type = CONTAINER
1304
1305
1306 class TargetTypeValueElement(Element):
1307         class_id = 0x68ca
1308         class_name = 'TargetTypeValue'
1309         class_parents = (TargetsElement,)
1310         data_type = UINT
1311
1312
1313 class TargetTypeElement(Element):
1314         class_id = 0x63ca
1315         class_name = 'TargetType'
1316         class_parents = (TargetsElement,)
1317         data_type = STRING
1318
1319
1320 class TagTrackUIDElement(Element):
1321         class_id = 0x63c5
1322         class_name = 'TagTrackUID'
1323         class_parents = (TargetsElement,)
1324         data_type = UINT
1325
1326
1327 class TagEditionUIDElement(Element):
1328         class_id = 0x63c9
1329         class_name = 'TagEditionUID'
1330         class_parents = (TargetsElement,)
1331         data_type = UINT
1332
1333
1334 class TagChapterUIDElement(Element):
1335         class_id = 0x63c4
1336         class_name = 'TagChapterUID'
1337         class_parents = (TargetsElement,)
1338         data_type = UINT
1339
1340
1341 class TagAttachmentUIDElement(Element):
1342         class_id = 0x63c6
1343         class_name = 'TagAttachmentUID'
1344         class_parents = (TargetsElement,)
1345         data_type = UINT
1346
1347
1348 class SimpleTagElement(Element):
1349         class_id = 0x67c8
1350         class_name = 'SimpleTag'
1351         class_parents = (TagElement, 'self')
1352         data_type = CONTAINER
1353
1354
1355 class TagNameElement(Element):
1356         class_id = 0x45a3
1357         class_name = 'TagName'
1358         class_parents = (SimpleTagElement,)
1359         data_type = UNICODE
1360
1361
1362 class TagLanguageElement(Element):
1363         class_id = 0x447a
1364         class_name = 'TagLanguage'
1365         class_parents = (SimpleTagElement,)
1366         data_type = STRING
1367
1368
1369 class TagDefaultElement(Element):
1370         class_id = 0x4484
1371         class_name = 'TagDefault'
1372         class_parents = (SimpleTagElement,)
1373         data_type = UINT
1374
1375
1376 class TagStringElement(Element):
1377         class_id = 0x4487
1378         class_name = 'TagString'
1379         class_parents = (SimpleTagElement,)
1380         data_type = UNICODE
1381
1382
1383 class TagBinaryElement(Element):
1384         class_id = 0x4485
1385         class_name = 'TagBinary'
1386         class_parents = (SimpleTagElement,)
1387         data_type = BINARY
1388
1389
1390 class Matroska(EBML):
1391         elements = EBML.elements + (
1392                 SegmentElement,
1393                 SeekHeadElement,
1394                 SeekElement,
1395                 SeekIDElement,
1396                 SeekPositionElement,
1397                 InfoElement,
1398                 SegmentUIDElement,
1399                 SegmentFilenameElement,
1400                 PrevUIDElement,
1401                 PrevFilenameElement,
1402                 NextUIDElement,
1403                 NextFilenameElement,
1404                 SegmentFamilyElement,
1405                 ChapterTranslateElement,
1406                 ChapterTranslateEditionUIDElement,
1407                 ChapterTranslateCodecElement,
1408                 ChapterTranslateIDElement,
1409                 TimecodeScaleElement,
1410                 DurationElement,
1411                 DateUTCElement,
1412                 TitleElement,
1413                 MuxingAppElement,
1414                 WritingAppElement,
1415                 ClusterElement,
1416                 TimecodeElement,
1417                 SilentTracksElement,
1418                 SilentTrackNumberElement,
1419                 PositionElement,
1420                 PrevSizeElement,
1421                 SimpleBlockElement,
1422                 BlockGroupElement,
1423                 BlockElement,
1424                 BlockVirtualElement,
1425                 BlockAdditionsElement,
1426                 BlockMoreElement,
1427                 BlockAddIDElement,
1428                 BlockAdditionalElement,
1429                 BlockDurationElement,
1430                 ReferencePriorityElement,
1431                 ReferenceBlockElement,
1432                 ReferenceVirtualElement,
1433                 CodecStateElement,
1434                 SlicesElement,
1435                 TimeSliceElement,
1436                 LaceNumberElement,
1437                 FrameNumberElement,
1438                 BlockAdditionIDElement,
1439                 DelayElement,
1440                 SliceDurationElement,
1441                 ReferenceFrameElement,
1442                 ReferenceOffsetElement,
1443                 ReferenceTimeCodeElement,
1444                 EncryptedBlockElement,
1445                 TracksElement,
1446                 TrackEntryElement,
1447                 TrackNumberElement,
1448                 TrackUIDElement,
1449                 TrackTypeElement,
1450                 FlagEnabledElement,
1451                 FlagDefaultElement,
1452                 FlagForcedElement,
1453                 FlagLacingElement,
1454                 MinCacheElement,
1455                 MaxCacheElement,
1456                 DefaultDurationElement,
1457                 TrackTimecodeScaleElement,
1458                 TrackOffsetElement,
1459                 MaxBlockAdditionIDElement,
1460                 NameElement,
1461                 LanguageElement,
1462                 CodecIDElement,
1463                 CodecPrivateElement,
1464                 CodecNameElement,
1465                 AttachmentLinkElement,
1466                 CodecSettingsElement,
1467                 CodecInfoURLElement,
1468                 CodecDownloadURLElement,
1469                 CodecDecodeAllElement,
1470                 TrackOverlayElement,
1471                 TrackTranslateElement,
1472                 TrackTranslateEditionUIDElement,
1473                 TrackTranslateCodecElement,
1474                 TrackTranslateTrackIDElement,
1475                 VideoElement,
1476                 FlagInterlacedElement,
1477                 StereoModeElement,
1478                 OldStereoModeElement,
1479                 PixelWidthElement,
1480                 PixelHeightElement,
1481                 PixelCropBottomElement,
1482                 PixelCropTopElement,
1483                 PixelCropLeftElement,
1484                 PixelCropRightElement,
1485                 DisplayWidthElement,
1486                 DisplayHeightElement,
1487                 DisplayUnitElement,
1488                 AspectRatioTypeElement,
1489                 ColourSpaceElement,
1490                 GammaValueElement,
1491                 FrameRateElement,
1492                 AudioElement,
1493                 SamplingFrequencyElement,
1494                 OutputSamplingFrequencyElement,
1495                 ChannelsElement,
1496                 ChannelPositionsElement,
1497                 BitDepthElement,
1498                 TrackOperationElement,
1499                 TrackCombinePlanesElement,
1500                 TrackPlaneElement,
1501                 TrackPlaneUIDElement,
1502                 TrackPlaneTypeElement,
1503                 TrackJoinBlocksElement,
1504                 TrackJoinUIDElement,
1505                 TrickTrackUIDElement,
1506                 TrickTrackSegmentUIDElement,
1507                 TrickTrackFlagElement,
1508                 TrickMasterTrackUIDElement,
1509                 TrickMasterTrackSegmentUIDElement,
1510                 ContentEncodingsElement,
1511                 ContentEncodingElement,
1512                 ContentEncodingOrderElement,
1513                 ContentEncodingScopeElement,
1514                 ContentEncodingTypeElement,
1515                 ContentCompressionElement,
1516                 ContentCompAlgoElement,
1517                 ContentCompSettingsElement,
1518                 ContentEncryptionElement,
1519                 ContentEncAlgoElement,
1520                 ContentEncKeyIDElement,
1521                 ContentSignatureElement,
1522                 ContentSigKeyIDElement,
1523                 ContentSigAlgoElement,
1524                 ContentSigHashAlgoElement,
1525                 CuesElement,
1526                 CuePointElement,
1527                 CueTimeElement,
1528                 CueTrackPositionsElement,
1529                 CueTrackElement,
1530                 CueClusterPositionElement,
1531                 CueBlockNumberElement,
1532                 CueCodecStateElement,
1533                 CueReferenceElement,
1534                 CueRefTimeElement,
1535                 CueRefClusterElement,
1536                 CueRefNumberElement,
1537                 CueRefCodecStateElement,
1538                 AttachmentsElement,
1539                 AttachedFileElement,
1540                 FileDescriptionElement,
1541                 FileNameElement,
1542                 FileMimeTypeElement,
1543                 FileDataElement,
1544                 FileUIDElement,
1545                 FileReferralElement,
1546                 FileUsedStartTimeElement,
1547                 FileUsedEndTimeElement,
1548                 ChaptersElement,
1549                 EditionEntryElement,
1550                 EditionUIDElement,
1551                 EditionFlagHiddenElement,
1552                 EditionFlagDefaultElement,
1553                 EditionFlagOrderedElement,
1554                 ChapterAtomElement,
1555                 ChapterUIDElement,
1556                 ChapterTimeStartElement,
1557                 ChapterTimeEndElement,
1558                 ChapterFlagHiddenElement,
1559                 ChapterFlagEnabledElement,
1560                 ChapterSegmentUIDElement,
1561                 ChapterSegmentEditionUIDElement,
1562                 ChapterPhysicalEquivElement,
1563                 ChapterTrackElement,
1564                 ChapterTrackNumberElement,
1565                 ChapterDisplayElement,
1566                 ChapStringElement,
1567                 ChapLanguageElement,
1568                 ChapCountryElement,
1569                 ChapProcessElement,
1570                 ChapProcessCodecIDElement,
1571                 ChapProcessPrivateElement,
1572                 ChapProcessCommandElement,
1573                 ChapProcessTimeElement,
1574                 ChapProcessDataElement,
1575                 TagsElement,
1576                 TagElement,
1577                 TargetsElement,
1578                 TargetTypeValueElement,
1579                 TargetTypeElement,
1580                 TagTrackUIDElement,
1581                 TagEditionUIDElement,
1582                 TagChapterUIDElement,
1583                 TagAttachmentUIDElement,
1584                 SimpleTagElement,
1585                 TagNameElement,
1586                 TagLanguageElement,
1587                 TagDefaultElement,
1588                 TagStringElement,
1589                 TagBinaryElement
1590         )