aboutsummaryrefslogtreecommitdiffstats
path: root/mumd
diff options
context:
space:
mode:
authorEskil Queseth <eskilq@kth.se>2020-10-11 21:46:17 +0200
committerEskil Queseth <eskilq@kth.se>2020-10-11 21:46:17 +0200
commit5f27ead2214950e43ccc729c6dd9d6b92c8cc14a (patch)
treef409ce3d0458cbbdd54ac595f89901e8edbf5865 /mumd
parentc419e30e32aa2e0b9810f2d69ebd8caedc962a66 (diff)
downloadmum-5f27ead2214950e43ccc729c6dd9d6b92c8cc14a.tar.gz
Changed so code is more robust with a cheeky hack
Diffstat (limited to 'mumd')
-rw-r--r--mumd/src/audio.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/mumd/src/audio.rs b/mumd/src/audio.rs
index 8b8a08e..7fe45e2 100644
--- a/mumd/src/audio.rs
+++ b/mumd/src/audio.rs
@@ -195,10 +195,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);
}
_ => {