Ejemplo n.º 1
0
        /// <summary>
        /// 重采样
        /// </summary>
        /// <param name="inDatas">输入PCM数据缓冲区的数组。当此参数为<see cref="IntPtr.Zero"/>时,将输出重采样器中剩余的采样点。</param>
        /// <param name="inSampleCount">输入缓冲区存放的采样个数(多声道只计算一个)</param>
        /// <param name="outDatas">输出PCM数据缓冲区的数组。</param>
        /// <param name="outSampleCount">输出缓冲区能够容纳的采样个数(多声道只计算一个)</param>
        /// <returns>返回输出的采样个数</returns>
        public int Resample(IntPtr inDatas, int inSampleCount, IntPtr outDatas, int outSampleCount)
        {
            int resultSampleCount = FF.swr_convert(ctx, (byte **)outDatas, outSampleCount, (byte **)inDatas, inSampleCount);

            if (resultSampleCount < 0)
            {
                throw new FFmpegException(resultSampleCount);
            }
            return(resultSampleCount);
        }