public unsafe short[] DecodeAdpcm(byte[] adpcm, short[] coefs, int sampleCount) { var info = new ADPCMINFO(); var pcm = new short[sampleCount]; for (int i = 0; i < 16; i++) { info.coef[i] = coefs[i]; } Decode(adpcm, pcm, ref info, (uint)sampleCount); return(pcm); }
public unsafe GcAdpcmChannel EncodeChannel(short[] pcm) { int sampleCount = pcm.Length; var adpcm = new byte[GcAdpcmMath.SampleCountToByteCount(sampleCount)]; var info = new ADPCMINFO(); Encode(pcm, adpcm, ref info, (uint)sampleCount); var coefs = new short[16]; for (int i = 0; i < 16; i++) { coefs[i] = info.coef[i]; } return(new GcAdpcmChannel(adpcm, coefs, sampleCount)); }