Ai
1 Star 0 Fork 1

general252/ebml-go

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
elementtype.go 19.54 KB
Copy Edit Raw Blame History
LIN authored 2023-09-11 14:15 +08:00 . ElementVoid字段长度不小于4字节
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
// 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 (
"errors"
)
// ErrUnknownElementName means that a element name is not found in the ElementType list.
var ErrUnknownElementName = errors.New("unknown element name")
const ElementVoidSize = 4
// ElementType represents EBML Element type.
type ElementType int
// EBML Element types.
const (
ElementInvalid ElementType = iota
ElementEBML
ElementEBMLVersion
ElementEBMLReadVersion
ElementEBMLMaxIDLength
ElementEBMLMaxSizeLength
ElementEBMLDocType
ElementEBMLDocTypeVersion
ElementEBMLDocTypeReadVersion
ElementCRC32
ElementVoid
ElementSegment
ElementSeekHead
ElementSeek
ElementSeekID
ElementSeekPosition
ElementInfo
ElementSegmentUID
ElementSegmentFilename
ElementPrevUID
ElementPrevFilename
ElementNextUID
ElementNextFilename
ElementSegmentFamily
ElementChapterTranslate
ElementChapterTranslateEditionUID
ElementChapterTranslateCodec
ElementChapterTranslateID
ElementTimestampScale
ElementDuration
ElementDateUTC
ElementTitle
ElementMuxingApp
ElementWritingApp
ElementCluster
ElementTimestamp
ElementSilentTracks
ElementSilentTrackNumber
ElementPosition
ElementPrevSize
ElementSimpleBlock
ElementBlockGroup
ElementBlock
ElementBlockAdditions
ElementBlockMore
ElementBlockAddID
ElementBlockAdditional
ElementBlockDuration
ElementReferencePriority
ElementReferenceBlock
ElementCodecState
ElementDiscardPadding
ElementSlices
// Deprecated: Dropped in v2
ElementTimeSlice
// Deprecated: Dropped in v2
ElementLaceNumber
ElementTracks
ElementTrackEntry
ElementTrackNumber
ElementTrackUID
ElementTrackType
ElementFlagEnabled
ElementFlagDefault
ElementFlagForced
ElementFlagHearingImpaired
ElementFlagVisualImpaired
ElementFlagTextDescriptions
ElementFlagOriginal
ElementFlagCommentary
ElementFlagLacing
ElementMinCache
ElementMaxCache
ElementDefaultDuration
ElementDefaultDecodedFieldDuration
// Deprecated: Dropped in v4
ElementTrackTimestampScale
ElementMaxBlockAdditionID
ElementBlockAdditionMapping
ElementBlockAddIDValue
ElementBlockAddIDName
ElementBlockAddIDType
ElementBlockAddIDExtraData
ElementName
ElementLanguage
ElementLanguageIETF
ElementCodecID
ElementCodecPrivate
ElementCodecName
// Deprecated: Dropped in v4
ElementAttachmentLink
ElementCodecDecodeAll
ElementTrackOverlay
ElementCodecDelay
ElementSeekPreRoll
ElementTrackTranslate
ElementTrackTranslateEditionUID
ElementTrackTranslateCodec
ElementTrackTranslateTrackID
ElementVideo
ElementFlagInterlaced
ElementFieldOrder
ElementStereoMode
ElementAlphaMode
ElementPixelWidth
ElementPixelHeight
ElementPixelCropBottom
ElementPixelCropTop
ElementPixelCropLeft
ElementPixelCropRight
ElementDisplayWidth
ElementDisplayHeight
ElementDisplayUnit
ElementAspectRatioType
ElementColourSpace
ElementColour
ElementMatrixCoefficients
ElementBitsPerChannel
ElementChromaSubsamplingHorz
ElementChromaSubsamplingVert
ElementCbSubsamplingHorz
ElementCbSubsamplingVert
ElementChromaSitingHorz
ElementChromaSitingVert
ElementRange
ElementTransferCharacteristics
ElementPrimaries
ElementMaxCLL
ElementMaxFALL
ElementMasteringMetadata
ElementPrimaryRChromaticityX
ElementPrimaryRChromaticityY
ElementPrimaryGChromaticityX
ElementPrimaryGChromaticityY
ElementPrimaryBChromaticityX
ElementPrimaryBChromaticityY
ElementWhitePointChromaticityX
ElementWhitePointChromaticityY
ElementLuminanceMax
ElementLuminanceMin
ElementProjection
ElementProjectionType
ElementProjectionPrivate
ElementProjectionPoseYaw
ElementProjectionPosePitch
ElementProjectionPoseRoll
ElementAudio
ElementSamplingFrequency
ElementOutputSamplingFrequency
ElementChannels
ElementBitDepth
ElementTrackOperation
ElementTrackCombinePlanes
ElementTrackPlane
ElementTrackPlaneUID
ElementTrackPlaneType
ElementTrackJoinBlocks
ElementTrackJoinUID
ElementContentEncodings
ElementContentEncoding
ElementContentEncodingOrder
ElementContentEncodingScope
ElementContentEncodingType
ElementContentCompression
ElementContentCompAlgo
ElementContentCompSettings
ElementContentEncryption
ElementContentEncAlgo
ElementContentEncKeyID
ElementContentEncAESSettings
ElementAESSettingsCipherMode
ElementContentSignature
ElementContentSigKeyID
ElementContentSigAlgo
ElementContentSigHashAlgo
ElementCues
ElementCuePoint
ElementCueTime
ElementCueTrackPositions
ElementCueTrack
ElementCueClusterPosition
ElementCueRelativePosition
ElementCueDuration
ElementCueBlockNumber
ElementCueCodecState
ElementCueReference
ElementCueRefTime
ElementAttachments
ElementAttachedFile
ElementFileDescription
ElementFileName
ElementFileMimeType
ElementFileData
ElementFileUID
ElementChapters
ElementEditionEntry
ElementEditionUID
ElementEditionFlagHidden
ElementEditionFlagDefault
ElementEditionFlagOrdered
ElementChapterAtom
ElementChapterUID
ElementChapterStringUID
ElementChapterTimeStart
ElementChapterTimeEnd
ElementChapterFlagHidden
ElementChapterFlagEnabled
ElementChapterSegmentUID
ElementChapterSegmentEditionUID
ElementChapterPhysicalEquiv
ElementChapterTrack
ElementChapterTrackUID
ElementChapterDisplay
ElementChapString
ElementChapLanguage
ElementChapLanguageIETF
ElementChapCountry
ElementChapProcess
ElementChapProcessCodecID
ElementChapProcessPrivate
ElementChapProcessCommand
ElementChapProcessTime
ElementChapProcessData
ElementTags
ElementTag
ElementTargets
ElementTargetTypeValue
ElementTargetType
ElementTagTrackUID
ElementTagEditionUID
ElementTagChapterUID
ElementTagAttachmentUID
ElementSimpleTag
ElementTagName
ElementTagLanguage
ElementTagLanguageIETF
ElementTagDefault
ElementTagString
ElementTagBinary
elementMax
)
// WebM aliases
const (
ElementTimecodeScale = ElementTimestampScale
ElementTimecode = ElementTimestamp
)
var elementTypeName = map[ElementType]string{
ElementEBML: "EBML",
ElementEBMLVersion: "EBMLVersion",
ElementEBMLReadVersion: "EBMLReadVersion",
ElementEBMLMaxIDLength: "EBMLMaxIDLength",
ElementEBMLMaxSizeLength: "EBMLMaxSizeLength",
ElementEBMLDocType: "EBMLDocType",
ElementEBMLDocTypeVersion: "EBMLDocTypeVersion",
ElementEBMLDocTypeReadVersion: "EBMLDocTypeReadVersion",
ElementCRC32: "CRC32",
ElementVoid: "Void",
ElementSegment: "Segment",
ElementSeekHead: "SeekHead",
ElementSeek: "Seek",
ElementSeekID: "SeekID",
ElementSeekPosition: "SeekPosition",
ElementInfo: "Info",
ElementSegmentUID: "SegmentUID",
ElementSegmentFilename: "SegmentFilename",
ElementPrevUID: "PrevUID",
ElementPrevFilename: "PrevFilename",
ElementNextUID: "NextUID",
ElementNextFilename: "NextFilename",
ElementSegmentFamily: "SegmentFamily",
ElementChapterTranslate: "ChapterTranslate",
ElementChapterTranslateEditionUID: "ChapterTranslateEditionUID",
ElementChapterTranslateCodec: "ChapterTranslateCodec",
ElementChapterTranslateID: "ChapterTranslateID",
ElementTimestampScale: "TimestampScale",
ElementDuration: "Duration",
ElementDateUTC: "DateUTC",
ElementTitle: "Title",
ElementMuxingApp: "MuxingApp",
ElementWritingApp: "WritingApp",
ElementCluster: "Cluster",
ElementTimestamp: "Timestamp",
ElementSilentTracks: "SilentTracks",
ElementSilentTrackNumber: "SilentTrackNumber",
ElementPosition: "Position",
ElementPrevSize: "PrevSize",
ElementSimpleBlock: "SimpleBlock",
ElementBlockGroup: "BlockGroup",
ElementBlock: "Block",
ElementBlockAdditions: "BlockAdditions",
ElementBlockMore: "BlockMore",
ElementBlockAddID: "BlockAddID",
ElementBlockAdditional: "BlockAdditional",
ElementBlockDuration: "BlockDuration",
ElementReferencePriority: "ReferencePriority",
ElementReferenceBlock: "ReferenceBlock",
ElementCodecState: "CodecState",
ElementDiscardPadding: "DiscardPadding",
ElementSlices: "Slices",
ElementTimeSlice: "TimeSlice",
ElementLaceNumber: "LaceNumber",
ElementTracks: "Tracks",
ElementTrackEntry: "TrackEntry",
ElementTrackNumber: "TrackNumber",
ElementTrackUID: "TrackUID",
ElementTrackType: "TrackType",
ElementFlagEnabled: "FlagEnabled",
ElementFlagDefault: "FlagDefault",
ElementFlagForced: "FlagForced",
ElementFlagHearingImpaired: "FlagHearingImpaired",
ElementFlagVisualImpaired: "FlagVisualImpaired",
ElementFlagTextDescriptions: "FlagTextDescriptions",
ElementFlagOriginal: "FlagOriginal",
ElementFlagCommentary: "FlagCommentary",
ElementFlagLacing: "FlagLacing",
ElementMinCache: "MinCache",
ElementMaxCache: "MaxCache",
ElementDefaultDuration: "DefaultDuration",
ElementDefaultDecodedFieldDuration: "DefaultDecodedFieldDuration",
ElementTrackTimestampScale: "TrackTimestampScale",
ElementMaxBlockAdditionID: "MaxBlockAdditionID",
ElementBlockAdditionMapping: "BlockAdditionMapping",
ElementBlockAddIDValue: "BlockAddIDValue",
ElementBlockAddIDName: "BlockAddIDName",
ElementBlockAddIDType: "BlockAddIDType",
ElementBlockAddIDExtraData: "BlockAddIDExtraData",
ElementName: "Name",
ElementLanguage: "Language",
ElementLanguageIETF: "LanguageIETF",
ElementCodecID: "CodecID",
ElementCodecPrivate: "CodecPrivate",
ElementCodecName: "CodecName",
ElementAttachmentLink: "AttachmentLink",
ElementCodecDecodeAll: "CodecDecodeAll",
ElementTrackOverlay: "TrackOverlay",
ElementCodecDelay: "CodecDelay",
ElementSeekPreRoll: "SeekPreRoll",
ElementTrackTranslate: "TrackTranslate",
ElementTrackTranslateEditionUID: "TrackTranslateEditionUID",
ElementTrackTranslateCodec: "TrackTranslateCodec",
ElementTrackTranslateTrackID: "TrackTranslateTrackID",
ElementVideo: "Video",
ElementFlagInterlaced: "FlagInterlaced",
ElementFieldOrder: "FieldOrder",
ElementStereoMode: "StereoMode",
ElementAlphaMode: "AlphaMode",
ElementPixelWidth: "PixelWidth",
ElementPixelHeight: "PixelHeight",
ElementPixelCropBottom: "PixelCropBottom",
ElementPixelCropTop: "PixelCropTop",
ElementPixelCropLeft: "PixelCropLeft",
ElementPixelCropRight: "PixelCropRight",
ElementDisplayWidth: "DisplayWidth",
ElementDisplayHeight: "DisplayHeight",
ElementDisplayUnit: "DisplayUnit",
ElementAspectRatioType: "AspectRatioType",
ElementColourSpace: "ColourSpace",
ElementColour: "Colour",
ElementMatrixCoefficients: "MatrixCoefficients",
ElementBitsPerChannel: "BitsPerChannel",
ElementChromaSubsamplingHorz: "ChromaSubsamplingHorz",
ElementChromaSubsamplingVert: "ChromaSubsamplingVert",
ElementCbSubsamplingHorz: "CbSubsamplingHorz",
ElementCbSubsamplingVert: "CbSubsamplingVert",
ElementChromaSitingHorz: "ChromaSitingHorz",
ElementChromaSitingVert: "ChromaSitingVert",
ElementRange: "Range",
ElementTransferCharacteristics: "TransferCharacteristics",
ElementPrimaries: "Primaries",
ElementMaxCLL: "MaxCLL",
ElementMaxFALL: "MaxFALL",
ElementMasteringMetadata: "MasteringMetadata",
ElementPrimaryRChromaticityX: "PrimaryRChromaticityX",
ElementPrimaryRChromaticityY: "PrimaryRChromaticityY",
ElementPrimaryGChromaticityX: "PrimaryGChromaticityX",
ElementPrimaryGChromaticityY: "PrimaryGChromaticityY",
ElementPrimaryBChromaticityX: "PrimaryBChromaticityX",
ElementPrimaryBChromaticityY: "PrimaryBChromaticityY",
ElementWhitePointChromaticityX: "WhitePointChromaticityX",
ElementWhitePointChromaticityY: "WhitePointChromaticityY",
ElementLuminanceMax: "LuminanceMax",
ElementLuminanceMin: "LuminanceMin",
ElementProjection: "Projection",
ElementProjectionType: "ProjectionType",
ElementProjectionPrivate: "ProjectionPrivate",
ElementProjectionPoseYaw: "ProjectionPoseYaw",
ElementProjectionPosePitch: "ProjectionPosePitch",
ElementProjectionPoseRoll: "ProjectionPoseRoll",
ElementAudio: "Audio",
ElementSamplingFrequency: "SamplingFrequency",
ElementOutputSamplingFrequency: "OutputSamplingFrequency",
ElementChannels: "Channels",
ElementBitDepth: "BitDepth",
ElementTrackOperation: "TrackOperation",
ElementTrackCombinePlanes: "TrackCombinePlanes",
ElementTrackPlane: "TrackPlane",
ElementTrackPlaneUID: "TrackPlaneUID",
ElementTrackPlaneType: "TrackPlaneType",
ElementTrackJoinBlocks: "TrackJoinBlocks",
ElementTrackJoinUID: "TrackJoinUID",
ElementContentEncodings: "ContentEncodings",
ElementContentEncoding: "ContentEncoding",
ElementContentEncodingOrder: "ContentEncodingOrder",
ElementContentEncodingScope: "ContentEncodingScope",
ElementContentEncodingType: "ContentEncodingType",
ElementContentCompression: "ContentCompression",
ElementContentCompAlgo: "ContentCompAlgo",
ElementContentCompSettings: "ContentCompSettings",
ElementContentEncryption: "ContentEncryption",
ElementContentEncAlgo: "ContentEncAlgo",
ElementContentEncKeyID: "ContentEncKeyID",
ElementContentEncAESSettings: "ContentEncAESSettings",
ElementAESSettingsCipherMode: "AESSettingsCipherMode",
ElementContentSignature: "ContentSignature",
ElementContentSigKeyID: "ContentSigKeyID",
ElementContentSigAlgo: "ContentSigAlgo",
ElementContentSigHashAlgo: "ContentSigHashAlgo",
ElementCues: "Cues",
ElementCuePoint: "CuePoint",
ElementCueTime: "CueTime",
ElementCueTrackPositions: "CueTrackPositions",
ElementCueTrack: "CueTrack",
ElementCueClusterPosition: "CueClusterPosition",
ElementCueRelativePosition: "CueRelativePosition",
ElementCueDuration: "CueDuration",
ElementCueBlockNumber: "CueBlockNumber",
ElementCueCodecState: "CueCodecState",
ElementCueReference: "CueReference",
ElementCueRefTime: "CueRefTime",
ElementAttachments: "Attachments",
ElementAttachedFile: "AttachedFile",
ElementFileDescription: "FileDescription",
ElementFileName: "FileName",
ElementFileMimeType: "FileMimeType",
ElementFileData: "FileData",
ElementFileUID: "FileUID",
ElementChapters: "Chapters",
ElementEditionEntry: "EditionEntry",
ElementEditionUID: "EditionUID",
ElementEditionFlagHidden: "EditionFlagHidden",
ElementEditionFlagDefault: "EditionFlagDefault",
ElementEditionFlagOrdered: "EditionFlagOrdered",
ElementChapterAtom: "ChapterAtom",
ElementChapterUID: "ChapterUID",
ElementChapterStringUID: "ChapterStringUID",
ElementChapterTimeStart: "ChapterTimeStart",
ElementChapterTimeEnd: "ChapterTimeEnd",
ElementChapterFlagHidden: "ChapterFlagHidden",
ElementChapterFlagEnabled: "ChapterFlagEnabled",
ElementChapterSegmentUID: "ChapterSegmentUID",
ElementChapterSegmentEditionUID: "ChapterSegmentEditionUID",
ElementChapterPhysicalEquiv: "ChapterPhysicalEquiv",
ElementChapterTrack: "ChapterTrack",
ElementChapterTrackUID: "ChapterTrackUID",
ElementChapterDisplay: "ChapterDisplay",
ElementChapString: "ChapString",
ElementChapLanguage: "ChapLanguage",
ElementChapLanguageIETF: "ChapLanguageIETF",
ElementChapCountry: "ChapCountry",
ElementChapProcess: "ChapProcess",
ElementChapProcessCodecID: "ChapProcessCodecID",
ElementChapProcessPrivate: "ChapProcessPrivate",
ElementChapProcessCommand: "ChapProcessCommand",
ElementChapProcessTime: "ChapProcessTime",
ElementChapProcessData: "ChapProcessData",
ElementTags: "Tags",
ElementTag: "Tag",
ElementTargets: "Targets",
ElementTargetTypeValue: "TargetTypeValue",
ElementTargetType: "TargetType",
ElementTagTrackUID: "TagTrackUID",
ElementTagEditionUID: "TagEditionUID",
ElementTagChapterUID: "TagChapterUID",
ElementTagAttachmentUID: "TagAttachmentUID",
ElementSimpleTag: "SimpleTag",
ElementTagName: "TagName",
ElementTagLanguage: "TagLanguage",
ElementTagLanguageIETF: "TagLanguageIETF",
ElementTagDefault: "TagDefault",
ElementTagString: "TagString",
ElementTagBinary: "TagBinary",
}
func (i ElementType) String() string {
if name, ok := elementTypeName[i]; ok {
return name
}
return "unknown"
}
// Bytes returns []byte representation of the element ID.
func (i ElementType) Bytes() []byte {
return table[i].b
}
// DataType returns DataType of the element.
func (i ElementType) DataType() DataType {
return table[i].t
}
var elementNameType map[string]ElementType
// ElementTypeFromString converts string to ElementType.
func ElementTypeFromString(s string) (ElementType, error) {
if t, ok := elementNameType[s]; ok {
return t, nil
}
return 0, wrapErrorf(ErrUnknownElementName, "parsing \"%s\"", s)
}
func init() {
elementNameType = make(map[string]ElementType)
for t, name := range elementTypeName {
elementNameType[name] = t
}
// WebM aliases
elementNameType["TimecodeScale"] = ElementTimecodeScale
elementNameType["Timecode"] = ElementTimecode
}
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

Search