Edit online

接口设计

用户进程通过 /dev/aic_ve 节点打开 VE 驱动。

IOC_VE_GET_CLIENT

接口语法:
intioctl(intfd,unsignedlongcmd);
函数原型 int drv_ve_control(struct aic_ve_client *client, int cmd, void *arg)
功能说明 获取 VE 设备独占权限
参数

cmd:IOC_VE_GET_CLIENT

返回值 0:成功;<0:失败
注意事项

IOC_VE_PUT_CLIENT

接口语法:
intioctl(intfd,unsignedlongcmd);
函数原型 int drv_ve_control(struct aic_ve_client *client, int cmd, void *arg)
功能说明 释放 VE 设备独占权限
参数定义

cmd:IOC_VE_PUT_CLIENT

返回值 0:成功;<0:失败
注意事项

IOC_VE_GET_CLIENT 和 IOC_VE_PUT_CLIENT 的调用必须一一对应

IOC_VE_WAIT

接口语法:
intioctl(intfd,unsignedlongcmd,structwait_info*info);
函数原型 int drv_ve_control(struct aic_ve_client *client, int cmd, void *arg)
功能说明 等待 VE 驱动编解码完成,获取 VE 寄存器状态
参数

CMD:IOC_VE_WAITinfo: 指向 info 指针

返回值 0:成功;<0:失败
注意事项

IOC_VE_WAIT 的调用必须在 IOC_VE_GET_CLIENT 和 IOC_VE_PUT_CLIENT 之间

IOC_VE_GET_INFO

接口语法:

intioctl(intfd,unsignedlongcmd,structve_info*info);
功能说明 获取 struct ve_info 数据
参数 CMD:IOC_VE_GET_INFOinfo: 指向 info 指针
返回值 0:成功;<0:失败
注意事项

IOC_VE_SET_INFO

接口语法:

intioctl(intfd,unsignedlongcmd,structve_info*info);
功能说明 设置 struct ve_info 数据
参数 CMD:IOC_VE_SET_INFOinfo: 指向 info 指针
返回值 0:成功;<0:失败
注意事项

IOC_VE_RESET

接口语法:
intioctl(intfd,unsignedlongcmd);
功能说明 VE 驱动硬件复位
参数

cmd:IOC_VE_RESET

返回值 0:成功;<0:失败
注意事项

IOC_VE_ADD_DMA_BUF

接口语法:

intioctl(intfd,unsignedlongcmd,structdma_buf_info*buf);
功能说明 加载 DMA buffer, 获取 DMA buffer 物理地址
参数 CMD:IOC_VE_ADD_DMA_BUFbuf: 指向 info 指针
返回值 0:成功;<0:失败
注意事项

IOC_VE_RM_DMA_BUF

接口语法:

intioctl(intfd,unsignedlongcmd,structdma_buf_info*buf);
功能说明 移除 DMA buffer
参数 CMD:IOC_VE_RM_DMA_BUFbuf: 指向 info 指针
返回值 0:成功;<0:失败
注意事项