Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
ie_c_api.h File Reference
#include <stdint.h>
#include <stdio.h>

Go to the source code of this file.

Data Structures

struct  ie_version
 Represents an API version information that reflects the set of supported features. More...
 
struct  ie_core_version
 Represents version information that describes devices and the inference engine runtime library. More...
 
struct  ie_core_versions
 Represents all versions information that describes all devices and the inference engine runtime library. More...
 
struct  ie_config
 Represents configuration information that describes devices. More...
 
struct  ie_param
 metric and config parameters. More...
 
struct  ie_param_config
 Represents configuration parameter information. More...
 
struct  desc
 Represents detailed information for an error. More...
 
struct  dimensions
 Represents dimensions for input or output data. More...
 
struct  tensor_desc
 Represents detailed information for a tensor. More...
 
struct  roi
 
struct  input_shape
 Represents shape for input data. More...
 
struct  input_shapes
 Represents shapes for all input data. More...
 
struct  ie_blob_buffer
 Represents copied data from the given blob. More...
 
struct  ie_complete_call_back
 Completion callback definition about the function and args. More...
 
struct  ie_available_devices
 Represent all available devices. More...
 

Macros

#define INFERENCE_ENGINE_C_API_EXTERN
 
#define INFERENCE_ENGINE_C_API(...)   INFERENCE_ENGINE_C_API_EXTERN __attribute__((visibility("default"))) __VA_ARGS__
 
#define IE_NODISCARD   __attribute__((warn_unused_result))
 
#define INFERENCE_ENGINE_C_API_CALLBACK
 

Typedefs

typedef struct ie_core ie_core_t
 
typedef struct ie_network ie_network_t
 
typedef struct ie_executable ie_executable_network_t
 
typedef struct ie_infer_request ie_infer_request_t
 
typedef struct ie_blob ie_blob_t
 
typedef struct ie_version ie_version_t
 
typedef struct ie_core_version ie_core_version_t
 
typedef struct ie_core_versions ie_core_versions_t
 
typedef struct ie_config ie_config_t
 
typedef struct ie_param ie_param_t
 
typedef struct ie_param_config ie_param_config_t
 
typedef struct desc desc_t
 
typedef struct dimensions dimensions_t
 
typedef struct tensor_desc tensor_desc_t
 
typedef struct roi roi_t
 
typedef struct input_shape input_shape_t
 
typedef struct input_shapes input_shapes_t
 
typedef struct ie_blob_buffer ie_blob_buffer_t
 
typedef struct ie_complete_call_back ie_complete_call_back_t
 
typedef struct ie_available_devices ie_available_devices_t
 

Enumerations

enum  layout_e {
  ANY = 0 , NCHW = 1 , NHWC = 2 , NCDHW = 3 ,
  NDHWC = 4 , OIHW = 64 , SCALAR = 95 , C = 96 ,
  CHW = 128 , HW = 192 , NC = 193 , CN = 194 ,
  BLOCKED = 200
}
 Layouts that the inference engine supports. More...
 
enum  precision_e {
  UNSPECIFIED = 255 , MIXED = 0 , FP32 = 10 , FP16 = 11 ,
  Q78 = 20 , I16 = 30 , U8 = 40 , I8 = 50 ,
  U16 = 60 , I32 = 70 , I64 = 72 , U64 = 73 ,
  U32 = 74 , BIN = 71 , CUSTOM = 80
}
 Precisions that the inference engine supports. More...
 
enum  colorformat_e {
  RAW = 0u , RGB , BGR , RGBX ,
  BGRX , NV12 , I420
}
 Extra information about input color format for preprocessing. More...
 
enum  resize_alg_e { NO_RESIZE = 0 , RESIZE_BILINEAR , RESIZE_AREA }
 Represents the list of supported resize algorithms. More...
 
enum  IEStatusCode {
  OK = 0 , GENERAL_ERROR = -1 , NOT_IMPLEMENTED = -2 , NETWORK_NOT_LOADED = -3 ,
  PARAMETER_MISMATCH = -4 , NOT_FOUND = -5 , OUT_OF_BOUNDS = -6 , UNEXPECTED = -7 ,
  REQUEST_BUSY = -8 , RESULT_NOT_READY = -9 , NOT_ALLOCATED = -10 , INFER_NOT_STARTED = -11 ,
  NETWORK_NOT_READ = -12
}
 This enum contains codes for all possible return values of the interface functions.
 

Functions

 __attribute__ ((visibility("default"))) ie_version_t ie_c_api_version(void)
 Returns number of version that is exported. Use the ie_version_free() to free memory. More...
 

Variables

ie_core_t ** core
 
const char * device_name
 
const char ie_core_versions_tversions
 
const char * xml
 
const char const char * weights_file
 
const char const char ie_network_t ** network
 
const uint8_t * xml_content
 
const uint8_t size_t xml_content_size
 
const uint8_t size_t const ie_blob_t * weight_blob
 
const ie_network_t const char const ie_config_tconfig
 
const ie_network_t const char const ie_config_t ie_executable_network_t ** exe_network
 
const ie_config_tie_core_config
 
const char * plugin_name
 
const char * xml_config_file
 
const char * extension_path
 
const char const char * metric_name
 
const char const char ie_param_tparam_result
 
const char const char * config_name
 
ie_available_devices_tavai_devices
 
ie_infer_request_t ** request
 
const ie_config_tparam_config
 
const char * metric_config
 
const char * name
 
const char ie_blob_t ** blob
 
ie_complete_call_back_tcallback
 
const int64_t timeout
 
const size_t size
 
size_t * size_result
 
size_t number
 
const char * input_name
 
const char precision_eprec_result
 
const char const precision_e p
 
const char layout_elayout_result
 
const char const layout_e l
 
const char dimensions_tdims_result
 
const char resize_alg_eresize_alg_result
 
const char const resize_alg_e resize_algo
 
const char colorformat_ecolformat_result
 
const char const colorformat_e color_format
 
input_shapes_tshapes
 
const char * output_name
 
void * ptr
 
const roi_troi
 
const ie_blob_t * uv
 
const ie_blob_t ie_blob_t ** nv12Blob
 
const ie_blob_t * u
 
const ie_blob_t const ie_blob_t * v
 
const ie_blob_t const ie_blob_t ie_blob_t ** i420Blob
 
int * bsize_result
 
ie_blob_buffer_tblob_buffer
 
ie_blob_buffer_tblob_cbuffer
 

Detailed Description

C API of Inference Engine bridge unlocks using of OpenVINO Inference Engine library and all its plugins in native applications disabling usage of C++ API. The scope of API covers significant part of C++ API and includes an ability to read model from the disk, modify input and output information to correspond their runtime representation like data types or memory layout, load in-memory model to Inference Engine on different devices including heterogeneous and multi-device modes, manage memory where input and output is allocated and manage inference flow.

Enumeration Type Documentation

◆ colorformat_e

Extra information about input color format for preprocessing.

Enumerator
RAW 

Plain blob (default), no extra color processing required.

RGB 

RGB color format.

BGR 

BGR color format, default in DLDT.

RGBX 

RGBX color format with X ignored during inference.

BGRX 

BGRX color format with X ignored during inference.

NV12 

NV12 color format represented as compound Y+UV blob.

I420 

I420 color format represented as compound Y+U+V blob.

◆ layout_e

enum layout_e

Layouts that the inference engine supports.

Enumerator
ANY 

"ANY" layout

NCHW 

"NCHW" layout

NHWC 

"NHWC" layout

NCDHW 

"NCDHW" layout

NDHWC 

"NDHWC" layout

OIHW 

"OIHW" layout

SCALAR 

"SCALAR" layout

"C" layout

CHW 

"CHW" layout

HW 

"HW" layout

NC 

"NC" layout

CN 

"CN" layout

BLOCKED 

"BLOCKED" layout

◆ precision_e

Precisions that the inference engine supports.

Enumerator
UNSPECIFIED 

Unspecified value. Used by default

MIXED 

Mixed value. Can be received from network. No applicable for tensors

FP32 

32bit floating point value

FP16 

16bit floating point value

Q78 

16bit specific signed fixed point precision

I16 

16bit signed integer value

U8 

8bit unsigned integer value

I8 

8bit signed integer value

U16 

16bit unsigned integer value

I32 

32bit signed integer value

I64 

64bit signed integer value

U64 

64bit unsigned integer value

U32 

32bit unsigned integer value

BIN 

1bit integer value

CUSTOM 

custom precision has it's own name and size of elements

◆ resize_alg_e

Represents the list of supported resize algorithms.

Enumerator
NO_RESIZE 

"No resize" mode

RESIZE_BILINEAR 

"Bilinear resize" mode

RESIZE_AREA 

"Area resize" mode