Coverage Report

Created: 2026-10-17 07:46

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/vlc/contrib/x86_64-unknown-linux-gnu/include/matroska/KaxSemantic.h
Line
Count
Source
1
/**********************************************************************
2
**  DO NOT EDIT, GENERATED WITH DATA2LIB
3
**  https://github.com/Matroska-Org/foundation-source/tree/master/spectool
4
**
5
**  libmatroska : parse Matroska files, see https://www.matroska.org/
6
**
7
**  Copyright (c) 2002-2022, Matroska (non-profit organisation)
8
**  All rights reserved.
9
**
10
** This file is part of libmatroska.
11
**
12
** This library is free software; you can redistribute it and/or
13
** modify it under the terms of the GNU Lesser General Public
14
** License as published by the Free Software Foundation; either
15
** version 2.1 of the License, or (at your option) any later version.
16
**
17
** This library is distributed in the hope that it will be useful,
18
** but WITHOUT ANY WARRANTY; without even the implied warranty of
19
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20
** Lesser General Public License for more details.
21
**
22
** You should have received a copy of the GNU Lesser General Public
23
** License along with this library; if not, write to the Free Software
24
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
25
**
26
** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.**
27
** Contact license@matroska.org if any conditions of this licensing are
28
** not clear to you.
29
**
30
**********************************************************************/
31
32
33
#ifndef LIBMATROSKA_SEMANTIC_H
34
#define LIBMATROSKA_SEMANTIC_H
35
36
#include "matroska/KaxTypes.h"
37
#include <ebml/EbmlUInteger.h>
38
#include <ebml/EbmlSInteger.h>
39
#include <ebml/EbmlDate.h>
40
#include <ebml/EbmlFloat.h>
41
#include <ebml/EbmlString.h>
42
#include <ebml/EbmlUnicodeString.h>
43
#include <ebml/EbmlBinary.h>
44
#include <ebml/EbmlMaster.h>
45
#include "matroska/KaxDefines.h"
46
47
using namespace libebml;
48
49
namespace libmatroska {
50
DECLARE_MKX_BINARY (KaxSeekID)
51
public:
52
  bool ValidateSize() const override {return IsFiniteSize() && GetSize() == 4;}
53
};
54
55
DECLARE_MKX_UINTEGER(KaxSeekPosition)
56
};
57
58
DECLARE_MKX_MASTER(KaxInfo)
59
};
60
61
DECLARE_MKX_BINARY (KaxSegmentUID)
62
#if defined(HAVE_EBML2) || defined(HAS_EBML2)
63
public:
64
  KaxSegmentUID(EBML_DEF_CONS EBML_DEF_SEP EBML_EXTRA_PARAM);
65
#endif
66
public:
67
1.01k
  bool ValidateSize() const override {return IsFiniteSize() && GetSize() == 16;}
68
};
69
70
DECLARE_MKX_UNISTRING(KaxSegmentFilename)
71
};
72
73
DECLARE_MKX_UNISTRING(KaxPrevFilename)
74
};
75
76
DECLARE_MKX_UNISTRING(KaxNextFilename)
77
};
78
79
DECLARE_MKX_BINARY (KaxSegmentFamily)
80
public:
81
0
  bool ValidateSize() const override {return IsFiniteSize() && GetSize() == 16;}
82
};
83
84
DECLARE_MKX_MASTER(KaxChapterTranslate)
85
};
86
87
DECLARE_MKX_BINARY (KaxChapterTranslateID)
88
};
89
90
DECLARE_MKX_UINTEGER(KaxChapterTranslateCodec)
91
};
92
93
DECLARE_MKX_UINTEGER(KaxChapterTranslateEditionUID)
94
};
95
96
DECLARE_MKX_UINTEGER(KaxTimecodeScale)
97
};
98
99
DECLARE_MKX_FLOAT(KaxDuration)
100
};
101
102
DECLARE_MKX_DATE    (KaxDateUTC)
103
};
104
105
DECLARE_MKX_UNISTRING(KaxTitle)
106
};
107
108
DECLARE_MKX_UNISTRING(KaxMuxingApp)
109
};
110
111
DECLARE_MKX_UNISTRING(KaxWritingApp)
112
};
113
114
DECLARE_MKX_UINTEGER(KaxClusterTimecode)
115
};
116
117
DECLARE_MKX_MASTER(KaxClusterSilentTracks)
118
public:
119
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
120
};
121
122
DECLARE_MKX_UINTEGER(KaxClusterSilentTrackNumber)
123
public:
124
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
125
};
126
127
DECLARE_MKX_UINTEGER(KaxClusterPosition)
128
};
129
130
DECLARE_MKX_UINTEGER(KaxClusterPrevSize)
131
};
132
133
DECLARE_MKX_MASTER(KaxBlockAdditions)
134
};
135
136
DECLARE_MKX_MASTER(KaxBlockMore)
137
};
138
139
DECLARE_MKX_BINARY (KaxBlockAdditional)
140
};
141
142
DECLARE_MKX_UINTEGER(KaxBlockAddID)
143
};
144
145
DECLARE_MKX_UINTEGER(KaxBlockDuration)
146
};
147
148
DECLARE_MKX_UINTEGER(KaxReferencePriority)
149
};
150
151
DECLARE_MKX_SINTEGER(KaxReferenceVirtual)
152
public:
153
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
154
};
155
156
DECLARE_MKX_BINARY (KaxCodecState)
157
};
158
159
DECLARE_MKX_SINTEGER(KaxDiscardPadding)
160
};
161
162
DECLARE_MKX_MASTER(KaxSlices)
163
public:
164
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
165
};
166
167
DECLARE_MKX_MASTER(KaxTimeSlice)
168
public:
169
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
170
};
171
172
DECLARE_MKX_UINTEGER(KaxSliceLaceNumber)
173
public:
174
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
175
};
176
177
DECLARE_MKX_UINTEGER(KaxSliceFrameNumber)
178
public:
179
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
180
};
181
182
DECLARE_MKX_UINTEGER(KaxSliceBlockAddID)
183
public:
184
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
185
};
186
187
DECLARE_MKX_UINTEGER(KaxSliceDelay)
188
public:
189
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
190
};
191
192
DECLARE_MKX_UINTEGER(KaxSliceDuration)
193
public:
194
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
195
};
196
197
DECLARE_MKX_MASTER(KaxReferenceFrame)
198
public:
199
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
200
};
201
202
DECLARE_MKX_UINTEGER(KaxReferenceOffset)
203
public:
204
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
205
};
206
207
DECLARE_MKX_UINTEGER(KaxReferenceTimeCode)
208
public:
209
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
210
};
211
212
DECLARE_MKX_BINARY (KaxEncryptedBlock)
213
public:
214
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
215
};
216
217
DECLARE_MKX_MASTER(KaxTracks)
218
};
219
220
DECLARE_MKX_UINTEGER(KaxTrackNumber)
221
};
222
223
DECLARE_MKX_UINTEGER(KaxTrackUID)
224
};
225
226
DECLARE_MKX_UINTEGER(KaxTrackType)
227
};
228
229
DECLARE_MKX_UINTEGER(KaxTrackFlagEnabled)
230
};
231
232
DECLARE_MKX_UINTEGER(KaxTrackFlagDefault)
233
};
234
235
DECLARE_MKX_UINTEGER(KaxTrackFlagForced)
236
};
237
238
DECLARE_MKX_UINTEGER(KaxFlagHearingImpaired)
239
};
240
241
DECLARE_MKX_UINTEGER(KaxFlagVisualImpaired)
242
};
243
244
DECLARE_MKX_UINTEGER(KaxFlagTextDescriptions)
245
};
246
247
DECLARE_MKX_UINTEGER(KaxFlagOriginal)
248
};
249
250
DECLARE_MKX_UINTEGER(KaxFlagCommentary)
251
};
252
253
DECLARE_MKX_UINTEGER(KaxTrackFlagLacing)
254
};
255
256
DECLARE_MKX_UINTEGER(KaxTrackMinCache)
257
public:
258
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
259
};
260
261
DECLARE_MKX_UINTEGER(KaxTrackMaxCache)
262
public:
263
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
264
};
265
266
DECLARE_MKX_UINTEGER(KaxTrackDefaultDuration)
267
};
268
269
DECLARE_MKX_UINTEGER(KaxTrackDefaultDecodedFieldDuration)
270
};
271
272
DECLARE_MKX_FLOAT(KaxTrackTimecodeScale)
273
public:
274
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
275
};
276
277
DECLARE_MKX_SINTEGER(KaxTrackOffset)
278
public:
279
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
280
};
281
282
DECLARE_MKX_UINTEGER(KaxMaxBlockAdditionID)
283
};
284
285
DECLARE_MKX_MASTER(KaxBlockAdditionMapping)
286
};
287
288
DECLARE_MKX_UINTEGER(KaxBlockAddIDValue)
289
};
290
291
DECLARE_MKX_STRING(KaxBlockAddIDName)
292
};
293
294
DECLARE_MKX_UINTEGER(KaxBlockAddIDType)
295
};
296
297
DECLARE_MKX_BINARY (KaxBlockAddIDExtraData)
298
};
299
300
DECLARE_MKX_UNISTRING(KaxTrackName)
301
};
302
303
DECLARE_MKX_STRING(KaxTrackLanguage)
304
};
305
306
DECLARE_MKX_STRING(KaxLanguageIETF)
307
};
308
309
DECLARE_MKX_STRING(KaxCodecID)
310
};
311
312
DECLARE_MKX_BINARY (KaxCodecPrivate)
313
};
314
315
DECLARE_MKX_UNISTRING(KaxCodecName)
316
};
317
318
DECLARE_MKX_UINTEGER(KaxTrackAttachmentLink)
319
public:
320
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
321
};
322
323
DECLARE_MKX_UNISTRING(KaxCodecSettings)
324
public:
325
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
326
};
327
328
DECLARE_MKX_STRING(KaxCodecInfoURL)
329
public:
330
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
331
};
332
333
DECLARE_MKX_STRING(KaxCodecDownloadURL)
334
public:
335
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
336
};
337
338
DECLARE_MKX_UINTEGER(KaxCodecDecodeAll)
339
public:
340
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
341
};
342
343
DECLARE_MKX_UINTEGER(KaxTrackOverlay)
344
public:
345
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
346
};
347
348
DECLARE_MKX_UINTEGER(KaxCodecDelay)
349
};
350
351
DECLARE_MKX_UINTEGER(KaxSeekPreRoll)
352
};
353
354
DECLARE_MKX_MASTER(KaxTrackTranslate)
355
};
356
357
DECLARE_MKX_BINARY (KaxTrackTranslateTrackID)
358
};
359
360
DECLARE_MKX_UINTEGER(KaxTrackTranslateCodec)
361
};
362
363
DECLARE_MKX_UINTEGER(KaxTrackTranslateEditionUID)
364
};
365
366
DECLARE_MKX_MASTER(KaxTrackVideo)
367
};
368
369
DECLARE_MKX_UINTEGER(KaxVideoFlagInterlaced)
370
};
371
372
DECLARE_MKX_UINTEGER(KaxVideoFieldOrder)
373
};
374
375
DECLARE_MKX_UINTEGER(KaxVideoStereoMode)
376
};
377
378
DECLARE_MKX_UINTEGER(KaxVideoAlphaMode)
379
};
380
381
DECLARE_MKX_UINTEGER(KaxOldStereoMode)
382
public:
383
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
384
};
385
386
DECLARE_MKX_UINTEGER(KaxVideoPixelWidth)
387
};
388
389
DECLARE_MKX_UINTEGER(KaxVideoPixelHeight)
390
};
391
392
DECLARE_MKX_UINTEGER(KaxVideoPixelCropBottom)
393
};
394
395
DECLARE_MKX_UINTEGER(KaxVideoPixelCropTop)
396
};
397
398
DECLARE_MKX_UINTEGER(KaxVideoPixelCropLeft)
399
};
400
401
DECLARE_MKX_UINTEGER(KaxVideoPixelCropRight)
402
};
403
404
DECLARE_MKX_UINTEGER(KaxVideoDisplayWidth)
405
};
406
407
DECLARE_MKX_UINTEGER(KaxVideoDisplayHeight)
408
};
409
410
DECLARE_MKX_UINTEGER(KaxVideoDisplayUnit)
411
};
412
413
DECLARE_MKX_UINTEGER(KaxVideoAspectRatio)
414
public:
415
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
416
};
417
418
DECLARE_MKX_BINARY (KaxVideoColourSpace)
419
public:
420
  bool ValidateSize() const override {return IsFiniteSize() && GetSize() == 4;}
421
};
422
423
DECLARE_MKX_FLOAT(KaxVideoGamma)
424
public:
425
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
426
};
427
428
DECLARE_MKX_FLOAT(KaxVideoFrameRate)
429
public:
430
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
431
};
432
433
DECLARE_MKX_MASTER(KaxVideoColour)
434
};
435
436
DECLARE_MKX_UINTEGER(KaxVideoColourMatrix)
437
};
438
439
DECLARE_MKX_UINTEGER(KaxVideoBitsPerChannel)
440
};
441
442
DECLARE_MKX_UINTEGER(KaxVideoChromaSubsampHorz)
443
};
444
445
DECLARE_MKX_UINTEGER(KaxVideoChromaSubsampVert)
446
};
447
448
DECLARE_MKX_UINTEGER(KaxVideoCbSubsampHorz)
449
};
450
451
DECLARE_MKX_UINTEGER(KaxVideoCbSubsampVert)
452
};
453
454
DECLARE_MKX_UINTEGER(KaxVideoChromaSitHorz)
455
};
456
457
DECLARE_MKX_UINTEGER(KaxVideoChromaSitVert)
458
};
459
460
DECLARE_MKX_UINTEGER(KaxVideoColourRange)
461
};
462
463
DECLARE_MKX_UINTEGER(KaxVideoColourTransferCharacter)
464
};
465
466
DECLARE_MKX_UINTEGER(KaxVideoColourPrimaries)
467
};
468
469
DECLARE_MKX_UINTEGER(KaxVideoColourMaxCLL)
470
};
471
472
DECLARE_MKX_UINTEGER(KaxVideoColourMaxFALL)
473
};
474
475
DECLARE_MKX_MASTER(KaxVideoColourMasterMeta)
476
};
477
478
DECLARE_MKX_FLOAT(KaxVideoRChromaX)
479
};
480
481
DECLARE_MKX_FLOAT(KaxVideoRChromaY)
482
};
483
484
DECLARE_MKX_FLOAT(KaxVideoGChromaX)
485
};
486
487
DECLARE_MKX_FLOAT(KaxVideoGChromaY)
488
};
489
490
DECLARE_MKX_FLOAT(KaxVideoBChromaX)
491
};
492
493
DECLARE_MKX_FLOAT(KaxVideoBChromaY)
494
};
495
496
DECLARE_MKX_FLOAT(KaxVideoWhitePointChromaX)
497
};
498
499
DECLARE_MKX_FLOAT(KaxVideoWhitePointChromaY)
500
};
501
502
DECLARE_MKX_FLOAT(KaxVideoLuminanceMax)
503
};
504
505
DECLARE_MKX_FLOAT(KaxVideoLuminanceMin)
506
};
507
508
DECLARE_MKX_MASTER(KaxVideoProjection)
509
};
510
511
DECLARE_MKX_UINTEGER(KaxVideoProjectionType)
512
};
513
514
DECLARE_MKX_BINARY (KaxVideoProjectionPrivate)
515
};
516
517
DECLARE_MKX_FLOAT(KaxVideoProjectionPoseYaw)
518
};
519
520
DECLARE_MKX_FLOAT(KaxVideoProjectionPosePitch)
521
};
522
523
DECLARE_MKX_FLOAT(KaxVideoProjectionPoseRoll)
524
};
525
526
DECLARE_MKX_MASTER(KaxTrackAudio)
527
};
528
529
DECLARE_MKX_FLOAT(KaxAudioSamplingFreq)
530
};
531
532
DECLARE_MKX_FLOAT(KaxAudioOutputSamplingFreq)
533
};
534
535
DECLARE_MKX_UINTEGER(KaxAudioChannels)
536
};
537
538
DECLARE_MKX_BINARY (KaxAudioPosition)
539
public:
540
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
541
};
542
543
DECLARE_MKX_UINTEGER(KaxAudioBitDepth)
544
};
545
546
DECLARE_MKX_UINTEGER(KaxEmphasis)
547
};
548
549
DECLARE_MKX_MASTER(KaxTrackOperation)
550
};
551
552
DECLARE_MKX_MASTER(KaxTrackCombinePlanes)
553
};
554
555
DECLARE_MKX_MASTER(KaxTrackPlane)
556
};
557
558
DECLARE_MKX_UINTEGER(KaxTrackPlaneUID)
559
};
560
561
DECLARE_MKX_UINTEGER(KaxTrackPlaneType)
562
};
563
564
DECLARE_MKX_MASTER(KaxTrackJoinBlocks)
565
};
566
567
DECLARE_MKX_UINTEGER(KaxTrackJoinUID)
568
};
569
570
DECLARE_MKX_UINTEGER(KaxTrickTrackUID)
571
public:
572
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
573
};
574
575
DECLARE_MKX_BINARY (KaxTrickTrackSegmentUID)
576
public:
577
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
578
  bool ValidateSize() const override {return IsFiniteSize() && GetSize() == 16;}
579
};
580
581
DECLARE_MKX_UINTEGER(KaxTrickTrackFlag)
582
public:
583
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
584
};
585
586
DECLARE_MKX_UINTEGER(KaxTrickMasterTrackUID)
587
public:
588
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
589
};
590
591
DECLARE_MKX_BINARY (KaxTrickMasterTrackSegmentUID)
592
public:
593
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
594
  bool ValidateSize() const override {return IsFiniteSize() && GetSize() == 16;}
595
};
596
597
DECLARE_MKX_MASTER(KaxContentEncodings)
598
};
599
600
DECLARE_MKX_MASTER(KaxContentEncoding)
601
};
602
603
DECLARE_MKX_UINTEGER(KaxContentEncodingOrder)
604
};
605
606
DECLARE_MKX_UINTEGER(KaxContentEncodingScope)
607
};
608
609
DECLARE_MKX_UINTEGER(KaxContentEncodingType)
610
};
611
612
DECLARE_MKX_MASTER(KaxContentCompression)
613
};
614
615
DECLARE_MKX_UINTEGER(KaxContentCompAlgo)
616
};
617
618
DECLARE_MKX_BINARY (KaxContentCompSettings)
619
};
620
621
DECLARE_MKX_MASTER(KaxContentEncryption)
622
};
623
624
DECLARE_MKX_UINTEGER(KaxContentEncAlgo)
625
};
626
627
DECLARE_MKX_BINARY (KaxContentEncKeyID)
628
};
629
630
DECLARE_MKX_MASTER(KaxContentEncAESSettings)
631
};
632
633
DECLARE_MKX_UINTEGER(KaxAESSettingsCipherMode)
634
};
635
636
DECLARE_MKX_BINARY (KaxContentSignature)
637
public:
638
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
639
};
640
641
DECLARE_MKX_BINARY (KaxContentSigKeyID)
642
public:
643
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
644
};
645
646
DECLARE_MKX_UINTEGER(KaxContentSigAlgo)
647
public:
648
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
649
};
650
651
DECLARE_MKX_UINTEGER(KaxContentSigHashAlgo)
652
public:
653
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
654
};
655
656
DECLARE_MKX_UINTEGER(KaxCueTime)
657
};
658
659
DECLARE_MKX_UINTEGER(KaxCueTrack)
660
};
661
662
DECLARE_MKX_UINTEGER(KaxCueClusterPosition)
663
};
664
665
DECLARE_MKX_UINTEGER(KaxCueRelativePosition)
666
};
667
668
DECLARE_MKX_UINTEGER(KaxCueDuration)
669
};
670
671
DECLARE_MKX_UINTEGER(KaxCueBlockNumber)
672
};
673
674
DECLARE_MKX_UINTEGER(KaxCueCodecState)
675
};
676
677
DECLARE_MKX_UINTEGER(KaxCueRefTime)
678
};
679
680
DECLARE_MKX_UINTEGER(KaxCueRefCluster)
681
public:
682
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
683
};
684
685
DECLARE_MKX_UINTEGER(KaxCueRefNumber)
686
public:
687
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
688
};
689
690
DECLARE_MKX_UINTEGER(KaxCueRefCodecState)
691
public:
692
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
693
};
694
695
DECLARE_MKX_MASTER(KaxAttachments)
696
};
697
698
DECLARE_MKX_MASTER(KaxAttached)
699
};
700
701
DECLARE_MKX_UNISTRING(KaxFileDescription)
702
};
703
704
DECLARE_MKX_UNISTRING(KaxFileName)
705
};
706
707
DECLARE_MKX_STRING(KaxMimeType)
708
};
709
710
DECLARE_MKX_BINARY (KaxFileData)
711
};
712
713
DECLARE_MKX_UINTEGER(KaxFileUID)
714
};
715
716
DECLARE_MKX_BINARY (KaxFileReferral)
717
public:
718
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
719
};
720
721
DECLARE_MKX_UINTEGER(KaxFileUsedStartTime)
722
public:
723
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
724
};
725
726
DECLARE_MKX_UINTEGER(KaxFileUsedEndTime)
727
public:
728
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
729
};
730
731
DECLARE_MKX_MASTER(KaxChapters)
732
};
733
734
DECLARE_MKX_MASTER(KaxEditionEntry)
735
};
736
737
DECLARE_MKX_UINTEGER(KaxEditionUID)
738
};
739
740
DECLARE_MKX_UINTEGER(KaxEditionFlagHidden)
741
};
742
743
DECLARE_MKX_UINTEGER(KaxEditionFlagDefault)
744
};
745
746
DECLARE_MKX_UINTEGER(KaxEditionFlagOrdered)
747
};
748
749
DECLARE_MKX_MASTER(KaxEditionDisplay)
750
};
751
752
DECLARE_MKX_UNISTRING(KaxEditionString)
753
};
754
755
DECLARE_MKX_STRING(KaxEditionLanguageIETF)
756
};
757
758
DECLARE_MKX_MASTER(KaxChapterAtom)
759
};
760
761
DECLARE_MKX_UINTEGER(KaxChapterUID)
762
};
763
764
DECLARE_MKX_UNISTRING(KaxChapterStringUID)
765
};
766
767
DECLARE_MKX_UINTEGER(KaxChapterTimeStart)
768
};
769
770
DECLARE_MKX_UINTEGER(KaxChapterTimeEnd)
771
};
772
773
DECLARE_MKX_UINTEGER(KaxChapterFlagHidden)
774
};
775
776
DECLARE_MKX_UINTEGER(KaxChapterFlagEnabled)
777
};
778
779
DECLARE_MKX_BINARY (KaxChapterSegmentUID)
780
public:
781
0
  bool ValidateSize() const override {return IsFiniteSize() && GetSize() == 16;}
782
};
783
784
DECLARE_MKX_UINTEGER(KaxChapterSkipType)
785
};
786
787
DECLARE_MKX_UINTEGER(KaxChapterSegmentEditionUID)
788
};
789
790
DECLARE_MKX_UINTEGER(KaxChapterPhysicalEquiv)
791
};
792
793
DECLARE_MKX_MASTER(KaxChapterTrack)
794
};
795
796
DECLARE_MKX_UINTEGER(KaxChapterTrackNumber)
797
};
798
799
DECLARE_MKX_MASTER(KaxChapterDisplay)
800
};
801
802
DECLARE_MKX_UNISTRING(KaxChapterString)
803
};
804
805
DECLARE_MKX_STRING(KaxChapterLanguage)
806
};
807
808
DECLARE_MKX_STRING(KaxChapLanguageIETF)
809
};
810
811
DECLARE_MKX_STRING(KaxChapterCountry)
812
};
813
814
DECLARE_MKX_MASTER(KaxChapterProcess)
815
};
816
817
DECLARE_MKX_UINTEGER(KaxChapterProcessCodecID)
818
};
819
820
DECLARE_MKX_BINARY (KaxChapterProcessPrivate)
821
};
822
823
DECLARE_MKX_MASTER(KaxChapterProcessCommand)
824
};
825
826
DECLARE_MKX_UINTEGER(KaxChapterProcessTime)
827
};
828
829
DECLARE_MKX_BINARY (KaxChapterProcessData)
830
};
831
832
DECLARE_MKX_MASTER(KaxTags)
833
};
834
835
DECLARE_MKX_MASTER(KaxTag)
836
};
837
838
DECLARE_MKX_MASTER(KaxTagTargets)
839
};
840
841
DECLARE_MKX_UINTEGER(KaxTagTargetTypeValue)
842
};
843
844
DECLARE_MKX_STRING(KaxTagTargetType)
845
};
846
847
DECLARE_MKX_UINTEGER(KaxTagTrackUID)
848
};
849
850
DECLARE_MKX_UINTEGER(KaxTagEditionUID)
851
};
852
853
DECLARE_MKX_UINTEGER(KaxTagChapterUID)
854
};
855
856
DECLARE_MKX_UINTEGER(KaxTagAttachmentUID)
857
};
858
859
DECLARE_MKX_MASTER(KaxTagSimple)
860
};
861
862
DECLARE_MKX_UNISTRING(KaxTagName)
863
};
864
865
DECLARE_MKX_STRING(KaxTagLangue)
866
};
867
868
DECLARE_MKX_STRING(KaxTagLanguageIETF)
869
};
870
871
DECLARE_MKX_UINTEGER(KaxTagDefault)
872
};
873
874
DECLARE_MKX_UINTEGER(KaxTagDefaultBogus)
875
public:
876
  filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) override;
877
};
878
879
DECLARE_MKX_UNISTRING(KaxTagString)
880
};
881
882
DECLARE_MKX_BINARY (KaxTagBinary)
883
};
884
885
/**
886
 *The TrackType defines the type of each frame found in the Track. The value **SHOULD** be stored on 1 octet.
887
 */
888
typedef enum {
889
  MATROSKA_TRACK_TYPE_VIDEO            = 0x1, // An image.
890
  MATROSKA_TRACK_TYPE_AUDIO            = 0x2, // Audio samples.
891
  MATROSKA_TRACK_TYPE_COMPLEX          = 0x3, // A mix of different other TrackType. The codec needs to define how the Matroska Player should interpret such data.
892
  MATROSKA_TRACK_TYPE_LOGO             = 0x10, // An image to be rendered over the video track(s).
893
  MATROSKA_TRACK_TYPE_SUBTITLE         = 0x11, // Subtitle or closed caption data to be rendered over the video track(s).
894
  MATROSKA_TRACK_TYPE_BUTTONS          = 0x12, // Interactive button(s) to be rendered over the video track(s).
895
  MATROSKA_TRACK_TYPE_CONTROL          = 0x20, // Metadata used to control the player of the Matroska Player.
896
  MATROSKA_TRACK_TYPE_METADATA         = 0x21, // Timed metadata that can be passed on to the Matroska Player.
897
} MatroskaTrackType;
898
899
/**
900
 *The compression algorithm used.
901
 */
902
typedef enum {
903
  MATROSKA_TRACK_ENCODING_COMP_NONE             = -1,
904
  MATROSKA_TRACK_ENCODING_COMP_ZLIB             = 0, // zlib compression (RFC1950).
905
  MATROSKA_TRACK_ENCODING_COMP_BZLIB            = 1, // bzip2 compression (BZIP2) **SHOULD NOT** be used.
906
  MATROSKA_TRACK_ENCODING_COMP_LZO1X            = 2, // Lempel-Ziv-Oberhumer compression (LZO) **SHOULD NOT** be used.
907
  MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP      = 3, // Octets in ContentCompSettings ((#contentcompsettings-element)) have been stripped from each frame.
908
} MatroskaTrackEncodingCompAlgo;
909
910
/**
911
 *Specifies whether the video frames in this track are interlaced.
912
 */
913
typedef enum {
914
  MATROSKA_VIDEO_FLAGINTERLACED_UNDETERMINED     = 0, // Unknown status.
915
  MATROSKA_VIDEO_FLAGINTERLACED_INTERLACED       = 1, // Interlaced frames.
916
  MATROSKA_VIDEO_FLAGINTERLACED_PROGRESSIVE      = 2, // No interlacing.
917
} MatroskaVideoFlagInterlaced;
918
919
/**
920
 *Specifies the field ordering of video frames in this track.
921
 */
922
typedef enum {
923
  MATROSKA_VIDEO_FIELDORDER_PROGRESSIVE      = 0, // Interlaced frames.
924
  MATROSKA_VIDEO_FIELDORDER_TOPFIELDFIRST    = 1, // Top field displayed first. Top field stored first.
925
  MATROSKA_VIDEO_FIELDORDER_UNDETERMINED     = 2, // Unknown field order.
926
  MATROSKA_VIDEO_FIELDORDER_BOTTOMFIELDFIRST = 6, // Bottom field displayed first. Bottom field stored first.
927
  MATROSKA_VIDEO_FIELDORDER_TOPFIELDSWAPPED  = 9, // Top field displayed first. Fields are interleaved in storage with the top line of the top field stored first.
928
  MATROSKA_VIDEO_FIELDORDER_BOTTOMFIELDSWAPPED = 14, // Bottom field displayed first. Fields are interleaved in storage with the top line of the top field stored first.
929
} MatroskaVideoFieldOrder;
930
931
/**
932
 *Stereo-3D video mode. See (#multi-planar-and-3d-videos) for more details.
933
 */
934
typedef enum {
935
  MATROSKA_VIDEO_STEREO_MONO             = 0,
936
  MATROSKA_VIDEO_STEREO_LEFT_RIGHT       = 1,
937
  MATROSKA_VIDEO_STEREO_BOTTOM_TOP       = 2,
938
  MATROSKA_VIDEO_STEREO_TOP_BOTTOM       = 3,
939
  MATROSKA_VIDEO_STEREO_CHECKBOARD_RL    = 4,
940
  MATROSKA_VIDEO_STEREO_CHECKBOARD_LR    = 5,
941
  MATROSKA_VIDEO_STEREO_ROW_INTERLEAVED_RL = 6,
942
  MATROSKA_VIDEO_STEREO_ROW_INTERLEAVED_LR = 7,
943
  MATROSKA_VIDEO_STEREO_COL_INTERLEAVED_RL = 8,
944
  MATROSKA_VIDEO_STEREO_COL_INTERLEAVED_LR = 9,
945
  MATROSKA_VIDEO_STEREO_ANAGLYPH_CYAN_RED = 10,
946
  MATROSKA_VIDEO_STEREO_RIGHT_LEFT       = 11,
947
  MATROSKA_VIDEO_STEREO_ANAGLYPH_GREEN_MAG = 12,
948
  MATROSKA_VIDEO_STEREO_BOTH_EYES_BLOCK_LR = 13,
949
  MATROSKA_VIDEO_STEREO_BOTH_EYES_BLOCK_RL = 14,
950
} MatroskaVideoStereoMode;
951
952
/**
953
 *Indicates whether the BlockAdditional element with BlockAddID of "1"     contains Alpha data as defined by the Codec Mapping for the CodecID.  Undefined values (i.e., values other than 0 or 1) **SHOULD NOT** be used, as the  behavior of known implementations is different.
954
 */
955
typedef enum {
956
  MATROSKA_VIDEO_ALPHAMODE_NONE             = 0, // The BlockAdditional element with BlockAddID of "1" does not exist or **SHOULD NOT** be considered as containing such data.
957
  MATROSKA_VIDEO_ALPHAMODE_PRESENT          = 1, // The BlockAdditional element with BlockAddID of "1" contains alpha channel data.
958
} MatroskaVideoAlphaMode;
959
960
/**
961
 *Bogus StereoMode value used in old versions of libmatroska.
962
 */
963
typedef enum {
964
  MATROSKA_VIDEO_OLDSTEREOMODE_MONO             = 0,
965
  MATROSKA_VIDEO_OLDSTEREOMODE_RIGHT_EYE        = 1,
966
  MATROSKA_VIDEO_OLDSTEREOMODE_LEFT_EYE         = 2,
967
  MATROSKA_VIDEO_OLDSTEREOMODE_BOTH_EYES        = 3,
968
} MatroskaVideoOldStereoMode;
969
970
/**
971
 *How DisplayWidth and DisplayHeight are interpreted.
972
 */
973
typedef enum {
974
  MATROSKA_DISPLAY_UNIT_PIXELS           = 0,
975
  MATROSKA_DISPLAY_UNIT_CENTIMETERS      = 1,
976
  MATROSKA_DISPLAY_UNIT_INCHES           = 2,
977
  MATROSKA_DISPLAY_UNIT_DISPLAYASPECTRATIO = 3,
978
  MATROSKA_DISPLAY_UNIT_UNKNOWN          = 4,
979
} MatroskaVideoDisplayUnit;
980
981
/**
982
 *Specifies the possible modifications to the aspect ratio.
983
 */
984
typedef enum {
985
  MATROSKA_VIDEO_ASPECTRATIOTYPE_FREE_RESIZING    = 0,
986
  MATROSKA_VIDEO_ASPECTRATIOTYPE_KEEP_ASPECT_RATIO = 1,
987
  MATROSKA_VIDEO_ASPECTRATIOTYPE_FIXED            = 2,
988
} MatroskaVideoAspectRatioType;
989
990
/**
991
 *The Matrix Coefficients of the video used to derive luma and chroma values from red, green, and blue color primaries. For clarity, the value and meanings for MatrixCoefficients are adopted from Table 4 of ITU-H.273.
992
 */
993
typedef enum {
994
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_IDENTITY         = 0,
995
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_BT709            = 1,
996
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_UNSPECIFIED      = 2,
997
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_RESERVED         = 3,
998
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_US_FCC_73_682    = 4,
999
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_BT470BG          = 5,
1000
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_SMPTE_170M       = 6,
1001
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_SMPTE_240M       = 7,
1002
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_YCOCG            = 8,
1003
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_BT2020_NCL       = 9,
1004
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_BT2020_CL        = 10,
1005
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_SMPTE_2085       = 11,
1006
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_CHROMA_DERIVED_NCL = 12,
1007
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_CHROMA_DERIVED_CL = 13,
1008
  MATROSKA_VIDEO_MATRIXCOEFFICIENTS_ITU_R_BT_2100_0  = 14,
1009
} MatroskaVideoMatrixCoefficients;
1010
1011
/**
1012
 *How chroma is subsampled horizontally.
1013
 */
1014
typedef enum {
1015
  MATROSKA_VIDEO_CHROMASITINGHORZ_UNSPECIFIED      = 0,
1016
  MATROSKA_VIDEO_CHROMASITINGHORZ_LEFT             = 1,
1017
  MATROSKA_VIDEO_CHROMASITINGHORZ_HALF             = 2,
1018
} MatroskaColourChromaSitingHorz;
1019
1020
/**
1021
 *How chroma is subsampled vertically.
1022
 */
1023
typedef enum {
1024
  MATROSKA_VIDEO_CHROMASITINGVERT_UNSPECIFIED      = 0,
1025
  MATROSKA_VIDEO_CHROMASITINGVERT_TOP              = 1,
1026
  MATROSKA_VIDEO_CHROMASITINGVERT_HALF             = 2,
1027
} MatroskaColourChromaSitingVert;
1028
1029
/**
1030
 *Clipping of the color ranges.
1031
 */
1032
typedef enum {
1033
  MATROSKA_VIDEO_RANGE_UNSPECIFIED      = 0,
1034
  MATROSKA_VIDEO_RANGE_BROADCAST_RANGE  = 1,
1035
  MATROSKA_VIDEO_RANGE_FULL_RANGE       = 2,
1036
  MATROSKA_VIDEO_RANGE_DEFINED_BY_MATRIXCOEFFICIENTS = 3,
1037
} MatroskaVideoRange;
1038
1039
/**
1040
 *The transfer characteristics of the video. For clarity, the value and meanings for TransferCharacteristics are adopted from Table 3 of ITU-H.273.
1041
 */
1042
typedef enum {
1043
  MATROSKA_TRANSFER_RESERVED         = 0,
1044
  MATROSKA_TRANSFER_BT709            = 1,
1045
  MATROSKA_TRANSFER_UNSPECIFIED      = 2,
1046
  MATROSKA_TRANSFER_RESERVED2        = 3,
1047
  MATROSKA_TRANSFER_GAMMA22          = 4,
1048
  MATROSKA_TRANSFER_GAMMA28          = 5,
1049
  MATROSKA_TRANSFER_SMPTE_170M       = 6,
1050
  MATROSKA_TRANSFER_SMPTE_240M       = 7,
1051
  MATROSKA_TRANSFER_LINEAR           = 8,
1052
  MATROSKA_TRANSFER_LOG              = 9,
1053
  MATROSKA_TRANSFER_LOG_SQRT         = 10,
1054
  MATROSKA_TRANSFER_IEC_61966_2_4    = 11,
1055
  MATROSKA_TRANSFER_BT1361_ECG       = 12,
1056
  MATROSKA_TRANSFER_IEC_61966_2_1    = 13,
1057
  MATROSKA_TRANSFER_BT2020_10_BIT    = 14,
1058
  MATROSKA_TRANSFER_BT2020_12_BIT    = 15,
1059
  MATROSKA_TRANSFER_BT2100_PQ        = 16,
1060
  MATROSKA_TRANSFER_SMPTE_428_1      = 17,
1061
  MATROSKA_TRANSFER_ARIB_STD_B67     = 18,
1062
} MatroskaVideoTransferCharacteristics;
1063
1064
/**
1065
 *The color primaries of the video. For clarity, the value and meanings for Primaries are adopted from Table 2 of ITU-H.273.
1066
 */
1067
typedef enum {
1068
  MATROSKA_VIDEO_PRIMARIES_RESERVED         = 0,
1069
  MATROSKA_VIDEO_PRIMARIES_BT709            = 1,
1070
  MATROSKA_VIDEO_PRIMARIES_UNSPECIFIED      = 2,
1071
  MATROSKA_VIDEO_PRIMARIES_RESERVED2        = 3,
1072
  MATROSKA_VIDEO_PRIMARIES_BT470M           = 4,
1073
  MATROSKA_VIDEO_PRIMARIES_BT470BG          = 5,
1074
  MATROSKA_VIDEO_PRIMARIES_BT601_525        = 6,
1075
  MATROSKA_VIDEO_PRIMARIES_SMPTE_240M       = 7,
1076
  MATROSKA_VIDEO_PRIMARIES_FILM             = 8,
1077
  MATROSKA_VIDEO_PRIMARIES_BT2020           = 9,
1078
  MATROSKA_VIDEO_PRIMARIES_SMPTE_428_1      = 10,
1079
  MATROSKA_VIDEO_PRIMARIES_SMPTE_RP_432_2   = 11,
1080
  MATROSKA_VIDEO_PRIMARIES_SMPTE_EG_432_2   = 12,
1081
  MATROSKA_VIDEO_PRIMARIES_JEDEC_P22        = 22,
1082
} MatroskaVideoPrimaries;
1083
1084
/**
1085
 *Describes the projection used for this video track.
1086
 */
1087
typedef enum {
1088
  MATROSKA_VIDEO_PROJECTIONTYPE_RECTANGULAR      = 0,
1089
  MATROSKA_VIDEO_PROJECTIONTYPE_EQUIRECTANGULAR  = 1,
1090
  MATROSKA_VIDEO_PROJECTIONTYPE_CUBEMAP          = 2,
1091
  MATROSKA_VIDEO_PROJECTIONTYPE_MESH             = 3,
1092
} MatroskaVideoProjectionType;
1093
1094
/**
1095
 *Audio emphasis applied on audio samples. The player **MUST** apply the inverse emphasis to get the proper audio samples.
1096
 */
1097
typedef enum {
1098
  MATROSKA_EMPHASIS_NO_EMPHASIS      = 0,
1099
  MATROSKA_EMPHASIS_CD_AUDIO         = 1, // First order filter with zero point at 50 microseconds and a pole at 15 microseconds. Also found on DVD Audio and MPEG audio.
1100
  MATROSKA_EMPHASIS_RESERVED         = 2,
1101
  MATROSKA_EMPHASIS_CCIT_J_17        = 3, // Defined in (ITU-J.17).
1102
  MATROSKA_EMPHASIS_FM_50            = 4, // FM Radio in Europe. RC Filter with a time constant of 50 microseconds.
1103
  MATROSKA_EMPHASIS_FM_75            = 5, // FM Radio in the USA. RC Filter with a time constant of 75 microseconds.
1104
  MATROSKA_EMPHASIS_PHONO_RIAA       = 10, // Phono filter with time constants of t1=3180, t2=318 and t3=75 microseconds. (NAB1964)
1105
  MATROSKA_EMPHASIS_PHONO_IEC_N78    = 11, // Phono filter with time constants of t1=3180, t2=450 and t3=50 microseconds.
1106
  MATROSKA_EMPHASIS_PHONO_TELDEC     = 12, // Phono filter with time constants of t1=3180, t2=318 and t3=50 microseconds.
1107
  MATROSKA_EMPHASIS_PHONO_EMI        = 13, // Phono filter with time constants of t1=2500, t2=500 and t3=70 microseconds.
1108
  MATROSKA_EMPHASIS_PHONO_COLUMBIA_LP = 14, // Phono filter with time constants of t1=1590, t2=318 and t3=100 microseconds.
1109
  MATROSKA_EMPHASIS_PHONO_LONDON     = 15, // Phono filter with time constants of t1=1590, t2=318 and t3=50 microseconds.
1110
  MATROSKA_EMPHASIS_PHONO_NARTB      = 16, // Phono filter with time constants of t1=3180, t2=318 and t3=100 microseconds.
1111
} MatroskaAudioEmphasis;
1112
1113
/**
1114
 *The kind of plane this track corresponds to.
1115
 */
1116
typedef enum {
1117
  MATROSKA_TRACKPLANETYPE_LEFT_EYE         = 0,
1118
  MATROSKA_TRACKPLANETYPE_RIGHT_EYE        = 1,
1119
  MATROSKA_TRACKPLANETYPE_BACKGROUND       = 2,
1120
} MatroskaTrackPlaneType;
1121
1122
/**
1123
 *A bit field that describes which elements have been modified in this way. Values (big-endian) can be OR'ed.
1124
 */
1125
typedef enum {
1126
  MATROSKA_CONTENTENCODINGSCOPE_BLOCK            = 0x1, // All frame contents, excluding lacing data.
1127
  MATROSKA_CONTENTENCODINGSCOPE_PRIVATE          = 0x2, // The track's CodecPrivate data.
1128
  MATROSKA_CONTENTENCODINGSCOPE_NEXT             = 0x4, // The next ContentEncoding (next ContentEncodingOrder; the data inside ContentCompression and/or ContentEncryption).
1129
} MatroskaContentEncodingScope;
1130
1131
/**
1132
 *A value describing the kind of transformation that is applied.
1133
 */
1134
typedef enum {
1135
  MATROSKA_CONTENTENCODINGTYPE_COMPRESSION      = 0,
1136
  MATROSKA_CONTENTENCODINGTYPE_ENCRYPTION       = 1,
1137
} MatroskaContentEncodingType;
1138
1139
/**
1140
 *The encryption algorithm used.
1141
 */
1142
typedef enum {
1143
  MATROSKA_CONTENTENCALGO_NOT_ENCRYPTED    = 0, // The data are not encrypted.
1144
  MATROSKA_CONTENTENCALGO_DES              = 1, // Data Encryption Standard (DES) (FIPS46-3).
1145
  MATROSKA_CONTENTENCALGO_3DES             = 2, // Triple Data Encryption Algorithm (SP800-67).
1146
  MATROSKA_CONTENTENCALGO_TWOFISH          = 3, // Twofish Encryption Algorithm (Twofish).
1147
  MATROSKA_CONTENTENCALGO_BLOWFISH         = 4, // Blowfish Encryption Algorithm (Blowfish).
1148
  MATROSKA_CONTENTENCALGO_AES              = 5, // Advanced Encryption Standard (AES) (FIPS197).
1149
} MatroskaContentEncodingAlgo;
1150
1151
/**
1152
 *The AES cipher mode used in the encryption.
1153
 */
1154
typedef enum {
1155
  MATROSKA_AESSETTINGSCIPHERMODE_AES_CTR          = 1, // Counter (SP800-38A)
1156
  MATROSKA_AESSETTINGSCIPHERMODE_AES_CBC          = 2, // Cipher Block Chaining (SP800-38A)
1157
} MatroskaAESSettingsCipherMode;
1158
1159
/**
1160
 *The algorithm used for the signature.
1161
 */
1162
typedef enum {
1163
  MATROSKA_CONTENTSIGALGO_NOT_SIGNED       = 0,
1164
  MATROSKA_CONTENTSIGALGO_RSA              = 1,
1165
} MatroskaContentSignatureAlgo;
1166
1167
/**
1168
 *The hash algorithm used for the signature.
1169
 */
1170
typedef enum {
1171
  MATROSKA_CONTENTSIGHASHALGO_NOT_SIGNED       = 0,
1172
  MATROSKA_CONTENTSIGHASHALGO_SHA1_160         = 1,
1173
  MATROSKA_CONTENTSIGHASHALGO_MD5              = 2,
1174
} MatroskaContentSigHashAlgo;
1175
1176
/**
1177
 *Indicates what type of content the ChapterAtom contains and might be skipped.     It can be used to automatically skip content based on the type.     If a ChapterAtom is inside a ChapterAtom that has a ChapterSkipType set, it     **MUST NOT** have a ChapterSkipType or have a ChapterSkipType with the same value as it's parent ChapterAtom. If the ChapterAtom doesn't contain a ChapterTimeEnd, the value of the ChapterSkipType is only valid until the next ChapterAtom with a ChapterSkipType value or the end of the file.     
1178
 */
1179
typedef enum {
1180
  MATROSKA_CHAPTERSKIPTYPE_NO_SKIPPING      = 0, // Content which should not be skipped.
1181
  MATROSKA_CHAPTERSKIPTYPE_OPENING_CREDITS  = 1, // Credits usually found at the beginning of the content.
1182
  MATROSKA_CHAPTERSKIPTYPE_END_CREDITS      = 2, // Credits usually found at the end of the content.
1183
  MATROSKA_CHAPTERSKIPTYPE_RECAP            = 3, // Recap of previous episodes of the content, usually found around the beginning.
1184
  MATROSKA_CHAPTERSKIPTYPE_NEXT_PREVIEW     = 4, // Preview of the next episode of the content, usually found around the end. It may contain spoilers the user wants to avoid.
1185
  MATROSKA_CHAPTERSKIPTYPE_PREVIEW          = 5, // Preview of the current episode of the content, usually found around the beginning. It may contain spoilers the user want to avoid.
1186
  MATROSKA_CHAPTERSKIPTYPE_ADVERTISEMENT    = 6, // Advertisement within the content.
1187
  MATROSKA_CHAPTERSKIPTYPE_INTERMISSION     = 7, // A pause of content between main parts of the content.
1188
} MatroskaChapterSkipType;
1189
1190
/**
1191
 *Contains the type of the codec used for processing.
1192
 */
1193
typedef enum {
1194
  MATROSKA_CHAPPROCESSCODECID_MATROSKA_SCRIPT  = 0, // Chapter commands using the Matroska Script codec.
1195
  MATROSKA_CHAPPROCESSCODECID_DVD_MENU         = 1, // Chapter commands using the DVD-like codec.
1196
} MatroskaChapProcessCodecID;
1197
1198
/**
1199
 *Defines when the process command **SHOULD** be handled.
1200
 */
1201
typedef enum {
1202
  MATROSKA_CHAPPROCESSTIME_DURING           = 0,
1203
  MATROSKA_CHAPPROCESSTIME_BEFORE           = 1,
1204
  MATROSKA_CHAPPROCESSTIME_AFTER            = 2,
1205
} MatroskaChapterProcessTime;
1206
1207
/**
1208
 *A number to indicate the logical level of the target.
1209
 */
1210
typedef enum {
1211
  MATROSKA_TARGET_TYPE_SHOT             = 10, // The lowest hierarchy found in music or movies.
1212
  MATROSKA_TARGET_TYPE_SUBTRACK         = 20, // Corresponds to parts of a track for audio, such as a movement or scene in a movie.
1213
  MATROSKA_TARGET_TYPE_TRACK            = 30, // The common parts of an album or movie.
1214
  MATROSKA_TARGET_TYPE_PART             = 40, // When an album or episode has different logical parts.
1215
  MATROSKA_TARGET_TYPE_ALBUM            = 50, // The most common grouping level of music and video (e.g., an episode for TV series).
1216
  MATROSKA_TARGET_TYPE_EDITION          = 60, // A list of lower levels grouped together.
1217
  MATROSKA_TARGET_TYPE_COLLECTION       = 70, // The highest hierarchical level that tags can describe.
1218
} MatroskaTargetTypeValue;
1219
1220
1221
} // namespace libmatroska
1222
1223
#endif // LIBMATROSKA_SEMANTIC_H