Ai
1 Star 0 Fork 1

general252/ebml-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
elementtable.go 21.84 KB
一键复制 编辑 原始数据 按行查看 历史
Tom Richards 提交于 2023-03-27 12:40 +08:00 . Add extra track flags (#177)
// Copyright 2019 The ebml-go authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package ebml
import (
"bytes"
)
type elementDef struct {
b []byte
t DataType
top bool
}
type elementTable map[ElementType]elementDef
var table = elementTable{
ElementChapters: elementDef{[]byte{0x10, 0x43, 0xA7, 0x70}, DataTypeMaster, true},
ElementSeekHead: elementDef{[]byte{0x11, 0x4D, 0x9B, 0x74}, DataTypeMaster, true},
ElementTags: elementDef{[]byte{0x12, 0x54, 0xC3, 0x67}, DataTypeMaster, true},
ElementInfo: elementDef{[]byte{0x15, 0x49, 0xA9, 0x66}, DataTypeMaster, true},
ElementTracks: elementDef{[]byte{0x16, 0x54, 0xAE, 0x6B}, DataTypeMaster, true},
ElementSegment: elementDef{[]byte{0x18, 0x53, 0x80, 0x67}, DataTypeMaster, false},
ElementAttachments: elementDef{[]byte{0x19, 0x41, 0xA4, 0x69}, DataTypeMaster, true},
ElementEBML: elementDef{[]byte{0x1A, 0x45, 0xDF, 0xA3}, DataTypeMaster, false},
ElementCues: elementDef{[]byte{0x1C, 0x53, 0xBB, 0x6B}, DataTypeMaster, true},
ElementCluster: elementDef{[]byte{0x1F, 0x43, 0xB6, 0x75}, DataTypeMaster, true},
ElementLanguage: elementDef{[]byte{0x22, 0xB5, 0x9C}, DataTypeString, false},
ElementLanguageIETF: elementDef{[]byte{0x22, 0xB5, 0x9D}, DataTypeString, false},
ElementTrackTimestampScale: elementDef{[]byte{0x23, 0x31, 0x4F}, DataTypeFloat, false},
ElementDefaultDecodedFieldDuration: elementDef{[]byte{0x23, 0x4E, 0x7A}, DataTypeUInt, false},
ElementDefaultDuration: elementDef{[]byte{0x23, 0xE3, 0x83}, DataTypeUInt, false},
ElementCodecName: elementDef{[]byte{0x25, 0x86, 0x88}, DataTypeString, false},
ElementTimecodeScale: elementDef{[]byte{0x2A, 0xD7, 0xB1}, DataTypeUInt, false},
ElementColourSpace: elementDef{[]byte{0x2E, 0xB5, 0x24}, DataTypeBinary, false},
ElementPrevFilename: elementDef{[]byte{0x3C, 0x83, 0xAB}, DataTypeString, false},
ElementPrevUID: elementDef{[]byte{0x3C, 0xB9, 0x23}, DataTypeBinary, false},
ElementNextFilename: elementDef{[]byte{0x3E, 0x83, 0xBB}, DataTypeString, false},
ElementNextUID: elementDef{[]byte{0x3E, 0xB9, 0x23}, DataTypeBinary, false},
ElementBlockAddIDName: elementDef{[]byte{0x41, 0xA4}, DataTypeString, false},
ElementBlockAdditionMapping: elementDef{[]byte{0x41, 0xE4}, DataTypeMaster, false},
ElementBlockAddIDType: elementDef{[]byte{0x41, 0xE7}, DataTypeUInt, false},
ElementBlockAddIDExtraData: elementDef{[]byte{0x41, 0xED}, DataTypeBinary, false},
ElementBlockAddIDValue: elementDef{[]byte{0x41, 0xF0}, DataTypeUInt, false},
ElementContentCompAlgo: elementDef{[]byte{0x42, 0x54}, DataTypeUInt, false},
ElementContentCompSettings: elementDef{[]byte{0x42, 0x55}, DataTypeBinary, false},
ElementEBMLVersion: elementDef{[]byte{0x42, 0x86}, DataTypeUInt, false},
ElementEBMLMaxIDLength: elementDef{[]byte{0x42, 0xF2}, DataTypeUInt, false},
ElementEBMLMaxSizeLength: elementDef{[]byte{0x42, 0xF3}, DataTypeUInt, false},
ElementEBMLReadVersion: elementDef{[]byte{0x42, 0xF7}, DataTypeUInt, false},
ElementEBMLDocType: elementDef{[]byte{0x42, 0x82}, DataTypeString, false},
ElementEBMLDocTypeReadVersion: elementDef{[]byte{0x42, 0x85}, DataTypeUInt, false},
ElementEBMLDocTypeVersion: elementDef{[]byte{0x42, 0x87}, DataTypeUInt, false},
ElementChapLanguage: elementDef{[]byte{0x43, 0x7C}, DataTypeString, false},
ElementChapLanguageIETF: elementDef{[]byte{0x43, 0x7D}, DataTypeString, false},
ElementChapCountry: elementDef{[]byte{0x43, 0x7E}, DataTypeString, false},
ElementSegmentFamily: elementDef{[]byte{0x44, 0x44}, DataTypeBinary, false},
ElementDateUTC: elementDef{[]byte{0x44, 0x61}, DataTypeDate, false},
ElementTagLanguage: elementDef{[]byte{0x44, 0x7A}, DataTypeString, false},
ElementTagLanguageIETF: elementDef{[]byte{0x44, 0x7B}, DataTypeString, false},
ElementTagDefault: elementDef{[]byte{0x44, 0x84}, DataTypeUInt, false},
ElementTagBinary: elementDef{[]byte{0x44, 0x85}, DataTypeBinary, false},
ElementTagString: elementDef{[]byte{0x44, 0x87}, DataTypeString, false},
ElementDuration: elementDef{[]byte{0x44, 0x89}, DataTypeFloat, false},
ElementChapProcessPrivate: elementDef{[]byte{0x45, 0x0D}, DataTypeBinary, false},
ElementChapterFlagEnabled: elementDef{[]byte{0x45, 0x98}, DataTypeUInt, false},
ElementTagName: elementDef{[]byte{0x45, 0xA3}, DataTypeString, false},
ElementEditionEntry: elementDef{[]byte{0x45, 0xB9}, DataTypeMaster, false},
ElementEditionUID: elementDef{[]byte{0x45, 0xBC}, DataTypeUInt, false},
ElementEditionFlagHidden: elementDef{[]byte{0x45, 0xBD}, DataTypeUInt, false},
ElementEditionFlagDefault: elementDef{[]byte{0x45, 0xDB}, DataTypeUInt, false},
ElementEditionFlagOrdered: elementDef{[]byte{0x45, 0xDD}, DataTypeUInt, false},
ElementFileData: elementDef{[]byte{0x46, 0x5C}, DataTypeBinary, false},
ElementFileMimeType: elementDef{[]byte{0x46, 0x60}, DataTypeString, false},
ElementFileName: elementDef{[]byte{0x46, 0x6E}, DataTypeString, false},
ElementFileDescription: elementDef{[]byte{0x46, 0x7E}, DataTypeString, false},
ElementFileUID: elementDef{[]byte{0x46, 0xAE}, DataTypeUInt, false},
ElementContentEncAlgo: elementDef{[]byte{0x47, 0xE1}, DataTypeUInt, false},
ElementContentEncKeyID: elementDef{[]byte{0x47, 0xE2}, DataTypeBinary, false},
ElementContentSignature: elementDef{[]byte{0x47, 0xE3}, DataTypeBinary, false},
ElementContentSigKeyID: elementDef{[]byte{0x47, 0xE4}, DataTypeBinary, false},
ElementContentSigAlgo: elementDef{[]byte{0x47, 0xE5}, DataTypeUInt, false},
ElementContentSigHashAlgo: elementDef{[]byte{0x47, 0xE6}, DataTypeUInt, false},
ElementContentEncAESSettings: elementDef{[]byte{0x47, 0xE7}, DataTypeMaster, false},
ElementAESSettingsCipherMode: elementDef{[]byte{0x47, 0xE8}, DataTypeUInt, false},
ElementMuxingApp: elementDef{[]byte{0x4D, 0x80}, DataTypeString, false},
ElementSeek: elementDef{[]byte{0x4D, 0xBB}, DataTypeMaster, false},
ElementContentEncodingOrder: elementDef{[]byte{0x50, 0x31}, DataTypeUInt, false},
ElementContentEncodingScope: elementDef{[]byte{0x50, 0x32}, DataTypeUInt, false},
ElementContentEncodingType: elementDef{[]byte{0x50, 0x33}, DataTypeUInt, false},
ElementContentCompression: elementDef{[]byte{0x50, 0x34}, DataTypeMaster, false},
ElementContentEncryption: elementDef{[]byte{0x50, 0x35}, DataTypeMaster, false},
ElementSeekID: elementDef{[]byte{0x53, 0xAB}, DataTypeBinary, false},
ElementSeekPosition: elementDef{[]byte{0x53, 0xAC}, DataTypeUInt, false},
ElementStereoMode: elementDef{[]byte{0x53, 0xB8}, DataTypeUInt, false},
ElementAlphaMode: elementDef{[]byte{0x53, 0xC0}, DataTypeUInt, false},
ElementName: elementDef{[]byte{0x53, 0x6E}, DataTypeString, false},
ElementCueBlockNumber: elementDef{[]byte{0x53, 0x78}, DataTypeUInt, false},
ElementPixelCropBottom: elementDef{[]byte{0x54, 0xAA}, DataTypeUInt, false},
ElementDisplayWidth: elementDef{[]byte{0x54, 0xB0}, DataTypeUInt, false},
ElementDisplayUnit: elementDef{[]byte{0x54, 0xB2}, DataTypeUInt, false},
ElementAspectRatioType: elementDef{[]byte{0x54, 0xB3}, DataTypeUInt, false},
ElementDisplayHeight: elementDef{[]byte{0x54, 0xBA}, DataTypeUInt, false},
ElementPixelCropTop: elementDef{[]byte{0x54, 0xBB}, DataTypeUInt, false},
ElementPixelCropLeft: elementDef{[]byte{0x54, 0xCC}, DataTypeUInt, false},
ElementPixelCropRight: elementDef{[]byte{0x54, 0xDD}, DataTypeUInt, false},
ElementFlagForced: elementDef{[]byte{0x55, 0xAA}, DataTypeUInt, false},
ElementFlagHearingImpaired: elementDef{[]byte{0x55, 0xAB}, DataTypeUInt, false},
ElementFlagVisualImpaired: elementDef{[]byte{0x55, 0xAC}, DataTypeUInt, false},
ElementFlagTextDescriptions: elementDef{[]byte{0x55, 0xAD}, DataTypeUInt, false},
ElementFlagOriginal: elementDef{[]byte{0x55, 0xAE}, DataTypeUInt, false},
ElementFlagCommentary: elementDef{[]byte{0x55, 0xAF}, DataTypeUInt, false},
ElementColour: elementDef{[]byte{0x55, 0xB0}, DataTypeMaster, false},
ElementMatrixCoefficients: elementDef{[]byte{0x55, 0xB1}, DataTypeUInt, false},
ElementBitsPerChannel: elementDef{[]byte{0x55, 0xB2}, DataTypeUInt, false},
ElementChromaSubsamplingHorz: elementDef{[]byte{0x55, 0xB3}, DataTypeUInt, false},
ElementChromaSubsamplingVert: elementDef{[]byte{0x55, 0xB4}, DataTypeUInt, false},
ElementCbSubsamplingHorz: elementDef{[]byte{0x55, 0xB5}, DataTypeUInt, false},
ElementCbSubsamplingVert: elementDef{[]byte{0x55, 0xB6}, DataTypeUInt, false},
ElementChromaSitingHorz: elementDef{[]byte{0x55, 0xB7}, DataTypeUInt, false},
ElementChromaSitingVert: elementDef{[]byte{0x55, 0xB8}, DataTypeUInt, false},
ElementRange: elementDef{[]byte{0x55, 0xB9}, DataTypeUInt, false},
ElementTransferCharacteristics: elementDef{[]byte{0x55, 0xBA}, DataTypeUInt, false},
ElementPrimaries: elementDef{[]byte{0x55, 0xBB}, DataTypeUInt, false},
ElementMaxCLL: elementDef{[]byte{0x55, 0xBC}, DataTypeUInt, false},
ElementMaxFALL: elementDef{[]byte{0x55, 0xBD}, DataTypeUInt, false},
ElementMasteringMetadata: elementDef{[]byte{0x55, 0xD0}, DataTypeMaster, false},
ElementPrimaryRChromaticityX: elementDef{[]byte{0x55, 0xD1}, DataTypeFloat, false},
ElementPrimaryRChromaticityY: elementDef{[]byte{0x55, 0xD2}, DataTypeFloat, false},
ElementPrimaryGChromaticityX: elementDef{[]byte{0x55, 0xD3}, DataTypeFloat, false},
ElementPrimaryGChromaticityY: elementDef{[]byte{0x55, 0xD4}, DataTypeFloat, false},
ElementPrimaryBChromaticityX: elementDef{[]byte{0x55, 0xD5}, DataTypeFloat, false},
ElementPrimaryBChromaticityY: elementDef{[]byte{0x55, 0xD6}, DataTypeFloat, false},
ElementWhitePointChromaticityX: elementDef{[]byte{0x55, 0xD7}, DataTypeFloat, false},
ElementWhitePointChromaticityY: elementDef{[]byte{0x55, 0xD8}, DataTypeFloat, false},
ElementLuminanceMax: elementDef{[]byte{0x55, 0xD9}, DataTypeFloat, false},
ElementLuminanceMin: elementDef{[]byte{0x55, 0xDA}, DataTypeFloat, false},
ElementMaxBlockAdditionID: elementDef{[]byte{0x55, 0xEE}, DataTypeUInt, false},
ElementChapterStringUID: elementDef{[]byte{0x56, 0x54}, DataTypeString, false},
ElementCodecDelay: elementDef{[]byte{0x56, 0xAA}, DataTypeUInt, false},
ElementSeekPreRoll: elementDef{[]byte{0x56, 0xBB}, DataTypeUInt, false},
ElementWritingApp: elementDef{[]byte{0x57, 0x41}, DataTypeString, false},
ElementSilentTracks: elementDef{[]byte{0x58, 0x54}, DataTypeMaster, false},
ElementSilentTrackNumber: elementDef{[]byte{0x58, 0xD7}, DataTypeUInt, false},
ElementAttachedFile: elementDef{[]byte{0x61, 0xA7}, DataTypeMaster, false},
ElementContentEncoding: elementDef{[]byte{0x62, 0x40}, DataTypeMaster, false},
ElementBitDepth: elementDef{[]byte{0x62, 0x64}, DataTypeUInt, false},
ElementCodecPrivate: elementDef{[]byte{0x63, 0xA2}, DataTypeBinary, false},
ElementTargets: elementDef{[]byte{0x63, 0xC0}, DataTypeMaster, false},
ElementChapterPhysicalEquiv: elementDef{[]byte{0x63, 0xC3}, DataTypeUInt, false},
ElementTagChapterUID: elementDef{[]byte{0x63, 0xC4}, DataTypeUInt, false},
ElementTagTrackUID: elementDef{[]byte{0x63, 0xC5}, DataTypeUInt, false},
ElementTagAttachmentUID: elementDef{[]byte{0x63, 0xC6}, DataTypeUInt, false},
ElementTagEditionUID: elementDef{[]byte{0x63, 0xC9}, DataTypeUInt, false},
ElementTargetType: elementDef{[]byte{0x63, 0xCA}, DataTypeString, false},
ElementTrackTranslate: elementDef{[]byte{0x66, 0x24}, DataTypeMaster, false},
ElementTrackTranslateTrackID: elementDef{[]byte{0x66, 0xA5}, DataTypeBinary, false},
ElementTrackTranslateCodec: elementDef{[]byte{0x66, 0xBF}, DataTypeUInt, false},
ElementTrackTranslateEditionUID: elementDef{[]byte{0x66, 0xFC}, DataTypeUInt, false},
ElementSimpleTag: elementDef{[]byte{0x67, 0xC8}, DataTypeMaster, false},
ElementTargetTypeValue: elementDef{[]byte{0x68, 0xCA}, DataTypeUInt, false},
ElementChapProcessCommand: elementDef{[]byte{0x69, 0x11}, DataTypeMaster, false},
ElementChapProcessTime: elementDef{[]byte{0x69, 0x22}, DataTypeUInt, false},
ElementChapterTranslate: elementDef{[]byte{0x69, 0x24}, DataTypeMaster, false},
ElementChapProcessData: elementDef{[]byte{0x69, 0x33}, DataTypeBinary, false},
ElementChapProcess: elementDef{[]byte{0x69, 0x44}, DataTypeMaster, false},
ElementChapProcessCodecID: elementDef{[]byte{0x69, 0x55}, DataTypeUInt, false},
ElementChapterTranslateID: elementDef{[]byte{0x69, 0xA5}, DataTypeBinary, false},
ElementChapterTranslateCodec: elementDef{[]byte{0x69, 0xBF}, DataTypeUInt, false},
ElementChapterTranslateEditionUID: elementDef{[]byte{0x69, 0xFC}, DataTypeUInt, false},
ElementContentEncodings: elementDef{[]byte{0x6D, 0x80}, DataTypeMaster, false},
ElementMinCache: elementDef{[]byte{0x6D, 0xE7}, DataTypeUInt, false},
ElementMaxCache: elementDef{[]byte{0x6D, 0xF8}, DataTypeUInt, false},
ElementChapterSegmentUID: elementDef{[]byte{0x6E, 0x67}, DataTypeBinary, false},
ElementChapterSegmentEditionUID: elementDef{[]byte{0x6E, 0xBC}, DataTypeUInt, false},
ElementTrackOverlay: elementDef{[]byte{0x6F, 0xAB}, DataTypeUInt, false},
ElementTag: elementDef{[]byte{0x73, 0x73}, DataTypeMaster, false},
ElementSegmentFilename: elementDef{[]byte{0x73, 0x84}, DataTypeString, false},
ElementSegmentUID: elementDef{[]byte{0x73, 0xA4}, DataTypeBinary, false},
ElementChapterUID: elementDef{[]byte{0x73, 0xC4}, DataTypeUInt, false},
ElementTrackUID: elementDef{[]byte{0x73, 0xC5}, DataTypeUInt, false},
ElementAttachmentLink: elementDef{[]byte{0x74, 0x46}, DataTypeUInt, false},
ElementBlockAdditions: elementDef{[]byte{0x75, 0xA1}, DataTypeMaster, false},
ElementDiscardPadding: elementDef{[]byte{0x75, 0xA2}, DataTypeInt, false},
ElementProjection: elementDef{[]byte{0x76, 0x70}, DataTypeMaster, false},
ElementProjectionType: elementDef{[]byte{0x76, 0x71}, DataTypeUInt, false},
ElementProjectionPrivate: elementDef{[]byte{0x76, 0x72}, DataTypeBinary, false},
ElementProjectionPoseYaw: elementDef{[]byte{0x76, 0x73}, DataTypeFloat, false},
ElementProjectionPosePitch: elementDef{[]byte{0x76, 0x74}, DataTypeFloat, false},
ElementProjectionPoseRoll: elementDef{[]byte{0x76, 0x75}, DataTypeFloat, false},
ElementOutputSamplingFrequency: elementDef{[]byte{0x78, 0xB5}, DataTypeFloat, false},
ElementTitle: elementDef{[]byte{0x7B, 0xA9}, DataTypeString, false},
ElementChapterDisplay: elementDef{[]byte{0x80}, DataTypeMaster, false},
ElementTrackType: elementDef{[]byte{0x83}, DataTypeUInt, false},
ElementChapString: elementDef{[]byte{0x85}, DataTypeString, false},
ElementCodecID: elementDef{[]byte{0x86}, DataTypeString, false},
ElementFlagDefault: elementDef{[]byte{0x88}, DataTypeUInt, false},
ElementChapterTrackUID: elementDef{[]byte{0x89}, DataTypeUInt, false},
ElementSlices: elementDef{[]byte{0x8E}, DataTypeMaster, false},
ElementChapterTrack: elementDef{[]byte{0x8F}, DataTypeMaster, false},
ElementChapterTimeStart: elementDef{[]byte{0x91}, DataTypeUInt, false},
ElementChapterTimeEnd: elementDef{[]byte{0x92}, DataTypeUInt, false},
ElementCueRefTime: elementDef{[]byte{0x96}, DataTypeUInt, false},
ElementChapterFlagHidden: elementDef{[]byte{0x98}, DataTypeUInt, false},
ElementFlagInterlaced: elementDef{[]byte{0x9A}, DataTypeUInt, false},
ElementBlockDuration: elementDef{[]byte{0x9B}, DataTypeUInt, false},
ElementFlagLacing: elementDef{[]byte{0x9C}, DataTypeUInt, false},
ElementFieldOrder: elementDef{[]byte{0x9D}, DataTypeUInt, false},
ElementChannels: elementDef{[]byte{0x9F}, DataTypeUInt, false},
ElementBlockGroup: elementDef{[]byte{0xA0}, DataTypeMaster, false},
ElementBlock: elementDef{[]byte{0xA1}, DataTypeBlock, false},
ElementSimpleBlock: elementDef{[]byte{0xA3}, DataTypeBlock, false},
ElementCodecState: elementDef{[]byte{0xA4}, DataTypeBinary, false},
ElementBlockAdditional: elementDef{[]byte{0xA5}, DataTypeBinary, false},
ElementBlockMore: elementDef{[]byte{0xA6}, DataTypeMaster, false},
ElementPosition: elementDef{[]byte{0xA7}, DataTypeUInt, false},
ElementCodecDecodeAll: elementDef{[]byte{0xAA}, DataTypeUInt, false},
ElementPrevSize: elementDef{[]byte{0xAB}, DataTypeUInt, false},
ElementTrackEntry: elementDef{[]byte{0xAE}, DataTypeMaster, false},
ElementPixelWidth: elementDef{[]byte{0xB0}, DataTypeUInt, false},
ElementCueDuration: elementDef{[]byte{0xB2}, DataTypeUInt, false},
ElementCueTime: elementDef{[]byte{0xB3}, DataTypeUInt, false},
ElementSamplingFrequency: elementDef{[]byte{0xB5}, DataTypeFloat, false},
ElementChapterAtom: elementDef{[]byte{0xB6}, DataTypeMaster, false},
ElementCueTrackPositions: elementDef{[]byte{0xB7}, DataTypeMaster, false},
ElementFlagEnabled: elementDef{[]byte{0xB9}, DataTypeUInt, false},
ElementPixelHeight: elementDef{[]byte{0xBA}, DataTypeUInt, false},
ElementCuePoint: elementDef{[]byte{0xBB}, DataTypeMaster, false},
ElementCRC32: elementDef{[]byte{0xBF}, DataTypeBinary, false},
ElementLaceNumber: elementDef{[]byte{0xCC}, DataTypeUInt, false},
ElementTrackNumber: elementDef{[]byte{0xD7}, DataTypeUInt, false},
ElementCueReference: elementDef{[]byte{0xDB}, DataTypeMaster, false},
ElementVideo: elementDef{[]byte{0xE0}, DataTypeMaster, false},
ElementAudio: elementDef{[]byte{0xE1}, DataTypeMaster, false},
ElementTrackOperation: elementDef{[]byte{0xE2}, DataTypeMaster, false},
ElementTrackCombinePlanes: elementDef{[]byte{0xE3}, DataTypeMaster, false},
ElementTrackPlane: elementDef{[]byte{0xE4}, DataTypeMaster, false},
ElementTrackPlaneUID: elementDef{[]byte{0xE5}, DataTypeUInt, false},
ElementTrackPlaneType: elementDef{[]byte{0xE6}, DataTypeUInt, false},
ElementTimecode: elementDef{[]byte{0xE7}, DataTypeUInt, false},
ElementTimeSlice: elementDef{[]byte{0xE8}, DataTypeMaster, false},
ElementTrackJoinBlocks: elementDef{[]byte{0xE9}, DataTypeMaster, false},
ElementCueCodecState: elementDef{[]byte{0xEA}, DataTypeUInt, false},
ElementVoid: elementDef{[]byte{0xEC}, DataTypeBinary, false},
ElementTrackJoinUID: elementDef{[]byte{0xED}, DataTypeUInt, false},
ElementBlockAddID: elementDef{[]byte{0xEE}, DataTypeUInt, false},
ElementCueRelativePosition: elementDef{[]byte{0xF0}, DataTypeUInt, false},
ElementCueClusterPosition: elementDef{[]byte{0xF1}, DataTypeUInt, false},
ElementCueTrack: elementDef{[]byte{0xF7}, DataTypeUInt, false},
ElementReferencePriority: elementDef{[]byte{0xFA}, DataTypeUInt, false},
ElementReferenceBlock: elementDef{[]byte{0xFB}, DataTypeInt, false},
}
type elementRevTable map[uint32]element
type element struct {
e ElementType
t DataType
top bool
}
var revTable elementRevTable
func init() {
revTable = make(elementRevTable)
initReverseLookupTable(revTable, table)
}
func initReverseLookupTable(revTb elementRevTable, tb elementTable) {
vd := &valueDecoder{}
for k, v := range tb {
e, _, err := vd.readVUInt(bytes.NewBuffer(v.b))
if err != nil {
panic(err)
}
revTb[uint32(e)] = element{e: k, t: v.t, top: v.top}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/general252/ebml-go.git
git@gitee.com:general252/ebml-go.git
general252
ebml-go
ebml-go
v0.20.24

搜索帮助