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

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

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.