diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-10-14 19:29:34 +0200 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-10-14 19:29:34 +0200 |
| commit | 8f32d34f1cf31cfd10d07e623842dd3f7fc86e8e (patch) | |
| tree | 18b85d859f34964cd3cd20572a45a43d0afe8e62 /mumd/src/audio.rs | |
| parent | af272afbcd9e0e283b88f37f2bf3d7b4da604321 (diff) | |
| download | mum-8f32d34f1cf31cfd10d07e623842dd3f7fc86e8e.tar.gz | |
cargo fmt
Diffstat (limited to 'mumd/src/audio.rs')
| -rw-r--r-- | mumd/src/audio.rs | 49 |
1 files changed, 28 insertions, 21 deletions
diff --git a/mumd/src/audio.rs b/mumd/src/audio.rs index aa06a9d..58424b6 100644 --- a/mumd/src/audio.rs +++ b/mumd/src/audio.rs @@ -103,26 +103,32 @@ impl Audio { let input_stream = match input_supported_sample_format { SampleFormat::F32 => input_device.build_input_stream( &input_config, - input_callback::<f32>(input_encoder, - input_sender, - input_config.sample_rate.0, - 10.0), + input_callback::<f32>( + input_encoder, + input_sender, + input_config.sample_rate.0, + 10.0, + ), err_fn, ), SampleFormat::I16 => input_device.build_input_stream( &input_config, - input_callback::<i16>(input_encoder, - input_sender, - input_config.sample_rate.0, - 10.0), + input_callback::<i16>( + input_encoder, + input_sender, + input_config.sample_rate.0, + 10.0, + ), err_fn, ), SampleFormat::U16 => input_device.build_input_stream( &input_config, - input_callback::<u16>(input_encoder, - input_sender, - input_config.sample_rate.0, - 10.0), + input_callback::<u16>( + input_encoder, + input_sender, + input_config.sample_rate.0, + 10.0, + ), err_fn, ), } @@ -207,7 +213,8 @@ impl ClientStream { match payload { VoicePacketPayload::Opus(bytes, _eot) => { let mut out: Vec<f32> = vec![0.0; 720 * channels * 4]; //720 is because that is the max size of packet we can get that we want to decode - let parsed = self.opus_decoder + let parsed = self + .opus_decoder .decode_float(&bytes, &mut out, false) .expect("Error decoding"); out.truncate(parsed); @@ -271,15 +278,15 @@ fn input_callback<T: Sample>( sample_rate: u32, opus_frame_size_ms: f32, ) -> impl FnMut(&[T], &InputCallbackInfo) + Send + 'static { - if ! ( opus_frame_size_ms == 2.5 - || opus_frame_size_ms == 5.0 - || opus_frame_size_ms == 10.0 - || opus_frame_size_ms == 20.0) { + if !(opus_frame_size_ms == 2.5 + || opus_frame_size_ms == 5.0 + || opus_frame_size_ms == 10.0 + || opus_frame_size_ms == 20.0) + { panic!("Unsupported opus frame size {}", opus_frame_size_ms); } let opus_frame_size = (opus_frame_size_ms * sample_rate as f32) as u32 / 1000; - let buf = Arc::new(Mutex::new(VecDeque::new())); move |data: &[T], _info: &InputCallbackInfo| { let mut buf = buf.lock().unwrap(); @@ -293,9 +300,9 @@ fn input_callback<T: Sample>( .unwrap(); opus_buf.truncate(result); let bytes = Bytes::copy_from_slice(&opus_buf); - match input_sender - .try_send(VoicePacketPayload::Opus(bytes, false)) { //TODO handle full buffer / disconnect - Ok(_) => {}, + match input_sender.try_send(VoicePacketPayload::Opus(bytes, false)) { + //TODO handle full buffer / disconnect + Ok(_) => {} Err(_e) => { //warn!("Error sending audio packet: {:?}", e); } |
