下载
中文
注册

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

处理结果:

  • 成功:返回0。
  • 失败:返回码请参见返回码

异常处理

无。

约束说明

获取dvpp设备时sub_cmd,buf和size之间必须要满足以下关系,如果不满足会导致接口调用失败。

表1 sub_cmd对应的buf格式

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)

表2 部署场景

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;
}
…