diff options
author | Zhao Zhili <zhilizhao@tencent.com> | 2023-04-30 23:38:54 +0800 |
---|---|---|
committer | Zhao Zhili <zhilizhao@tencent.com> | 2023-06-08 10:50:23 +0800 |
commit | 505c43bb652093625c71b312ce1a5f1b9f9679e2 (patch) | |
tree | cd200ccfdb180d91951c7bdc861b6e8b9f83d83e | |
parent | 3f52b7eedc9f131c10cfc2cdf2d493f04db05fd0 (diff) | |
download | ffmpeg-505c43bb652093625c71b312ce1a5f1b9f9679e2.tar.gz |
avfilter/dnn: refactor ff_get_dnn_module to remove allocation
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
-rw-r--r-- | libavfilter/dnn/dnn_interface.c | 28 | ||||
-rw-r--r-- | libavfilter/dnn_filter_common.c | 1 | ||||
-rw-r--r-- | libavfilter/dnn_filter_common.h | 2 | ||||
-rw-r--r-- | libavfilter/dnn_interface.h | 2 |
4 files changed, 7 insertions, 26 deletions
diff --git a/libavfilter/dnn/dnn_interface.c b/libavfilter/dnn/dnn_interface.c index 4f78f35474..a60dcb091b 100644 --- a/libavfilter/dnn/dnn_interface.c +++ b/libavfilter/dnn/dnn_interface.c @@ -29,37 +29,19 @@ extern const DNNModule ff_dnn_backend_openvino; extern const DNNModule ff_dnn_backend_tf; -DNNModule *ff_get_dnn_module(DNNBackendType backend_type) +const DNNModule *ff_get_dnn_module(DNNBackendType backend_type) { - DNNModule *dnn_module; - - dnn_module = av_mallocz(sizeof(DNNModule)); - if(!dnn_module){ - return NULL; - } - switch(backend_type){ - case DNN_TF: #if (CONFIG_LIBTENSORFLOW == 1) - *dnn_module = ff_dnn_backend_tf; - #else - av_freep(&dnn_module); - return NULL; + case DNN_TF: + return &ff_dnn_backend_tf; #endif - break; - case DNN_OV: #if (CONFIG_LIBOPENVINO == 1) - *dnn_module = ff_dnn_backend_openvino; - #else - av_freep(&dnn_module); - return NULL; + case DNN_OV: + return &ff_dnn_backend_openvino; #endif - break; default: av_log(NULL, AV_LOG_ERROR, "Module backend_type is not supported or enabled.\n"); - av_freep(&dnn_module); return NULL; } - - return dnn_module; } diff --git a/libavfilter/dnn_filter_common.c b/libavfilter/dnn_filter_common.c index 5083e3de19..7b34fd0c0a 100644 --- a/libavfilter/dnn_filter_common.c +++ b/libavfilter/dnn_filter_common.c @@ -158,6 +158,5 @@ void ff_dnn_uninit(DnnContext *ctx) { if (ctx->dnn_module) { (ctx->dnn_module->free_model)(&ctx->model); - av_freep(&ctx->dnn_module); } } diff --git a/libavfilter/dnn_filter_common.h b/libavfilter/dnn_filter_common.h index bcdf37c815..30871ee381 100644 --- a/libavfilter/dnn_filter_common.h +++ b/libavfilter/dnn_filter_common.h @@ -36,7 +36,7 @@ typedef struct DnnContext { char **model_outputnames; uint32_t nb_outputs; - DNNModule *dnn_module; + const DNNModule *dnn_module; DNNModel *model; } DnnContext; diff --git a/libavfilter/dnn_interface.h b/libavfilter/dnn_interface.h index 6b64a2b55a..b2bfdd38e7 100644 --- a/libavfilter/dnn_interface.h +++ b/libavfilter/dnn_interface.h @@ -123,6 +123,6 @@ typedef struct DNNModule{ } DNNModule; // Initializes DNNModule depending on chosen backend. -DNNModule *ff_get_dnn_module(DNNBackendType backend_type); +const DNNModule *ff_get_dnn_module(DNNBackendType backend_type); #endif |