pub struct Audio {
pub sample_rate: u32,
pub channels: Vec<Vec<f64>>,
pub bits_per_sample: u16,
pub sample_format: SampleFormat,
pub channel_mask: Option<ChannelMask>,
}Expand description
In-memory audio: one Vec<f64> per channel, plus format metadata.
Fields§
§sample_rate: u32§channels: Vec<Vec<f64>>§bits_per_sample: u16§sample_format: SampleFormat§channel_mask: Option<ChannelMask>WAVE speaker mask, when the source container supplied one.
Implementations§
Source§impl Audio
impl Audio
pub fn channels(&self) -> usize
pub fn frames(&self) -> usize
Sourcepub fn sanitize_samples(&mut self) -> usize
pub fn sanitize_samples(&mut self) -> usize
Sanitize all in-memory samples in place.
Finite values outside the normalized PCM range are clipped and NaN or infinity is replaced by silence. The return value is the number of samples changed, which can be used for diagnostics without requiring a second pass.
Sourcepub fn channel_layout(&self) -> ChannelLayout
pub fn channel_layout(&self) -> ChannelLayout
Return the conventional layout for the planar channel order.
The channel count is always preserved by denoize’s lossless paths. A file-specific channel mask, when present, is additional metadata and does not change the PCM channel order inferred here.
Sourcepub fn effective_channel_mask(&self) -> Option<ChannelMask>
pub fn effective_channel_mask(&self) -> Option<ChannelMask>
Return the source mask, or the conventional mask for a known layout.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Audio
impl RefUnwindSafe for Audio
impl Send for Audio
impl Sync for Audio
impl Unpin for Audio
impl UnsafeUnpin for Audio
impl UnwindSafe for Audio
Blanket Implementations§
impl<T> Any for Twhere
T: Any,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> CloneAny for T
impl<T> CloneAny for T
impl<T> CloneAnySend for T
impl<T> CloneAnySendSync for T
impl<T> CloneAnySync for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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