序
本文介绍hisi35xx系列,例如3559AV100编码器开发的大体流程框架。
hisi开发经验:1、由于hisi每一款芯片对各编码协议(如H264/H265/JPEG/MOTION-JPEG)的支持情况不一,有些函数只适用于某几个编码协议,有些函数只适用于某一个编码协议,因此在构建编码器框架时,编码协议类型及编码通道号应在整个框架中传递。
1、系统层初始化
1、HI_MPI_SYS_GetVersion :获取MPP的版本号
2、HI_MPI_SYS_Exit :去初始化MPP系统
3、HI_MPP_VB_Exit :去初始化MPP视频缓存池
4、HI_MPI_VB_SetConf :设置MPP视频缓存池属性
5、HI_MPI_VB_Init :初始化MPP视频缓存池
6、HI_MPI_SYS_SetConf :配置系统控制参数
7、HI_MPI_SYS_Init :初始化MPP系统
2、编码层初始化
1、HI_MPI_VENC_CreatChn :创建编码通道
2、HI_MPI_VENC_StartRecvFrame: 开启编码通道接收输入图像
3、编码层Buffer的设置
1、HI_MPI_VB_GetBlock :获取一个缓存块
2、HI_MPI_VB_Handle2PhysAddr:获取一个缓存块的物理地址
3、HI_MPI_SYS_MmapCache :存储带Cache映射接口
4、HI_MPI_VB_Handle2PoolId :获取一个缓存块所在缓存池的ID
4、编码
1、HI_MPI_VENC_GetChnAttr :获取编码通道的编码属性。 HI_MPI_VENC_SetChnAttr 设置编码通道的编码属性
2、HI_MPI_VENC_GetRcParam :获取通道码率控制高级参数。 HI_MPI_VENC_SetRcParam 设置编码通道码率控制高级参数
3、HI_MPI_SYS_MflushCache :刷新cache里的内容到内存并且使cache里的内容无效
4、HI_MPI_VENC_SendFrame :支持用户发送原始图像进行编码
5、HI_MPI_VENC_GetStream :获取编码码流
5、资源释放
1、HI_MPI_SYS_Munmap :存储反映射接口
2、HI_MPI_VB_ReleaseBlock : 释放一个已经获取的缓存块
3、HI_MPI_SYS_MmzFree : 在用户态释放MMZ内存