芯方式

如何通过软件修改将声音左右声道输出调换?

0
阅读(588) 评论(0)

[DESCRIPTION]
偶尔碰到客户硬件工程师将左右声道反接,通过SW将左右声道输出反转
原理是在APM处理中自行添加一个APM task,在此Task中将左右声道的PCM数据对调
[SOLUTION]
1.修改enum定义APM_TaskID,在最后添加: APM_TASKID_LRRVT
2.修改文件apm_TaskDef.c,添加定义:
const APM_TASK_PARA FHtest_Analyzer = {
APM_TASKID_LRRVT,
APM_PROPERTY_READ_WRITE,
5,
0,
NULL,
NULL,
NULL,
FHtest_Process,
NULL
};
3.修改数组const APM_TASK_PARA *apmTaskList:
在null之前添加:
&FHtest_Analyzer,
4.在代码中定义函数:
kal_bool FHtest_Process(APM_Buffer *buf, APM_Info *info)
{
int32 i;
kal_int16 *p1,*p2,dl,dr;
p1=buf->inBuf;
p2=buf->outBuf;
for(i=0;i<buf->inBufLen/2;i++){
dl=*p1++;
dr=*p1++;
*p2++=dr;
*p2++=dl;
} }
5.修改函数void L1Audio_Task(unsigned argc, void *argv)
在 APM_Init();
之后添加:
HOST_APM_Register(APM_TASKID_LRRVT);


来自半导体社区