use ebml_derive::define_ebml; define_ebml! { global Crc32[0xbf]: Binary, global Void[0xec]: Binary, Ebml[0x1a45dfa3]: { EbmlVersion[0x4286]: Uint, EbmlReadVersion[0x42f7]: Uint, EbmlMaxIdLength[0x42f2]: Uint, EbmlMaxSizeLength[0x42f3]: Uint, DocType[0x4282]: Utf8, DocTypeVersion[0x4287]: Uint, DocTypeReadVersion[0x4285]: Uint, DocTypeExtension[0x4281]: { DocTypeExtensionName[0x4283]: Utf8, DocTypeExtensionVersion[0x4284]: Uint, }, }, Segment[0x18538067]: { Attachments[0x1941A469]: { AttachedFile[0x61A7]: { FileData[0x465C]: Binary, FileDescription[0x467E]: Utf8, FileMimeType[0x4660]: Utf8, FileName[0x466E]: Utf8, FileReferral[0x4675]: Binary, FileUID[0x46AE]: Uint, FileUsedEndTime[0x4662]: Uint, FileUsedStartTime[0x4661]: Uint, }, }, Chapters[0x1043A770]: { EditionEntry[0x45B9]: { ChapPterAtom[0xB6]: { ChapProcess[0x6944]: { ChapProcessCodecID[0x6955]: Uint, ChapProcessCommand[0x6911]: { ChapProcessData[0x6933]: Binary, ChapProcessTime[0x6922]: Uint, }, ChapProcessPrivate[0x450D]: Binary, }, ChapterDisplay[0x80]: { ChapCountry[0x437E]: Utf8, ChapLanguage[0x437C]: Utf8, ChapLanguageIETF[0x437D]: Utf8, ChapString[0x85]: Utf8, }, ChapterFlagEnabled[0x4598]: Uint, ChapterFlagHidden[0x98]: Uint, ChapterPhysicalEquiv[0x63C3]: Uint, ChapterSegmentEditionUID[0x6EBC]: Uint, ChapterSegmentUID[0x6E67]: Binary, ChapterStringUID[0x5654]: Utf8, ChapterTimeEnd[0x92]: Uint, ChapterTimeStart[0x91]: Uint, ChapterUID[0x73C4]: Uint, ChapterTrack[0x8F]: { ChapterTrackUID[0x89]: Uint, }, }, EditionFlagDefault[0x45DB]: Uint, EditionFlagHidden[0x45BD]: Uint, EditionFlagOrdered[0x45DD]: Uint, EditionUID[0x45BC]: Uint, }, }, Cluster[0x1F43B675]: { #[id=0xA0] BlockGroup: { #[id=0xA1] Block(Binary), #[id=0x75A1] BlockAdditions: { #[id=0xA6] BlockMore: { #[id=0xEE] BlockAddID(Uint), #[id=0xA5] BlockAdditional(Binary), }, }, #[id=0x9B] BlockDuration(Uint), #[id=0xA2] BlockVirtual(Binary), #[id=0xA4] CodecState(Binary), #[id=0x75A2] DiscardPadding(Integer), #[id=0xFB] ReferenceBlock(Integer), #[id=0xC8] ReferenceFrame: { #[id=0xC9] ReferenceOffset(Uint), #[id=0xCA] ReferenceTimestamp(Uint), }, #[id=0xFA] ReferencePriority(Uint), #[id=0xFD] ReferenceVirtual(Integer), #[id=0x8E] Slices: { #[id=0xE8] TimeSlice: { #[id=0xCB] BlockAdditionID(Uint), #[id=0xCE] Delay(Uint), #[id=0xCD] FrameNumber(Uint), #[id=0xCC] LaceNumber(Uint), #[id=0xCF] SliceDuration(Uint), }, }, }, #[id=0xAF] EncryptedBlock(Binary), #[id=0xA7] Position(Uint), #[id=0xAB] PrevSize(Uint), #[id=0x5854] SilentTracks: { #[id=0x58D7] SilentTrackNumber(Uint), }, #[id=0xA3] SimpleBlock(Binary), #[id=0xE7] Timestamp(Uint), } #[id=0x1C53BB6B] Cues: { #[id=0xBB] CuePoint: { #[id=0xB3] CueTime(Uint), #[id=0xB7] CueTrackPositions: { #[id=0x5378] CueBlockNumber(Uint), #[id=0xF1] CueClusterPosition(Uint), #[id=0xEA] CueCodecState(Uint), #[id=0xB2] CueDuration(Uint), #[id=0xDB] CueReference: { #[id=0x97] CueRefCluster(Uint), #[id=0xEB] CueRefCodecState(Uint), #[id=0x535F] CueRefNumber(Uint), #[id=0x96] CueRefTime(Uint), }, #[id=0xF0] CueRelativePosition(Uint), #[id=0xF7] CueTrack(Uint), }, }, }, #[id=0x1549A966] Info: { #[id=0x6924] ChapterTranslate: { #[id=0x69BF] ChapterTranslateCodec(Uint), #[id=0x69FC] ChapterTranslateEditionUID(Uint), #[id=0x69A5] ChapterTranslateID(Binary), } #[id=0x4461] DateUTC(Integer), #[id=0x4489] Duration(Float), #[id=0x4D80] MuxingApp(Utf8), #[id=0x3E83BB] NextFilename(Utf8), #[id=0x3EB923] NextUID(Binary), #[id=0x3C83AB] PrevFilename(Utf8), #[id=0x3CB923] PrevUID(Binary), #[id=0x4444] SegmentFamily(Binary), #[id=0x7384] SegmentFilename(Utf8), #[id=0x73A4] SegmentUID(Binary), #[id=0x2AD7B1] TimestampScale(Uint), #[id=0x7BA9] Title(Utf8), #[id=0x5741] WritingApp(Utf8), }, #[id=0x114D9B74] SeekHead: { #[id=0x4DBB] Seek: { #[id=0x53AB] SeekID(Binary), #[id=0x53AC] SeekPosition(Uint), }, }, #[id=0x1254C367] Tags: { #[id=0x7373] Tag: { #[id=0x67C8] SimpleTag: { #[id=0x4485] TagBinary(Binary), #[id=0x4484] TagDefault(Uint), #[id=0x44B4] TagDefaultBogus(Uint), #[id=0x447A] TagLanguage(Utf8), #[id=0x447B] TagLanguageIETF(Utf8), #[id=0x45A3] TagName(Utf8), #[id=0x4487] TagString(Utf8), }, #[id=0x63C0] Targets: { #[id=0x63C6] TagAttachmentUID(Uint), #[id=0x63C4] TagChapterUID(Uint), #[id=0x63C9] TagEditionUID(Uint), #[id=0x63C5] TagTrackUID(Uint), #[id=0x63CA] TargetType(Utf8), #[id=0x68CA] TargetTypeValue(Uint), }, }, }, #[id=0x1654AE6B] Tracks: { #[id=0xAE] TrackEntry: { #[id=0x7446] AttachmentLink(Uint), #[id=0xE1] Audio: { #[id=0x6264] BitDepth(Uint), #[id=0x7D7B] ChannelPositions(Binary), #[id=0x9F] Channels(Uint), #[id=0x78B5] OutputSamplingFrequency(Float), #[id=0xB5] SamplingFrequency(Float), } #[id=0x41E4] BlockAdditionMapping: { #[id=0x41ED] BlockAddIDExtraData(Binary), #[id=0x41A4] BlockAddIDName(Utf8), #[id=0x41E7] BlockAddIDType(Uint), #[id=0x41F0] BlockAddIDValue(Uint), } #[id=0xAA] CodecDecodeAll(Uint), #[id=0x56AA] CodecDelay(Uint), #[id=0x26B240] CodecDownloadURL(Utf8), #[id=0x86] CodecID(Utf8), #[id=0x3B4040] CodecInfoURL(Utf8), #[id=0x258688] CodecName(Utf8), #[id=0x63A2] CodecPrivate(Binary), #[id=0x3A9697] CodecSettings(Utf8), #[id=0x6D80] ContentEncodings: { #[id=0x6240] ContentEncoding: { #[id=0x5034] ContentCompression: { #[id=0x4254] ContentCompAlgo(Uint), #[id=0x4255] ContentCompSettings(Binary), }, #[id=0x5031] ContentEncodingOrder(Uint), #[id=0x5032] ContentEncodingScope(Uint), #[id=0x5033] ContentEncodingType(Uint), #[id=0x5035] ContentEncryption: { #[id=0x47E7] ContentEncAESSettings: { #[id=0x47E8] AESSettingsCipherMode(Uint), } #[id=0x47E1] ContentEncAlgo(Uint), #[id=0x47E2] ContentEncKeyID(Binary), #[id=0x47E5] ContentSigAlgo(Uint), #[id=0x47E6] ContentSigHashAlgo(Uint), #[id=0x47E4] ContentSigKeyID(Binary), #[id=0x47E3] ContentSignature(Binary), }, }, }, #[id=0x234E7A] DefaultDecodedFieldDuration(Uint), #[id=0x23E383] DefaultDuration(Uint), #[id=0x55AF] FlagCommentary(Uint), #[id=0x88] FlagDefault(Uint), #[id=0xB9] FlagEnabled(Uint), #[id=0x55AA] FlagForced(Uint), #[id=0x55AB] FlagHearingImpaired(Uint), #[id=0x9C] FlagLacing(Uint), #[id=0x55AE] FlagOriginal(Uint), #[id=0x55AD] FlagTextDescriptions(Uint), #[id=0x55AC] FlagVisualImpaired(Uint), #[id=0x22B59C] Language(Utf8), #[id=0x22B59D] LanguageIETF(Utf8), #[id=0x55EE] MaxBlockAdditionID(Uint), #[id=0x6DF8] MaxCache(Uint), #[id=0x6DE7] MinCache(Uint), #[id=0x536E] Name(Utf8), #[id=0x56BB] SeekPreRoll(Uint), #[id=0xD7] TrackNumber(Uint), #[id=0x537F] TrackOffset(Integer), #[id=0xE2] TrackOperation: { #[id=0xE3] TrackCombinePlanes: { #[id=0xE4] TrackPlane: { #[id=0xE6] TrackPlaneType(Uint), #[id=0xE5] TrackPlaneUID(Uint), }, }, #[id=0xE9] TrackJoinBlocks: { #[id=0xED] TrackJoinUID(Uint), }, } #[id=0x6FAB] TrackOverlay(Uint), #[id=0x23314F] TrackTimestampScale(Float), #[id=0x6624] TrackTranslate: { #[id=0x66BF] TrackTranslateCodec(Uint), #[id=0x66FC] TrackTranslateEditionUID(Uint), #[id=0x66A5] TrackTranslateTrackID(Binary), }, #[id=0x83] TrackType(Uint), #[id=0x73C5] TrackUID(Uint), #[id=0xC4] TrickMasterTrackSegmentUID(Binary), #[id=0xC7] TrickMasterTrackUID(Uint), #[id=0xC6] TrickTrackFlag(Uint), #[id=0xC1] TrickTrackSegmentUID(Binary), #[id=0xC0] TrickTrackUID(Uint), #[id=0xE0] Video: { #[id=0x53C0] AlphaMode(Uint), #[id=0x54B3] AspectRatioType(Uint), #[id=0x55B0] Colour: { #[id=0x55B2] BitsPerChannel(Uint), #[id=0x55B5] CbSubsamplingHorz(Uint), #[id=0x55B6] CbSubsamplingVert(Uint), #[id=0x55B7] ChromaSitingHorz(Uint), #[id=0x55B8] ChromaSitingVert(Uint), #[id=0x55B3] ChromaSubsamplingHorz(Uint), #[id=0x55B4] ChromaSubsamplingVert(Uint), #[id=0x55D0] MasteringMetadata: { #[id=0x55D9] LuminanceMax(Float), #[id=0x55DA] LuminanceMin(Float), #[id=0x55D5] PrimaryBChromaticityX(Float), #[id=0x55D6] PrimaryBChromaticityY(Float), #[id=0x55D3] PrimaryGChromaticityX(Float), #[id=0x55D4] PrimaryGChromaticityY(Float), #[id=0x55D1] PrimaryRChromaticityX(Float), #[id=0x55D2] PrimaryRChromaticityY(Float), #[id=0x55D7] WhitePointChromaticityX(Float), #[id=0x55D8] WhitePointChromaticityY(Float), }, #[id=0x55B1] MatrixCoefficients(Uint), #[id=0x55BC] MaxCLL(Uint), #[id=0x55BD] MaxFALL(Uint), #[id=0x55BB] Primaries(Uint), #[id=0x55B9] Range(Uint), #[id=0x55BA] TransferCharacteristics(Uint), }, #[id=0x54BA] DisplayHeight(Uint), #[id=0x54B2] DisplayUnit(Uint), #[id=0x54B0] DisplayWidth(Uint), #[id=0x9D] FieldOrder(Uint), #[id=0x9A] FlagInterlaced(Uint), #[id=0x2383E3] FrameRate(Float), #[id=0x2FB523] GammaValue(Float), #[id=0x53B9] OldStereoMode(Uint), #[id=0x54AA] PixelCropBottom(Uint), #[id=0x54CC] PixelCropLeft(Uint), #[id=0x54DD] PixelCropRight(Uint), #[id=0x54BB] PixelCropTop(Uint), #[id=0xBA] PixelHeight(Uint), #[id=0xB0] PixelWidth(Uint), #[id=0x7670] Projection: { #[id=0x7674] ProjectionPosePitch(Float), #[id=0x7675] ProjectionPoseRoll(Float), #[id=0x7673] ProjectionPoseYaw(Float), #[id=0x7672] ProjectionPrivate(Binary), #[id=0x7671] ProjectionType(Uint), }, #[id=0x53B8] StereoMode(Uint), #[id=0x2EB524] UncompressedFourCC(Binary), }, }, }, }, }