use std::sync::Arc;
use crate::transport::TransportParams;
use super::codec::Denoiser48k;
pub type DenoiserFactory = Arc<dyn Fn() -> Box<dyn Denoiser48k> + Send + Sync>;
#[derive(Clone)]
pub struct VaniWebRTCParams {
pub transport: TransportParams,
pub ice_servers: Vec<String>,
pub opus_max_avg_bitrate: u32,
pub opus_fullband: bool,
pub opus_dtx: bool,
pub denoiser_factory: Option<DenoiserFactory>,
}
impl Default for VaniWebRTCParams {
fn default() -> Self {
Self {
transport: TransportParams {
audio_in_enabled: true,
audio_in_sample_rate: Some(16_000),
audio_in_channels: 1,
audio_in_passthrough: true,
audio_in_stream_on_start: true,
audio_out_enabled: true,
..TransportParams::default()
},
ice_servers: vec!["stun:stun.l.google.com:19302".to_string()],
opus_max_avg_bitrate: 510_000,
opus_fullband: true,
opus_dtx: false,
denoiser_factory: None,
}
}
}