⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msaudspapi.c

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 C
字号:
/******************************************************************************
*
*  Copyright (C),2007, Fuzhou Rockchip Co.,Ltd.
*
*  File name :     msaudspapi.c
*  Description:    微软音效API函数
*  Remark:
*
*  History:
*           <author>      <time>     <version>       <desc>
*           Huweiguo     07/10/07      1.0
*
*******************************************************************************/

#include "msaudspapi.h"

extern void audsp_process(void* pHandle, short pBuffer[], short length);

/**************************************************************************
* 函数描述:  微软音效处理函数,因为算法只能处理特定长度的数据,所以可能需要多次处理
* 入口参数:  [pData]        --  PCM 数据Buffer, 数据以LRLRLR... 的形式存放
*                         [PcmLength]  -- PCM 数据长度
* 出口参数:  无
* 返回值:
* 注释:
***************************************************************************/
void MsAudspProssing(short *pData, long PcmLength)
{
    int i;

    // for MP3
    if (PcmLength == 384)
    {
        audsp_process(pAuDSP, pData, 384);
    }
    else if (PcmLength == 576)
    {
        audsp_process(pAuDSP, pData, 576);
    }
    else if (PcmLength == 1152)
    {
        for (i = 0; i < 2; i++)
        {
            audsp_process(pAuDSP, pData + i*2*576, 576);
        }
    }

    // for WMA
    else if (PcmLength == 512)
    {
        audsp_process(pAuDSP, pData, 512);
    }
    else if (PcmLength == 1024)
    {
        for (i = 0; i < 2; i++)
        {
            audsp_process(pAuDSP, pData + i*2*512, 512);
        }
    }
    else if (PcmLength == 2048)
    {
        for (i = 0; i < 4; i++)
        {
            audsp_process(pAuDSP, pData + i*2*512, 512);
        }
    }
    else if (PcmLength == 256)
    {
        audsp_process(pAuDSP, pData, 256);
    }

    // for FLAC
    else if (PcmLength == 2304)
    {
        for (i = 0; i < 4; i++)
        {
            audsp_process(pAuDSP, pData + i*2*576, 576);
        }
    }
    else if (PcmLength == 4608)
    {
        for (i = 0; i < 8; i++)
        {
            audsp_process(pAuDSP, pData + i*2*576, 576);
        }
    }
    else
    {
        printf("当前PlayFx 版本并未对帧长为: %d 作处理!", PcmLength);
        //还需要对其它帧长作处理
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -