#[non_exhaustive]pub enum SampleFormat {
I8,
I16,
I24,
I32,
I64,
U8,
U16,
U32,
U64,
F32,
F64,
}
Expand description
Format that each sample has. Usually, this corresponds to the sampling
depth of the audio source. For example, 16 bit quantized samples can be
encoded in i16
or u16
. Note that the sampling depth is not directly
visible for formats where is_float
is true.
Also note that the backend must support the encoding of the quantized
samples in the given format, as there is no generic transformation from one
format into the other done inside the frontend-library code. You can query
the supported formats by using supported_input_configs
.
A good rule of thumb is to use SampleFormat::I16
as this covers typical
music (WAV, MP3) as well as typical audio input devices on most platforms,
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
I8
i8
with a valid range of i8::MIN..=i8::MAX
with 0
being the origin.
I16
i16
with a valid range of i16::MIN..=i16::MAX
with 0
being the origin.
I24
I24
with a valid range of ‘-(1 << 23)..(1 << 23)’ with 0
being the origin
I32
i32
with a valid range of i32::MIN..=i32::MAX
with 0
being the origin.
I64
i64
with a valid range of i64::MIN..=i64::MAX
with 0
being the origin.
U8
u8
with a valid range of u8::MIN..=u8::MAX
with 1 << 7 == 128
being the origin.
U16
u16
with a valid range of u16::MIN..=u16::MAX
with 1 << 15 == 32768
being the origin.
U32
U24
with a valid range of ‘0..16777216’ with 1 << 23 == 8388608
being the origin
u32
with a valid range of u32::MIN..=u32::MAX
with 1 << 31
being the origin.
U64
U48
with a valid range of ‘0..(1 << 48)’ with 1 << 47
being the origin
u64
with a valid range of u64::MIN..=u64::MAX
with 1 << 63
being the origin.
F32
f32
with a valid range of -1.0..1.0
with 0.0
being the origin.
F64
f64
with a valid range of -1.0..1.0
with 0.0
being the origin.
Implementations§
Source§impl SampleFormat
impl SampleFormat
Sourcepub fn sample_size(&self) -> usize
pub fn sample_size(&self) -> usize
Returns the size in bytes of a sample of this format. This corresponds to the internal size of the rust primitives that are used to represent this sample format (e.g., i24 has size of i32).
pub fn is_int(&self) -> bool
pub fn is_uint(&self) -> bool
pub fn is_float(&self) -> bool
Trait Implementations§
Source§impl Clone for SampleFormat
impl Clone for SampleFormat
Source§fn clone(&self) -> SampleFormat
fn clone(&self) -> SampleFormat
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more