VPC参数校验失败

适用场景

现象描述

调用VPC功能接口返回0xA0078003,即HI_ERR_VPC_ILLEGAL_PARAM,参数超出合法范围。查看日志有类似如下报错信息:

日志信息(1):

resize width (224) is greater than output width (120)

日志信息(2):

crop width 120 cannot be greater than input width 100

日志信息(3):

resize interpolation [8] is not supported

日志信息(4):

buffer size(50176) is smaller than need buffer size(95264) when format is 1

日志信息(5):

on device 0, num 0 input addr (start 0x100020003000 end 0x100020004000) is illegal

可能原因

针对上面日志信息分析,可能存在以下对应原因:

定位思路

  1. 根据日志描述的错误信息,找到VPC对应的配置参数,根据提示进行修改。
  2. 根据日志描述的错误信息,参考应用软件开发指南(C&C++)中DVPP接口章节VPC参数的约束修改。

处理步骤

根据提示的错误信息进行修改:

  1. 如果为日志信息(1),修改resize宽,使其小于等于输出宽。
  2. 如果为日志信息(2),修改抠图宽,使其小于输入宽。
  3. 如果为日志信息(3),修改缩放算法为对应版本支持的类型。
  4. 如果为日志信息(4),需要按照格式申请足够的内存,并正确配置buffer_size
  5. 如果为日志信息(5),使用hi_mpi_dvpp_malloc或acldvppMalloc 申请图片地址