4899
- 收藏
- 点赞
- 分享
- 举报
海思芯片文件播放出现噪声
代码:
//enable adecode
HI_S32 AodecodeEnable(){
HI_S32 s32Ret;
ADEC_CHN_ATTR_S stAdecAttr;
ADEC_ATTR_G711_S stAdecG711;
stAdecAttr.enType = PT_G711U;
stAdecAttr.u32BufSize = 20;
stAdecAttr.enMode = ADEC_MODE_PACK;/* propose use pack mode in your app */
stAdecAttr.pValue = &stAdecG711;
/* create adec chn*/
s32Ret = HI_MPI_ADEC_CreateChn(0, &stAdecAttr);
if (s32Ret)
{
printf("%s: HI_MPI_ADEC_CreateChn(%d) failed with %#x!\n", __FUNCTION__,\
ChId,s32Ret);
return s32Ret;
}
return 0;
}
//ao enable
HI_S32 AoOutPutEnable(){
AIO_ATTR_S stAioAttr;
HI_S32 s32Ret;
HI_U32 AoDevId = 0;
/* init stAio. all of cases will use it */
memset(&stAioAttr, 0, sizeof(AIO_ATTR_S));
stAioAttr.enBitwidth = AUDIO_BIT_WIDTH_16;
stAioAttr.enWorkmode = AIO_MODE_I2S_MASTER;
stAioAttr.enSoundmode = AUDIO_SOUND_MODE_STEREO;
stAioAttr.u32EXFlag =0;
stAioAttr.u32FrmNum = 30;
stAioAttr.u32ChnCnt = 2;//stereo need two channel : left or right
stAioAttr.u32ClkChnCnt =2;
stAioAttr.u32ClkSel = 0;
stAioAttr.u32PtNumPerFrm = 320; //
stAioAttr.enSamplerate = AUDIO_SAMPLE_RATE_8000;
s32Ret = HI_MPI_AO_SetPubAttr(0, &stAioAttr);
if(HI_SUCCESS != s32Ret){
printf("%s: HI_MPI_AO_SetPubAttr(%d) failed with %#x!\n", __FUNCTION__, 0, s32Ret);
return s32Ret;
}
s32Ret = HI_MPI_AO_Enable(0);
if (HI_SUCCESS != s32Ret){
printf("%s: HI_MPI_AO_Enable(%d) failed with %#x!\n", __FUNCTION__, 0, s32Ret);
return s32Ret;
}
s32Ret = HI_MPI_AO_EnableChn(0, 0);
if (HI_SUCCESS != s32Ret){
printf("%s: HI_MPI_AO_EnableChn(%d) failed with %#x!\n", __FUNCTION__, 0,s32Ret);
return s32Ret;
}
}
播放文件是G711ulaw的音频文件,是由ffmpeg转成g711ulaw,电脑播放声音是没问题,海思芯片播放就有噪声。很奇怪。想了很久都不知道是什么原因,如果是海思的芯片的问题,也不太可能。
使用正玄波输入进去,出来的波形都不对顶部有两个峰,底部也有两个峰,0点有一横,很奇怪的现象。
仅仅使能ADCODE和AO,还未给ADECODE喂数据,就有波形输出了,喂数据数据后,声音是连续,和电脑播放的对比了时间上没有差别,就是说有吱吱的声音。
提高声音文件的采样率,噪声也变没了,应该是声音的采样率提高了,覆盖了那些吱吱声。提高到48KHz听起来就没有吱吱声。但是摄像头和mic设备的音频都很多都是8KHz的。
听起来就有吱吱声,不知道大家有没有碰到过?
//enable adecode
HI_S32 AodecodeEnable(){
HI_S32 s32Ret;
ADEC_CHN_ATTR_S stAdecAttr;
ADEC_ATTR_G711_S stAdecG711;
stAdecAttr.enType = PT_G711U;
stAdecAttr.u32BufSize = 20;
stAdecAttr.enMode = ADEC_MODE_PACK;/* propose use pack mode in your app */
stAdecAttr.pValue = &stAdecG711;
/* create adec chn*/
s32Ret = HI_MPI_ADEC_CreateChn(0, &stAdecAttr);
if (s32Ret)
{
printf("%s: HI_MPI_ADEC_CreateChn(%d) failed with %#x!\n", __FUNCTION__,\
ChId,s32Ret);
return s32Ret;
}
return 0;
}
//ao enable
HI_S32 AoOutPutEnable(){
AIO_ATTR_S stAioAttr;
HI_S32 s32Ret;
HI_U32 AoDevId = 0;
/* init stAio. all of cases will use it */
memset(&stAioAttr, 0, sizeof(AIO_ATTR_S));
stAioAttr.enBitwidth = AUDIO_BIT_WIDTH_16;
stAioAttr.enWorkmode = AIO_MODE_I2S_MASTER;
stAioAttr.enSoundmode = AUDIO_SOUND_MODE_STEREO;
stAioAttr.u32EXFlag =0;
stAioAttr.u32FrmNum = 30;
stAioAttr.u32ChnCnt = 2;//stereo need two channel : left or right
stAioAttr.u32ClkChnCnt =2;
stAioAttr.u32ClkSel = 0;
stAioAttr.u32PtNumPerFrm = 320; //
stAioAttr.enSamplerate = AUDIO_SAMPLE_RATE_8000;
s32Ret = HI_MPI_AO_SetPubAttr(0, &stAioAttr);
if(HI_SUCCESS != s32Ret){
printf("%s: HI_MPI_AO_SetPubAttr(%d) failed with %#x!\n", __FUNCTION__, 0, s32Ret);
return s32Ret;
}
s32Ret = HI_MPI_AO_Enable(0);
if (HI_SUCCESS != s32Ret){
printf("%s: HI_MPI_AO_Enable(%d) failed with %#x!\n", __FUNCTION__, 0, s32Ret);
return s32Ret;
}
s32Ret = HI_MPI_AO_EnableChn(0, 0);
if (HI_SUCCESS != s32Ret){
printf("%s: HI_MPI_AO_EnableChn(%d) failed with %#x!\n", __FUNCTION__, 0,s32Ret);
return s32Ret;
}
}
播放文件是G711ulaw的音频文件,是由ffmpeg转成g711ulaw,电脑播放声音是没问题,海思芯片播放就有噪声。很奇怪。想了很久都不知道是什么原因,如果是海思的芯片的问题,也不太可能。
使用正玄波输入进去,出来的波形都不对顶部有两个峰,底部也有两个峰,0点有一横,很奇怪的现象。
仅仅使能ADCODE和AO,还未给ADECODE喂数据,就有波形输出了,喂数据数据后,声音是连续,和电脑播放的对比了时间上没有差别,就是说有吱吱的声音。
提高声音文件的采样率,噪声也变没了,应该是声音的采样率提高了,覆盖了那些吱吱声。提高到48KHz听起来就没有吱吱声。但是摄像头和mic设备的音频都很多都是8KHz的。
听起来就有吱吱声,不知道大家有没有碰到过?
我来回答
回答12个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
相关问答
-
2020-03-05 17:50:48
-
2017-04-26 17:50:05
-
2019-04-03 17:37:59
-
2020-04-01 16:23:46
-
2018-08-24 11:29:46
-
2018-10-09 08:49:27
-
2016-03-08 19:26:21
-
2016-11-02 16:36:14
-
22020-05-20 18:22:18
-
2017-10-23 09:17:29
-
2024-10-25 11:07:26
-
02025-02-15 11:50:06
-
12018-03-05 14:02:18
-
22015-01-15 17:35:03
-
12020-08-06 14:37:16
-
2014-06-27 13:55:41
-
2015-11-26 14:19:31
-
2021-01-02 10:25:40
-
2020-11-12 11:02:51
无更多相似问答 去提问

点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5DTOF的demo运行时内核挂死
-
10Hi3516DV500+IMX482运行sample_venc,报错:HI_MPI_ISP_MemInit failed with 0xa01c800c!
-
10PQTOOL在调试的时候,出现通讯异常,是不是PQ软件问题?还是什么?
-
5hi3516dv500改了sensor驱动后使用pqtools出图出现彩色的竖条纹
-
10海思3559的VGS模块在VI上画线问题
-
53519dv500接lvds的sensor mn34120,图像出现很多竖线,sensor板接以前的3519v101没问题
-
103403外接hdmi口1024*600显示屏报错
-
5SS928点DC camera的6946,全屏紫色
-
5hi3519 的 网络传输的MTU值可以修改到比1500大嘛?
-
10WS73V100星闪扫描不到设备sle
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认