diff options
Diffstat (limited to 'mumd/src')
| -rw-r--r-- | mumd/src/audio.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/mumd/src/audio.rs b/mumd/src/audio.rs index d7eaeb0..c52de85 100644 --- a/mumd/src/audio.rs +++ b/mumd/src/audio.rs @@ -204,10 +204,14 @@ impl ClientStream { fn decode_packet(&mut self, payload: VoicePacketPayload, channels: usize) { match payload { VoicePacketPayload::Opus(bytes, _eot) => { - let mut out: Vec<f32> = vec![0.0; bytes.len() * channels * 4]; - self.opus_decoder - .decode_float(&bytes, &mut out, false) + let mut out: Vec<f32> = vec![0.0; bytes.len() * channels * 4 + 1000]; + if bytes.len() != 120 { + println!("{}", bytes.len()); + } + let parsed = self.opus_decoder + .decode_float(&bytes, &mut out, true) .expect("error decoding"); //FIXME sometimes panics here + out.truncate(parsed); self.buffer.extend(out); } _ => { |
