模块架构
-
VE HAL :负责 VE 硬件资源初始化和获取等
-
VE DRV :对 HAL 层的封装,向上提供更简洁的接口
-
MPP :直接掉用 HAL 层接口,处理编解码逻辑,寄存器配置等
-
APP :应用层调用 MPP 层接口,即可实现对 VE 的操作

基本流程如下:
- 调用 drv_ve_open 打开 VE 驱动;
- 调用 drv_ve_control(IOC_VE_GET_CLIENT) 获取 ve 硬件设备独占权限;
- 程序完成一次独立的编解码任务:配置寄存器、等待 VE 当前任务完成;
- 调用 drv_ve_control(IOC_VE_PUT_CLIENT)释放 ve 硬件设备独占权限;
- 视频帧解码完成,调用 drv_ve_close 关闭 VE 驱动。