Decoder.cs 767 B

123456789101112131415161718192021222324252627
  1. using Concentus.Structs;
  2. namespace Ryujinx.HLE.HOS.Services.Audio.HardwareOpusDecoderManager
  3. {
  4. class Decoder : IDecoder
  5. {
  6. private readonly OpusDecoder _decoder;
  7. public int SampleRate => _decoder.SampleRate;
  8. public int ChannelsCount => _decoder.NumChannels;
  9. public Decoder(int sampleRate, int channelsCount)
  10. {
  11. _decoder = new OpusDecoder(sampleRate, channelsCount);
  12. }
  13. public int Decode(byte[] inData, int inDataOffset, int len, short[] outPcm, int outPcmOffset, int frameSize)
  14. {
  15. return _decoder.Decode(inData, inDataOffset, len, outPcm, outPcmOffset, frameSize);
  16. }
  17. public void ResetState()
  18. {
  19. _decoder.ResetState();
  20. }
  21. }
  22. }