diff options
author | gdkchan <gab.dark.100@gmail.com> | 2022-04-15 18:16:28 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-15 23:16:28 +0200 |
commit | 9444b4a647d86fbae3fb06993244613a7b15064e (patch) | |
tree | 6288b0eb2976096ad967570225f378b9a75de30f /Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/Decoder.cs | |
parent | 610fc84f3e41a49b6569a22d729d4bd999094346 (diff) |
Implement HwOpus multistream functions (#3275)1.1.104
* Implement HwOpus multistream functions
* Avoid one copy
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/Decoder.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/Services/Audio/HardwareOpusDecoderManager/Decoder.cs | 27 |
1 files changed, 27 insertions, 0 deletions
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 |