Struct hound::WavSpec

source ·
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§

source§

impl WavSpec

source

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§

source§

impl Clone for WavSpec

source§

fn clone(&self) -> WavSpec

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for WavSpec

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for WavSpec

source§

fn eq(&self, other: &WavSpec) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for WavSpec

source§

impl Eq for WavSpec

source§

impl StructuralPartialEq for WavSpec

Auto Trait Implementations§

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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>,

§

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.