diff --git a/src/trx-client/src/audio_bridge.rs b/src/trx-client/src/audio_bridge.rs index f0f67cb..99602d5 100644 --- a/src/trx-client/src/audio_bridge.rs +++ b/src/trx-client/src/audio_bridge.rs @@ -232,7 +232,7 @@ fn run_capture( }; let mut encoder = opus::Encoder::new(info.sample_rate, opus_channels, opus::Application::Audio)?; - encoder.set_bitrate(opus::Bitrate::Bits(24_000))?; + encoder.set_bitrate(opus::Bitrate::Bits(cfg.bitrate_bps as i32))?; let mut opus_buf = vec![0u8; 4096]; let (sample_tx, sample_rx) = std_mpsc::sync_channel::>(64); @@ -251,8 +251,9 @@ fn run_capture( stream.play()?; info!( - "Audio bridge capture active on '{}'", - device.name().unwrap_or_else(|_| "unknown".to_string()) + "Audio bridge capture active on '{}' ({} bps)", + device.name().unwrap_or_else(|_| "unknown".to_string()), + cfg.bitrate_bps ); let tx_gain = cfg.tx_gain.max(0.0); diff --git a/src/trx-client/src/config.rs b/src/trx-client/src/config.rs index e1b9cad..ea6bd68 100644 --- a/src/trx-client/src/config.rs +++ b/src/trx-client/src/config.rs @@ -132,6 +132,8 @@ pub struct AudioBridgeConfig { pub rx_output_device: Option, /// Local input device for TX uplink capture. pub tx_input_device: Option, + /// Opus bitrate in bits per second for TX uplink capture. + pub bitrate_bps: u32, /// RX playback gain multiplier. pub rx_gain: f32, /// TX capture gain multiplier. @@ -144,6 +146,7 @@ impl Default for AudioBridgeConfig { enabled: false, rx_output_device: None, tx_input_device: None, + bitrate_bps: 192000, rx_gain: 1.0, tx_gain: 1.0, } @@ -367,6 +370,9 @@ impl ClientConfig { { return Err("[frontends.audio.bridge].tx_gain must be finite and >= 0".to_string()); } + if self.frontends.audio.bridge.bitrate_bps == 0 { + return Err("[frontends.audio.bridge].bitrate_bps must be > 0".to_string()); + } validate_tokens( "[frontends.http_json.auth].tokens", &self.frontends.http_json.auth.tokens, diff --git a/src/trx-server/src/config.rs b/src/trx-server/src/config.rs index e50c48c..b1c9706 100644 --- a/src/trx-server/src/config.rs +++ b/src/trx-server/src/config.rs @@ -267,7 +267,7 @@ impl Default for AudioConfig { sample_rate: 48000, channels: 1, frame_duration_ms: 20, - bitrate_bps: 24000, + bitrate_bps: 192000, } } }