Categorygithub.com/at-wat/ebml-go
modulepackage
0.17.1
Repository: https://github.com/at-wat/ebml-go.git
Documentation: pkg.go.dev

# README

ebml-go

GoDoc ci codecov Go Report Card License

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.

# Packages

No description provided by the author
Package mkv provides the Matroska multimedia writer.
Package mkvcore provides the core functionality of Matroska/WebM multimedia writer.
Package webm provides the WebM multimedia writer.

# 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.

# Interfaces

Lacer is the interface to read laced frames in Block.
Unlacer is the interface to read laced frames in Block.

# 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.