pub struct ResamplingChannelConfig {
pub latency_seconds: f64,
pub capacity_seconds: f64,
pub overflow_autocorrect_percent_threshold: Option<f64>,
pub underflow_autocorrect_percent_threshold: Option<f64>,
pub quality: ResampleQuality,
pub subtract_resampler_delay: bool,
}
Expand description
Additional options for a resampling channel.
Fields§
§latency_seconds: f64
The amount of latency added in seconds between the input stream and the output stream. If this value is too small, then underflows may occur.
The default value is 0.15
(150 ms).
capacity_seconds: f64
The capacity of the channel in seconds. If this is too small, then
overflows may occur. This should be at least twice as large as
latency_seconds
.
Note, the actual capacity may be slightly smaller due to how the internal sampler processes in chunks.
The default value is 0.4
(400 ms).
overflow_autocorrect_percent_threshold: Option<f64>
If the number of occupied samples in the channel is greater than or equal to
(latency_seconds + percent * (capacity_seconds - latency_seconds)
), then discard the
number of samples needed to bring the number of occupied seconds back down to
ResamplingChannelConfig::latency_seconds
. This is used to avoid excessive
overflows and reduce the percieved audio glitchiness.
The percentage is a value in the range [0.0, 100.0]
.
Set to None
to disable this autocorrecting behavior. If the producer end is being
used in a non-realtime context, then this should be set to None
.
By default this is set to Some(75.0)
.
underflow_autocorrect_percent_threshold: Option<f64>
If the number of occupied samples in the channel is below or equal to the given
percentage of ResamplingChannelConfig::latency_seconds
, then insert the number of
zero frames needed to bring the number of occupied samples back up to
ResamplingChannelConfig::latency_seconds
. This is used to avoid excessive underflows
and reduce the percieved audio glitchiness.
The percentage is a value in the range [0.0, 100.0]
.
Set to None
to disable this autocorrecting behavior. If the consumer end is being
used in a non-realtime context, then this should be set to None
.
By default this is set to Some(25.0)
.
quality: ResampleQuality
The quality of the resampling alrgorithm to use if needed.
The default value is ResampleQuality::Normal
.
subtract_resampler_delay: bool
If true
, then the delay of the internal resampler (if used) will be
subtracted from the latency_seconds
value to keep the perceived
latency consistent.
The default value is true
.
Trait Implementations§
Source§impl Clone for ResamplingChannelConfig
impl Clone for ResamplingChannelConfig
Source§fn clone(&self) -> ResamplingChannelConfig
fn clone(&self) -> ResamplingChannelConfig
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ResamplingChannelConfig
impl Debug for ResamplingChannelConfig
Source§impl Default for ResamplingChannelConfig
impl Default for ResamplingChannelConfig
Source§impl PartialEq for ResamplingChannelConfig
impl PartialEq for ResamplingChannelConfig
Source§fn eq(&self, other: &ResamplingChannelConfig) -> bool
fn eq(&self, other: &ResamplingChannelConfig) -> bool
self
and other
values to be equal, and is used by ==
.