mirror of
https://github.com/GreemDev/Ryujinx.git
synced 2024-12-21 06:15:54 +01:00
9444b4a647
* Implement HwOpus multistream functions * Avoid one copy
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();
|
|
}
|
|
}
|
|
} |