[fix](trx-server): duplicate mono SDR frames for stereo opus
Signed-off-by: Stan Grams <sjg@haxx.space> Co-authored-by: OpenAI Codex <codex@openai.com> Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
@@ -517,8 +517,20 @@ fn spawn_rig_audio_stack(
|
|||||||
loop {
|
loop {
|
||||||
match sdr_rx.recv().await {
|
match sdr_rx.recv().await {
|
||||||
Ok(frame) => {
|
Ok(frame) => {
|
||||||
let _ = pcm_tx_clone.send(frame.clone());
|
let pcm_frame = match sdr_channels {
|
||||||
match encoder.encode_float(&frame, &mut opus_buf) {
|
1 => frame,
|
||||||
|
2 => {
|
||||||
|
let mut stereo = Vec::with_capacity(frame.len() * 2);
|
||||||
|
for sample in frame {
|
||||||
|
stereo.push(sample);
|
||||||
|
stereo.push(sample);
|
||||||
|
}
|
||||||
|
stereo
|
||||||
|
}
|
||||||
|
_ => unreachable!("validated above"),
|
||||||
|
};
|
||||||
|
let _ = pcm_tx_clone.send(pcm_frame.clone());
|
||||||
|
match encoder.encode_float(&pcm_frame, &mut opus_buf) {
|
||||||
Ok(len) => {
|
Ok(len) => {
|
||||||
let pkt = Bytes::copy_from_slice(&opus_buf[..len]);
|
let pkt = Bytes::copy_from_slice(&opus_buf[..len]);
|
||||||
let _ = rx_audio_tx_sdr.send(pkt);
|
let _ = rx_audio_tx_sdr.send(pkt);
|
||||||
|
|||||||
Reference in New Issue
Block a user