mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-25 08:42:39 +00:00
avfilter/dnn: refactor ff_get_dnn_module to remove allocation
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
parent
3f52b7eedc
commit
505c43bb65
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ typedef struct DnnContext {
|
||||
|
||||
char **model_outputnames;
|
||||
uint32_t nb_outputs;
|
||||
DNNModule *dnn_module;
|
||||
const DNNModule *dnn_module;
|
||||
DNNModel *model;
|
||||
} DnnContext;
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user