Tag Parser  8.0.1
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
matroskaid.h
Go to the documentation of this file.
1 #ifndef TAG_PARSER_MATROSKAIDS_H
2 #define TAG_PARSER_MATROSKAIDS_H
3 
4 #include "../global.h"
5 
6 #include <c++utilities/conversion/types.h>
7 
8 namespace TagParser {
9 
10 namespace MatroskaIds {
11 
16  Segment = 0x18538067,
17  SegmentInfo = 0x1549A966,
18  Tracks = 0x1654AE6B,
19  Cues = 0x1C53BB6B,
20  Tags = 0x1254C367,
21  SeekHead = 0x114D9B74,
22  Cluster = 0x1F43B675,
23  Attachments = 0x1941A469,
24  Chapters = 0x1043A770
25 };
26 
31  Seek = 0x4DBB,
32 };
33 
37 enum SeekIds { SeekID = 0x53AB, SeekPosition = 0x53AC };
38 
43  TimeCodeScale = 0x2AD7B1,
44  Duration = 0x4489,
45  WrittingApp = 0x5741,
46  MuxingApp = 0x4D80,
47  DateUTC = 0x4461,
48  SegmentUID = 0x73A4,
49  SegmentFileName = 0x7384,
50  PrevUID = 0x3CB923,
51  PrevFileName = 0x3C83AB,
52  NexUID = 0x3EB923,
53  NextFileName = 0x3E83BB,
54  Title = 0x7BA9,
55  SegmentFamily = 0x4444,
57 };
58 
63 
67 enum TracksIds {
68  TrackEntry = 0xAE,
69 };
70 
75  TrackNumber = 0xD7,
76  TrackUID = 0x73C5,
77  TrackType = 0x83,
80  TrackFlagForced = 0x55AA,
82  MinCache = 0x6DE7,
83  MaxCache = 0x6DF8,
84  DefaultDuration = 0x23E383,
86  TrackTimeCodeScale = 0x23314F,
87  TrackOffset = 0x537F,
89  TrackName = 0x536E,
90  TrackLanguage = 0x22B59C,
91  CodecID = 0x86,
92  CodecPrivate = 0x63A2,
93  CodecName = 0x258688,
94  AttachmentLink = 0x7446,
95  CodecSettings = 0x3A9697,
96  CodecInfoUrl = 0x3B4040,
97  CodecDownloadUrl = 0x26B240,
99  TrackOverlay = 0x6FAB,
100  CodecDelay = 0x56aa,
101  SeekPreRoll = 0x56bb,
102  TrackTranslate = 0x6624,
103  TrackAudio = 0xE1,
104  TrackVideo = 0xE0,
112 };
113 
118 
124  StereoMode = 0x53B8,
125  AlphaMode = 0x53c0,
126  OldStereoMode = 0x53b9,
127  PixelWidth = 0xB0,
128  PixelHeight = 0xBA,
129  PixelCropBottom = 0x54AA,
130  PixelCropTop = 0x54BB,
131  PixelCropLeft = 0x54CC,
132  PixelCropRight = 0x54DD,
133  DisplayWidth = 0x54B0,
134  DisplayHeight = 0x54BA,
135  DisplayUnit = 0x54B2,
136  AspectRatioType = 0x54B3,
137  ColorSpace = 0x2EB524,
138  GammaValue = 0x2FB523,
139  FrameRate = 0x2383E3
140 };
141 
145 enum TrackAudioIds { SamplingFrequency = 0xB5, OutputSamplingFrequency = 0x78B5, Channels = 0x9F, ChannelsPositions = 0x7D7B, BitDepth = 0x6264 };
146 
151 
156 
161 
166 
171 
181 };
182 
187 
192  ContentEncAlgo = 0x47e1,
193  ContentEncKeyID = 0x47e2,
195  ContentSigKeyID = 0x47e4,
196  ContentSigAlgo = 0x47e5,
198 };
199 
203 enum TagsIds {
204  Tag = 0x7373,
205 };
206 
210 enum TagIds {
211  SimpleTag = 0x67C8,
212  Targets = 0x63C0,
213 };
214 
219  TagName = 0x45A3,
220  TagString = 0x4487,
221  TagLanguage = 0x447A,
222  TagDefault = 0x4484,
223  TagBinary = 0x4485,
224 };
225 
230  TargetTypeValue = 0x68ca,
231  TargetType = 0x63ca,
232  TagTrackUID = 0x63c5,
233  TagEditionUID = 0x63c9,
234  TagChapterUID = 0x63c4,
236 };
237 
241 enum CuesIds { CuePoint = 0xbb };
242 
246 enum CuePointIds { CueTime = 0xb3, CueTrackPositions = 0xb7 };
247 
252  CueTrack = 0xf7,
255  CueDuration = 0xb2,
256  CueBlockNumber = 0x5378,
259 };
260 
264 enum CueReferenceIds { CueRefTime = 0x96, CueRefCluster = 0x97, CueRefNumber = 0x535f, CueRefCodecState = 0xeb };
265 
269 enum AttachmentsIds { AttachedFile = 0x61a7 };
270 
275  FileDescription = 0x467e,
276  FileName = 0x466e,
277  FileMimeType = 0x4660,
278  FileData = 0x465c,
279  FileUID = 0x46ae,
280  FileReferral = 0x4675,
283 };
284 
288 enum ChaptersIds { EditionEntry = 0x45b9 };
289 
294  EditionUID = 0x45bc,
298  ChapterAtom = 0xb6
299 };
300 
305  ChapterUID = 0x73c4,
314  ChapterTrack = 0x8f,
316  ChapProcess = 0x6944
317 };
318 
323 
327 enum ChapterDisplayIds { ChapString = 0x85, ChapLanguage = 0x437c, ChapCountry = 0x437e };
328 
333 
338 
343  Timecode = 0xe7,
344  SilentTracks = 0x5854,
345  Position = 0xa7,
346  PrevSize = 0xab,
347  SimpleBlock = 0xa3,
348  BlockGroup = 0xa0,
350 };
351 
356 
361  Block = 0xa1,
362  BlockVirtual = 0xa2,
363  BlockAdditions = 0x75a1,
368  CodecState = 0xa4,
369  DiscardPadding = 0x75a2,
370  Slices = 0x8e,
372 };
373 
377 enum BlockAdditionsIds { BlockMore = 0xa6 };
378 
382 enum BlockMoreIds { BlockAddID = 0xee, BlockAdditional = 0x45 };
383 
387 enum SlicesIds { TimeSlice = 0xe8 };
388 
392 enum TimeSliceIds { LaceNumber = 0xcc, FrameNumber = 0xcd, BlockAdditionID = 0xcb, Delay = 0xce, SliceDuration = 0xcf };
393 
398 
399 } // namespace MatroskaIds
400 
401 namespace MatroskaTrackType {
402 
403 enum KnownValues { Video = 0x1, Audio = 0x2, Complex = 0x3, Logo = 0x10, Subtitle = 0x11, Buttons = 0x12, Control = 0x20 };
404 }
405 
406 enum class MatroskaElementLevel : byte {
407  TopLevel = 0x0,
408  Level1,
409  Level2,
410  Level3,
411  Level4,
412  Level5,
413  Level6,
414  Global = 0xFE,
415  Unknown = 0xFF,
416 };
417 
419 {
420  return static_cast<byte>(lhs) < static_cast<byte>(MatroskaElementLevel::Global)
421  && static_cast<byte>(rhs) < static_cast<byte>(MatroskaElementLevel::Global) && static_cast<byte>(lhs) > static_cast<byte>(rhs);
422 }
423 
424 constexpr bool operator>(byte lhs, MatroskaElementLevel rhs)
425 {
426  return lhs < static_cast<byte>(MatroskaElementLevel::Global) && static_cast<byte>(rhs) < static_cast<byte>(MatroskaElementLevel::Global)
427  && static_cast<byte>(lhs) > static_cast<byte>(rhs);
428 }
429 
431 {
432  return static_cast<byte>(lhs) < static_cast<byte>(MatroskaElementLevel::Global)
433  && static_cast<byte>(rhs) < static_cast<byte>(MatroskaElementLevel::Global) && static_cast<byte>(lhs) < static_cast<byte>(rhs);
434 }
435 
437 {
438  return lhs == rhs || lhs > rhs;
439 }
440 
442 {
443  return lhs == rhs || lhs < rhs;
444 }
445 
446 TAG_PARSER_EXPORT const char *matroskaIdName(uint32 matroskaId);
448 
449 } // namespace TagParser
450 
451 #endif // TAG_PARSER_MATROSKAIDS_H
TrackAudioIds
Encapsulates all ID values in the TrackAudio master.
Definition: matroskaid.h:145
TrackPlaneIds
Encapsulates all ID values in the TrackPlane master.
Definition: matroskaid.h:160
TAG_PARSER_EXPORT MatroskaElementLevel matroskaIdLevel(uint32 matroskaId)
Returns the level at which elements with the specified matroskaId are supposed to occur in a Matroska...
Definition: matroskaid.cpp:523
TrackJoinBlocksIds
Encapsulates all ID values in the TrackJoinBlocks master.
Definition: matroskaid.h:165
TargetsIds
Encapsulates all ID values in the Targets master.
Definition: matroskaid.h:229
The Tag class is used to store, read and write tag information.
Definition: tag.h:95
SegmentInfoIds
Encapsulates all ID values in the SegmentInfo master.
Definition: matroskaid.h:42
AttachedFileIds
Encapsulates all ID values in the AttachedFile master.
Definition: matroskaid.h:274
CueReferenceIds
Encapsulates all ID values in the CueReference master.
Definition: matroskaid.h:264
SeekIds
Encapsulates all ID values in the Seek master.
Definition: matroskaid.h:37
TracksIds
Encapsulates all ID values in the Tracks master.
Definition: matroskaid.h:67
constexpr bool operator>=(MatroskaElementLevel lhs, MatroskaElementLevel rhs)
Definition: matroskaid.h:436
CuesIds
Encapsulates all ID values in the Cues master.
Definition: matroskaid.h:241
TopLevelIds
Encapsulates all top level ID values.
Definition: matroskaid.h:15
constexpr bool operator>(MatroskaElementLevel lhs, MatroskaElementLevel rhs)
Definition: matroskaid.h:418
ReferenceFrameIds
Encapsulates all ID values in the ReferenceFrame master.
Definition: matroskaid.h:397
constexpr bool operator<=(MatroskaElementLevel lhs, MatroskaElementLevel rhs)
Definition: matroskaid.h:441
ChapProcessIds
Encapsulates all ID values in the ChapProcess master.
Definition: matroskaid.h:332
TrackOperationIds
Encapsulates all ID values in the TrackOperation master.
Definition: matroskaid.h:150
TagIds
Encapsulates all ID values in the Tag master.
Definition: matroskaid.h:210
TrackEntryIds
Encapsulates all ID values in the TrackEntry master.
Definition: matroskaid.h:74
EditionEntryIds
Encapsulates all ID values in the EditionEntry master.
Definition: matroskaid.h:293
AttachmentsIds
Encapsulates all ID values in the Attachments master.
Definition: matroskaid.h:269
SlicesIds
Encapsulates all ID values in the Slices master.
Definition: matroskaid.h:387
MatroskaElementLevel
Definition: matroskaid.h:406
ChapterDisplayIds
Encapsulates all ID values in the ChapterDisplay master.
Definition: matroskaid.h:327
ChapterTrackIds
Encapsulates all ID values in the ChapterTrack master.
Definition: matroskaid.h:322
SilentTracksIds
Encapsulates all ID values in the SilentTracks master.
Definition: matroskaid.h:355
ClusterIds
Encapsulates all ID values in the Cluster master.
Definition: matroskaid.h:342
TimeSliceIds
Encapsulates all ID values in the TimeSlice master.
Definition: matroskaid.h:392
ContentEncryptionIds
Encapsulates all ID values in the ContentEncryption master.
Definition: matroskaid.h:191
ChapterTranslateIds
Encapsulates all ID values in the ChapterTranslate master.
Definition: matroskaid.h:62
BlockAdditionsIds
Encapsulates all ID values in the BlockAdditions master.
Definition: matroskaid.h:377
TrackTranslateIds
Encapsulates all ID values in the TrackTranslate master.
Definition: matroskaid.h:117
TagsIds
Encapsulates all ID values in the Tags master.
Definition: matroskaid.h:203
CuePointIds
Encapsulates all ID values in the CuePoint master.
Definition: matroskaid.h:246
SeekHeadIds
Encapsulates all ID values in the SeekHead master.
Definition: matroskaid.h:30
ContentEncodingsIds
Encapsulates all ID values in the ContentEncodings master.
Definition: matroskaid.h:170
ContentEncodingIds
Encapsulates all ID values in the ContentEncoding master.
Definition: matroskaid.h:175
CueTrackPositionsIds
Encapsulates all ID values in the CueTrackPositions master.
Definition: matroskaid.h:251
ChapProcessCommandIds
Encapsulates all ID values in the ChapProcessCommand master.
Definition: matroskaid.h:337
constexpr bool operator<(MatroskaElementLevel lhs, MatroskaElementLevel rhs)
Definition: matroskaid.h:430
TrackVideoIds
Encapsulates all ID values in the TrackVideo master.
Definition: matroskaid.h:122
ChaptersIds
Encapsulates all ID values in the Chapters master.
Definition: matroskaid.h:288
ChapterAtomIds
Encapsulates all ID values in the ChapterAtom master.
Definition: matroskaid.h:304
TrackCombinePlanesIds
Encapsulates all ID values in the TrackCombinePlanes master.
Definition: matroskaid.h:155
Contains all classes and functions of the TagInfo library.
Definition: aaccodebook.h:9
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
TrackType
Specifies the track type.
Definition: abstracttrack.h:28
BlockMoreIds
Encapsulates all ID values in the BlockMore master.
Definition: matroskaid.h:382
ContentCompressionIds
Encapsulates all ID values in the ContentCompression master.
Definition: matroskaid.h:186
BlockGroupIds
Encapsulates all ID values in the BlockGroup master.
Definition: matroskaid.h:360
TAG_PARSER_EXPORT const char * matroskaIdName(uint32 matroskaId)
Returns a string for the specified matroskaId if known; otherwise returns an empty string...
Definition: matroskaid.cpp:22
SimpleTagIds
Encapsulates all ID values in the SimpleTag master.
Definition: matroskaid.h:218