-
Notifications
You must be signed in to change notification settings - Fork 2
/
doctype.go
927 lines (845 loc) · 30.2 KB
/
doctype.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
// Code generated by go run make_doctype.go. DO NOT EDIT.
package matroska
import (
_ "embed"
"time"
"github.com/coding-socks/ebml/schema"
)
//go:embed ebml_matroska.xml
var docType []byte
var (
IDSegment schema.ElementID = 0x18538067
IDSeekHead schema.ElementID = 0x114d9b74
IDSeek schema.ElementID = 0x4dbb
IDSeekID schema.ElementID = 0x53ab
IDSeekPosition schema.ElementID = 0x53ac
IDInfo schema.ElementID = 0x1549a966
IDSegmentUUID schema.ElementID = 0x73a4
IDSegmentFilename schema.ElementID = 0x7384
IDPrevUUID schema.ElementID = 0x3cb923
IDPrevFilename schema.ElementID = 0x3c83ab
IDNextUUID schema.ElementID = 0x3eb923
IDNextFilename schema.ElementID = 0x3e83bb
IDSegmentFamily schema.ElementID = 0x4444
IDChapterTranslate schema.ElementID = 0x6924
IDChapterTranslateID schema.ElementID = 0x69a5
IDChapterTranslateCodec schema.ElementID = 0x69bf
IDChapterTranslateEditionUID schema.ElementID = 0x69fc
IDTimestampScale schema.ElementID = 0x2ad7b1
IDDuration schema.ElementID = 0x4489
IDDateUTC schema.ElementID = 0x4461
IDTitle schema.ElementID = 0x7ba9
IDMuxingApp schema.ElementID = 0x4d80
IDWritingApp schema.ElementID = 0x5741
IDCluster schema.ElementID = 0x1f43b675
IDTimestamp schema.ElementID = 0xe7
IDSilentTracks schema.ElementID = 0x5854
IDSilentTrackNumber schema.ElementID = 0x58d7
IDPosition schema.ElementID = 0xa7
IDPrevSize schema.ElementID = 0xab
IDSimpleBlock schema.ElementID = 0xa3
IDBlockGroup schema.ElementID = 0xa0
IDBlock schema.ElementID = 0xa1
IDBlockVirtual schema.ElementID = 0xa2
IDBlockAdditions schema.ElementID = 0x75a1
IDBlockMore schema.ElementID = 0xa6
IDBlockAdditional schema.ElementID = 0xa5
IDBlockAddID schema.ElementID = 0xee
IDBlockDuration schema.ElementID = 0x9b
IDReferencePriority schema.ElementID = 0xfa
IDReferenceBlock schema.ElementID = 0xfb
IDReferenceVirtual schema.ElementID = 0xfd
IDCodecState schema.ElementID = 0xa4
IDDiscardPadding schema.ElementID = 0x75a2
IDSlices schema.ElementID = 0x8e
IDTimeSlice schema.ElementID = 0xe8
IDLaceNumber schema.ElementID = 0xcc
IDFrameNumber schema.ElementID = 0xcd
IDBlockAdditionID schema.ElementID = 0xcb
IDDelay schema.ElementID = 0xce
IDSliceDuration schema.ElementID = 0xcf
IDReferenceFrame schema.ElementID = 0xc8
IDReferenceOffset schema.ElementID = 0xc9
IDReferenceTimestamp schema.ElementID = 0xca
IDEncryptedBlock schema.ElementID = 0xaf
IDTracks schema.ElementID = 0x1654ae6b
IDTrackEntry schema.ElementID = 0xae
IDTrackNumber schema.ElementID = 0xd7
IDTrackUID schema.ElementID = 0x73c5
IDTrackType schema.ElementID = 0x83
IDFlagEnabled schema.ElementID = 0xb9
IDFlagDefault schema.ElementID = 0x88
IDFlagForced schema.ElementID = 0x55aa
IDFlagHearingImpaired schema.ElementID = 0x55ab
IDFlagVisualImpaired schema.ElementID = 0x55ac
IDFlagTextDescriptions schema.ElementID = 0x55ad
IDFlagOriginal schema.ElementID = 0x55ae
IDFlagCommentary schema.ElementID = 0x55af
IDFlagLacing schema.ElementID = 0x9c
IDMinCache schema.ElementID = 0x6de7
IDMaxCache schema.ElementID = 0x6df8
IDDefaultDuration schema.ElementID = 0x23e383
IDDefaultDecodedFieldDuration schema.ElementID = 0x234e7a
IDTrackTimestampScale schema.ElementID = 0x23314f
IDTrackOffset schema.ElementID = 0x537f
IDMaxBlockAdditionID schema.ElementID = 0x55ee
IDBlockAdditionMapping schema.ElementID = 0x41e4
IDBlockAddIDValue schema.ElementID = 0x41f0
IDBlockAddIDName schema.ElementID = 0x41a4
IDBlockAddIDType schema.ElementID = 0x41e7
IDBlockAddIDExtraData schema.ElementID = 0x41ed
IDName schema.ElementID = 0x536e
IDLanguage schema.ElementID = 0x22b59c
IDLanguageBCP47 schema.ElementID = 0x22b59d
IDCodecID schema.ElementID = 0x86
IDCodecPrivate schema.ElementID = 0x63a2
IDCodecName schema.ElementID = 0x258688
IDAttachmentLink schema.ElementID = 0x7446
IDCodecSettings schema.ElementID = 0x3a9697
IDCodecInfoURL schema.ElementID = 0x3b4040
IDCodecDownloadURL schema.ElementID = 0x26b240
IDCodecDecodeAll schema.ElementID = 0xaa
IDTrackOverlay schema.ElementID = 0x6fab
IDCodecDelay schema.ElementID = 0x56aa
IDSeekPreRoll schema.ElementID = 0x56bb
IDTrackTranslate schema.ElementID = 0x6624
IDTrackTranslateTrackID schema.ElementID = 0x66a5
IDTrackTranslateCodec schema.ElementID = 0x66bf
IDTrackTranslateEditionUID schema.ElementID = 0x66fc
IDVideo schema.ElementID = 0xe0
IDFlagInterlaced schema.ElementID = 0x9a
IDFieldOrder schema.ElementID = 0x9d
IDStereoMode schema.ElementID = 0x53b8
IDAlphaMode schema.ElementID = 0x53c0
IDOldStereoMode schema.ElementID = 0x53b9
IDPixelWidth schema.ElementID = 0xb0
IDPixelHeight schema.ElementID = 0xba
IDPixelCropBottom schema.ElementID = 0x54aa
IDPixelCropTop schema.ElementID = 0x54bb
IDPixelCropLeft schema.ElementID = 0x54cc
IDPixelCropRight schema.ElementID = 0x54dd
IDDisplayWidth schema.ElementID = 0x54b0
IDDisplayHeight schema.ElementID = 0x54ba
IDDisplayUnit schema.ElementID = 0x54b2
IDAspectRatioType schema.ElementID = 0x54b3
IDUncompressedFourCC schema.ElementID = 0x2eb524
IDGammaValue schema.ElementID = 0x2fb523
IDFrameRate schema.ElementID = 0x2383e3
IDColour schema.ElementID = 0x55b0
IDMatrixCoefficients schema.ElementID = 0x55b1
IDBitsPerChannel schema.ElementID = 0x55b2
IDChromaSubsamplingHorz schema.ElementID = 0x55b3
IDChromaSubsamplingVert schema.ElementID = 0x55b4
IDCbSubsamplingHorz schema.ElementID = 0x55b5
IDCbSubsamplingVert schema.ElementID = 0x55b6
IDChromaSitingHorz schema.ElementID = 0x55b7
IDChromaSitingVert schema.ElementID = 0x55b8
IDRange schema.ElementID = 0x55b9
IDTransferCharacteristics schema.ElementID = 0x55ba
IDPrimaries schema.ElementID = 0x55bb
IDMaxCLL schema.ElementID = 0x55bc
IDMaxFALL schema.ElementID = 0x55bd
IDMasteringMetadata schema.ElementID = 0x55d0
IDPrimaryRChromaticityX schema.ElementID = 0x55d1
IDPrimaryRChromaticityY schema.ElementID = 0x55d2
IDPrimaryGChromaticityX schema.ElementID = 0x55d3
IDPrimaryGChromaticityY schema.ElementID = 0x55d4
IDPrimaryBChromaticityX schema.ElementID = 0x55d5
IDPrimaryBChromaticityY schema.ElementID = 0x55d6
IDWhitePointChromaticityX schema.ElementID = 0x55d7
IDWhitePointChromaticityY schema.ElementID = 0x55d8
IDLuminanceMax schema.ElementID = 0x55d9
IDLuminanceMin schema.ElementID = 0x55da
IDProjection schema.ElementID = 0x7670
IDProjectionType schema.ElementID = 0x7671
IDProjectionPrivate schema.ElementID = 0x7672
IDProjectionPoseYaw schema.ElementID = 0x7673
IDProjectionPosePitch schema.ElementID = 0x7674
IDProjectionPoseRoll schema.ElementID = 0x7675
IDAudio schema.ElementID = 0xe1
IDSamplingFrequency schema.ElementID = 0xb5
IDOutputSamplingFrequency schema.ElementID = 0x78b5
IDChannels schema.ElementID = 0x9f
IDChannelPositions schema.ElementID = 0x7d7b
IDBitDepth schema.ElementID = 0x6264
IDEmphasis schema.ElementID = 0x52f1
IDTrackOperation schema.ElementID = 0xe2
IDTrackCombinePlanes schema.ElementID = 0xe3
IDTrackPlane schema.ElementID = 0xe4
IDTrackPlaneUID schema.ElementID = 0xe5
IDTrackPlaneType schema.ElementID = 0xe6
IDTrackJoinBlocks schema.ElementID = 0xe9
IDTrackJoinUID schema.ElementID = 0xed
IDTrickTrackUID schema.ElementID = 0xc0
IDTrickTrackSegmentUID schema.ElementID = 0xc1
IDTrickTrackFlag schema.ElementID = 0xc6
IDTrickMasterTrackUID schema.ElementID = 0xc7
IDTrickMasterTrackSegmentUID schema.ElementID = 0xc4
IDContentEncodings schema.ElementID = 0x6d80
IDContentEncoding schema.ElementID = 0x6240
IDContentEncodingOrder schema.ElementID = 0x5031
IDContentEncodingScope schema.ElementID = 0x5032
IDContentEncodingType schema.ElementID = 0x5033
IDContentCompression schema.ElementID = 0x5034
IDContentCompAlgo schema.ElementID = 0x4254
IDContentCompSettings schema.ElementID = 0x4255
IDContentEncryption schema.ElementID = 0x5035
IDContentEncAlgo schema.ElementID = 0x47e1
IDContentEncKeyID schema.ElementID = 0x47e2
IDContentEncAESSettings schema.ElementID = 0x47e7
IDAESSettingsCipherMode schema.ElementID = 0x47e8
IDContentSignature schema.ElementID = 0x47e3
IDContentSigKeyID schema.ElementID = 0x47e4
IDContentSigAlgo schema.ElementID = 0x47e5
IDContentSigHashAlgo schema.ElementID = 0x47e6
IDCues schema.ElementID = 0x1c53bb6b
IDCuePoint schema.ElementID = 0xbb
IDCueTime schema.ElementID = 0xb3
IDCueTrackPositions schema.ElementID = 0xb7
IDCueTrack schema.ElementID = 0xf7
IDCueClusterPosition schema.ElementID = 0xf1
IDCueRelativePosition schema.ElementID = 0xf0
IDCueDuration schema.ElementID = 0xb2
IDCueBlockNumber schema.ElementID = 0x5378
IDCueCodecState schema.ElementID = 0xea
IDCueReference schema.ElementID = 0xdb
IDCueRefTime schema.ElementID = 0x96
IDCueRefCluster schema.ElementID = 0x97
IDCueRefNumber schema.ElementID = 0x535f
IDCueRefCodecState schema.ElementID = 0xeb
IDAttachments schema.ElementID = 0x1941a469
IDAttachedFile schema.ElementID = 0x61a7
IDFileDescription schema.ElementID = 0x467e
IDFileName schema.ElementID = 0x466e
IDFileMediaType schema.ElementID = 0x4660
IDFileData schema.ElementID = 0x465c
IDFileUID schema.ElementID = 0x46ae
IDFileReferral schema.ElementID = 0x4675
IDFileUsedStartTime schema.ElementID = 0x4661
IDFileUsedEndTime schema.ElementID = 0x4662
IDChapters schema.ElementID = 0x1043a770
IDEditionEntry schema.ElementID = 0x45b9
IDEditionUID schema.ElementID = 0x45bc
IDEditionFlagHidden schema.ElementID = 0x45bd
IDEditionFlagDefault schema.ElementID = 0x45db
IDEditionFlagOrdered schema.ElementID = 0x45dd
IDEditionDisplay schema.ElementID = 0x4520
IDEditionString schema.ElementID = 0x4521
IDEditionLanguageIETF schema.ElementID = 0x45e4
IDChapterAtom schema.ElementID = 0xb6
IDChapterUID schema.ElementID = 0x73c4
IDChapterStringUID schema.ElementID = 0x5654
IDChapterTimeStart schema.ElementID = 0x91
IDChapterTimeEnd schema.ElementID = 0x92
IDChapterFlagHidden schema.ElementID = 0x98
IDChapterFlagEnabled schema.ElementID = 0x4598
IDChapterSegmentUUID schema.ElementID = 0x6e67
IDChapterSkipType schema.ElementID = 0x4588
IDChapterSegmentEditionUID schema.ElementID = 0x6ebc
IDChapterPhysicalEquiv schema.ElementID = 0x63c3
IDChapterTrack schema.ElementID = 0x8f
IDChapterTrackUID schema.ElementID = 0x89
IDChapterDisplay schema.ElementID = 0x80
IDChapString schema.ElementID = 0x85
IDChapLanguage schema.ElementID = 0x437c
IDChapLanguageBCP47 schema.ElementID = 0x437d
IDChapCountry schema.ElementID = 0x437e
IDChapProcess schema.ElementID = 0x6944
IDChapProcessCodecID schema.ElementID = 0x6955
IDChapProcessPrivate schema.ElementID = 0x450d
IDChapProcessCommand schema.ElementID = 0x6911
IDChapProcessTime schema.ElementID = 0x6922
IDChapProcessData schema.ElementID = 0x6933
IDTags schema.ElementID = 0x1254c367
IDTag schema.ElementID = 0x7373
IDTargets schema.ElementID = 0x63c0
IDTargetTypeValue schema.ElementID = 0x68ca
IDTargetType schema.ElementID = 0x63ca
IDTagTrackUID schema.ElementID = 0x63c5
IDTagEditionUID schema.ElementID = 0x63c9
IDTagChapterUID schema.ElementID = 0x63c4
IDTagAttachmentUID schema.ElementID = 0x63c6
IDSimpleTag schema.ElementID = 0x67c8
IDTagName schema.ElementID = 0x45a3
IDTagLanguage schema.ElementID = 0x447a
IDTagLanguageBCP47 schema.ElementID = 0x447b
IDTagDefault schema.ElementID = 0x4484
IDTagDefaultBogus schema.ElementID = 0x44b4
IDTagString schema.ElementID = 0x4487
IDTagBinary schema.ElementID = 0x4485
)
type Segment struct {
SeekHead []SeekHead
Info Info
Cluster []Cluster
Tracks *Tracks
Cues *Cues
Attachments *Attachments
Chapters *Chapters
Tags []Tags
}
type SeekHead struct {
Seek []Seek
}
type Seek struct {
SeekID schema.ElementID
SeekPosition uint
}
type Info struct {
SegmentUUID *[]byte
SegmentFilename *string
PrevUUID *[]byte
PrevFilename *string
NextUUID *[]byte
NextFilename *string
SegmentFamily [][]byte
ChapterTranslate []ChapterTranslate
TimestampScale time.Duration
Duration *float64
DateUTC *time.Time
Title *string
MuxingApp string
WritingApp string
}
const (
ChapterTranslateCodecMatroskaScript = 0
ChapterTranslateCodecDVDMenu = 1
)
type ChapterTranslate struct {
ChapterTranslateID []byte
ChapterTranslateCodec uint
ChapterTranslateEditionUID []uint
}
type Cluster struct {
Timestamp time.Duration
SilentTracks *SilentTracks
Position *uint
PrevSize *uint
SimpleBlock [][]byte
BlockGroup []BlockGroup
EncryptedBlock [][]byte
}
type SilentTracks struct {
SilentTrackNumber []uint
}
type BlockGroup struct {
Block []byte
BlockVirtual *[]byte
BlockAdditions *BlockAdditions
BlockDuration *uint
ReferencePriority uint
ReferenceBlock []int
ReferenceVirtual *int
CodecState *[]byte
DiscardPadding *int
Slices *Slices
ReferenceFrame *ReferenceFrame
}
type BlockAdditions struct {
BlockMore []BlockMore
}
type BlockMore struct {
BlockAdditional []byte
BlockAddID uint
}
type Slices struct {
TimeSlice []TimeSlice
}
type TimeSlice struct {
LaceNumber *uint
FrameNumber uint
BlockAdditionID uint
Delay uint
SliceDuration uint
}
type ReferenceFrame struct {
ReferenceOffset uint
ReferenceTimestamp uint
}
type Tracks struct {
TrackEntry []TrackEntry
}
const (
TrackTypeVideo = 1
TrackTypeAudio = 2
TrackTypeComplex = 3
TrackTypeLogo = 16
TrackTypeSubtitle = 17
TrackTypeButtons = 18
TrackTypeControl = 32
TrackTypeMetadata = 33
)
type TrackEntry struct {
TrackNumber uint
TrackUID uint
TrackType uint
FlagEnabled uint
FlagDefault uint
FlagForced uint
FlagHearingImpaired *uint
FlagVisualImpaired *uint
FlagTextDescriptions *uint
FlagOriginal *uint
FlagCommentary *uint
FlagLacing uint
MinCache uint
MaxCache *uint
DefaultDuration *uint
DefaultDecodedFieldDuration *uint
TrackTimestampScale float64
TrackOffset int
MaxBlockAdditionID uint
BlockAdditionMapping []BlockAdditionMapping
Name *string
Language string
LanguageBCP47 *string
CodecID string
CodecPrivate *[]byte
CodecName *string
AttachmentLink *uint
CodecSettings *string
CodecInfoURL []string
CodecDownloadURL []string
CodecDecodeAll uint
TrackOverlay []uint
CodecDelay uint
SeekPreRoll uint
TrackTranslate []TrackTranslate
Video *Video
Audio *Audio
TrackOperation *TrackOperation
TrickTrackUID *uint
TrickTrackSegmentUID *[]byte
TrickTrackFlag uint
TrickMasterTrackUID *uint
TrickMasterTrackSegmentUID *[]byte
ContentEncodings *ContentEncodings
}
type BlockAdditionMapping struct {
BlockAddIDValue *uint
BlockAddIDName *string
BlockAddIDType uint
BlockAddIDExtraData *[]byte
}
const (
TrackTranslateCodecMatroskaScript = 0
TrackTranslateCodecDVDMenu = 1
)
type TrackTranslate struct {
TrackTranslateTrackID []byte
TrackTranslateCodec uint
TrackTranslateEditionUID []uint
}
const (
FlagInterlacedUndetermined = 0
FlagInterlacedInterlaced = 1
FlagInterlacedProgressive = 2
)
const (
FieldOrderProgressive = 0
FieldOrderTff = 1
FieldOrderUndetermined = 2
FieldOrderBff = 6
FieldOrderBffSwapped = 9
FieldOrderTffSwapped = 14
)
const (
StereoModeMono = 0
StereoModeSideBySideLeftEyeFirst = 1
StereoModeTopBottomRightEyeIsFirst = 2
StereoModeTopBottomLeftEyeIsFirst = 3
StereoModeCheckboardRightEyeIsFirst = 4
StereoModeCheckboardLeftEyeIsFirst = 5
StereoModeRowInterleavedRightEyeIsFirst = 6
StereoModeRowInterleavedLeftEyeIsFirst = 7
StereoModeColumnInterleavedRightEyeIsFirst = 8
StereoModeColumnInterleavedLeftEyeIsFirst = 9
StereoModeAnaglyphCyanRed = 10
StereoModeSideBySideRightEyeFirst = 11
StereoModeAnaglyphGreenMagenta = 12
StereoModeBothEyesLacedInOneBlockLeftEyeIsFirst = 13
StereoModeBothEyesLacedInOneBlockRightEyeIsFirst = 14
)
const (
AlphaModeNone = 0
AlphaModePresent = 1
)
const (
OldStereoModeMono = 0
OldStereoModeRightEye = 1
OldStereoModeLeftEye = 2
OldStereoModeBothEyes = 3
)
const (
DisplayUnitPixels = 0
DisplayUnitCentimeters = 1
DisplayUnitInches = 2
DisplayUnitDisplayAspectRatio = 3
DisplayUnitUnknown = 4
)
const (
AspectRatioTypeFreeResizing = 0
AspectRatioTypeKeepAspectRatio = 1
AspectRatioTypeFixed = 2
)
type Video struct {
FlagInterlaced uint
FieldOrder uint
StereoMode uint
AlphaMode uint
OldStereoMode *uint
PixelWidth uint
PixelHeight uint
PixelCropBottom uint
PixelCropTop uint
PixelCropLeft uint
PixelCropRight uint
DisplayWidth *uint
DisplayHeight *uint
DisplayUnit uint
AspectRatioType uint
UncompressedFourCC *[]byte
GammaValue *float64
FrameRate *float64
Colour *Colour
Projection *Projection
}
const (
MatrixCoefficientsIdentity = 0
MatrixCoefficientsITURBT709 = 1
MatrixCoefficientsUnspecified = 2
MatrixCoefficientsReserved = 3
MatrixCoefficientsUSFCC73682 = 4
MatrixCoefficientsITURBT470BG = 5
MatrixCoefficientsSMPTE170M = 6
MatrixCoefficientsSMPTE240M = 7
MatrixCoefficientsYCoCg = 8
MatrixCoefficientsBT2020NonConstantLuminance = 9
MatrixCoefficientsBT2020ConstantLuminance = 10
MatrixCoefficientsSMPTEST2085 = 11
MatrixCoefficientsChromaDerivedNonConstantLuminance = 12
MatrixCoefficientsChromaDerivedConstantLuminance = 13
MatrixCoefficientsITURBT21000 = 14
)
const (
ChromaSitingHorzUnspecified = 0
ChromaSitingHorzLeftCollocated = 1
ChromaSitingHorzHalf = 2
)
const (
ChromaSitingVertUnspecified = 0
ChromaSitingVertTopCollocated = 1
ChromaSitingVertHalf = 2
)
const (
RangeUnspecified = 0
RangeBroadcastRange = 1
RangeFullRangeNoClipping = 2
RangeDefinedByMatrixCoefficients = 3
RangeTransferCharacteristics = 3
)
const (
TransferCharacteristicsReserved = 0
TransferCharacteristicsITURBT709 = 1
TransferCharacteristicsUnspecified = 2
TransferCharacteristicsReserved2 = 3
TransferCharacteristicsGamma22CurveBT470M = 4
TransferCharacteristicsGamma28CurveBT470BG = 5
TransferCharacteristicsSMPTE170M = 6
TransferCharacteristicsSMPTE240M = 7
TransferCharacteristicsLinear = 8
TransferCharacteristicsLog = 9
TransferCharacteristicsLogSqrt = 10
TransferCharacteristicsIEC6196624 = 11
TransferCharacteristicsITURBT1361ExtendedColourGamut = 12
TransferCharacteristicsIEC6196621 = 13
TransferCharacteristicsITURBT202010Bit = 14
TransferCharacteristicsITURBT202012Bit = 15
TransferCharacteristicsITURBT2100PerceptualQuantization = 16
TransferCharacteristicsSMPTEST4281 = 17
TransferCharacteristicsARIBSTDB67HLG = 18
)
const (
PrimariesReserved = 0
PrimariesITURBT709 = 1
PrimariesUnspecified = 2
PrimariesReserved2 = 3
PrimariesITURBT470M = 4
PrimariesITURBT470BGBT601625 = 5
PrimariesITURBT601525SMPTE170M = 6
PrimariesSMPTE240M = 7
PrimariesFILM = 8
PrimariesITURBT2020 = 9
PrimariesSMPTEST4281 = 10
PrimariesSMPTERP4322 = 11
PrimariesSMPTEEG4322 = 12
PrimariesEBUTech3213EJEDECP22Phosphors = 22
)
type Colour struct {
MatrixCoefficients uint
BitsPerChannel uint
ChromaSubsamplingHorz *uint
ChromaSubsamplingVert *uint
CbSubsamplingHorz *uint
CbSubsamplingVert *uint
ChromaSitingHorz uint
ChromaSitingVert uint
Range uint
TransferCharacteristics uint
Primaries uint
MaxCLL *uint
MaxFALL *uint
MasteringMetadata *MasteringMetadata
}
type MasteringMetadata struct {
PrimaryRChromaticityX *float64
PrimaryRChromaticityY *float64
PrimaryGChromaticityX *float64
PrimaryGChromaticityY *float64
PrimaryBChromaticityX *float64
PrimaryBChromaticityY *float64
WhitePointChromaticityX *float64
WhitePointChromaticityY *float64
LuminanceMax *float64
LuminanceMin *float64
}
const (
ProjectionTypeRectangular = 0
ProjectionTypeEquirectangular = 1
ProjectionTypeCubemap = 2
ProjectionTypeMesh = 3
)
type Projection struct {
ProjectionType uint
ProjectionPrivate *[]byte
ProjectionPoseYaw float64
ProjectionPosePitch float64
ProjectionPoseRoll float64
}
const (
EmphasisNoEmphasis = 0
EmphasisCDAudio = 1
EmphasisReserved = 2
EmphasisCCITJ17 = 3
EmphasisFM50 = 4
EmphasisFM75 = 5
EmphasisPhonoRIAA = 10
EmphasisPhonoIECN78 = 11
EmphasisPhonoTELDEC = 12
EmphasisPhonoEMI = 13
EmphasisPhonoColumbiaLP = 14
EmphasisPhonoLONDON = 15
EmphasisPhonoNARTB = 16
)
type Audio struct {
SamplingFrequency float64
OutputSamplingFrequency *float64
Channels uint
ChannelPositions *[]byte
BitDepth *uint
Emphasis uint
}
type TrackOperation struct {
TrackCombinePlanes *TrackCombinePlanes
TrackJoinBlocks *TrackJoinBlocks
}
type TrackCombinePlanes struct {
TrackPlane []TrackPlane
}
const (
TrackPlaneTypeLeftEye = 0
TrackPlaneTypeRightEye = 1
TrackPlaneTypeBackground = 2
)
type TrackPlane struct {
TrackPlaneUID uint
TrackPlaneType uint
}
type TrackJoinBlocks struct {
TrackJoinUID []uint
}
type ContentEncodings struct {
ContentEncoding []ContentEncoding
}
const (
ContentEncodingScopeBlock = 1
ContentEncodingScopePrivate = 2
ContentEncodingScopeNext = 4
)
const (
ContentEncodingTypeCompression = 0
ContentEncodingTypeEncryption = 1
)
type ContentEncoding struct {
ContentEncodingOrder uint
ContentEncodingScope uint
ContentEncodingType uint
ContentCompression *ContentCompression
ContentEncryption *ContentEncryption
}
const (
ContentCompAlgoZlib = 0
ContentCompAlgoBzlib = 1
ContentCompAlgoLzo1X = 2
ContentCompAlgoHeaderStripping = 3
)
type ContentCompression struct {
ContentCompAlgo uint
ContentCompSettings *[]byte
}
const (
ContentEncAlgoNotEncrypted = 0
ContentEncAlgoDES = 1
ContentEncAlgo3DES = 2
ContentEncAlgoTwofish = 3
ContentEncAlgoBlowfish = 4
ContentEncAlgoAES = 5
)
const (
ContentSigAlgoNotSigned = 0
ContentSigAlgoRSA = 1
)
const (
ContentSigHashAlgoNotSigned = 0
ContentSigHashAlgoSHA1160 = 1
ContentSigHashAlgoMD5 = 2
)
type ContentEncryption struct {
ContentEncAlgo uint
ContentEncKeyID *[]byte
ContentEncAESSettings *ContentEncAESSettings
ContentSignature *[]byte
ContentSigKeyID *[]byte
ContentSigAlgo uint
ContentSigHashAlgo uint
}
const (
AESSettingsCipherModeAESCTR = 1
AESSettingsCipherModeAESCBC = 2
)
type ContentEncAESSettings struct {
AESSettingsCipherMode uint
}
type Cues struct {
CuePoint []CuePoint
}
type CuePoint struct {
CueTime uint
CueTrackPositions []CueTrackPositions
}
type CueTrackPositions struct {
CueTrack uint
CueClusterPosition uint
CueRelativePosition *uint
CueDuration *uint
CueBlockNumber *uint
CueCodecState uint
CueReference []CueReference
}
type CueReference struct {
CueRefTime uint
CueRefCluster uint
CueRefNumber uint
CueRefCodecState uint
}
type Attachments struct {
AttachedFile []AttachedFile
}
type AttachedFile struct {
FileDescription *string
FileName string
FileMediaType string
FileData []byte
FileUID uint
FileReferral *[]byte
FileUsedStartTime *uint
FileUsedEndTime *uint
}
type Chapters struct {
EditionEntry []EditionEntry
}
type EditionEntry struct {
EditionUID *uint
EditionFlagHidden uint
EditionFlagDefault uint
EditionFlagOrdered uint
EditionDisplay []EditionDisplay
ChapterAtom []ChapterAtom
}
type EditionDisplay struct {
EditionString string
EditionLanguageIETF []string
}
const (
ChapterSkipTypeNoSkipping = 0
ChapterSkipTypeOpeningCredits = 1
ChapterSkipTypeEndCredits = 2
ChapterSkipTypeRecap = 3
ChapterSkipTypeNextPreview = 4
ChapterSkipTypePreview = 5
ChapterSkipTypeAdvertisement = 6
)
type ChapterAtom struct {
ChapterAtom *ChapterAtom
ChapterUID uint
ChapterStringUID *string
ChapterTimeStart uint
ChapterTimeEnd *uint
ChapterFlagHidden uint
ChapterFlagEnabled uint
ChapterSegmentUUID *[]byte
ChapterSkipType *uint
ChapterSegmentEditionUID *uint
ChapterPhysicalEquiv *uint
ChapterTrack *ChapterTrack
ChapterDisplay []ChapterDisplay
ChapProcess []ChapProcess
}
type ChapterTrack struct {
ChapterTrackUID []uint
}
type ChapterDisplay struct {
ChapString string
ChapLanguage []string
ChapLanguageBCP47 []string
ChapCountry []string
}
type ChapProcess struct {
ChapProcessCodecID uint
ChapProcessPrivate *[]byte
ChapProcessCommand []ChapProcessCommand
}
const (
ChapProcessTimeDuringTheWholeChapter = 0
ChapProcessTimeBeforeStartingPlayback = 1
ChapProcessTimeAfterPlaybackOfTheChapter = 2
)
type ChapProcessCommand struct {
ChapProcessTime uint
ChapProcessData []byte
}
type Tags struct {
Tag []Tag
}
type Tag struct {
Targets Targets
SimpleTag []SimpleTag
}
type Targets struct {
TargetTypeValue uint
TargetType *string
TagTrackUID []uint
TagEditionUID []uint
TagChapterUID []uint
TagAttachmentUID []uint
}
type SimpleTag struct {
SimpleTag *SimpleTag
TagName string
TagLanguage string
TagLanguageBCP47 *string
TagDefault uint
TagDefaultBogus uint
TagString *string
TagBinary *[]byte
}