ffmpeg | branch: master | Saliev, Rafik F 
<rafik.f.saliev-at-intel....@ffmpeg.org> | Fri Dec 16 09:37:27 2022 +0000| 
[8ad988ac37d4d92dbb60796e26c3ad558a3eebeb] | committer: Guo Yejun

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.sal...@intel.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8ad988ac37d4d92dbb60796e26c3ad558a3eebeb
---

 libavfilter/dnn/dnn_backend_openvino.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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);

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to