海思venc代码详解
2020-05-06 16:41:44 10 举报
AI智能生成
海思venc例程代码详解
作者其他创作
大纲/内容
设置MPP视频缓存池属性 <br>(选择)设置VB内存的附加信息<br>
SAMPLE_VENC_SYS_Init<br>
SAMPLE_COMM_SYS_Init
HI_MPI_SYS_Exit<br>
去初始化 MPP 系统。包括音频输入输出、视频输入输出、视频编解码、视频叠加区<br>域、视频处理、图形处理等模块都会被销毁或者禁用。<br>
HI_MPI_VB_Exit<br>
去初始化 MPP 视频缓存池。<br>
HI_MPI_VB_SetConfig<br>
设置 MPP 视频缓存池属性<br>
HI_MPI_VB_Init <br>
初始化 MPP 视频缓存池。<br>
HI_MPI_SYS_Init
初始化 MPP 系统。包括音频输入输出、视频输入输出、视频编解码、视频叠加区域、<br>视频处理、图形处理等模块都会被初始化。<br>
配置VI<br>
SAMPLE_VENC_VI_Init<br>
SAMPLE_COMM_VI_SetParam
HI_MPI_SYS_GetVIVPSSMode<br>
获取 VI,VPSS 的工作模式。
HI_MPI_SYS_SetVIVPSSMode<br>
设置 VI,VPSS 的工作模式。<br>
HI_MPI_ISP_GetCtrlParam<br>
获取 ISP 控制参数
HI_MPI_ISP_SetCtrlParam<br>
设置 ISP 控制参数<br>
SAMPLE_COMM_VI_StartVi<br>
SAMPLE_COMM_VI_StartMIPI<br>
SAMPLE_COMM_VI_SetMipiHsMode
ioctl(fd, HI_MIPI_SET_HS_MODE, &enHsMode);<br>
设置 MIPI Rx 的 Lane 分布。<br>
SAMPLE_COMM_VI_EnableMipiClock<br>
ioctl(fd, HI_MIPI_ENABLE_MIPI_CLOCK, &devno);<br>
打开 MIPI 设备的时钟。
SAMPLE_COMM_VI_ResetMipi<br>
ioctl(fd, HI_MIPI_RESET_MIPI, &devno);<br>
复位 MIPI Rx。<br>
SAMPLE_COMM_VI_EnableSensorClock<br>
ioctl(fd, HI_MIPI_ENABLE_SENSOR_CLOCK, &SnsDev);<br>
打开 SENSOR 的时钟。
SAMPLE_COMM_VI_SetMipiAttr<br>
ioctl(fd, HI_MIPI_SET_DEV_ATTR, &stcomboDevAttr);<br>
设置 MIPI、SLVS 和并口设备属性。
SAMPLE_COMM_VI_UnresetMipi<br>
ioctl(fd, HI_MIPI_UNRESET_MIPI, &devno);<br>
撤销复位 MIPI Rx<br>
SAMPLE_COMM_VI_UnresetSensor<br>
ioctl(fd, HI_MIPI_UNRESET_SENSOR, &SnsDev);<br>
撤销复位 sensor。<br>
SAMPLE_COMM_VI_SetParam<br>
HI_MPI_SYS_GetVIVPSSMode<br>
获取 VI,VPSS 的工作模式。
HI_MPI_SYS_SetVIVPSSMode<br>
设置 VI,VPSS 工作模式
SAMPLE_COMM_VI_CreateVi<br>
SAMPLE_COMM_VI_CreateSingleVi
SAMPLE_COMM_VI_StartDev
HI_MPI_VI_SetDevAttr<br>
设置 VI 设备属性。基本设备属性默认了部分芯片配置,<br>满足绝大部分的 sensor 对接要求。<br>
HI_MPI_VI_EnableDev<br>
启用 VI 设备<br>
SAMPLE_COMM_VI_BindPipeDev
HI_MPI_VI_SetDevBindPipe<br>
设置 VI 设备与物理 PIPE 的绑定关系<br>
SAMPLE_COMM_VI_StartViPipe<br>
HI_MPI_VI_CreatePipe<br>
创建一个 VI PIPE。<br>
HI_MPI_VI_StartPipe
启用 VI PIPE
SAMPLE_COMM_VI_StartViChn
HI_MPI_VI_SetChnAttr<br>
设置 VI 通道属性<br>
HI_MPI_VI_EnableChn
启用VI通道<br>
SAMPLE_COMM_VI_CreateIsp<br>
SAMPLE_COMM_VI_StartIsp
SAMPLE_COMM_ISP_Sensor_Regiter_callback
pstSnsObj->pfnRegisterCallback
注册sensor库
SAMPLE_COMM_ISP_Aelib_Callback
HI_MPI_AE_Register<br>
向 ISP 注册 AE 库
SAMPLE_COMM_ISP_Awblib_Callback
HI_MPI_AWB_Register<br>
向 ISP 注册 AWB 库
HI_MPI_ISP_MemInit<br>
初始化 ISP 外部寄存器<br>
HI_MPI_ISP_SetPubAttr<br>
设置 ISP 公共属性
HI_MPI_ISP_Init<br>
初始化 ISP firmware
SAMPLE_COMM_ISP_Run
pthread_create(&g_IspPid[IspDev],<br> pstAttr,<br> SAMPLE_COMM_ISP_Thread,<br> (HI_VOID *)IspDev)
HI_MPI_ISP_Run<br>
运行 ISP firmware
配置VPSS<br>
SAMPLE_VENC_VPSS_Init<br>
SAMPLE_VENC_VPSS_CreateGrp
HI_MPI_VPSS_CreateGrp<br>
创建一个 VPSS GROUP<br>
SAMPLE_VENC_VPSS_ChnEnable
HI_MPI_VPSS_SetChnAttr<br>
设置 VPSS 通道属性<br>
HI_MPI_VPSS_SetChnBufWrapAttr<br>
设置低延时卷绕属性<br>
HI_MPI_VPSS_EnableChn<br>
启用 VPSS 通道<br>
SAMPLE_VENC_VPSS_StartGrp
HI_MPI_VPSS_StartGrp<br>
启用 VPSS GROUP<br>
绑定 VI 与 VPSS<br>
SAMPLE_COMM_VI_Bind_VPSS<br>
HI_MPI_SYS_Bind<br>
数据源到数据接收者绑定接口<br>
获取gop属性<br>
SAMPLE_COMM_VENC_GetGopAttr<br>
stGopAttr
配置VENC<br>
SAMPLE_COMM_VENC_Start
SAMPLE_COMM_VENC_Creat
HI_MPI_VENC_CreateChn<br>
创建编码通道<br>
SAMPLE_COMM_VENC_CloseReEncode
HI_MPI_VENC_GetChnAttr<br>
获取编码通道的编码属性<br>
HI_MPI_VENC_GetRcParam<br>
获取通道码率控制高级参数<br>
HI_MPI_VENC_SetRcParam<br>
设置编码通道码率控制器的高级参数<br>
HI_MPI_VENC_StartRecvFrame<br>
开启编码通道接收输入图像,允许指定接收帧数,超出指定的帧数后自动停止接收图像<br>
绑定 VPSS 与 VENC<br>
SAMPLE_COMM_VPSS_Bind_VENC<br>
HI_MPI_SYS_Bind(&stSrcChn, &stDestChn), "HI_MPI_SYS_Bind(VPSS-VENC)")
数据源到数据接收者绑定接口
获取视频流<br>
SAMPLE_COMM_VENC_StartGetStream
pthread_create(&gs_VencPid, 0, <br> SAMPLE_COMM_VENC_GetVencStreamProc, <br> (HI_VOID*)&gs_stPara)
HI_MPI_VENC_GetFd<br>
获取编码通道对应的设备文件句柄
HI_MPI_VENC_GetStreamBufInfo<br>
获取码流 buffer 的物理地址和大小
s32Ret = select(maxfd + 1, &read_fds, NULL, NULL, &TimeoutVal);<br>
HI_MPI_VENC_QueryStatus<br>
查询编码通道状态
HI_MPI_VENC_GetStream<br>
获取编码的码流
HI_MPI_VENC_ReleaseStream<br>
释放码流缓存
收藏
0 条评论
下一页