|
FFmpeg
|
DNN common functions different backends. More...
Go to the source code of this file.
Macros | |
| #define | DNN_ASYNC_SUCCESS (void *)0 |
| #define | DNN_ASYNC_FAIL (void *)-1 |
Functions | |
| int | ff_check_exec_params (void *ctx, DNNBackendType backend, DNNFunctionType func_type, DNNExecBaseParams *exec_params) |
| int | ff_dnn_fill_task (TaskItem *task, DNNExecBaseParams *exec_params, void *backend_model, int async, int do_ioproc) |
| Fill the Task for Backend Execution. | |
| static void * | async_thread_routine (void *args) |
| Thread routine for async execution. | |
| int | ff_dnn_async_module_cleanup (DNNAsyncExecModule *async_module) |
| Join the Async Execution thread and set module pointers to NULL. | |
| void | ff_dnn_wait_requests (SafeQueue *request_queue, int nireq) |
| Wait for all inference requests to complete before teardown. | |
| int | ff_dnn_start_inference_async (void *ctx, DNNAsyncExecModule *async_module) |
| Start asynchronous inference routine for the TensorFlow model on a detached thread. | |
| DNNAsyncStatusType | ff_dnn_get_result_common (Queue *task_queue, AVFrame **in, AVFrame **out) |
| Extract input and output frame from the Task Queue after asynchronous inference. | |
| int | ff_dnn_fill_gettingoutput_task (TaskItem *task, DNNExecBaseParams *exec_params, void *backend_model, int input_height, int input_width, void *ctx) |
| Allocate input and output frames and fill the Task with execution parameters. | |
DNN common functions different backends.
Definition in file dnn_backend_common.c.
| #define DNN_ASYNC_SUCCESS (void *)0 |
Definition at line 27 of file dnn_backend_common.c.
Referenced by async_thread_routine().
| #define DNN_ASYNC_FAIL (void *)-1 |
Definition at line 28 of file dnn_backend_common.c.
Referenced by async_thread_routine(), ff_dnn_async_module_cleanup(), and ff_dnn_start_inference_async().
| int ff_check_exec_params | ( | void * | ctx, |
| DNNBackendType | backend, | ||
| DNNFunctionType | func_type, | ||
| DNNExecBaseParams * | exec_params ) |
Definition at line 30 of file dnn_backend_common.c.
Referenced by dnn_execute_model_onnx(), dnn_execute_model_ov(), dnn_execute_model_tf(), and dnn_execute_model_th().
| int ff_dnn_fill_task | ( | TaskItem * | task, |
| DNNExecBaseParams * | exec_params, | ||
| void * | backend_model, | ||
| int | async, | ||
| int | do_ioproc ) |
Fill the Task for Backend Execution.
It should be called after checking execution parameters using ff_check_exec_params.
| task | pointer to the allocated task |
| exec_param | pointer to execution parameters |
| backend_model | void pointer to the backend model |
| async | flag for async execution. Must be 0 or 1 |
| do_ioproc | flag for IO processing. Must be 0 or 1 |
Definition at line 50 of file dnn_backend_common.c.
Referenced by dnn_execute_model_onnx(), dnn_execute_model_ov(), dnn_execute_model_tf(), dnn_execute_model_th(), and ff_dnn_fill_gettingoutput_task().
|
static |
Thread routine for async execution.
| args | pointer to DNNAsyncExecModule module |
Definition at line 74 of file dnn_backend_common.c.
Referenced by ff_dnn_start_inference_async().
| int ff_dnn_async_module_cleanup | ( | DNNAsyncExecModule * | async_module | ) |
Join the Async Execution thread and set module pointers to NULL.
| async_module | pointer to DNNAsyncExecModule module |
Definition at line 86 of file dnn_backend_common.c.
Referenced by destroy_request_item(), destroy_request_item(), and destroy_request_item().
| void ff_dnn_wait_requests | ( | SafeQueue * | request_queue, |
| int | nireq ) |
Wait for all inference requests to complete before teardown.
This blocks the calling thread until all request items have been returned to the request_queue by the async inference threads.
| request_queue | pointer to the SafeQueue holding request items |
| nireq | total number of allocated request items |
Definition at line 106 of file dnn_backend_common.c.
Referenced by dnn_free_model_onnx(), dnn_free_model_ov(), dnn_free_model_tf(), and dnn_free_model_th().
| int ff_dnn_start_inference_async | ( | void * | ctx, |
| DNNAsyncExecModule * | async_module ) |
Start asynchronous inference routine for the TensorFlow model on a detached thread.
It calls the completion callback after the inference completes. Completion callback and inference function must be set before calling this function.
| ctx | pointer to the backend context |
| async_module | pointer to DNNAsyncExecModule module |
Definition at line 114 of file dnn_backend_common.c.
Referenced by dnn_flush_tf(), execute_model_tf(), and execute_model_th().
| DNNAsyncStatusType ff_dnn_get_result_common | ( | Queue * | task_queue, |
| AVFrame ** | in, | ||
| AVFrame ** | out ) |
Extract input and output frame from the Task Queue after asynchronous inference.
| task_queue | pointer to the task queue of the backend |
| in | double pointer to the input frame |
| out | double pointer to the output frame |
| DAST_EMPTY_QUEUE | if task queue is empty |
| DAST_NOT_READY | if inference not completed yet. |
| DAST_SUCCESS | if result successfully extracted |
Definition at line 142 of file dnn_backend_common.c.
Referenced by dnn_get_result_onnx(), dnn_get_result_ov(), dnn_get_result_tf(), and dnn_get_result_th().
| int ff_dnn_fill_gettingoutput_task | ( | TaskItem * | task, |
| DNNExecBaseParams * | exec_params, | ||
| void * | backend_model, | ||
| int | input_height, | ||
| int | input_width, | ||
| void * | ctx ) |
Allocate input and output frames and fill the Task with execution parameters.
| task | pointer to the allocated task |
| exec_params | pointer to execution parameters |
| backend_model | void pointer to the backend model |
| input_height | height of input frame |
| input_width | width of input frame |
| ctx | pointer to the backend context |
Definition at line 162 of file dnn_backend_common.c.
Referenced by get_output_onnx(), get_output_ov(), get_output_tf(), and get_output_th().