forked from Mirror/Ryujinx
28 lines
917 B
C#
28 lines
917 B
C#
|
using Concentus.Structs;
|
||
|
|
||
|
namespace Ryujinx.HLE.HOS.Services.Audio.HardwareOpusDecoderManager
|
||
|
{
|
||
|
class MultiSampleDecoder : IDecoder
|
||
|
{
|
||
|
private readonly OpusMSDecoder _decoder;
|
||
|
|
||
|
public int SampleRate => _decoder.SampleRate;
|
||
|
public int ChannelsCount { get; }
|
||
|
|
||
|
public MultiSampleDecoder(int sampleRate, int channelsCount, int streams, int coupledStreams, byte[] mapping)
|
||
|
{
|
||
|
ChannelsCount = channelsCount;
|
||
|
_decoder = new OpusMSDecoder(sampleRate, channelsCount, streams, coupledStreams, mapping);
|
||
|
}
|
||
|
|
||
|
public int Decode(byte[] inData, int inDataOffset, int len, short[] outPcm, int outPcmOffset, int frameSize)
|
||
|
{
|
||
|
return _decoder.DecodeMultistream(inData, inDataOffset, len, outPcm, outPcmOffset, frameSize, 0);
|
||
|
}
|
||
|
|
||
|
public void ResetState()
|
||
|
{
|
||
|
_decoder.ResetState();
|
||
|
}
|
||
|
}
|
||
|
}
|