@@ -7,7 +7,7 @@ namespace Discord.Audio | |||||
protected IntPtr _ptr; | protected IntPtr _ptr; | ||||
/// <summary> Gets the bit rate of this converter. </summary> | /// <summary> Gets the bit rate of this converter. </summary> | ||||
public const int BitsPerSample = 16; | |||||
public const int BitsPerSample = sizeof(short) * 8; | |||||
/// <summary> Gets the bytes per sample. </summary> | /// <summary> Gets the bytes per sample. </summary> | ||||
public const int SampleSize = (BitsPerSample / 8) * MaxChannels; | public const int SampleSize = (BitsPerSample / 8) * MaxChannels; | ||||
/// <summary> Gets the maximum amount of channels this encoder supports. </summary> | /// <summary> Gets the maximum amount of channels this encoder supports. </summary> | ||||
@@ -32,11 +32,11 @@ namespace Discord.Audio | |||||
int result = 0; | int result = 0; | ||||
fixed (byte* inPtr = input) | fixed (byte* inPtr = input) | ||||
fixed (byte* outPtr = output) | fixed (byte* outPtr = output) | ||||
result = Decode(_ptr, inPtr + inputOffset, inputCount, outPtr + outputOffset, (output.Length - outputOffset) / SampleSize, 0); //TODO: Enable FEC | |||||
result = Decode(_ptr, inPtr + inputOffset, inputCount, outPtr + outputOffset, (output.Length - outputOffset) / SampleSize, 1); | |||||
if (result < 0) | if (result < 0) | ||||
throw new Exception($"Opus Error: {(OpusError)result}"); | throw new Exception($"Opus Error: {(OpusError)result}"); | ||||
return result * 4; | |||||
return result * SampleSize; | |||||
} | } | ||||
protected override void Dispose(bool disposing) | protected override void Dispose(bool disposing) | ||||
@@ -12,7 +12,7 @@ namespace Discord.Audio.Streams | |||||
private readonly byte[] _buffer; | private readonly byte[] _buffer; | ||||
private readonly OpusDecoder _decoder; | private readonly OpusDecoder _decoder; | ||||
public OpusDecodeStream(AudioStream next, int channels = OpusConverter.MaxChannels, int bufferSize = 5760 * 4) | |||||
public OpusDecodeStream(AudioStream next, int channels = OpusConverter.MaxChannels, int bufferSize = 5760 * 2 * sizeof(short)) | |||||
{ | { | ||||
_next = next; | _next = next; | ||||
_buffer = new byte[bufferSize]; | _buffer = new byte[bufferSize]; | ||||