#[non_exhaustive]pub struct Config {
pub input: Input,
pub codec: Codec,
pub sample_rate: Option<u32>,
pub channels: Option<u32>,
pub bitrate: Option<u32>,
pub fec: bool,
pub dtx: bool,
pub frame_duration: Duration,
}Expand description
Encoder configuration: the input PCM layout plus the codec knobs.
The bring-your-own-PCM counterpart to Options, which
publish_capture uses when the layout comes from the capture source instead
of the caller.
#[non_exhaustive]: build via Config::new and set the optional fields,
so future knobs don’t break callers.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.input: InputThe PCM layout fed to the encoder.
codec: CodecOutput codec. Defaults to Codec::Opus.
sample_rate: Option<u32>Sample rate the codec runs at. None snaps Input::sample_rate up to
the nearest rate the codec supports, resampling if that moved it.
channels: Option<u32>Channel count the codec runs at. None matches Input::channels;
anything else is rejected, since remapping isn’t implemented.
bitrate: Option<u32>Bitrate in bits per second. None lets Opus pick. PCM requires None
because its bitrate is fixed by the sample rate and channel count.
fec: boolEnable Opus in-band forward error correction.
dtx: boolEnable Opus discontinuous transmission during silence.
frame_duration: DurationEncoded frame duration. Opus accepts 2.5 / 5 / 10 / 20 / 40 / 60 ms. PCM accepts any duration containing a whole number of samples.