3531立体声调试
先决条件:
- Hi3531 平台uclibc
- 使用SIO4 I2S连接 TLV320AIC31 48K采样 STEROR(立体声) u32ChnCnt=2通道
海思关于立体声这有这么一个简单的说明:
对于双声道模式,只应对左声道(即编号小于设备属性中通道数 u32ChnCnt 一半的通
道)进行操作, SDK 内部会自动对右声道也进行相应的操作。
那么问题来了(AI通道为0,1):
- 数据是走通道的,双声道是的数据都走通道0 还是左声道走Aich0,右声道走Aich1
- AI(4,0)--->AENC(0) 有数据
AI(4,1)--->AENC(1) 无数据
AI 调试信息
我这里使用的是LPCM格式,原始的未压缩的PCM格式
-
确定你使用的SIO口,这个是硬件连接请确保你使用的是正确的
#define SAMPLE_AUDIO_PTNUMPERFRM 320 #if HICHIP == HI3531_V100 #define SAMPLE_AUDIO_AI_DEV 4 // 硬件确定后该这里,我使用的是SIO4 #else #define SAMPLE_AUDIO_AI_DEV 0 #endif #define SAMPLE_AUDIO_AO_DEV 4
-
确定AI属性是立体声
stAioAttr.enSamplerate = AUDIO_SAMPLE_RATE_48000; // 48K sample stAioAttr.enBitwidth = AUDIO_BIT_WIDTH_16; stAioAttr.enWorkmode = AIO_MODE_I2S_SLAVE; stAioAttr.enSoundmode = AUDIO_SOUND_MODE_STEREO; //立体声 stAioAttr.u32EXFlag = 1; stAioAttr.u32FrmNum = 30; stAioAttr.u32PtNumPerFrm = SAMPLE_AUDIO_PTNUMPERFRM; stAioAttr.u32ChnCnt = 2; // 只使用2个AI通道,最大支持16个通道 stAioAttr.u32ClkSel = 1;
-
只使能stAioAttr.u32ChnCnt 小于 stAioAttr.u32ChnCnt/2的ai通道
原因是这个:对于双声道模式,只应对左声道(即编号小于设备属性中通道数 u32ChnCnt 一半的通
道)进行操作, SDK 内部会自动对右声道也进行相应的操作。 -
使用UserGetMode
HI_S32 HI_MPI_AI_GetFrame(AUDIO_DEV AudioDevId, AI_CHN AiChn, AUDIO_FRAME_S *pstFrm, AEC_FRAME_S *pstAecFrm, HI_BOOL bBlock);
typedef struct hiAUDIO_FRAME_S
{
AUDIO_BIT_WIDTH_E enBitwidth;
AUDIO_SOUND_MODE_E enSoundmode;
HI_VOID *pVirAddr[2];// 双声道下pVirAddr[0]表示左声道,pVirAddr[1]表示右声道
HI_U32 u32PhyAddr[2];
HI_U64 u64TimeStamp;
HI_U32 u32Seq;
HI_U32 u32Len;
HI_U32 u32PoolId[2];
}AUDIO_FRAME_S;
最为关键的就是数据的存储问题,一开始我是这样存储数据的。
fwrite(stFrame.pVirAddr[0], 1 ,stFrame.u32Len , pstAiCtl->pfd);
fwrite(stFrame.pVirAddr[1], 1 ,stFrame.u32Len , pstAiCtl->pfd);
写成文件怎么也不对,后来Google了下PCM格式才知道是数据格式问题,改成这样
for(i=0; i<stFrame.u32Len; i+=2) {
fwrite(stFrame.pVirAddr[0]+i, 1 ,2 , pstAiCtl->pfd);
fwrite(stFrame.pVirAddr[1]+i, 1 ,2 , pstAiCtl->pfd);
}
LPCM各个模式下的数据存储格式:
![](/uploads/1511350784_97533.jpg)
也就是说数据是交错排放的,有点类似于YUV里面的packed模式。
最后遗留的问题是不管使用SYS_BIND的方式还是在AiChn里面使用 HI_MPI_AENC_SendFrame发送编码真,使用HI_MPI_AENC_GetStream取得的数据始终是mono的,不知道为什么。
测试的效果如下:
![](/uploads/1511350864_20748.jpg)
- 分享
- 举报
-
浏览量:2016次2019-06-25 14:27:24
-
浏览量:3501次2018-02-06 10:43:46
-
浏览量:4025次2021-05-13 15:06:39
-
浏览量:4143次2021-07-02 17:09:08
-
浏览量:4490次2021-07-02 16:22:00
-
浏览量:5249次2021-05-10 17:48:42
-
浏览量:3038次2020-08-03 11:02:46
-
浏览量:4277次2018-12-25 20:34:34
-
浏览量:2527次2020-12-15 19:49:25
-
浏览量:996次2024-01-24 18:13:58
-
浏览量:4521次2020-09-24 13:55:18
-
浏览量:5747次2022-10-24 15:47:55
-
浏览量:9959次2020-08-12 09:42:10
-
浏览量:3350次2020-03-26 15:59:03
-
浏览量:551次2023-08-25 17:27:24
-
浏览量:13303次2020-10-14 09:53:18
-
浏览量:8452次2020-09-05 15:06:28
-
浏览量:3215次2017-11-21 13:53:36
-
浏览量:5037次2017-11-15 11:09:58
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
goodman
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明