| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713 | 
							- // Copyright (c) Kuba Szczodrzyński 2022-1-16.
 
- #pragma once
 
- enum class ElementId {
 
- 	/** [sub-elements] Set the EBML characteristics of the data to follow. Each EBML document has to start with this. */
 
- 	EBML = 0x1A45DFA3,
 
- 	/** [u-integer] The version of EBML parser used to create the file. */
 
- 	EBMLVersion = 0x4286,
 
- 	/** [u-integer] The minimum EBML version a parser has to support to read this file. */
 
- 	EBMLReadVersion = 0x42F7,
 
- 	/** [u-integer] The maximum length of the IDs you'll find in this file (4 or less in Matroska). */
 
- 	EBMLMaxIDLength = 0x42F2,
 
- 	/** [u-integer] The maximum length of the sizes you'll find in this file (8 or less in Matroska). This does not
 
- 	   override the element size indicated at the beginning of an element. Elements that have an indicated size which is
 
- 	   larger than what is allowed by EBMLMaxSizeLength shall be considered invalid. */
 
- 	EBMLMaxSizeLength = 0x42F3,
 
- 	/** [string] A string that describes the type of document that follows this EBML header ('matroska' in our case). */
 
- 	DocType = 0x4282,
 
- 	/** [u-integer] The version of DocType interpreter used to create the file. */
 
- 	DocTypeVersion = 0x4287,
 
- 	/** [u-integer] The minimum DocType version an interpreter has to support to read this file. */
 
- 	DocTypeReadVersion = 0x4285,
 
- 	/** [binary] The CRC is computed on all the data from the last CRC element (or start of the upper level element), up
 
- 	   to the CRC element, including other previous CRC elements. All level 1 elements should include a CRC-32. */
 
- 	CRC32 = 0xBF,
 
- 	/** [binary] Used to void damaged data, to avoid unexpected behaviors when using damaged data. The content is
 
- 	   discarded. Also used to reserve space in a sub-element for later use. */
 
- 	Void = 0xEC,
 
- 	/** [sub-elements] Contain signature of some (coming) elements in the stream. */
 
- 	SignatureSlot = 0x1B538667,
 
- 	/** [u-integer] Signature algorithm used (1=RSA, 2=elliptic). */
 
- 	SignatureAlgo = 0x7E8A,
 
- 	/** [u-integer] Hash algorithm used (1=SHA1-160, 2=MD5). */
 
- 	SignatureHash = 0x7E9A,
 
- 	/** [binary] The public key to use with the algorithm (in the case of a PKI-based signature). */
 
- 	SignaturePublicKey = 0x7EA5,
 
- 	/** [binary] The signature of the data (until a new. */
 
- 	Signature = 0x7EB5,
 
- 	/** [sub-elements] Contains elements that will be used to compute the signature. */
 
- 	SignatureElements = 0x7E5B,
 
- 	/** [sub-elements] A list consists of a number of consecutive elements that represent one case where data is used in
 
- 	   signature. Ex: Cluster|Block|BlockAdditional means that the BlockAdditional of all Blocks in all Clusters is used
 
- 	   for encryption. */
 
- 	SignatureElementList = 0x7E7B,
 
- 	/** [binary] An element ID whose data will be used to compute the signature. */
 
- 	SignedElement = 0x6532,
 
- 	/* ebml_matroska.xml */
 
- 	/** [master] The Root Element that contains all other Top-Level Elements (Elements defined only at Level 1). A
 
- 	   Matroska file is composed of 1 Segment. */
 
- 	Segment = 0x18538067,
 
- 	/** [master] Contains the Segment Position of other Top-Level Elements. */
 
- 	SeekHead = 0x114D9B74,
 
- 	/** [master] Contains a single seek entry to an EBML Element. */
 
- 	Seek = 0x4DBB,
 
- 	/** [binary] The binary ID corresponding to the Element name. */
 
- 	SeekID = 0x53AB,
 
- 	/** [uinteger] The Segment Position of the Element. */
 
- 	SeekPosition = 0x53AC,
 
- 	/** [master] Contains general information about the Segment. */
 
- 	Info = 0x1549A966,
 
- 	/** [binary] A randomly generated unique ID to identify the Segment amongst many others (128 bits). */
 
- 	SegmentUID = 0x73A4,
 
- 	/** [utf-8] A filename corresponding to this Segment. */
 
- 	SegmentFilename = 0x7384,
 
- 	/** [binary] A unique ID to identify the previous Segment of a Linked Segment (128 bits). */
 
- 	PrevUID = 0x3CB923,
 
- 	/** [utf-8] A filename corresponding to the file of the previous Linked Segment. */
 
- 	PrevFilename = 0x3C83AB,
 
- 	/** [binary] A unique ID to identify the next Segment of a Linked Segment (128 bits). */
 
- 	NextUID = 0x3EB923,
 
- 	/** [utf-8] A filename corresponding to the file of the next Linked Segment. */
 
- 	NextFilename = 0x3E83BB,
 
- 	/** [binary] A randomly generated unique ID that all Segments of a Linked Segment **MUST** share (128 bits). */
 
- 	SegmentFamily = 0x4444,
 
- 	/** [master] The mapping between this `Segment` and a segment value in the given Chapter Codec. */
 
- 	ChapterTranslate = 0x6924,
 
- 	/** [binary] The binary value used to represent this Segment in the chapter codec data. The format depends on the
 
- 	   ChapProcessCodecID used; see (#chapprocesscodecid-element). */
 
- 	ChapterTranslateID = 0x69A5,
 
- 	/** [uinteger] This `ChapterTranslate` applies to this chapter codec of the given chapter edition(s); see
 
- 	   (#chapprocesscodecid-element). */
 
- 	ChapterTranslateCodec = 0x69BF,
 
- 	/** [uinteger] Specify a chapter edition UID on which this `ChapterTranslate` applies. */
 
- 	ChapterTranslateEditionUID = 0x69FC,
 
- 	/** [uinteger] Timestamp scale in nanoseconds (1.000.000 means all timestamps in the Segment are expressed in
 
- 	   milliseconds). */
 
- 	TimestampScale = 0x2AD7B1,
 
- 	/** [float] Duration of the Segment in nanoseconds based on TimestampScale. */
 
- 	Duration = 0x4489,
 
- 	/** [date] The date and time that the Segment was created by the muxing application or library. */
 
- 	DateUTC = 0x4461,
 
- 	/** [utf-8] General name of the Segment. */
 
- 	Title = 0x7BA9,
 
- 	/** [utf-8] Muxing application or library (example: "libmatroska-0.4.3"). */
 
- 	MuxingApp = 0x4D80,
 
- 	/** [utf-8] Writing application (example: "mkvmerge-0.3.3"). */
 
- 	WritingApp = 0x5741,
 
- 	/** [master] The Top-Level Element containing the (monolithic) Block structure. */
 
- 	Cluster = 0x1F43B675,
 
- 	/** [uinteger] Absolute timestamp of the cluster (based on TimestampScale). */
 
- 	Timestamp = 0xE7,
 
- 	/** [master] The list of tracks that are not used in that part of the stream. It is useful when using overlay tracks
 
- 	   on seeking or to decide what track to use. */
 
- 	SilentTracks = 0x5854,
 
- 	/** [uinteger] One of the track number that are not used from now on in the stream. It could change later if not
 
- 	   specified as silent in a further Cluster. */
 
- 	SilentTrackNumber = 0x58D7,
 
- 	/** [uinteger] The Segment Position of the Cluster in the Segment (0 in live streams). It might help to
 
- 	   resynchronise offset on damaged streams. */
 
- 	Position = 0xA7,
 
- 	/** [uinteger] Size of the previous Cluster, in octets. Can be useful for backward playing. */
 
- 	PrevSize = 0xAB,
 
- 	/** [binary] Similar to Block, see (#block-structure), but without all the extra information, mostly used to reduced
 
- 	   overhead when no extra feature is needed; see (#simpleblock-structure) on SimpleBlock Structure. */
 
- 	SimpleBlock = 0xA3,
 
- 	/** [master] Basic container of information containing a single Block and information specific to that Block. */
 
- 	BlockGroup = 0xA0,
 
- 	/** [binary] Block containing the actual data to be rendered and a timestamp relative to the Cluster Timestamp; see
 
- 	   (#block-structure) on Block Structure. */
 
- 	Block = 0xA1,
 
- 	/** [binary] A Block with no data. It **MUST** be stored in the stream at the place the real Block would be in
 
- 	   display order. */
 
- 	BlockVirtual = 0xA2,
 
- 	/** [master] Contain additional blocks to complete the main one. An EBML parser that has no knowledge of the Block
 
- 	   structure could still see and use/skip these data. */
 
- 	BlockAdditions = 0x75A1,
 
- 	/** [master] Contain the BlockAdditional and some parameters. */
 
- 	BlockMore = 0xA6,
 
- 	/** [uinteger] An ID to identify the BlockAdditional level. If BlockAddIDType of the corresponding block is 0, this
 
- 	   value is also the value of BlockAddIDType for the meaning of the content of BlockAdditional. */
 
- 	BlockAddID = 0xEE,
 
- 	/** [binary] Interpreted by the codec as it wishes (using the BlockAddID). */
 
- 	BlockAdditional = 0xA5,
 
- 	/** [uinteger] The duration of the Block (based on TimestampScale). The BlockDuration Element can be useful at the
 
- 	   end of a Track to define the duration of the last frame (as there is no subsequent Block available), or when
 
- 	   there is a break in a track like for subtitle tracks. */
 
- 	BlockDuration = 0x9B,
 
- 	/** [uinteger] This frame is referenced and has the specified cache priority. In cache only a frame of the same or
 
- 	   higher priority can replace this frame. A value of 0 means the frame is not referenced. */
 
- 	ReferencePriority = 0xFA,
 
- 	/** [integer] A timestamp value, relative to the timestamp of the Block in this BlockGroup. This is used to
 
- 	   reference other frames necessary to decode this frame. The relative value **SHOULD** correspond to a valid
 
- 	   `Block` this `Block` depends on. Historically Matroska Writer didn't write the actual `Block(s)` this `Block`
 
- 	   depends on, but *some* `Block` in the past.  The value "0" **MAY** also be used to signify this `Block` cannot be
 
- 	   decoded on its own, but without knownledge of which `Block` is necessary. In this case, other `ReferenceBlock`
 
- 	   **MUST NOT** be found in the same `BlockGroup`.  If the `BlockGroup` doesn't have any `ReferenceBlock` element,
 
- 	   then the `Block` it contains can be decoded without using any other `Block` data. */
 
- 	ReferenceBlock = 0xFB,
 
- 	/** [integer] The Segment Position of the data that would otherwise be in position of the virtual block. */
 
- 	ReferenceVirtual = 0xFD,
 
- 	/** [binary] The new codec state to use. Data interpretation is private to the codec. This information **SHOULD**
 
- 	   always be referenced by a seek entry. */
 
- 	CodecState = 0xA4,
 
- 	/** [integer] Duration in nanoseconds of the silent data added to the Block (padding at the end of the Block for
 
- 	   positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not
 
- 	   calculated in the duration of the TrackEntry and **SHOULD** be discarded during playback. */
 
- 	DiscardPadding = 0x75A2,
 
- 	/** [master] Contains slices description. */
 
- 	Slices = 0x8E,
 
- 	/** [master] Contains extra time information about the data contained in the Block. Being able to interpret this
 
- 	   Element is not **REQUIRED** for playback. */
 
- 	TimeSlice = 0xE8,
 
- 	/** [uinteger] The reverse number of the frame in the lace (0 is the last frame, 1 is the next to last, etc). Being
 
- 	   able to interpret this Element is not **REQUIRED** for playback. */
 
- 	LaceNumber = 0xCC,
 
- 	/** [uinteger] The number of the frame to generate from this lace with this delay (allow you to generate many frames
 
- 	   from the same Block/Frame). */
 
- 	FrameNumber = 0xCD,
 
- 	/** [uinteger] The ID of the BlockAdditional Element (0 is the main Block). */
 
- 	BlockAdditionID = 0xCB,
 
- 	/** [uinteger] The (scaled) delay to apply to the Element. */
 
- 	Delay = 0xCE,
 
- 	/** [uinteger] The (scaled) duration to apply to the Element. */
 
- 	SliceDuration = 0xCF,
 
- 	/** [master] Contains information about the last reference frame. See [@?DivXTrickTrack]. */
 
- 	ReferenceFrame = 0xC8,
 
- 	/** [uinteger] The relative offset, in bytes, from the previous BlockGroup element for this Smooth FF/RW video track
 
- 	   to the containing BlockGroup element. See [@?DivXTrickTrack]. */
 
- 	ReferenceOffset = 0xC9,
 
- 	/** [uinteger] The timecode of the BlockGroup pointed to by ReferenceOffset. See [@?DivXTrickTrack]. */
 
- 	ReferenceTimestamp = 0xCA,
 
- 	/** [binary] Similar to SimpleBlock, see (#simpleblock-structure), but the data inside the Block are Transformed
 
- 	   (encrypt and/or signed). */
 
- 	EncryptedBlock = 0xAF,
 
- 	/** [master] A Top-Level Element of information with many tracks described. */
 
- 	Tracks = 0x1654AE6B,
 
- 	/** [master] Describes a track with all Elements. */
 
- 	TrackEntry = 0xAE,
 
- 	/** [uinteger] The track number as used in the Block Header (using more than 127 tracks is not encouraged, though
 
- 	   the design allows an unlimited number). */
 
- 	TrackNumber = 0xD7,
 
- 	/** [uinteger] A unique ID to identify the Track. */
 
- 	TrackUID = 0x73C5,
 
- 	/** [uinteger] The `TrackType` defines the type of each frame found in the Track. The value **SHOULD** be stored on
 
- 	   1 octet. */
 
- 	TrackType = 0x83,
 
- 	/** [uinteger] Set to 1 if the track is usable. It is possible to turn a not usable track into a usable track using
 
- 	   chapter codecs or control tracks. */
 
- 	FlagEnabled = 0xB9,
 
- 	/** [uinteger] Set if that track (audio, video or subs) **SHOULD** be eligible for automatic selection by the
 
- 	   player; see (#default-track-selection) for more details. */
 
- 	FlagDefault = 0x88,
 
- 	/** [uinteger] Applies only to subtitles. Set if that track **SHOULD** be eligible for automatic selection by the
 
- 	   player if it matches the user's language preference, even if the user's preferences would normally not enable
 
- 	   subtitles with the selected audio track; this can be used for tracks containing only translations of
 
- 	   foreign-language audio or onscreen text. See (#default-track-selection) for more details. */
 
- 	FlagForced = 0x55AA,
 
- 	/** [uinteger] Set to 1 if that track is suitable for users with hearing impairments, set to 0 if it is unsuitable
 
- 	   for users with hearing impairments. */
 
- 	FlagHearingImpaired = 0x55AB,
 
- 	/** [uinteger] Set to 1 if that track is suitable for users with visual impairments, set to 0 if it is unsuitable
 
- 	   for users with visual impairments. */
 
- 	FlagVisualImpaired = 0x55AC,
 
- 	/** [uinteger] Set to 1 if that track contains textual descriptions of video content, set to 0 if that track does
 
- 	   not contain textual descriptions of video content. */
 
- 	FlagTextDescriptions = 0x55AD,
 
- 	/** [uinteger] Set to 1 if that track is in the content's original language, set to 0 if it is a translation. */
 
- 	FlagOriginal = 0x55AE,
 
- 	/** [uinteger] Set to 1 if that track contains commentary, set to 0 if it does not contain commentary. */
 
- 	FlagCommentary = 0x55AF,
 
- 	/** [uinteger] Set to 1 if the track **MAY** contain blocks using lacing. When set to 0 all blocks **MUST** have
 
- 	   their lacing flags set to No lacing; see (#block-lacing) on Block Lacing. */
 
- 	FlagLacing = 0x9C,
 
- 	/** [uinteger] The minimum number of frames a player **SHOULD** be able to cache during playback. If set to 0, the
 
- 	   reference pseudo-cache system is not used. */
 
- 	MinCache = 0x6DE7,
 
- 	/** [uinteger] The maximum cache size necessary to store referenced frames in and the current frame. 0 means no
 
- 	   cache is needed. */
 
- 	MaxCache = 0x6DF8,
 
- 	/** [uinteger] Number of nanoseconds (not scaled via TimestampScale) per frame (frame in the Matroska sense -- one
 
- 	   Element put into a (Simple)Block). */
 
- 	DefaultDuration = 0x23E383,
 
- 	/** [uinteger] The period in nanoseconds (not scaled by TimestampScale) between two successive fields at the output
 
- 	   of the decoding process, see (#defaultdecodedfieldduration) for more information */
 
- 	DefaultDecodedFieldDuration = 0x234E7A,
 
- 	/** [float] DEPRECATED, DO NOT USE. The scale to apply on this track to work at normal speed in relation with other
 
- 	   tracks (mostly used to adjust video speed when the audio length differs). */
 
- 	TrackTimestampScale = 0x23314F,
 
- 	/** [integer] A value to add to the Block's Timestamp. This can be used to adjust the playback offset of a track. */
 
- 	TrackOffset = 0x537F,
 
- 	/** [uinteger] The maximum value of BlockAddID ((#blockaddid-element)). A value 0 means there is no BlockAdditions
 
- 	   ((#blockadditions-element)) for this track. */
 
- 	MaxBlockAdditionID = 0x55EE,
 
- 	/** [master] Contains elements that extend the track format, by adding content either to each frame, with BlockAddID
 
- 	   ((#blockaddid-element)), or to the track as a whole with BlockAddIDExtraData. */
 
- 	BlockAdditionMapping = 0x41E4,
 
- 	/** [uinteger] If the track format extension needs content beside frames, the value refers to the BlockAddID
 
- 	   ((#blockaddid-element)), value being described. To keep MaxBlockAdditionID as low as possible, small values
 
- 	   **SHOULD** be used. */
 
- 	BlockAddIDValue = 0x41F0,
 
- 	/** [string] A human-friendly name describing the type of BlockAdditional data, as defined by the associated Block
 
- 	   Additional Mapping. */
 
- 	BlockAddIDName = 0x41A4,
 
- 	/** [uinteger] Stores the registered identifier of the Block Additional Mapping to define how the BlockAdditional
 
- 	   data should be handled. */
 
- 	BlockAddIDType = 0x41E7,
 
- 	/** [binary] Extra binary data that the BlockAddIDType can use to interpret the BlockAdditional data. The
 
- 	   interpretation of the binary data depends on the BlockAddIDType value and the corresponding Block Additional
 
- 	   Mapping. */
 
- 	BlockAddIDExtraData = 0x41ED,
 
- 	/** [utf-8] A human-readable track name. */
 
- 	Name = 0x536E,
 
- 	/** [string] Specifies the language of the track in the Matroska languages form; see (#language-codes) on language
 
- 	   codes. This Element **MUST** be ignored if the LanguageIETF Element is used in the same TrackEntry. */
 
- 	Language = 0x22B59C,
 
- 	/** [string] Specifies the language of the track according to [@!BCP47] and using the IANA Language Subtag Registry
 
- 	   [@!IANALangRegistry]. If this Element is used, then any Language Elements used in the same TrackEntry **MUST** be
 
- 	   ignored. */
 
- 	LanguageIETF = 0x22B59D,
 
- 	/** [string] An ID corresponding to the codec, see [@!MatroskaCodec] for more info. */
 
- 	CodecID = 0x86,
 
- 	/** [binary] Private data only known to the codec. */
 
- 	CodecPrivate = 0x63A2,
 
- 	/** [utf-8] A human-readable string specifying the codec. */
 
- 	CodecName = 0x258688,
 
- 	/** [uinteger] The UID of an attachment that is used by this codec. */
 
- 	AttachmentLink = 0x7446,
 
- 	/** [utf-8] A string describing the encoding setting used. */
 
- 	CodecSettings = 0x3A9697,
 
- 	/** [string] A URL to find information about the codec used. */
 
- 	CodecInfoURL = 0x3B4040,
 
- 	/** [string] A URL to download about the codec used. */
 
- 	CodecDownloadURL = 0x26B240,
 
- 	/** [uinteger] Set to 1 if the codec can decode potentially damaged data. */
 
- 	CodecDecodeAll = 0xAA,
 
- 	/** [uinteger] Specify that this track is an overlay track for the Track specified (in the u-integer). That means
 
- 	   when this track has a gap, see (#silenttracks-element) on SilentTracks, the overlay track **SHOULD** be used
 
- 	   instead. The order of multiple TrackOverlay matters, the first one is the one that **SHOULD** be used. If not
 
- 	   found it **SHOULD** be the second, etc. */
 
- 	TrackOverlay = 0x6FAB,
 
- 	/** [uinteger] CodecDelay is The codec-built-in delay in nanoseconds. This value **MUST** be subtracted from each
 
- 	   block timestamp in order to get the actual timestamp. The value **SHOULD** be small so the muxing of tracks with
 
- 	   the same actual timestamp are in the same Cluster. */
 
- 	CodecDelay = 0x56AA,
 
- 	/** [uinteger] After a discontinuity, SeekPreRoll is the duration in nanoseconds of the data the decoder **MUST**
 
- 	   decode before the decoded data is valid. */
 
- 	SeekPreRoll = 0x56BB,
 
- 	/** [master] The mapping between this `TrackEntry` and a track value in the given Chapter Codec. */
 
- 	TrackTranslate = 0x6624,
 
- 	/** [binary] The binary value used to represent this `TrackEntry` in the chapter codec data. The format depends on
 
- 	   the `ChapProcessCodecID` used; see (#chapprocesscodecid-element). */
 
- 	TrackTranslateTrackID = 0x66A5,
 
- 	/** [uinteger] This `TrackTranslate` applies to this chapter codec of the given chapter edition(s); see
 
- 	   (#chapprocesscodecid-element). */
 
- 	TrackTranslateCodec = 0x66BF,
 
- 	/** [uinteger] Specify a chapter edition UID on which this `TrackTranslate` applies. */
 
- 	TrackTranslateEditionUID = 0x66FC,
 
- 	/** [master] Video settings. */
 
- 	Video = 0xE0,
 
- 	/** [uinteger] Specify whether the video frames in this track are interlaced or not. */
 
- 	FlagInterlaced = 0x9A,
 
- 	/** [uinteger] Specify the field ordering of video frames in this track. */
 
- 	FieldOrder = 0x9D,
 
- 	/** [uinteger] Stereo-3D video mode. There are some more details in (#multi-planar-and-3d-videos). */
 
- 	StereoMode = 0x53B8,
 
- 	/** [uinteger] Alpha Video Mode. Presence of this Element indicates that the BlockAdditional Element could contain
 
- 	   Alpha data. */
 
- 	AlphaMode = 0x53C0,
 
- 	/** [uinteger] DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of libmatroska. */
 
- 	OldStereoMode = 0x53B9,
 
- 	/** [uinteger] Width of the encoded video frames in pixels. */
 
- 	PixelWidth = 0xB0,
 
- 	/** [uinteger] Height of the encoded video frames in pixels. */
 
- 	PixelHeight = 0xBA,
 
- 	/** [uinteger] The number of video pixels to remove at the bottom of the image. */
 
- 	PixelCropBottom = 0x54AA,
 
- 	/** [uinteger] The number of video pixels to remove at the top of the image. */
 
- 	PixelCropTop = 0x54BB,
 
- 	/** [uinteger] The number of video pixels to remove on the left of the image. */
 
- 	PixelCropLeft = 0x54CC,
 
- 	/** [uinteger] The number of video pixels to remove on the right of the image. */
 
- 	PixelCropRight = 0x54DD,
 
- 	/** [uinteger] Width of the video frames to display. Applies to the video frame after cropping (PixelCrop*
 
- 	   Elements). */
 
- 	DisplayWidth = 0x54B0,
 
- 	/** [uinteger] Height of the video frames to display. Applies to the video frame after cropping (PixelCrop*
 
- 	   Elements). */
 
- 	DisplayHeight = 0x54BA,
 
- 	/** [uinteger] How DisplayWidth & DisplayHeight are interpreted. */
 
- 	DisplayUnit = 0x54B2,
 
- 	/** [uinteger] Specify the possible modifications to the aspect ratio. */
 
- 	AspectRatioType = 0x54B3,
 
- 	/** [binary] Specify the uncompressed pixel format used for the Track's data as a FourCC. This value is similar in
 
- 	   scope to the biCompression value of AVI's `BITMAPINFO` [@?AVIFormat]. See the YUV video formats [@?FourCC-YUV]
 
- 	   and RGB video formats [@?FourCC-RGB] for common values. */
 
- 	UncompressedFourCC = 0x2EB524,
 
- 	/** [float] Gamma Value. */
 
- 	GammaValue = 0x2FB523,
 
- 	/** [float] Number of frames per second. This value is Informational only. It is intended for constant frame rate
 
- 	   streams, and **SHOULD NOT** be used for a variable frame rate TrackEntry. */
 
- 	FrameRate = 0x2383E3,
 
- 	/** [master] Settings describing the colour format. */
 
- 	Colour = 0x55B0,
 
- 	/** [uinteger] 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 ISO/IEC
 
- 	   23001-8:2016 or ITU-T H.273. */
 
- 	MatrixCoefficients = 0x55B1,
 
- 	/** [uinteger] Number of decoded bits per channel. A value of 0 indicates that the BitsPerChannel is unspecified. */
 
- 	BitsPerChannel = 0x55B2,
 
- 	/** [uinteger] The amount of pixels to remove in the Cr and Cb channels for every pixel not removed horizontally.
 
- 	   Example: For video with 4:2:0 chroma subsampling, the ChromaSubsamplingHorz **SHOULD** be set to 1. */
 
- 	ChromaSubsamplingHorz = 0x55B3,
 
- 	/** [uinteger] The amount of pixels to remove in the Cr and Cb channels for every pixel not removed vertically.
 
- 	   Example: For video with 4:2:0 chroma subsampling, the ChromaSubsamplingVert **SHOULD** be set to 1. */
 
- 	ChromaSubsamplingVert = 0x55B4,
 
- 	/** [uinteger] The amount of pixels to remove in the Cb channel for every pixel not removed horizontally. This is
 
- 	   additive with ChromaSubsamplingHorz. Example: For video with 4:2:1 chroma subsampling, the ChromaSubsamplingHorz
 
- 	   **SHOULD** be set to 1 and CbSubsamplingHorz **SHOULD** be set to 1. */
 
- 	CbSubsamplingHorz = 0x55B5,
 
- 	/** [uinteger] The amount of pixels to remove in the Cb channel for every pixel not removed vertically. This is
 
- 	   additive with ChromaSubsamplingVert. */
 
- 	CbSubsamplingVert = 0x55B6,
 
- 	/** [uinteger] How chroma is subsampled horizontally. */
 
- 	ChromaSitingHorz = 0x55B7,
 
- 	/** [uinteger] How chroma is subsampled vertically. */
 
- 	ChromaSitingVert = 0x55B8,
 
- 	/** [uinteger] Clipping of the color ranges. */
 
- 	Range = 0x55B9,
 
- 	/** [uinteger] The transfer characteristics of the video. For clarity, the value and meanings for
 
- 	   TransferCharacteristics are adopted from Table 3 of ISO/IEC 23091-4 or ITU-T H.273. */
 
- 	TransferCharacteristics = 0x55BA,
 
- 	/** [uinteger] The colour primaries of the video. For clarity, the value and meanings for Primaries are adopted from
 
- 	   Table 2 of ISO/IEC 23091-4 or ITU-T H.273. */
 
- 	Primaries = 0x55BB,
 
- 	/** [uinteger] Maximum brightness of a single pixel (Maximum Content Light Level) in candelas per square meter
 
- 	   (cd/m^2^). */
 
- 	MaxCLL = 0x55BC,
 
- 	/** [uinteger] Maximum brightness of a single full frame (Maximum Frame-Average Light Level) in candelas per square
 
- 	   meter (cd/m^2^). */
 
- 	MaxFALL = 0x55BD,
 
- 	/** [master] SMPTE 2086 mastering data. */
 
- 	MasteringMetadata = 0x55D0,
 
- 	/** [float] Red X chromaticity coordinate, as defined by CIE 1931. */
 
- 	PrimaryRChromaticityX = 0x55D1,
 
- 	/** [float] Red Y chromaticity coordinate, as defined by CIE 1931. */
 
- 	PrimaryRChromaticityY = 0x55D2,
 
- 	/** [float] Green X chromaticity coordinate, as defined by CIE 1931. */
 
- 	PrimaryGChromaticityX = 0x55D3,
 
- 	/** [float] Green Y chromaticity coordinate, as defined by CIE 1931. */
 
- 	PrimaryGChromaticityY = 0x55D4,
 
- 	/** [float] Blue X chromaticity coordinate, as defined by CIE 1931. */
 
- 	PrimaryBChromaticityX = 0x55D5,
 
- 	/** [float] Blue Y chromaticity coordinate, as defined by CIE 1931. */
 
- 	PrimaryBChromaticityY = 0x55D6,
 
- 	/** [float] White X chromaticity coordinate, as defined by CIE 1931. */
 
- 	WhitePointChromaticityX = 0x55D7,
 
- 	/** [float] White Y chromaticity coordinate, as defined by CIE 1931. */
 
- 	WhitePointChromaticityY = 0x55D8,
 
- 	/** [float] Maximum luminance. Represented in candelas per square meter (cd/m^2^). */
 
- 	LuminanceMax = 0x55D9,
 
- 	/** [float] Minimum luminance. Represented in candelas per square meter (cd/m^2^). */
 
- 	LuminanceMin = 0x55DA,
 
- 	/** [master] Describes the video projection details. Used to render spherical, VR videos or flipping videos
 
- 	   horizontally/vertically. */
 
- 	Projection = 0x7670,
 
- 	/** [uinteger] Describes the projection used for this video track. */
 
- 	ProjectionType = 0x7671,
 
- 	/** [binary] Private data that only applies to a specific projection.  *  If `ProjectionType` equals 0
 
- 	   (Rectangular),      then this element must not be present. *  If `ProjectionType` equals 1 (Equirectangular),
 
- 	   then this element must be present and contain the same binary data that would be stored inside       an ISOBMFF
 
- 	   Equirectangular Projection Box ('equi'). *  If `ProjectionType` equals 2 (Cubemap), then this element must be
 
- 	   present and contain the same binary data that would be stored       inside an ISOBMFF Cubemap Projection Box
 
- 	   ('cbmp'). *  If `ProjectionType` equals 3 (Mesh), then this element must be present and contain the same binary
 
- 	   data that would be stored inside        an ISOBMFF Mesh Projection Box ('mshp'). */
 
- 	ProjectionPrivate = 0x7672,
 
- 	/** [float] Specifies a yaw rotation to the projection.  Value represents a clockwise rotation, in degrees, around
 
- 	   the up vector. This rotation must be applied before any `ProjectionPosePitch` or `ProjectionPoseRoll` rotations.
 
- 	   The value of this element **MUST** be in the -180 to 180 degree range, both included.  Setting
 
- 	   `ProjectionPoseYaw` to 180 or -180 degrees, with the `ProjectionPoseRoll` and `ProjectionPosePitch` set to 0
 
- 	   degrees flips the image horizontally. */
 
- 	ProjectionPoseYaw = 0x7673,
 
- 	/** [float] Specifies a pitch rotation to the projection.  Value represents a counter-clockwise rotation, in
 
- 	   degrees, around the right vector. This rotation must be applied after the `ProjectionPoseYaw` rotation and before
 
- 	   the `ProjectionPoseRoll` rotation. The value of this element **MUST** be in the -90 to 90 degree range, both
 
- 	   included. */
 
- 	ProjectionPosePitch = 0x7674,
 
- 	/** [float] Specifies a roll rotation to the projection.  Value represents a counter-clockwise rotation, in degrees,
 
- 	   around the forward vector. This rotation must be applied after the `ProjectionPoseYaw` and `ProjectionPosePitch`
 
- 	   rotations. The value of this element **MUST** be in the -180 to 180 degree range, both included.  Setting
 
- 	   `ProjectionPoseRoll` to 180 or -180 degrees, the `ProjectionPoseYaw` to 180 or -180 degrees with
 
- 	   `ProjectionPosePitch` set to 0 degrees flips the image vertically.  Setting `ProjectionPoseRoll` to 180 or -180
 
- 	   degrees, with the `ProjectionPoseYaw` and `ProjectionPosePitch` set to 0 degrees flips the image horizontally and
 
- 	   vertically. */
 
- 	ProjectionPoseRoll = 0x7675,
 
- 	/** [master] Audio settings. */
 
- 	Audio = 0xE1,
 
- 	/** [float] Sampling frequency in Hz. */
 
- 	SamplingFrequency = 0xB5,
 
- 	/** [float] Real output sampling frequency in Hz (used for SBR techniques). */
 
- 	OutputSamplingFrequency = 0x78B5,
 
- 	/** [uinteger] Numbers of channels in the track. */
 
- 	Channels = 0x9F,
 
- 	/** [binary] Table of horizontal angles for each successive channel. */
 
- 	ChannelPositions = 0x7D7B,
 
- 	/** [uinteger] Bits per sample, mostly used for PCM. */
 
- 	BitDepth = 0x6264,
 
- 	/** [master] Operation that needs to be applied on tracks to create this virtual track. For more details look at
 
- 	   (#track-operation). */
 
- 	TrackOperation = 0xE2,
 
- 	/** [master] Contains the list of all video plane tracks that need to be combined to create this 3D track */
 
- 	TrackCombinePlanes = 0xE3,
 
- 	/** [master] Contains a video plane track that need to be combined to create this 3D track */
 
- 	TrackPlane = 0xE4,
 
- 	/** [uinteger] The trackUID number of the track representing the plane. */
 
- 	TrackPlaneUID = 0xE5,
 
- 	/** [uinteger] The kind of plane this track corresponds to. */
 
- 	TrackPlaneType = 0xE6,
 
- 	/** [master] Contains the list of all tracks whose Blocks need to be combined to create this virtual track */
 
- 	TrackJoinBlocks = 0xE9,
 
- 	/** [uinteger] The trackUID number of a track whose blocks are used to create this virtual track. */
 
- 	TrackJoinUID = 0xED,
 
- 	/** [uinteger] The TrackUID of the Smooth FF/RW video in the paired EBML structure corresponding to this video
 
- 	   track. See [@?DivXTrickTrack]. */
 
- 	TrickTrackUID = 0xC0,
 
- 	/** [binary] The SegmentUID of the Segment containing the track identified by TrickTrackUID. See [@?DivXTrickTrack].
 
- 	 */
 
- 	TrickTrackSegmentUID = 0xC1,
 
- 	/** [uinteger] Set to 1 if this video track is a Smooth FF/RW track. If set to 1, MasterTrackUID and
 
- 	   MasterTrackSegUID should must be present and BlockGroups for this track must contain ReferenceFrame structures.
 
- 	   Otherwise, TrickTrackUID and TrickTrackSegUID must be present if this track has a corresponding Smooth FF/RW
 
- 	   track. See [@?DivXTrickTrack]. */
 
- 	TrickTrackFlag = 0xC6,
 
- 	/** [uinteger] The TrackUID of the video track in the paired EBML structure that corresponds to this Smooth FF/RW
 
- 	   track. See [@?DivXTrickTrack]. */
 
- 	TrickMasterTrackUID = 0xC7,
 
- 	/** [binary] The SegmentUID of the Segment containing the track identified by MasterTrackUID. See
 
- 	   [@?DivXTrickTrack]. */
 
- 	TrickMasterTrackSegmentUID = 0xC4,
 
- 	/** [master] Settings for several content encoding mechanisms like compression or encryption. */
 
- 	ContentEncodings = 0x6D80,
 
- 	/** [master] Settings for one content encoding like compression or encryption. */
 
- 	ContentEncoding = 0x6240,
 
- 	/** [uinteger] Tells when this modification was used during encoding/muxing starting with 0 and counting upwards.
 
- 	   The decoder/demuxer has to start with the highest order number it finds and work its way down. This value has to
 
- 	   be unique over all ContentEncodingOrder Elements in the TrackEntry that contains this ContentEncodingOrder
 
- 	   element. */
 
- 	ContentEncodingOrder = 0x5031,
 
- 	/** [uinteger] A bit field that describes which Elements have been modified in this way. Values (big-endian) can be
 
- 	   OR'ed. */
 
- 	ContentEncodingScope = 0x5032,
 
- 	/** [uinteger] A value describing what kind of transformation is applied. */
 
- 	ContentEncodingType = 0x5033,
 
- 	/** [master] Settings describing the compression used. This Element **MUST** be present if the value of
 
- 	   ContentEncodingType is 0 and absent otherwise. Each block **MUST** be decompressable even if no previous block is
 
- 	   available in order not to prevent seeking. */
 
- 	ContentCompression = 0x5034,
 
- 	/** [uinteger] The compression algorithm used. */
 
- 	ContentCompAlgo = 0x4254,
 
- 	/** [binary] Settings that might be needed by the decompressor. For Header Stripping (`ContentCompAlgo`=3), the
 
- 	   bytes that were removed from the beginning of each frames of the track. */
 
- 	ContentCompSettings = 0x4255,
 
- 	/** [master] Settings describing the encryption used. This Element **MUST** be present if the value of
 
- 	   `ContentEncodingType` is 1 (encryption) and **MUST** be ignored otherwise. */
 
- 	ContentEncryption = 0x5035,
 
- 	/** [uinteger] The encryption algorithm used. The value "0" means that the contents have not been encrypted. */
 
- 	ContentEncAlgo = 0x47E1,
 
- 	/** [binary] For public key algorithms this is the ID of the public key the the data was encrypted with. */
 
- 	ContentEncKeyID = 0x47E2,
 
- 	/** [master] Settings describing the encryption algorithm used. If `ContentEncAlgo` != 5 this **MUST** be ignored.
 
- 	 */
 
- 	ContentEncAESSettings = 0x47E7,
 
- 	/** [uinteger] The AES cipher mode used in the encryption. */
 
- 	AESSettingsCipherMode = 0x47E8,
 
- 	/** [binary] A cryptographic signature of the contents. */
 
- 	ContentSignature = 0x47E3,
 
- 	/** [binary] This is the ID of the private key the data was signed with. */
 
- 	ContentSigKeyID = 0x47E4,
 
- 	/** [uinteger] The algorithm used for the signature. */
 
- 	ContentSigAlgo = 0x47E5,
 
- 	/** [uinteger] The hash algorithm used for the signature. */
 
- 	ContentSigHashAlgo = 0x47E6,
 
- 	/** [master] A Top-Level Element to speed seeking access. All entries are local to the Segment. */
 
- 	Cues = 0x1C53BB6B,
 
- 	/** [master] Contains all information relative to a seek point in the Segment. */
 
- 	CuePoint = 0xBB,
 
- 	/** [uinteger] Absolute timestamp according to the Segment time base. */
 
- 	CueTime = 0xB3,
 
- 	/** [master] Contain positions for different tracks corresponding to the timestamp. */
 
- 	CueTrackPositions = 0xB7,
 
- 	/** [uinteger] The track for which a position is given. */
 
- 	CueTrack = 0xF7,
 
- 	/** [uinteger] The Segment Position of the Cluster containing the associated Block. */
 
- 	CueClusterPosition = 0xF1,
 
- 	/** [uinteger] The relative position inside the Cluster of the referenced SimpleBlock or BlockGroup with 0 being the
 
- 	   first possible position for an Element inside that Cluster. */
 
- 	CueRelativePosition = 0xF0,
 
- 	/** [uinteger] The duration of the block according to the Segment time base. If missing the track's DefaultDuration
 
- 	   does not apply and no duration information is available in terms of the cues. */
 
- 	CueDuration = 0xB2,
 
- 	/** [uinteger] Number of the Block in the specified Cluster. */
 
- 	CueBlockNumber = 0x5378,
 
- 	/** [uinteger] The Segment Position of the Codec State corresponding to this Cue Element. 0 means that the data is
 
- 	   taken from the initial Track Entry. */
 
- 	CueCodecState = 0xEA,
 
- 	/** [master] The Clusters containing the referenced Blocks. */
 
- 	CueReference = 0xDB,
 
- 	/** [uinteger] Timestamp of the referenced Block. */
 
- 	CueRefTime = 0x96,
 
- 	/** [uinteger] The Segment Position of the Cluster containing the referenced Block. */
 
- 	CueRefCluster = 0x97,
 
- 	/** [uinteger] Number of the referenced Block of Track X in the specified Cluster. */
 
- 	CueRefNumber = 0x535F,
 
- 	/** [uinteger] The Segment Position of the Codec State corresponding to this referenced Element. 0 means that the
 
- 	   data is taken from the initial Track Entry. */
 
- 	CueRefCodecState = 0xEB,
 
- 	/** [master] Contain attached files. */
 
- 	Attachments = 0x1941A469,
 
- 	/** [master] An attached file. */
 
- 	AttachedFile = 0x61A7,
 
- 	/** [utf-8] A human-friendly name for the attached file. */
 
- 	FileDescription = 0x467E,
 
- 	/** [utf-8] Filename of the attached file. */
 
- 	FileName = 0x466E,
 
- 	/** [string] MIME type of the file. */
 
- 	FileMimeType = 0x4660,
 
- 	/** [binary] The data of the file. */
 
- 	FileData = 0x465C,
 
- 	/** [uinteger] Unique ID representing the file, as random as possible. */
 
- 	FileUID = 0x46AE,
 
- 	/** [binary] A binary value that a track/codec can refer to when the attachment is needed. */
 
- 	FileReferral = 0x4675,
 
- 	/** [uinteger] The timecode at which this optimized font attachment comes into context, based on the Segment
 
- 	   TimecodeScale. This element is reserved for future use and if written must be the segment start time. See
 
- 	   [@?DivXWorldFonts]. */
 
- 	FileUsedStartTime = 0x4661,
 
- 	/** [uinteger] The timecode at which this optimized font attachment goes out of context, based on the Segment
 
- 	   TimecodeScale. This element is reserved for future use and if written must be the segment end time. See
 
- 	   [@?DivXWorldFonts]. */
 
- 	FileUsedEndTime = 0x4662,
 
- 	/** [master] A system to define basic menus and partition data. For more detailed information, look at the Chapters
 
- 	   explanation in (#chapters). */
 
- 	Chapters = 0x1043A770,
 
- 	/** [master] Contains all information about a Segment edition. */
 
- 	EditionEntry = 0x45B9,
 
- 	/** [uinteger] A unique ID to identify the edition. It's useful for tagging an edition. */
 
- 	EditionUID = 0x45BC,
 
- 	/** [uinteger] Set to 1 if an edition is hidden. Hidden editions **SHOULD NOT** be available to the user interface
 
- 	   (but still to Control Tracks; see (#chapter-flags) on Chapter flags). */
 
- 	EditionFlagHidden = 0x45BD,
 
- 	/** [uinteger] Set to 1 if the edition **SHOULD** be used as the default one. */
 
- 	EditionFlagDefault = 0x45DB,
 
- 	/** [uinteger] Set to 1 if the chapters can be defined multiple times and the order to play them is enforced; see
 
- 	   (#editionflagordered). */
 
- 	EditionFlagOrdered = 0x45DD,
 
- 	/** [master] Contains the atom information to use as the chapter atom (apply to all tracks). */
 
- 	ChapterAtom = 0xB6,
 
- 	/** [uinteger] A unique ID to identify the Chapter. */
 
- 	ChapterUID = 0x73C4,
 
- 	/** [utf-8] A unique string ID to identify the Chapter. Use for WebVTT cue identifier storage [@!WebVTT]. */
 
- 	ChapterStringUID = 0x5654,
 
- 	/** [uinteger] Timestamp of the start of Chapter (not scaled). */
 
- 	ChapterTimeStart = 0x91,
 
- 	/** [uinteger] Timestamp of the end of Chapter (timestamp excluded, not scaled). The value **MUST** be greater than
 
- 	   or equal to the `ChapterTimeStart` of the same `ChapterAtom`. */
 
- 	ChapterTimeEnd = 0x92,
 
- 	/** [uinteger] Set to 1 if a chapter is hidden. Hidden chapters **SHOULD NOT** be available to the user interface
 
- 	   (but still to Control Tracks; see (#chapterflaghidden) on Chapter flags). */
 
- 	ChapterFlagHidden = 0x98,
 
- 	/** [uinteger] Set to 1 if the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the
 
- 	   movie **SHOULD** skip all the content between the TimeStart and TimeEnd of this chapter; see (#chapter-flags) on
 
- 	   Chapter flags. */
 
- 	ChapterFlagEnabled = 0x4598,
 
- 	/** [binary] The SegmentUID of another Segment to play during this chapter. */
 
- 	ChapterSegmentUID = 0x6E67,
 
- 	/** [uinteger] The EditionUID to play from the Segment linked in ChapterSegmentUID. If ChapterSegmentEditionUID is
 
- 	   undeclared, then no Edition of the linked Segment is used; see (#medium-linking) on medium-linking Segments. */
 
- 	ChapterSegmentEditionUID = 0x6EBC,
 
- 	/** [uinteger] Specify the physical equivalent of this ChapterAtom like "DVD" (60) or "SIDE" (50); see
 
- 	   (#physical-types) for a complete list of values. */
 
- 	ChapterPhysicalEquiv = 0x63C3,
 
- 	/** [master] List of tracks on which the chapter applies. If this Element is not present, all tracks apply */
 
- 	ChapterTrack = 0x8F,
 
- 	/** [uinteger] UID of the Track to apply this chapter to. In the absence of a control track, choosing this chapter
 
- 	   will select the listed Tracks and deselect unlisted tracks. Absence of this Element indicates that the Chapter
 
- 	   **SHOULD** be applied to any currently used Tracks. */
 
- 	ChapterTrackUID = 0x89,
 
- 	/** [master] Contains all possible strings to use for the chapter display. */
 
- 	ChapterDisplay = 0x80,
 
- 	/** [utf-8] Contains the string to use as the chapter atom. */
 
- 	ChapString = 0x85,
 
- 	/** [string] A language corresponding to the string, in the bibliographic ISO-639-2 form [@!ISO639-2]. This Element
 
- 	 **MUST** be ignored if a ChapLanguageIETF Element is used within the same ChapterDisplay Element. */
 
- 	ChapLanguage = 0x437C,
 
- 	/** [string] Specifies a language corresponding to the ChapString in the format defined in [@!BCP47] and using the
 
- 	   IANA Language Subtag Registry [@!IANALangRegistry]. If a ChapLanguageIETF Element is used, then any ChapLanguage
 
- 	   and ChapCountry Elements used in the same ChapterDisplay **MUST** be ignored. */
 
- 	ChapLanguageIETF = 0x437D,
 
- 	/** [string] A country corresponding to the string, using the same 2 octets country-codes as in Internet domains
 
- 	   [@!IANADomains] based on [@!ISO3166-1] alpha-2 codes. This Element **MUST** be ignored if a ChapLanguageIETF
 
- 	   Element is used within the same ChapterDisplay Element. */
 
- 	ChapCountry = 0x437E,
 
- 	/** [master] Contains all the commands associated to the Atom. */
 
- 	ChapProcess = 0x6944,
 
- 	/** [uinteger] Contains the type of the codec used for the processing. A value of 0 means native Matroska processing
 
- 	   (to be defined), a value of 1 means the DVD command set is used; see (#menu-features) on DVD menus. More codec
 
- 	   IDs can be added later. */
 
- 	ChapProcessCodecID = 0x6955,
 
- 	/** [binary] Some optional data attached to the ChapProcessCodecID information.     For ChapProcessCodecID = 1, it
 
- 	   is the "DVD level" equivalent; see (#menu-features) on DVD menus. */
 
- 	ChapProcessPrivate = 0x450D,
 
- 	/** [master] Contains all the commands associated to the Atom. */
 
- 	ChapProcessCommand = 0x6911,
 
- 	/** [uinteger] Defines when the process command **SHOULD** be handled */
 
- 	ChapProcessTime = 0x6922,
 
- 	/** [binary] Contains the command information. The data **SHOULD** be interpreted depending on the
 
- 	   ChapProcessCodecID value. For ChapProcessCodecID = 1, the data correspond to the binary DVD cell pre/post
 
- 	   commands; see (#menu-features) on DVD menus. */
 
- 	ChapProcessData = 0x6933,
 
- 	/** [master] Element containing metadata describing Tracks, Editions, Chapters, Attachments, or the Segment as a
 
- 	   whole. A list of valid tags can be found in [@!MatroskaTags]. */
 
- 	Tags = 0x1254C367,
 
- 	/** [master] A single metadata descriptor. */
 
- 	Tag = 0x7373,
 
- 	/** [master] Specifies which other elements the metadata represented by the Tag applies to. If empty or not present,
 
- 	   then the Tag describes everything in the Segment. */
 
- 	Targets = 0x63C0,
 
- 	/** [uinteger] A number to indicate the logical level of the target. */
 
- 	TargetTypeValue = 0x68CA,
 
- 	/** [string] An informational string that can be used to display the logical level of the target like "ALBUM",
 
- 	   "TRACK", "MOVIE", "CHAPTER", etc ; see Section 6.4 of [@!MatroskaTags]. */
 
- 	TargetType = 0x63CA,
 
- 	/** [uinteger] A unique ID to identify the Track(s) the tags belong to. */
 
- 	TagTrackUID = 0x63C5,
 
- 	/** [uinteger] A unique ID to identify the EditionEntry(s) the tags belong to. */
 
- 	TagEditionUID = 0x63C9,
 
- 	/** [uinteger] A unique ID to identify the Chapter(s) the tags belong to. */
 
- 	TagChapterUID = 0x63C4,
 
- 	/** [uinteger] A unique ID to identify the Attachment(s) the tags belong to. */
 
- 	TagAttachmentUID = 0x63C6,
 
- 	/** [master] Contains general information about the target. */
 
- 	SimpleTag = 0x67C8,
 
- 	/** [utf-8] The name of the Tag that is going to be stored. */
 
- 	TagName = 0x45A3,
 
- 	/** [string] Specifies the language of the tag specified, in the Matroska languages form; see (#language-codes) on
 
- 	   language codes. This Element **MUST** be ignored if the TagLanguageIETF Element is used within the same SimpleTag
 
- 	   Element. */
 
- 	TagLanguage = 0x447A,
 
- 	/** [string] Specifies the language used in the TagString according to [@!BCP47] and using the IANA Language Subtag
 
- 	   Registry [@!IANALangRegistry]. If this Element is used, then any TagLanguage Elements used in the same SimpleTag
 
- 	   **MUST** be ignored. */
 
- 	TagLanguageIETF = 0x447B,
 
- 	/** [uinteger] A boolean value to indicate if this is the default/original language to use for the given tag. */
 
- 	TagDefault = 0x4484,
 
- 	/** [uinteger] A variant of the TagDefault element with a bogus Element ID; see (#tagdefault-element). */
 
- 	TagDefaultBogus = 0x44B4,
 
- 	/** [utf-8] The value of the Tag. */
 
- 	TagString = 0x4487,
 
- 	/** [binary] The values of the Tag, if it is binary. Note that this cannot be used in the same SimpleTag as
 
- 	   TagString. */
 
- 	TagBinary = 0x4485,
 
- };
 
 
  |