separating audio from tcp; separate resampler for every input stream
Continuous integration / Check (push) Successful in 37s
Continuous integration / Test Suite (push) Successful in 33s
Continuous integration / Rustfmt (push) Successful in 25s
Continuous integration / Clippy (push) Failing after 33s
Continuous integration / build (push) Successful in 33s

This commit is contained in:
2026-10-20 12:23:38 +02:00
parent bc786a02b4
commit 4da5614a54
5 changed files with 133 additions and 139 deletions
+5 -6
View File
@@ -1,6 +1,7 @@
use clap::Parser;
use ringbuf::{HeapRb, wrap::caching::Caching};
use ropus::Decoder;
use rubato::Fft;
use shared::AudioStreamInfo;
use std::{
collections::HashMap,
@@ -39,21 +40,19 @@ pub struct ClientInfo {
pub connected: bool,
}
type AudioStreamKey = (u32, u8);
pub type AudioStreamKey = (u32, u8);
pub type InputAudioStreamsProducers =
Arc<Mutex<HashMap<AudioStreamKey, Caching<Arc<HeapRb<f32>>, true, false>>>>;
HashMap<AudioStreamKey, Caching<Arc<HeapRb<f32>>, true, false>>;
pub type InputAudioStreamsConsumers =
Arc<Mutex<HashMap<AudioStreamKey, Caching<Arc<HeapRb<f32>>, false, true>>>>;
pub type InputAudioStreamsEncoders = Arc<RwLock<HashMap<AudioStreamKey, Mutex<Decoder>>>>;
pub type InputAudioStreamsDecoders = HashMap<AudioStreamKey, Decoder>;
pub type InputAudioStreamsResamplers = HashMap<AudioStreamKey, Fft<f32>>;
pub type InputAudioStreamsInfo = Arc<RwLock<HashMap<AudioStreamKey, AudioStreamInfo>>>;
pub struct AudioControl {
pub active_input_audio_streams_producers: InputAudioStreamsProducers,
pub active_input_audio_streams_consumers: InputAudioStreamsConsumers,
pub active_input_audio_streams_encoders: InputAudioStreamsEncoders,
pub active_input_audio_streams_info: InputAudioStreamsInfo,
pub udp_socket: Arc<UdpSocket>,
}