pub struct WavWriter { /* private fields */ }Expand description
Streaming WAV writer that accepts mono 16 kHz f32 samples and emits 16-bit signed PCM.
Samples are clamped into [-1.0, 1.0] before the cast to i16.
WavWriter::finalize must be called to flush the header; on drop
without finalisation the file is left with an invalid header (size
field unwritten) — the orchestrator therefore always calls
finalize, even on signal-driven shutdown.
Implementations§
Source§impl WavWriter
impl WavWriter
Sourcepub fn create(path: impl AsRef<Path>) -> Result<Self>
pub fn create(path: impl AsRef<Path>) -> Result<Self>
Creates a WAV file at path, with parent directories created if
they do not exist. The header is written eagerly; the size field
is patched up by WavWriter::finalize.
Sourcepub fn write_samples(&mut self, samples: &[f32]) -> Result<()>
pub fn write_samples(&mut self, samples: &[f32]) -> Result<()>
Writes a chunk of mono samples. Values outside [-1.0, 1.0] are
clamped (resampler overshoot near 0 dBFS).
Sourcepub fn samples_written(&self) -> u64
pub fn samples_written(&self) -> u64
Number of samples written so far (not counting any clamped value any differently).
Auto Trait Implementations§
impl Freeze for WavWriter
impl RefUnwindSafe for WavWriter
impl Send for WavWriter
impl Sync for WavWriter
impl Unpin for WavWriter
impl UnsafeUnpin for WavWriter
impl UnwindSafe for WavWriter
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<T> DowncastSync for T
impl<T> DowncastSync for T
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