嵌入式视频方案学习第十三篇——音频模块AUDIO

来源:互联网 发布:手机号码筛选软件 编辑:程序博客网 时间:2024/06/04 19:04
AUDIO模块包括音频输入、音频输出、音频编码、音频解码四个子模块。音频输入和
输出模块通过对 Hi35xx 芯片音频接口的控制实现音频输入输出功能。音频编码和解码
模块提供对G711、G726、ADPCM 格式的音频编解码功能,并支持录制和播放LPCM

格式的原始音频文件


音频输入


1、设置AI设备属性

HI_S32 HI_MPI_AI_SetPubAttr(AUDIO_DEV AudioDevId,const AIO_ATTR_S 
*pstAttr)

音频输入设备的属性决定了输入数据的格式,输入设备属性包括工作模式、采样率、
采样精度、buffer 大小、每帧的采样点数、扩展标志、时钟选择和通道数目


2、启用AI设备

HI_S32 HI_MPI_AI_Enable(AUDIO_DEV AudioDevId); 


3、禁用AI设备。

HI_S32 HI_MPI_AI_Disable(AUDIO_DEV AudioDevId);


4、启用AI通道

HI_S32 HI_MPI_AI_EnableChn(AUDIO_DEV AudioDevId, AI_CHN AiChn)


5、禁用AI通道

HI_S32 HI_MPI_AI_DisableChn(AUDIO_DEV AudioDevId, AI_CHN AiChn);


6、获取音频帧

HI_S32 HI_MPI_AI_GetFrame(AUDIO_DEV AudioDevId, AI_CHN AiChn, 
AUDIO_FRAME_S  *pstFrm, AEC_FRAME_S *pstAecFrm, HI_BOOL bBlock)


7、释放音频帧

HI_S32 HI_MPI_AI_ReleaseFrame(AUDIO_DEV AudioDevId, AI_CHN AiChn, 
AUDIO_FRAME_S  *pstFrm, AEC_FRAME_S *pstAecFrm)


8、设置AI通道参数

HI_S32 HI_MPI_AI_SetChnParam(AUDIO_DEV AudioDevId, AI_CHN AiChn, 
AI_CHN_PARAM_S *pstChnParam)


9、启用指定AI及AO的回声抵消功能

HI_S32 HI_MPI_AI_EnableAec(AUDIO_DEV AiDevId,  
AI_CHN AiChn, AUDIO_DEV AoDevId, AO_CHN AoChn)


10、启用AI重采样

HI_S32 HI_MPI_AI_EnableReSmp(AUDIO_DEV AudioDevId, AI_CHN AiChn, 
AUDIO_RESAMPLE_ATTR_S *pstAttr); 


11、启用AI噪声抑制

HI_S32 HI_MPI_AI_EnableAnr(AUDIO_DEV AudioDevId, AI_CHN AiChn)


12、获取音频输入通道号对应的设备文件句柄

HI_S32 HI_MPI_AI_GetFd(AUDIO_DEV AudioDevId ,AI_CHN AiChn) 


音频输出


1、设置AO设备属性

HI_S32 HI_MPI_AO_SetPubAttr(AUDIO_DEV AudioDevId ,const AIO_ATTR_S 
*pstAttr)


2、启用AO设备

HI_S32 HI_MPI_AO_Enable(AUDIO_DEV AudioDevId); 


3、禁用AO设备

HI_S32 HI_MPI_AO_Disable(AUDIO_DEV AudioDevId); 


4、启用AO通道

HI_S32 HI_MPI_AO_EnableChn(AUDIO_DEV AudioDevId, AI_CHN AoChn);


5、禁用AO通道

HI_S32 HI_MPI_AO_DisableChn(AUDIO_DEV AudioDevId, AI_CHN AoChn)


6、发送AO音频帧

HI_S32 HI_MPI_AO_SendFrame(AUDIO_DEV AudioDevId, AO_CHN AoChn,         
const AUDIO_FRAME_S  *pstData, HI_BOOL bBlock)


7、启用AO重采样

HI_S32 HI_MPI_AO_EnableReSmp(AUDIO_DEV AudioDevId, AO_CHN AoChn,
AUDIO_RESAMPLE_ATTR_S *pstAttr); 


8、设置AO设备的音量大小

HI_S32 HI_MPI_AO_SetVolume(AUDIO_DEV AudioDevId, AO_CHN AoChn, HI_S32 
s32VolumeDb);


9、获取音频输出通道号对应的设备文件句柄

HI_S32 HI_MPI_AO_GetFd(AUDIO_DEV AudioDevId ,AO_CHN AoChn) 


音频编码


1、创建音频编码通道

HI_S32 HI_MPI_AENC_CreateChn(AENC_CHN AeChn, const AENC_CHN_ATTR_S 
*pstAttr)


2、发送音频编码音频帧

HI_S32 HI_MPI_AENC_SendFrame(AENC_CHN AeChn, const AUDIO_FRAME_S  *pstFrm, 
const AEC_FRAME_S *pstAecFrm)


3、获取编码后码流

HI_S32 HI_MPI_AENC_GetStream(AENC_CHN AeChn, 
AUDIO_STREAM_S*pstStream ,HI_BOOL bBlock);


4、释放从音频编码通道获取的码流

HI_S32 HI_MPI_AENC_ReleaseStream(AENC_CHN AeChn, const AUDIO_STREAM_S 
*pstStream)


5、获取音频编码通道号对应的设备文件句柄

HI_S32 HI_MPI_AENC_GetFd(AENC_CHN AeChn)







阅读全文
0 0
原创粉丝点击