From 9444b4a647d86fbae3fb06993244613a7b15064e Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 15 Apr 2022 18:16:28 -0300 Subject: Implement HwOpus multistream functions (#3275) * Implement HwOpus multistream functions * Avoid one copy --- .../Audio/HardwareOpusDecoderManager/Decoder.cs | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/Decoder.cs (limited to 'Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/Decoder.cs') diff --git a/Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/Decoder.cs b/Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/Decoder.cs new file mode 100644 index 00000000..b77fc4b0 --- /dev/null +++ b/Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/Decoder.cs @@ -0,0 +1,27 @@ +using Concentus.Structs; + +namespace Ryujinx.HLE.HOS.Services.Audio.HardwareOpusDecoderManager +{ + class Decoder : IDecoder + { + private readonly OpusDecoder _decoder; + + public int SampleRate => _decoder.SampleRate; + public int ChannelsCount => _decoder.NumChannels; + + public Decoder(int sampleRate, int channelsCount) + { + _decoder = new OpusDecoder(sampleRate, channelsCount); + } + + public int Decode(byte[] inData, int inDataOffset, int len, short[] outPcm, int outPcmOffset, int frameSize) + { + return _decoder.Decode(inData, inDataOffset, len, outPcm, outPcmOffset, frameSize); + } + + public void ResetState() + { + _decoder.ResetState(); + } + } +} \ No newline at end of file -- cgit v1.2.3