pub struct Resampler { /* private fields */ }Expand description
Streaming resampler from an arbitrary input rate to
TARGET_SAMPLE_RATE (16 kHz), mono.
The wrapper buffers input frames until it has enough for one
fixed-size rubato chunk, processes that chunk, and accumulates the
variable-length output. Callers feed mono f32 via Resampler::push
and drain a single tail batch via Resampler::flush at end-of-stream.
At 16 kHz input the resampler is bypassed entirely — input is forwarded to output verbatim, with zero sinc-filter latency.
Implementations§
Source§impl Resampler
impl Resampler
Sourcepub fn new(input_rate: u32) -> Result<Self>
pub fn new(input_rate: u32) -> Result<Self>
Builds a resampler that converts input_rate Hz mono f32 to
16 kHz mono f32. Returns an error if the rate is zero or the
rubato constructor rejects the configuration.
Sourcepub fn input_rate(&self) -> u32
pub fn input_rate(&self) -> u32
The configured input sample rate in Hz.
Sourcepub fn output_rate(&self) -> u32
pub fn output_rate(&self) -> u32
Output sample rate (constant — always TARGET_SAMPLE_RATE).
Auto Trait Implementations§
impl Freeze for Resampler
impl !RefUnwindSafe for Resampler
impl Send for Resampler
impl !Sync for Resampler
impl Unpin for Resampler
impl UnsafeUnpin for Resampler
impl !UnwindSafe for Resampler
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
Converts
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>
Converts
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