(一)参考源码
首先需要注明,我们参考的源码是海思SDK的audio的demo,并不是某一个github的项目。本次采用的demo来自于SDK:
https://dl.openipc.org/SDK/HiSilicon/Hi3518Ev20X_16Cv200/
的Hi3518E_SDK_V1.0.4.0,其中mpp文件夹下就是各类源码demo。
我们找到sample下的audio,这个就是官方audio例程。
里面打包有4个demo,其中 SAMPLE_AUDIO_AdecAo 这个demo比较合适,因为摄像头一般就是读文件然后播音,不需要读取网络音频流,比较方便。
(二)启动流程
海思SDK启动流程:
1-对任何应用都需要启动SYS和VB部分功能:
HI_MPI_VB_Init()
HI_MPI_SYS_Init()
2-对视频
获取/dev下的驱动文件的文件号:open()
启动摄像头部分功能:AE、AF、ISP,比如HI_MPI_ISP_MemInit,这些函数都在mpi_ae文件里,难道是after effect的意思?文档似乎没有说明。
设置VI属性:HI_MPI_VI_SetDevAttr、HI_MPI_VI_SetWDRAttr、HI_MPI_VI_EnableDev
设置VI通道:HI_MPI_VI_SetChnAttr、HI_MPI_VI_EnableChn
设置VPSS功能:HI_MPI_VPSS_CreateGrp、HI_MPI_VPSS_StartGrp
VPSS(Video Process Sub-System)支持对一幅输入图像进行统一预处理,如去噪、去 隔行等,然后再对各通道分别进行缩放、锐化等处理,最后输出多种不同分辨率的图 像。
设置VENC功能:HI_MPI_VENC_CreateChn
VENC 模块,即视频编码模块。
3-对音频
设置编码:(这段代码没看懂)
创建ADEC通道:HI_MPI_ADEC_CreateChn
启动AO功能:
设置AO属性:HI_MPI_AO_SetPubAttr
使能AO:HI_MPI_AO_Enable
使能AO 通道:HI_MPI_AO_EnableChn
还有些额外配置就不说了
AO通道与系统绑定:HI_MPI_SYS_Bind
打开音频文件:open
创建一个子线