示例#1
0
        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);
        }
示例#2
0
        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));
        }