FFmpeg
Data Structures | Macros | Functions | Variables
dnn_backend_openvino.c File Reference
#include "dnn_backend_openvino.h"
#include "dnn_io_proc.h"
#include "libavformat/avio.h"
#include "libavutil/avassert.h"
#include "libavutil/opt.h"
#include "libavutil/avstring.h"
#include "../internal.h"
#include "queue.h"
#include "safe_queue.h"
#include <c_api/ie_c_api.h>

Go to the source code of this file.

Data Structures

struct  OVOptions
 
struct  OVContext
 
struct  OVModel
 
struct  TaskItem
 
struct  RequestItem
 

Macros

#define APPEND_STRING(generated_string, iterate_string)
 
#define OFFSET(x)   offsetof(OVContext, x)
 
#define FLAGS   AV_OPT_FLAG_FILTERING_PARAM
 

Functions

 AVFILTER_DEFINE_CLASS (dnn_openvino)
 
static DNNDataType precision_to_datatype (precision_e precision)
 
static int get_datatype_size (DNNDataType dt)
 
static DNNReturnType fill_model_input_ov (OVModel *ov_model, RequestItem *request)
 
static void infer_completion_callback (void *args)
 
static DNNReturnType init_model_ov (OVModel *ov_model, const char *input_name, const char *output_name)
 
static DNNReturnType execute_model_ov (RequestItem *request)
 
static DNNReturnType get_input_ov (void *model, DNNData *input, const char *input_name)
 
static DNNReturnType get_output_ov (void *model, const char *input_name, int input_width, int input_height, const char *output_name, int *output_width, int *output_height)
 
DNNModelff_dnn_load_model_ov (const char *model_filename, DNNFunctionType func_type, const char *options, AVFilterContext *filter_ctx)
 
DNNReturnType ff_dnn_execute_model_ov (const DNNModel *model, const char *input_name, AVFrame *in_frame, const char **output_names, uint32_t nb_output, AVFrame *out_frame)
 
DNNReturnType ff_dnn_execute_model_async_ov (const DNNModel *model, const char *input_name, AVFrame *in_frame, const char **output_names, uint32_t nb_output, AVFrame *out_frame)
 
DNNAsyncStatusType ff_dnn_get_async_result_ov (const DNNModel *model, AVFrame **in, AVFrame **out)
 
DNNReturnType ff_dnn_flush_ov (const DNNModel *model)
 
void ff_dnn_free_model_ov (DNNModel **model)
 

Variables

static const AVOption dnn_openvino_options []
 

Detailed Description

DNN OpenVINO backend implementation.

Definition in file dnn_backend_openvino.c.

Macro Definition Documentation

◆ APPEND_STRING

#define APPEND_STRING (   generated_string,
  iterate_string 
)
Value:
generated_string = generated_string ? av_asprintf("%s %s", generated_string, iterate_string) : \
av_asprintf("%s", iterate_string);

Definition at line 80 of file dnn_backend_openvino.c.

◆ OFFSET

#define OFFSET (   x)    offsetof(OVContext, x)

Definition at line 84 of file dnn_backend_openvino.c.

◆ FLAGS

#define FLAGS   AV_OPT_FLAG_FILTERING_PARAM

Definition at line 85 of file dnn_backend_openvino.c.

Function Documentation

◆ AVFILTER_DEFINE_CLASS()

AVFILTER_DEFINE_CLASS ( dnn_openvino  )

◆ precision_to_datatype()

static DNNDataType precision_to_datatype ( precision_e  precision)
static

◆ get_datatype_size()

static int get_datatype_size ( DNNDataType  dt)
static

Definition at line 110 of file dnn_backend_openvino.c.

Referenced by fill_model_input_ov(), and infer_completion_callback().

◆ fill_model_input_ov()

static DNNReturnType fill_model_input_ov ( OVModel ov_model,
RequestItem request 
)
static

Definition at line 124 of file dnn_backend_openvino.c.

Referenced by execute_model_ov(), and ff_dnn_flush_ov().

◆ infer_completion_callback()

static void infer_completion_callback ( void *  args)
static

Definition at line 183 of file dnn_backend_openvino.c.

Referenced by execute_model_ov(), and init_model_ov().

◆ init_model_ov()

static DNNReturnType init_model_ov ( OVModel ov_model,
const char *  input_name,
const char *  output_name 
)
static

◆ execute_model_ov()

static DNNReturnType execute_model_ov ( RequestItem request)
static

◆ get_input_ov()

static DNNReturnType get_input_ov ( void *  model,
DNNData input,
const char *  input_name 
)
static

Definition at line 432 of file dnn_backend_openvino.c.

Referenced by ff_dnn_load_model_ov().

◆ get_output_ov()

static DNNReturnType get_output_ov ( void *  model,
const char *  input_name,
int  input_width,
int  input_height,
const char *  output_name,
int output_width,
int output_height 
)
static

Definition at line 482 of file dnn_backend_openvino.c.

Referenced by ff_dnn_load_model_ov().

◆ ff_dnn_load_model_ov()

DNNModel* ff_dnn_load_model_ov ( const char *  model_filename,
DNNFunctionType  func_type,
const char *  options,
AVFilterContext filter_ctx 
)

Definition at line 552 of file dnn_backend_openvino.c.

Referenced by ff_get_dnn_module().

◆ ff_dnn_execute_model_ov()

DNNReturnType ff_dnn_execute_model_ov ( const DNNModel model,
const char *  input_name,
AVFrame in_frame,
const char **  output_names,
uint32_t  nb_output,
AVFrame out_frame 
)

Definition at line 609 of file dnn_backend_openvino.c.

Referenced by ff_get_dnn_module().

◆ ff_dnn_execute_model_async_ov()

DNNReturnType ff_dnn_execute_model_async_ov ( const DNNModel model,
const char *  input_name,
AVFrame in_frame,
const char **  output_names,
uint32_t  nb_output,
AVFrame out_frame 
)

Definition at line 663 of file dnn_backend_openvino.c.

Referenced by ff_get_dnn_module().

◆ ff_dnn_get_async_result_ov()

DNNAsyncStatusType ff_dnn_get_async_result_ov ( const DNNModel model,
AVFrame **  in,
AVFrame **  out 
)

Definition at line 718 of file dnn_backend_openvino.c.

Referenced by ff_get_dnn_module().

◆ ff_dnn_flush_ov()

DNNReturnType ff_dnn_flush_ov ( const DNNModel model)

Definition at line 739 of file dnn_backend_openvino.c.

Referenced by ff_get_dnn_module().

◆ ff_dnn_free_model_ov()

void ff_dnn_free_model_ov ( DNNModel **  model)

Definition at line 781 of file dnn_backend_openvino.c.

Referenced by ff_dnn_load_model_ov(), ff_get_dnn_module(), and init_model_ov().

Variable Documentation

◆ dnn_openvino_options

const AVOption dnn_openvino_options[]
static
Initial value:
= {
{ "device", "device to run model", OFFSET(options.device_type), AV_OPT_TYPE_STRING, { .str = "CPU" }, 0, 0, FLAGS },
{ "nireq", "number of request", OFFSET(options.nireq), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, FLAGS },
{ "batch_size", "batch size per request", OFFSET(options.batch_size), AV_OPT_TYPE_INT, { .i64 = 1 }, 1, 1000, FLAGS},
{ "input_resizable", "can input be resizable or not", OFFSET(options.input_resizable), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, FLAGS },
{ NULL }
}

Definition at line 86 of file dnn_backend_openvino.c.

OFFSET
#define OFFSET(x)
Definition: dnn_backend_openvino.c:84
av_asprintf
char * av_asprintf(const char *fmt,...)
Definition: avstring.c:113
NULL
#define NULL
Definition: coverity.c:32
options
const OptionDef options[]
AV_OPT_TYPE_INT
@ AV_OPT_TYPE_INT
Definition: opt.h:225
AV_OPT_TYPE_BOOL
@ AV_OPT_TYPE_BOOL
Definition: opt.h:242
AV_OPT_TYPE_STRING
@ AV_OPT_TYPE_STRING
Definition: opt.h:229
FLAGS
#define FLAGS
Definition: dnn_backend_openvino.c:85