Struct CodebookBuilder
pub struct CodebookBuilder { /* private fields */ }
dep_symphonia
only.Expand description
CodebookBuilder
generates a Codebook
using a provided codebook specification and
description.
Implementations§
§impl CodebookBuilder
impl CodebookBuilder
pub fn new(bit_order: BitOrder) -> CodebookBuilder
pub fn new(bit_order: BitOrder) -> CodebookBuilder
Instantiates a new CodebookBuilder
.
The bit_order
parameter specifies if the codeword bits should be reversed when
constructing the codebook. If the BitReader
or BitStream
reading the constructed
codebook reads bits in an order different from the order of the provided codewords,
then this option can be used to make them compatible.
pub fn new_sparse(bit_order: BitOrder) -> CodebookBuilder
pub fn new_sparse(bit_order: BitOrder) -> CodebookBuilder
Instantiates a new CodebookBuilder
for sparse codebooks.
A sparse codebook is one in which not all codewords are valid. These invalid codewords are effectively “unused” and have no value. Therefore, it is illegal for a bitstream to contain the codeword bit pattern.
Unused codewords are marked by having a length of 0.
pub fn bits_per_read(&mut self, max_bits_per_read: u8) -> &mut CodebookBuilder
pub fn bits_per_read(&mut self, max_bits_per_read: u8) -> &mut CodebookBuilder
Specify the maximum number of bits that should be consumed from the source at a time.
This value must be within the range 1 <= max_bits_per_read
<= 16. Values outside of
this range will cause this function to panic. If not provided, a value will be
automatically chosen.
pub fn make<E>(
&mut self,
code_words: &[u32],
code_lens: &[u8],
values: &[<E as CodebookEntry>::ValueType],
) -> Result<Codebook<E>, Error> ⓘwhere
E: CodebookEntry,
pub fn make<E>(
&mut self,
code_words: &[u32],
code_lens: &[u8],
values: &[<E as CodebookEntry>::ValueType],
) -> Result<Codebook<E>, Error> ⓘwhere
E: CodebookEntry,
Construct a Codebook
using the given codewords, their respective lengths, and values.
This function may fail if the provided codewords do not form a complete VLC tree, or if
the CodebookEntry
is undersized.
This function will panic if the number of code words, code lengths, and values differ.
Auto Trait Implementations§
impl Freeze for CodebookBuilder
impl RefUnwindSafe for CodebookBuilder
impl Send for CodebookBuilder
impl Sync for CodebookBuilder
impl Unpin for CodebookBuilder
impl UnwindSafe for CodebookBuilder
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> ByteSized for T
impl<T> ByteSized for T
Source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
Source§fn byte_align(&self) -> usize ⓘ
fn byte_align(&self) -> usize ⓘ
Source§fn ptr_size_ratio(&self) -> [usize; 2]
fn ptr_size_ratio(&self) -> [usize; 2]
Source§impl<T, R> Chain<R> for Twhere
T: ?Sized,
impl<T, R> Chain<R> for Twhere
T: ?Sized,
Source§impl<T> ExtAny for T
impl<T> ExtAny for T
Source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
Source§impl<T> ExtMem for Twhere
T: ?Sized,
impl<T> ExtMem for Twhere
T: ?Sized,
Source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
Source§fn mem_align_of_val(&self) -> usize ⓘ
fn mem_align_of_val(&self) -> usize ⓘ
Source§fn mem_size_of_val(&self) -> usize ⓘ
fn mem_size_of_val(&self) -> usize ⓘ
Source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
true
if dropping values of this type matters. Read moreSource§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where
Self: Sized,
self
without running its destructor. Read moreSource§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
Source§unsafe fn mem_zeroed<T>() -> T
unsafe fn mem_zeroed<T>() -> T
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§fn mem_as_bytes(&self) -> &[u8] ⓘ
fn mem_as_bytes(&self) -> &[u8] ⓘ
unsafe_slice
only.§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Hook for T
impl<T> Hook for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError> ⓘ
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError> ⓘ
§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out
indicating that a T
is niched.