Documentation
¶
Index ¶
- Constants
- func SizeNonSymmetricBits(val, numValues uint32) int
- type BitStreamReader
- func (b *BitStreamReader) BytesRead() int
- func (b *BitStreamReader) Invalidate()
- func (b *BitStreamReader) Ok() bool
- func (b *BitStreamReader) ReadBits(bits int) (uint64, error)
- func (b *BitStreamReader) ReadBool() (bool, error)
- func (b *BitStreamReader) ReadNonSymmetric(numValues uint32) (uint32, error)
- func (b *BitStreamReader) RemainingBits() int
- type BitStreamWriter
- type DecodeTargetIndication
- type DependencyDescriptor
- type DependencyDescriptorExtension
- type DependencyDescriptorReader
- type DependencyDescriptorWriter
- type FrameDependencyStructure
- type FrameDependencyTemplate
- type RenderResolution
- type TemplateMatch
Constants ¶
const ( MaxSpatialIds = 4 MaxTemporalIds = 8 MaxDecodeTargets = 32 MaxTemplates = 64 AllChainsAreActive = uint32(0) ExtensionUrl = "https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension" )
Variables ¶
This section is empty.
Functions ¶
func SizeNonSymmetricBits ¶
Types ¶
type BitStreamReader ¶
type BitStreamReader struct {
// contains filtered or unexported fields
}
func NewBitStreamReader ¶
func NewBitStreamReader(buf []byte) *BitStreamReader
func (*BitStreamReader) BytesRead ¶ added in v1.4.0
func (b *BitStreamReader) BytesRead() int
func (*BitStreamReader) Invalidate ¶
func (b *BitStreamReader) Invalidate()
func (*BitStreamReader) Ok ¶
func (b *BitStreamReader) Ok() bool
func (*BitStreamReader) ReadBits ¶
func (b *BitStreamReader) ReadBits(bits int) (uint64, error)
Reads `bits` from the bitstream. `bits` must be in range [0, 64]. Returns an unsigned integer in range [0, 2^bits - 1]. On failure sets `BitstreamReader` into the failure state and returns 0.
func (*BitStreamReader) ReadBool ¶
func (b *BitStreamReader) ReadBool() (bool, error)
func (*BitStreamReader) ReadNonSymmetric ¶
func (b *BitStreamReader) ReadNonSymmetric(numValues uint32) (uint32, error)
Reads value in range [0, `num_values` - 1]. This encoding is similar to ReadBits(val, Ceil(Log2(num_values)), but reduces wastage incurred when encoding non-power of two value ranges Non symmetric values are encoded as: 1) n = bit_width(num_values) 2) k = (1 << n) - num_values Value v in range [0, k - 1] is encoded in (n-1) bits. Value v in range [k, num_values - 1] is encoded as (v+k) in n bits. https://aomediacodec.github.io/av1-spec/#nsn
func (*BitStreamReader) RemainingBits ¶ added in v1.4.0
func (b *BitStreamReader) RemainingBits() int
type BitStreamWriter ¶
type BitStreamWriter struct {
// contains filtered or unexported fields
}
func NewBitStreamWriter ¶
func NewBitStreamWriter(buf []byte) *BitStreamWriter
func (*BitStreamWriter) RemainingBits ¶
func (w *BitStreamWriter) RemainingBits() int
func (*BitStreamWriter) WriteBits ¶
func (w *BitStreamWriter) WriteBits(val uint64, bitCount int) error
func (*BitStreamWriter) WriteNonSymmetric ¶
func (w *BitStreamWriter) WriteNonSymmetric(val, numValues uint32) error
type DecodeTargetIndication ¶
type DecodeTargetIndication int
Relationship of a frame to a Decode target.
const ( DecodeTargetNotPresent DecodeTargetIndication = iota // DecodeTargetInfo symbol '-' DecodeTargetDiscardable // DecodeTargetInfo symbol 'D' DecodeTargetSwitch // DecodeTargetInfo symbol 'S' DecodeTargetRequired // DecodeTargetInfo symbol 'R' )
func (DecodeTargetIndication) String ¶
func (i DecodeTargetIndication) String() string
type DependencyDescriptor ¶
type DependencyDescriptor struct {
FirstPacketInFrame bool // = true;
LastPacketInFrame bool // = true;
FrameNumber uint16
FrameDependencies *FrameDependencyTemplate
Resolution *RenderResolution
ActiveDecodeTargetsBitmask *uint32
AttachedStructure *FrameDependencyStructure
}
func (*DependencyDescriptor) MarshalSize ¶
func (d *DependencyDescriptor) MarshalSize() (int, error)
func (*DependencyDescriptor) MarshalSizeWithActiveChains ¶
func (d *DependencyDescriptor) MarshalSizeWithActiveChains(activeChains uint32) (int, error)
func (*DependencyDescriptor) String ¶
func (d *DependencyDescriptor) String() string
type DependencyDescriptorExtension ¶
type DependencyDescriptorExtension struct {
Descriptor *DependencyDescriptor
Structure *FrameDependencyStructure
}
func (*DependencyDescriptorExtension) Marshal ¶
func (d *DependencyDescriptorExtension) Marshal() ([]byte, error)
func (*DependencyDescriptorExtension) MarshalWithActiveChains ¶
func (d *DependencyDescriptorExtension) MarshalWithActiveChains(activeChains uint32) ([]byte, error)
type DependencyDescriptorReader ¶
type DependencyDescriptorReader struct {
// contains filtered or unexported fields
}
func NewDependencyDescriptorReader ¶
func NewDependencyDescriptorReader(buf []byte, structure *FrameDependencyStructure, descriptor *DependencyDescriptor) *DependencyDescriptorReader
func (*DependencyDescriptorReader) Parse ¶
func (r *DependencyDescriptorReader) Parse() (int, error)
type DependencyDescriptorWriter ¶
type DependencyDescriptorWriter struct {
// contains filtered or unexported fields
}
func NewDependencyDescriptorWriter ¶
func NewDependencyDescriptorWriter(buf []byte, structure *FrameDependencyStructure, activeChains uint32, descriptor *DependencyDescriptor) (*DependencyDescriptorWriter, error)
func (*DependencyDescriptorWriter) ResetBuf ¶
func (w *DependencyDescriptorWriter) ResetBuf(buf []byte)
func (*DependencyDescriptorWriter) ValueSizeBits ¶
func (w *DependencyDescriptorWriter) ValueSizeBits() int
func (*DependencyDescriptorWriter) Write ¶
func (w *DependencyDescriptorWriter) Write() error
type FrameDependencyStructure ¶
type FrameDependencyStructure struct {
StructureId int
NumDecodeTargets int
NumChains int
// If chains are used (num_chains > 0), maps decode target index into index of
// the chain protecting that target.
DecodeTargetProtectedByChain []int
Resolutions []RenderResolution
Templates []*FrameDependencyTemplate
}
func (*FrameDependencyStructure) String ¶
func (f *FrameDependencyStructure) String() string
type FrameDependencyTemplate ¶
type FrameDependencyTemplate struct {
SpatialId int
TemporalId int
DecodeTargetIndications []DecodeTargetIndication
FrameDiffs []int
ChainDiffs []int
}
func (*FrameDependencyTemplate) Clone ¶
func (t *FrameDependencyTemplate) Clone() *FrameDependencyTemplate