From 0d361def934a08fd1f0b31ee0ac11520d60a7420 Mon Sep 17 00:00:00 2001 From: RogueException Date: Thu, 6 Apr 2017 16:18:21 -0300 Subject: [PATCH] Fixed a couple incoming audio bugs --- src/Discord.Net.WebSocket/Audio/Opus/OpusDecoder.cs | 4 ++-- src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs | 2 +- src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Discord.Net.WebSocket/Audio/Opus/OpusDecoder.cs b/src/Discord.Net.WebSocket/Audio/Opus/OpusDecoder.cs index b2ecf5987..c3e90789d 100644 --- a/src/Discord.Net.WebSocket/Audio/Opus/OpusDecoder.cs +++ b/src/Discord.Net.WebSocket/Audio/Opus/OpusDecoder.cs @@ -32,11 +32,11 @@ namespace Discord.Audio int result = 0; fixed (byte* inPtr = input) fixed (byte* outPtr = output) - result = Decode(_ptr, inPtr + inputOffset, inputCount, outPtr + outputOffset, (output.Length - outputOffset) / SampleSize / MaxChannels, 0); + result = Decode(_ptr, inPtr + inputOffset, inputCount, outPtr + outputOffset, (output.Length - outputOffset) / SampleSize, 0); //TODO: Enable FEC if (result < 0) throw new Exception($"Opus Error: {(OpusError)result}"); - return result; + return result * 4; } protected override void Dispose(bool disposing) diff --git a/src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs b/src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs index 713814c74..6c9d8b233 100644 --- a/src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs +++ b/src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs @@ -12,7 +12,7 @@ namespace Discord.Audio.Streams private readonly byte[] _buffer; private readonly OpusDecoder _decoder; - public OpusDecodeStream(AudioStream next, int channels = OpusConverter.MaxChannels, int bufferSize = 4000) + public OpusDecodeStream(AudioStream next, int channels = OpusConverter.MaxChannels, int bufferSize = 5760 * 4) { _next = next; _buffer = new byte[bufferSize]; diff --git a/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs b/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs index fe5283ef3..f66050bc1 100644 --- a/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs +++ b/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs @@ -54,7 +54,7 @@ namespace Discord.Audio _udp = udpSocketProvider(); _udp.ReceivedDatagram += async (data, index, count) => { - if (index != 0) + if (index != 0 || count != data.Length) { var newData = new byte[count]; Buffer.BlockCopy(data, index, newData, 0, count);