fixed_resample

Struct ResamplingCons

Source
pub struct ResamplingCons<T: Sample> { /* private fields */ }
Expand description

The consumer end of a realtime-safe spsc channel for sending samples across streams.

If the input and output samples rates differ, then this will automatically resample the input stream to match the output stream. If the sample rates match, then no resampling will occur.

Internally this uses the ringbuf crate.

Implementations§

Source§

impl<T: Sample> ResamplingCons<T>

Source

pub fn num_channels(&self) -> NonZeroUsize

The number of channels configured for this stream.

Source

pub fn max_block_frames(&self) -> usize

The maximum number of frames that can be read in a single call to ResamplingCons::read.

Source

pub fn is_resampling(&self) -> bool

Returns true if resampling is occurring, false if the input and output sample rates match.

Source

pub fn output_delay(&self) -> usize

Get the delay of the internal resampler, reported as a number of output frames.

If no resampler is active, then this will return 0.

Source

pub fn read(&mut self, output: &mut [T]) -> ReadStatus

Read from the channel and store the results into the output buffer in interleaved format.

§Panics

Panics if the number of frames in output is greater than ResamplingCons::max_block_frames.

Auto Trait Implementations§

§

impl<T> !Freeze for ResamplingCons<T>

§

impl<T> !RefUnwindSafe for ResamplingCons<T>

§

impl<T> Send for ResamplingCons<T>

§

impl<T> !Sync for ResamplingCons<T>

§

impl<T> Unpin for ResamplingCons<T>
where T: Unpin,

§

impl<T> !UnwindSafe for ResamplingCons<T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.