diff options
| author | Eskil Queseth <eskilq@kth.se> | 2021-06-12 02:30:01 +0200 |
|---|---|---|
| committer | Eskil Queseth <eskilq@kth.se> | 2021-06-12 02:30:01 +0200 |
| commit | bc65445af44a335a0586a393c792614330258249 (patch) | |
| tree | fd0ba08e7a1748076f04ce3d5678b960c5aaa4a7 /mumd/src/audio.rs | |
| parent | dcd70175a98c83a3334d7980e5196bc866e04efb (diff) | |
| download | mum-bc65445af44a335a0586a393c792614330258249.tar.gz | |
simplify audio output infrastructure
Diffstat (limited to 'mumd/src/audio.rs')
| -rw-r--r-- | mumd/src/audio.rs | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/mumd/src/audio.rs b/mumd/src/audio.rs index 63adcc6..67d91c9 100644 --- a/mumd/src/audio.rs +++ b/mumd/src/audio.rs @@ -3,9 +3,6 @@ mod noise_gate; pub mod output; use crate::audio::input::{AudioInputDevice, DefaultAudioInputDevice}; -use crate::audio::noise_gate::{ - from_interleaved_samples_stream, OpusEncoder, StreamingNoiseGate, StreamingSignalExt, -}; use crate::audio::output::{AudioOutputDevice, ClientStream, DefaultAudioOutputDevice}; use crate::error::AudioError; use crate::network::VoiceStreamType; @@ -81,27 +78,19 @@ impl AudioInput { input_volume: f32, phase_watcher: watch::Receiver<StatePhase>, ) -> Result<Self, AudioError> { - let mut default = DefaultAudioInputDevice::new(input_volume, phase_watcher)?; + let mut default = DefaultAudioInputDevice::new(input_volume, phase_watcher, 4)?; let sample_rate = SampleRate(SAMPLE_RATE); - let opus_stream = OpusEncoder::new( - 4, - sample_rate.0, - default.num_channels(), - StreamingSignalExt::into_interleaved_samples(StreamingNoiseGate::new( - from_interleaved_samples_stream::<_, f32>(default.sample_receiver()), //TODO group frames correctly - 10_000, - )), - ) - .enumerate() - .map(|(i, e)| VoicePacket::Audio { - _dst: std::marker::PhantomData, - target: 0, // normal speech - session_id: (), // unused for server-bound packets - seq_num: i as u64, - payload: VoicePacketPayload::Opus(e.into(), false), - position_info: None, - }); + let opus_stream = default.sample_receiver().unwrap() + .enumerate() + .map(|(i, e)| VoicePacket::Audio { + _dst: std::marker::PhantomData, + target: 0, // normal speech + session_id: (), // unused for server-bound packets + seq_num: i as u64, + payload: VoicePacketPayload::Opus(e.into(), false), + position_info: None, + }); default.play()?; |
