diff --git a/src/Discord.Net.WebSocket/Audio/Opus/OpusCtl.cs b/src/Discord.Net.WebSocket/Audio/Opus/OpusCtl.cs index 73e06c4d..0eadb745 100644 --- a/src/Discord.Net.WebSocket/Audio/Opus/OpusCtl.cs +++ b/src/Discord.Net.WebSocket/Audio/Opus/OpusCtl.cs @@ -5,7 +5,6 @@ namespace Discord.Audio { SetBitrate = 4002, SetBandwidth = 4008, - SetInbandFEC = 4012, SetPacketLossPercent = 4014, SetSignal = 4024 } diff --git a/src/Discord.Net.WebSocket/Audio/Opus/OpusEncoder.cs b/src/Discord.Net.WebSocket/Audio/Opus/OpusEncoder.cs index 72639471..8f05925b 100644 --- a/src/Discord.Net.WebSocket/Audio/Opus/OpusEncoder.cs +++ b/src/Discord.Net.WebSocket/Audio/Opus/OpusEncoder.cs @@ -49,7 +49,6 @@ namespace Discord.Audio CheckError(error); CheckError(EncoderCtl(_ptr, OpusCtl.SetSignal, (int)opusSignal)); CheckError(EncoderCtl(_ptr, OpusCtl.SetPacketLossPercent, packetLoss)); //% - CheckError(EncoderCtl(_ptr, OpusCtl.SetInbandFEC, 1)); //True CheckError(EncoderCtl(_ptr, OpusCtl.SetBitrate, bitrate)); } diff --git a/src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs b/src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs index 0d2b220e..33657490 100644 --- a/src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs +++ b/src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs @@ -34,27 +34,17 @@ namespace Discord.Audio.Streams } /// Received payload without an RTP header. - public override async Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancelToken) + public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancelToken) { if (!_hasHeader) throw new InvalidOperationException("Received payload without an RTP header."); _hasHeader = false; - if (!_nextMissed) - { - count = _decoder.DecodeFrame(buffer, offset, count, _buffer, 0, false); - await _next.WriteAsync(_buffer, 0, count, cancelToken).ConfigureAwait(false); - } - else if (count > 0) - { - count = _decoder.DecodeFrame(buffer, offset, count, _buffer, 0, true); - await _next.WriteAsync(_buffer, 0, count, cancelToken).ConfigureAwait(false); - } - else - { - count = _decoder.DecodeFrame(null, 0, 0, _buffer, 0, true); - await _next.WriteAsync(_buffer, 0, count, cancelToken).ConfigureAwait(false); - } + count = !_nextMissed || count > 0 + ? _decoder.DecodeFrame(buffer, offset, count, _buffer, 0, false) + : _decoder.DecodeFrame(null, 0, 0, _buffer, 0, false); + + return _next.WriteAsync(_buffer, 0, count, cancelToken); } public override async Task FlushAsync(CancellationToken cancelToken)