FFmpeg
|
#include "dnn_backend_tf.h"
#include "dnn_backend_native.h"
#include "dnn_backend_native_layer_conv2d.h"
#include "dnn_backend_native_layer_depth2space.h"
#include "libavformat/avio.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/cpu.h"
#include "libavcodec/defs.h"
#include "../internal.h"
#include "dnn_backend_native_layer_pad.h"
#include "dnn_backend_native_layer_maximum.h"
#include "dnn_io_proc.h"
#include "dnn_backend_common.h"
#include "safe_queue.h"
#include <tensorflow/c/c_api.h>
Go to the source code of this file.
Data Structures | |
struct | TFOptions |
struct | TFContext |
struct | TFModel |
struct | TFInferRequest |
Stores execution parameters for single call to the TensorFlow C API. More... | |
struct | TFRequestItem |
Macros | |
#define | OFFSET(x) offsetof(TFContext, x) |
#define | FLAGS AV_OPT_FLAG_FILTERING_PARAM |
#define | SPACE_CHARS " \t\r\n" |
#define | NAME_BUFFER_SIZE 256 |
#define | CLEANUP_ON_ERROR(tf_model) |
Functions | |
AVFILTER_DEFINE_CLASS (dnn_tensorflow) | |
static int | execute_model_tf (TFRequestItem *request, Queue *lltask_queue) |
static void | infer_completion_callback (void *args) |
static void | destroy_request_item (TFRequestItem **arg) |
Free the TFRequestItem completely. More... | |
static void | free_buffer (void *data, size_t length) |
static void | tf_free_request (TFInferRequest *request) |
Free the contents of TensorFlow inference request. More... | |
static TFInferRequest * | tf_create_inference_request (void) |
Create a TensorFlow inference request. More... | |
static int | tf_start_inference (void *args) |
Start synchronous inference for the TensorFlow model. More... | |
static int | extract_lltask_from_task (TaskItem *task, Queue *lltask_queue) |
static TF_Buffer * | read_graph (const char *model_filename) |
static TF_Tensor * | allocate_input_tensor (const DNNData *input) |
static int | get_input_tf (void *model, DNNData *input, const char *input_name) |
static int | get_output_tf (void *model, const char *input_name, int input_width, int input_height, const char *output_name, int *output_width, int *output_height) |
static int | hex_to_data (uint8_t *data, const char *p) |
static int | load_tf_model (TFModel *tf_model, const char *model_filename) |
static int | add_conv_layer (TFModel *tf_model, TF_Operation *transpose_op, TF_Operation **cur_op, ConvolutionalParams *params, const int layer) |
static int | add_depth_to_space_layer (TFModel *tf_model, TF_Operation **cur_op, DepthToSpaceParams *params, const int layer) |
static int | add_pad_layer (TFModel *tf_model, TF_Operation **cur_op, LayerPadParams *params, const int layer) |
static int | add_maximum_layer (TFModel *tf_model, TF_Operation **cur_op, DnnLayerMaximumParams *params, const int layer) |
static int | load_native_model (TFModel *tf_model, const char *model_filename) |
DNNModel * | ff_dnn_load_model_tf (const char *model_filename, DNNFunctionType func_type, const char *options, AVFilterContext *filter_ctx) |
static int | fill_model_input_tf (TFModel *tf_model, TFRequestItem *request) |
int | ff_dnn_execute_model_tf (const DNNModel *model, DNNExecBaseParams *exec_params) |
DNNAsyncStatusType | ff_dnn_get_result_tf (const DNNModel *model, AVFrame **in, AVFrame **out) |
int | ff_dnn_flush_tf (const DNNModel *model) |
void | ff_dnn_free_model_tf (DNNModel **model) |
Variables | |
static const AVOption | dnn_tensorflow_options [] |
DNN tensorflow backend implementation.
Definition in file dnn_backend_tf.c.
#define OFFSET | ( | x | ) | offsetof(TFContext, x) |
Definition at line 83 of file dnn_backend_tf.c.
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM |
Definition at line 84 of file dnn_backend_tf.c.
#define SPACE_CHARS " \t\r\n" |
Definition at line 361 of file dnn_backend_tf.c.
#define NAME_BUFFER_SIZE 256 |
Definition at line 493 of file dnn_backend_tf.c.
#define CLEANUP_ON_ERROR | ( | tf_model | ) |
AVFILTER_DEFINE_CLASS | ( | dnn_tensorflow | ) |
|
static |
Definition at line 1099 of file dnn_backend_tf.c.
Referenced by ff_dnn_execute_model_tf(), and get_output_tf().
|
static |
Definition at line 1041 of file dnn_backend_tf.c.
Referenced by execute_model_tf(), and ff_dnn_load_model_tf().
|
inlinestatic |
Free the TFRequestItem completely.
arg | Address of the TFInferRequest instance. |
Definition at line 192 of file dnn_backend_tf.c.
Referenced by execute_model_tf(), ff_dnn_flush_tf(), ff_dnn_free_model_tf(), ff_dnn_load_model_tf(), infer_completion_callback(), and tf_start_inference().
|
static |
Definition at line 97 of file dnn_backend_tf.c.
Referenced by read_graph().
|
static |
Free the contents of TensorFlow inference request.
It does not free the TFInferRequest instance.
request | pointer to TFInferRequest instance. NULL pointer is allowed. |
Definition at line 109 of file dnn_backend_tf.c.
Referenced by destroy_request_item(), execute_model_tf(), fill_model_input_tf(), infer_completion_callback(), and tf_start_inference().
|
static |
Create a TensorFlow inference request.
All properties are initially unallocated and set as NULL.
Definition at line 137 of file dnn_backend_tf.c.
Referenced by ff_dnn_load_model_tf().
|
static |
Start synchronous inference for the TensorFlow model.
request | pointer to the TFRequestItem for inference |
0 | if execution is successful |
AVERROR(EINVAL) | if request is NULL |
DNN_GENERIC_ERROR | if execution fails |
Definition at line 158 of file dnn_backend_tf.c.
Referenced by execute_model_tf(), and ff_dnn_load_model_tf().
Definition at line 206 of file dnn_backend_tf.c.
Referenced by ff_dnn_execute_model_tf(), and get_output_tf().
|
static |
Definition at line 226 of file dnn_backend_tf.c.
Referenced by load_tf_model().
|
static |
Definition at line 259 of file dnn_backend_tf.c.
Referenced by fill_model_input_tf().
Definition at line 281 of file dnn_backend_tf.c.
Referenced by ff_dnn_load_model_tf(), and fill_model_input_tf().
|
static |
Definition at line 317 of file dnn_backend_tf.c.
Referenced by ff_dnn_load_model_tf().
|
static |
Definition at line 362 of file dnn_backend_tf.c.
Referenced by load_tf_model().
Definition at line 391 of file dnn_backend_tf.c.
Referenced by ff_dnn_load_model_tf().
|
static |
Definition at line 495 of file dnn_backend_tf.c.
Referenced by load_native_model().
|
static |
Definition at line 617 of file dnn_backend_tf.c.
Referenced by load_native_model().
|
static |
Definition at line 641 of file dnn_backend_tf.c.
Referenced by load_native_model().
|
static |
Definition at line 699 of file dnn_backend_tf.c.
Referenced by load_native_model().
Definition at line 748 of file dnn_backend_tf.c.
Referenced by ff_dnn_load_model_tf().
DNNModel* ff_dnn_load_model_tf | ( | const char * | model_filename, |
DNNFunctionType | func_type, | ||
const char * | options, | ||
AVFilterContext * | filter_ctx | ||
) |
Definition at line 852 of file dnn_backend_tf.c.
Referenced by ff_get_dnn_module().
|
static |
Definition at line 947 of file dnn_backend_tf.c.
Referenced by execute_model_tf(), and ff_dnn_flush_tf().
int ff_dnn_execute_model_tf | ( | const DNNModel * | model, |
DNNExecBaseParams * | exec_params | ||
) |
Definition at line 1144 of file dnn_backend_tf.c.
Referenced by ff_get_dnn_module().
DNNAsyncStatusType ff_dnn_get_result_tf | ( | const DNNModel * | model, |
AVFrame ** | in, | ||
AVFrame ** | out | ||
) |
Definition at line 1189 of file dnn_backend_tf.c.
Referenced by ff_get_dnn_module().
Definition at line 1195 of file dnn_backend_tf.c.
Referenced by ff_get_dnn_module().
void ff_dnn_free_model_tf | ( | DNNModel ** | model | ) |
Definition at line 1225 of file dnn_backend_tf.c.
Referenced by ff_dnn_load_model_tf(), and ff_get_dnn_module().
|
static |
Definition at line 85 of file dnn_backend_tf.c.