pub struct WavSpec {
pub channels: u16,
pub sample_rate: u32,
pub bits_per_sample: u16,
pub sample_format: SampleFormat,
}
Expand description
Specifies properties of the audio data.
Fields
channels: u16
The number of channels.
sample_rate: u32
The number of samples per second.
A common value is 44100, this is 44.1 kHz which is used for CD audio.
bits_per_sample: u16
The number of bits per sample.
A common value is 16 bits per sample, which is used for CD audio.
sample_format: SampleFormat
Whether the wav’s samples are float or integer values.
Implementations
sourceimpl WavSpec
impl WavSpec
sourcepub fn into_header_for_infinite_file(self) -> Vec<u8>
pub fn into_header_for_infinite_file(self) -> Vec<u8>
Get “stand-alone” wav header representing infinite or unknown size wav file. Use this if you need to write audio data to non-seekable sinks (like stdout).
Actual samples are supposed to be written using low-level Sample::write
call.
Such wav files are produced e.g. by FFmpeg and have 0xFFFFFFFF
instead of chunk sizes.
Note that such files may be non-standard. Consider using WavWriter
for better API.
Example:
extern crate hound;
use std::io::Write;
let spec = hound::WavSpec {
bits_per_sample: 16,
channels: 1,
sample_format: hound::SampleFormat::Int,
sample_rate: 16000,
};
let v = spec.into_header_for_infinite_file();
let so = std::io::stdout();
let mut so = so.lock();
so.write_all(&v[..]).unwrap();
loop {
for i in 0..126 {
let x : i16 = (i * 256) as i16;
hound::Sample::write(x, &mut so, 16).unwrap();
}
}
Trait Implementations
impl Copy for WavSpec
impl Eq for WavSpec
impl StructuralEq for WavSpec
impl StructuralPartialEq for WavSpec
Auto Trait Implementations
impl RefUnwindSafe for WavSpec
impl Send for WavSpec
impl Sync for WavSpec
impl Unpin for WavSpec
impl UnwindSafe for WavSpec
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more