# README
ebml-go
A pure Go implementation of bi-directional EBML encoder/decoder
EBML (Extensible Binary Meta Language) is a binary and byte-aligned format that was originally developed for the Matroska audio-visual container. See https://matroska.org/ for details.
This package implements EBML Marshaler and Unmarshaler for Go. Currently, commonly used elements of WebM subset is supported.
Usage
Check out the examples placed under ./examples directory.
API is documented using GoDoc.
EBML can be Marshal
-ed and Unmarshal
-ed between tagged struct and binary stream through io.Reader
and io.Writer
.
References
License
This package is licensed under Apache License Version 2.0.
# Functions
ElementTypeFromString converts string to ElementType.
Marshal struct to EBML bytes.
MarshalBlock marshals EBML Block structure.
NewEBMLLacer creates Lacer for EBML laced data.
NewEBMLUnlacer creates Unlacer for EBML laced data.
NewFixedLacer creates Lacer for Fixed laced data.
NewFixedUnlacer creates Unlacer for Fixed laced data.
NewNoLacer creates pass-through Lacer for not laced data.
NewNoUnlacer creates pass-through Unlacer for not laced data.
NewXiphLacer creates Lacer for Xiph laced data.
NewXiphUnlacer creates Unlacer for Xiph laced data.
Unmarshal EBML stream.
UnmarshalBlock unmarshals EBML Block structure.
WithDataSizeLen returns an MarshalOption which sets number of reserved bytes of element data size.
WithElementReadHooks returns an UnmarshalOption which registers element hooks.
WithElementWriteHooks returns an MarshalOption which registers element hooks.
WithIgnoreUnknown returns an UnmarshalOption which makes Unmarshal ignoring unknown element with static length.
# Constants
EBML Element data types.
EBML Element data types.
EBML Element data types.
EBML Element data types.
EBML Element data types.
EBML Element data types.
EBML Element data types.
EBML Element data types.
DateEpochInUnixtime is the Unixtime of EBML date epoch.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
Deprecated: Dropped in v4.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
Deprecated: Dropped in v2.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
WebM aliases.
WebM aliases.
Deprecated: Dropped in v2.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
Deprecated: Dropped in v4.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
EBML Element types.
Type of laced data.
Type of laced data.
Type of laced data.
Type of laced data.
SizeUnknown is the longest unknown size value.
# Variables
ErrEmptyTag means that a tag string has empty item.
ErrFixedLaceUndivisible means that a length of a fixed lacing data is undivisible.
ErrIncompatibleType means that an element is not convertible to a corresponding struct field.
ErrIndefiniteType means that a marshal/unmarshal destination type is not valid.
ErrInvalidElementSize means that an element has inconsistent size.
ErrInvalidFloatSize means that a element size is invalid for float type.
ErrInvalidTag means that an invaild tag is specified.
ErrInvalidType means that a value is not convertible to the element data.
ErrNonStringMapKey is returned if input is map and key is not a string.
ErrOutOfRange means that a value is out of range of the data type.
ErrReadStopped is returned if unmarshaler finished to read element which has stop tag.
ErrTooManyFrames means that a number of frames exceeds the limit.
ErrUnevenFixedLace means that an uneven number of frames are stored in a fixed lacing block.
ErrUnknownElement means that a decoded element is not known.
ErrUnknownElementName means that a element name is not found in the ElementType list.
ErrUnsupportedElement means that a element name is known but unsupported in this version of ebml-go.
ErrUnsupportedElementID means that a value is out of range of EBML encoding.
# Structs
Block represents EBML Block/SimpleBlock element.
Element represents an EBML element.
Error records a failed parsing.
MarshalOptions stores options for marshalling.
UnmarshalOptions stores options for unmarshalling.
# Type aliases
DataType represents EBML Element data type.
ElementType represents EBML Element type.
LacingMode is type of laced data.
MarshalOption configures a MarshalOptions struct.
UnmarshalOption configures a UnmarshalOptions struct.