diff options
author | Saliev, Rafik F <rafik.f.saliev-at-intel.com@ffmpeg.org> | 2022-12-16 09:37:27 +0000 |
---|---|---|
committer | Guo Yejun <yejun.guo@intel.com> | 2022-12-17 09:55:14 +0800 |
commit | 8ad988ac37d4d92dbb60796e26c3ad558a3eebeb (patch) | |
tree | e334c7d9270ad2be9c2228a53fe5eab23fd8ce08 /libavfilter | |
parent | 10a56363a749610a44a30fd5200575f5bbc18562 (diff) | |
download | ffmpeg-8ad988ac37d4d92dbb60796e26c3ad558a3eebeb.tar.gz |
libavfilter/dnn: fix openvino async mode
Bugfix: The OpenVino DNN backend in the 'async' mode sets
'task->inference_done' to 'complete' prior to data copy from
OpenVino output buffer to task's output frame.
This order causes task destroy in ff_dnn_get_result_common()
prior to model output processing.
Signed-off-by: Rafik Saliev <rafik.f.saliev@intel.com>
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/dnn/dnn_backend_openvino.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libavfilter/dnn/dnn_backend_openvino.c b/libavfilter/dnn/dnn_backend_openvino.c index b494f26f55..b67f288336 100644 --- a/libavfilter/dnn/dnn_backend_openvino.c +++ b/libavfilter/dnn/dnn_backend_openvino.c @@ -244,7 +244,6 @@ static void infer_completion_callback(void *args) av_assert0(request->lltask_count >= 1); for (int i = 0; i < request->lltask_count; ++i) { task = request->lltasks[i]->task; - task->inference_done++; switch (ov_model->model->func_type) { case DFT_PROCESS_FRAME: @@ -278,6 +277,7 @@ static void infer_completion_callback(void *args) break; } + task->inference_done++; av_freep(&request->lltasks[i]); output.data = (uint8_t *)output.data + output.width * output.height * output.channels * get_datatype_size(output.dt); |