DCMI_MAIN_CMD_DVPP命令说明
函数原型
int dcmi_get_device_info(int card_id, int device_id, enum dcmi_main_cmd main_cmd, unsigned int sub_cmd, void *buf, unsigned int *size)
功能说明
获取dvpp相关状态,配置信息。
参数说明
参数名称 |
输入/输出 |
类型 |
描述 |
---|---|---|---|
card_id |
输入 |
int |
指定NPU管理单元的ID,当前实际支持的ID通过dcmi_get_card_list接口获取。 |
device_id |
输入 |
int |
指定设备编号,通过dcmi_get_device_id_in_card接口获取。取值范围如下: NPU芯片:[0, device_id_max-1]。 |
main_cmd |
输入 |
enum dcmi_main_cmd |
DCMI_MAIN_CMD_DVPP |
sub_cmd |
输入 |
unsigned int |
sub_cmd 获取对应模块下子属性信息。 /* DCMI sub command for DVPP module */ #define DCMI_SUB_CMD_DVPP_STATUS 0 // dvpp状态,buf为0表示状态正常,非0表示状态异常 #define DCMI_SUB_CMD_DVPP_VDEC_RATE 1 // vdec利用率,正常值范围0-100 #define DCMI_SUB_CMD_DVPP_VPC_RATE 2 // vpc利用率,正常值范围0-100 #define DCMI_SUB_CMD_DVPP_VENC_RATE 3 // venc利用率,正常值范围0-100 #define DCMI_SUB_CMD_DVPP_JPEGE_RATE 4 // jpege利用率,正常值范围0-100 #define DCMI_SUB_CMD_DVPP_JPEGD_RATE 5 // jpegd利用率,正常值范围0-100 目前不支持DCMI_SUB_CMD_DVPP_VENC_RATE命令的查询。 |
buf |
输出 |
void * |
用于接收设备信息的返回值。 |
size |
输入/输出 |
unsigned int * |
buf数组的输入/输出长度。 |
返回值
类型 |
描述 |
---|---|
int |
处理结果:
|
异常处理
无。
约束说明
获取dvpp设备时sub_cmd,buf和size之间必须要满足以下关系,如果不满足会导致接口调用失败。
sub_cmd |
buf对应的数据类型 |
size |
---|---|---|
DCMI_SUB_CMD_DVPP_STATUS |
unsigned int |
长度为:sizeof(unsigned int) |
DCMI_SUB_CMD_DVPP_VDEC_RATE DCMI_SUB_CMD_DVPP_VPC_RATE DCMI_SUB_CMD_DVPP_VENC_RATE DCMI_SUB_CMD_DVPP_JPEGE_RATE DCMI_SUB_CMD_DVPP_JPEGD_RATE |
unsigned int |
长度为:sizeof(unsigned int) |
Linux物理机 |
Linux物理机容器 |
|
root用户 |
运行用户组(非root用户) |
root用户 |
Y |
Y |
Y |
调用示例
… int ret; int card_id = 0; int device_id = 0; int buf = 0; unsigned int size = sizeof(int); unsigned int sub_cmd = 0; ret = dcmi_get_device_info(card_id, device_id, DCMI_MAIN_CMD_DVPP, sub_cmd, &buf, &size); if (ret != 0){ //todo:记录日志 return ret; } …