跳到主要内容

MxDeInit

APP_ERROR说明

using APP_ERROR = int;

APP_ERROR类用于表示程序执行的返回码,其包括mxVision返回码及部分CANN返回码;CANN返回码用于表示CANN接口执行的情况,不推荐用户使用,其返回码含义详见《CANN AscendCL应用软件开发指南 (C&C++)》;mxVision返回码用于表示mxVision接口执行的情况,常与GetErrorInfo接口配合使用、用于记录日志。全量APP_ERROR返回码请参考“MxBase/ErrorCode/ErrorCode.h”文件。为了方便用户查阅mxVision返回码,下表展示了mxVision返回码列表。其中,返回信息用于解释返回码的具体含义。

表1 mxVision返回码列表

返回码返回码值返回信息
APP_ERR_OK0"Success"
APP_ERR_ACL_FAILURE-1"ACL: general failure"
APP_ERR_ACL_ERR_BASE0"Success"
APP_ERR_ACL_INVALID_PARAM1"ACL: invalid parameter"
APP_ERR_ACL_BAD_ALLOC2"ACL: memory allocation fail"
APP_ERR_ACL_RT_FAILURE3"ACL: runtime failure"
APP_ERR_ACL_GE_FAILURE4"ACL: Graph Engine failure"
APP_ERR_ACL_OP_NOT_FOUND5"ACL: operator not found"
APP_ERR_ACL_OP_LOAD_FAILED6"ACL: fail to load operator"
APP_ERR_ACL_READ_MODEL_FAILURE7"ACL: fail to read model"
APP_ERR_ACL_PARSE_MODEL8"ACL: parse model failure"
APP_ERR_ACL_MODEL_MISSING_ATTR9"ACL: model missing attribute"
APP_ERR_ACL_DESERIALIZE_MODEL10"ACL: deserialize model failure"
APP_ERR_ACL_EVENT_NOT_READY12"ACL: event not ready"
APP_ERR_ACL_EVENT_COMPLETE13"ACL: event complete"
APP_ERR_ACL_UNSUPPORTED_DATA_TYPE14"ACL: unsupported data type"
APP_ERR_ACL_REPEAT_INITIALIZE15"ACL: repeat initialize"
APP_ERR_ACL_COMPILER_NOT_REGISTERED16"ACL: compiler not registered"
APP_ERR_ACL_IO17"ACL: IO failed"
APP_ERR_ACL_INVALID_FILE18"ACL: invalid file"
APP_ERR_ACL_INVALID_DUMP_CONFIG19"ACL: invalid dump config"
APP_ERR_ACL_INVALID_PROFILING_CONFIG20"ACL: invalid profiling config"
APP_ERR_ACL_OP_TYPE_NOT_MATCH21"ACL: operator type not match"
APP_ERR_ACL_OP_INPUT_NOT_MATCH22"ACL: operator input not match"
APP_ERR_ACL_OP_OUTPUT_NOT_MATCH23"ACL: operator output not match"
APP_ERR_ACL_OP_ATTR_NOT_MATCH24"ACL: operator attribute not match"
APP_ERR_ACL_API_NOT_SUPPORT25"ACL: API not supported"
APP_ERR_ACL_BAD_COPY26"ACL: memory copy fail"
APP_ERR_ACL_BAD_FREE27"ACL: memory free fail"
APP_ERR_COMM_BASE1000"Success"
APP_ERR_COMM_FAILURE1001"General Failed"
APP_ERR_COMM_INNER1002"Internal error"
APP_ERR_COMM_INVALID_POINTER1003"Invalid Pointer"
APP_ERR_COMM_INVALID_PARAM1004"Invalid parameter"
APP_ERR_COMM_UNREALIZED1005"Not implemented"
APP_ERR_COMM_OUT_OF_MEM1006"Out of memory"
APP_ERR_COMM_ALLOC_MEM1007"memory allocation error"
APP_ERR_COMM_FREE_MEM1008"free memory error"
APP_ERR_COMM_OUT_OF_RANGE1009"out of range"
APP_ERR_COMM_NO_PERMISSION1010"NO Permission "
APP_ERR_COMM_TIMEOUT1011"Timed out"
APP_ERR_COMM_NOT_INIT1012"Not initialized"
APP_ERR_COMM_INIT_FAIL1013"initialize failed"
APP_ERR_COMM_INPROGRESS1014"Operation now in progress "
APP_ERR_COMM_EXIST1015"Object, file or other resource already exist"
APP_ERR_COMM_NO_EXIST1016"Object, file or other resource doesn't exist"
APP_ERR_COMM_BUSY1017"Object, file or other resource is in use"
APP_ERR_COMM_FULL1018"No available Device or resource"
APP_ERR_COMM_OPEN_FAIL1019"Device, file or resource open failed"
APP_ERR_COMM_READ_FAIL1020"Device, file or resource read failed"
APP_ERR_COMM_WRITE_FAIL1021"Device, file or resource write failed"
APP_ERR_COMM_DESTORY_FAIL1022"Device, file or resource destroy failed"
APP_ERR_COMM_EXIT1023"Fail to exit"
APP_ERR_COMM_CONNECTION_CLOSE1024"Out of connection, Communication shutdown"
APP_ERR_COMM_CONNECTION_FAILURE1025"connection fail"
APP_ERR_COMM_STREAM_INVALID1026"ACL stream is null pointer"
APP_ERR_COMM_LOGGING_CONFIG_OPEN_FAIL1027"Logging config loading failed"
APP_ERR_COMM_SDK_HOME_NOSET1028"SDK_HOME not set"
APP_ERR_COMM_INVALID_PATH1029"Invalid path"
APP_ERR_COMM_REPEAT_INITIALIZE1030"Repeat initialize"
APP_ERR_DVPP_BASE2000"Success"
APP_ERR_DVPP_CROP_FAIL2001"DVPP: crop fail"
APP_ERR_DVPP_RESIZE_FAIL2002"DVPP: resize fail"
APP_ERR_DVPP_CROP_RESIZE_FAIL2003"DVPP: crop and resize fail"
APP_ERR_DVPP_CONVERT_FROMAT_FAIL2004"DVPP: convert image format fail"
APP_ERR_DVPP_VPC_FAIL2005"DVPP: VPC(crop, resize, convert format) fail"
APP_ERR_DVPP_JPEG_DECODE_FAIL2006"DVPP: decode jpeg or jpg fail"
APP_ERR_DVPP_JPEG_ENCODE_FAIL2007"DVPP: encode jpeg or jpg fail"
APP_ERR_DVPP_PNG_DECODE_FAIL2008"DVPP: encode png fail"
APP_ERR_DVPP_H26X_DECODE_FAIL2009"DVPP: decode H264 or H265 fail"
APP_ERR_DVPP_H26X_ENCODE_FAIL2010"DVPP: encode H264 or H265 fail"
APP_ERR_DVPP_HANDLE_NULL2011"DVPP: acldvppChannelDesc is nullptr"
APP_ERR_DVPP_PICDESC_FAIL2012"DVPP: fail to create or set acldvppCreatePicDesc"
APP_ERR_DVPP_CONFIG_FAIL2013"DVPP: fail to set dvpp configuration"
APP_ERR_DVPP_OBJ_FUNC_MISMATCH2014"DVPP: DvppCommon object mismatch the function"
APP_ERR_DEVICE_ID_MISMATCH2015"DVPP: DvppCommon object mismatch the function"
APP_ERR_MEMEROY_TYPE_MISMATCH2016"DVPP: mismatch the memory type"
APP_ERR_METADATA_IS_NULL2017"DVPP: metadata is null"
APP_ERR_PROTOBUF_NAME_MISMATCH2018"DVPP: VpcReSize mismatch the protobuf name"
APP_ERR_DVPP_INVALID_FORMAT2019"DVPP: mismatch the image format"
APP_ERR_DVPP_INVALID_IMAGE_WIDTH2020"DVPP: image width out of range"
APP_ERR_DVPP_INVALID_IMAGE_HEIGHT2021"DVPP: image height out of range"
APP_ERR_VDEC_CHANNEL_NUM_OUT_OF_RANGE2022"DVPP: vdec channel num out of range"
APP_ERR_DVPP_CROP_RESIZE_PASTE_FAIL2023"DVPP: resize and paste fail"
APP_ERR_INFER_BASE3000"Success"
APP_ERR_INFER_SET_INPUT_FAIL3001"Infer: set input fail"
APP_ERR_INFER_SET_OUTPUT_FAIL3002"Infer: set output fail"
APP_ERR_INFER_CREATE_OUTPUT_FAIL3003"Infer: create output fail"
APP_ERR_INFER_OP_SET_ATTR_FAIL3004"Infer: set op attribute fail"
APP_ERR_INFER_GET_OUTPUT_FAIL3005"Infer: get model output fail"
APP_ERR_INFER_FIND_MODEL_ID_FAIL3006"Infer: find model id fail"
APP_ERR_INFER_FIND_MODEL_DESC_FAIL3007"Infer: find model description fail"
APP_ERR_INFER_FIND_MODEL_MEM_FAIL3008"Infer: find model memory fail"
APP_ERR_INFER_FIND_MODEL_WEIGHT_FAIL3009"Infer: find model weight fail"
APP_ERR_INFER_DYNAMIC_IMAGE_SIZE_FAIL3010"Infer: In DYNAMIC_HW mode, only batchSize=1 is supported."
APP_ERR_COMMANDER_BASE4000"Success"
APP_ERR_COMMANDER_SPLIT_PARA_ERROR4001"Commander Splitter parameter error"
APP_ERR_COMMANDER_SPLIT_CONVERT_ERROR4002"Commander Splitter coordinate conversion error"
APP_ERR_COMMANDER_NO_AVAIL_SERVER_ERROR4003"Commander Splitter server is not available"
APP_ERR_COMMANDER_INFER_RESULT_ERROR4004"Commander subtask inference result error."
APP_ERR_QUEUE_BASE5000"Success"
APP_ERR_QUEUE_EMPTY5001"empty queue"
APP_ERR_QUEUE_STOPED5002"queue stopped"
APP_ERR_QUEUE_FULL5003"full queue"
APP_ERR_STREAM_BASE6000"Success"
APP_ERR_STREAM_EXIST6001"stream is exist"
APP_ERR_STREAM_NOT_EXIST6002"stream is not exist"
APP_ERR_STREAM_CHANGE_STATE_FAILED6003"stream change state fail"
APP_ERR_STREAM_CREATE_FAILED6004"stream create fail"
APP_ERR_STREAM_INVALID_CONFIG6005"stream invalid config"
APP_ERR_STREAM_INVALID_LINK6006"stream invalid link"
APP_ERR_STREAM_LINK_FAILED6007"stream link fail"
APP_ERR_STREAM_TRANS_MODE_NOT_MATCHED6008"stream trans mode not match"
APP_ERR_STREAM_TRANS_MODE_INVALID6009"stream trans mode invalid"
APP_ERR_STREAM_TIMEOUT6010"stream timeout"
APP_ERR_STREAM_ELEMENT_INVALID6011"stream element invalid"
APP_ERR_STREAM_ELEMENT_EXIST6012"stream element exist"
APP_ERR_STREAM_ELEMENT_NOT_EXIST6013"stream element not exist"
APP_ERR_ELEMENT_INVALID_FACTORY6014"element invalid factory"
APP_ERR_ELEMENT_INVALID_PROPERTIES6015"element invalid properties"
APP_ERR_ELEMENT_PAD_UNLINKED6016"element pad unlinked"
APP_ERR_PIPELINE_PROPERTY_CONFIG_ERROR6017"pipeline property config error"
APP_ERR_PLUGIN_TOOLKIT_BASE7000"Success"
APP_ERR_PLUGIN_TOOLKIT_CREATE_NODE_FAILED7001"plugin toolkit create node fail"
APP_ERR_PLUGIN_TOOLKIT_NODE_ALREADY_EXIST7002"plugin toolkit node already exist"
APP_ERR_PLUGIN_TOOLKIT_MESSAGE_NOT_MATCH7003"plugin toolkit message not match"
APP_ERR_PLUGIN_TOOLKIT_PARENT_NOT_MATCH7004"plugin toolkit parent not match"
APP_ERR_PLUGIN_TOOLKIT_NOT_INITIALIZED7005"plugin toolkit not initialized"
APP_ERR_PLUGIN_TOOLKIT_NODELIST_NOT_EXIST7006"plugin toolkit nodelist not exist"
APP_ERR_PLUGIN_TOOLKIT_NODE_NOT_EXIST7007"plugin toolkit node not exist"
APP_ERR_PLUGIN_TOOLKIT_INVALID_MEMBERID7008"plugin toolkit invalid memberid"
APP_ERR_PLUGIN_TOOLKIT_METADATA_BUFFER_IS_NULL7009"plugin toolkit metadata buffer is null"
APP_ERR_PLUGIN_TOOLKIT_METADATA_KEY_ALREADY_EXIST7010"plugin toolkit metadata key already exist"
APP_ERR_PLUGIN_TOOLKIT_METADATA_KEY_NOEXIST7011"plugin toolkit metadata key not exist"
APP_ERR_PLUGIN_TOOLKIT_METADATA_KEY_ERASE_FAIL7012"plugin toolkit metadata key erase fail"
APP_ERR_PLUGIN_TOOLKIT_METADATA_IS_NULL7013"plugin toolkit metadata is null"
APP_ERR_PLUGIN_TOOLKIT_METADATA_ADD_ERROR_INFO_FAIL7014"plugin toolkit metadata add error info fail"
APP_ERR_PLUGIN_TOOLKIT_METADATA_PLUGIN_NAME_KEY_ALREADY_EXIST7015"plugin toolkit metadata plugin name key is exist"
APP_ERR_PLUGIN_TOOLKIT_METADATA_ERROR_INFO_MAP_IS_NULL7016"plugin toolkit metadata error info map is null"
APP_ERR_PLUGIN_TOOLKIT_MESSAGE_TO_STRING_FAILED7017"plugin toolkit metadata failed to convert message to string"
APP_ERR_PLUGIN_TOOLKIT_FLOW_NOT_LINKED7018"plugin toolkit pad is not linked"
APP_ERR_PLUGIN_TOOLKIT_FLOW_FLUSHING7019"plugin toolkit pad is flushing"
APP_ERR_PLUGIN_TOOLKIT_FLOW_EOS7020"plugin toolkit pad is EOS"
APP_ERR_PLUGIN_TOOLKIT_FLOW_NOT_NEGOTIATED7021"plugin toolkit pad is not negotiated"
APP_ERR_PLUGIN_TOOLKIT_FLOW_ERROR7022"plugin toolkit some error occurred.Element generating this error should post an error message"
APP_ERR_PLUGIN_TOOLKIT_FLOW_NOT_SUPPORTED7023"plugin toolkit operation is not supported"
APP_ERR_PLUGIN_TOOLKIT_METADATA_KEY_EMPTY7024"the key cannot be empty"
APP_ERR_PLUGIN_TOOLKIT_METADATA_PLUGINNAME_EMPTY7025"the plugin name cannot be empty"
APP_ERR_DEVICE_MANAGER_BASE9000"Success"
APP_ERR_DEVICE_MANAGER_QUERY_DEVICE_ERROR9001"DeviceManager:query device count error"
APP_ERR_DEVICE_MANAGER_DESTROY_DEVICE_CHECK_ERROR9002"DeviceManager:all devices have been released,init or release again fail"
APP_ERR_OP_BASE10000"Success"
APP_ERR_OP_CREATE_TENSOR_FAIL10001"Fail to create tensor in operator"
APP_ERR_OP_BAD_FREE10002"Bad free in operator"
APP_ERR_OP_EXECUTE_FAIL10003"Fail to execute operator"
APP_ERR_OP_SYNACHRONIZE_STREAM_FAIL10004"Fail to synchronize stream in operator"
APP_ERR_SIZE_NOT_MATCH10005"Mismatched size in operator"
APP_ERR_MXPLUGINS_BASE11000"Success"
APP_ERR_MXPLUGINS_DEVICE_ID_MISMATCH11001"MxPlugins: mismatch the device id"
APP_ERR_MXPLUGINS_MEMEROY_TYPE_MISMATCH11002"MxPlugins: mismatch the memory type"
APP_ERR_MXPLUGINS_METADATA_IS_NULL11003"MxPlugins: metadata is null"
APP_ERR_MXPLUGINS_PROTOBUF_NAME_MISMATCH11004"MxPlugins: protobuf descriptor name mismatch"

父主题: ErrorCode

MxInit

函数功能

全局初始化,申请Device资源与日志资源,mxVision接口全部执行完毕后,用户需调用MxDeInit()接口对初始化的全局资源进行去初始化操作。

  • 对于Atlas 200I/500 A2 推理产品:使用MxInit()。

函数原型

APP_ERROR MxInit()

参数说明

参数名输入/输出说明
globalCfg输入AppGlobalCfg类型,应用全局配置。

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: 初始化和去初始化

MxDeInit

函数功能

全局去初始化,释放Device等相关资源,需与全局初始化接口(MxInit)配套使用。

:::note 说明 涉及申请Device侧资源的类(TensorModelImageImageProcessorVideoEncoderVideoDecoder)与MxDeInit的作用域冲突,因此,这些类的作用域不能大于或等于MxDeInit的作用域。 :::

函数原型

APP_ERROR MxDeInit();

返回参数说明

数据结构说明
APP_ERROR程序执行返回的错误码,请参考APP_ERROR说明

父主题: 初始化和去初始化

类说明

Image数据类,作为图像处理(包含图片编解码)的输入与输出的数据结构。默认用户构造输入数据在Host侧,数据在设备间的转移由ImageProcessor类来进行管理,用户无需进行内存数据的转移操作。图像类的校验会在ImageProcessor类进行。

:::note 说明 Image类涉及申请Device侧资源,与MxDeInit的作用域冲突,因此,其作用域不能大于或等于MxDeInit的作用域。 :::

父主题: Image

Image

函数功能

Image类的构造函数,可支持以下方式进行创建。若因内存不足,或无法识别芯片等构造失败的场景,则会抛出异常。

  • 创建空Image对象。
  • 创建自定义内存数据的图片,图片格式类型默认为ImageFormat::YUV_SP_420,设备ID默认为Host侧(deviceId = -1)。
  • 创建带对齐高、宽和有效高、宽,自定义内存数据的图片,使用时需满足以下条件。
    • “deviceId”(设备ID)需为有效值,取值范围为[-1, 识别到的Device数-1],否则接口会调用失败。

    • “format”支持以下图片格式类型。

      YUV_400 = 0,
      RGB_888 = 12,
      BGR_888 = 13,
      ARGB_8888 = 14,
      ABGR_8888 = 15,
      RGBA_8888 = 16,
      BGRA_8888 = 17,
    • “dataSize”需要与有效宽高对齐后宽高一致,计算公式可参考:dataSize = 宽 * 高 * 通道数

:::note 说明 用户申请Host内存后,如需在Device侧构造Image对象,请参考如下操作进行。

  1. 在Host侧构造Image对象,“deviceId”为“-1”(与“imageData”内存位置一致,设置为Host侧)。
  2. 构造后的Image对象使用ToDevice(deviceId)方法,将内存迁移至Device侧。 :::

函数原型

Image();
Image(const std::shared_ptr<uint8_t> imageData, const uint32_t dataSize, const int32_t deviceId = -1, const Size imageSize = DEFAULT_IMAGE_SIZE, const ImageFormat format = ImageFormat::YUV_SP_420);
Image(const std::shared_ptr<uint8_t> imageData, const uint32_t dataSize, const int32_t deviceId, const std::pair<Size, Size> imageSizeInfo, const ImageFormat format);

参数说明

参数名输入/输出说明
imageData输入用户构造的输入内存,该内存由用户管理申请和释放,不能为空指针(nullptr)。
dataSize输入用户输入内存的大小,需要与实际内存数据大小一致。
imageSize输入图像的宽高,默认为(0, 0)。 若用户自申请Device侧的内存,请设置实际内存数据对应的图像高宽数据。
imageSizeInfo输入图像有效宽高对齐后宽高的组合,有效宽、高应不超过对齐后的宽、高,输入方式参见如下。
cpp<br>std::pair<Size, Size> imageSizeInfo(有效宽高,对齐后的宽高)<br>
- 有效宽、高取值范围为[6, 8192]。
- 对齐后宽、高取值范围为[16, 8192],其中宽为16的倍数、高为2的倍数。
format输入图片格式类型。
deviceId输入用户输入内存的设备ID。若用户自申请Device侧的内存,请输入对应的deviceId。 取值范围:[-1, 识别到的Device数-1]。 该值需要与“imageData”为同一侧内存(Host侧为“-1”,Device侧为具体设备ID),否则后续业务存在风险和异常。

父主题: Image

~Image

函数功能

Image类的默认析构函数。

函数原型

~Image()

父主题: Image

在线提单