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_openvino;
|
||||||
extern const DNNModule ff_dnn_backend_tf;
|
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){
|
switch(backend_type){
|
||||||
case DNN_TF:
|
|
||||||
#if (CONFIG_LIBTENSORFLOW == 1)
|
#if (CONFIG_LIBTENSORFLOW == 1)
|
||||||
*dnn_module = ff_dnn_backend_tf;
|
case DNN_TF:
|
||||||
#else
|
return &ff_dnn_backend_tf;
|
||||||
av_freep(&dnn_module);
|
|
||||||
return NULL;
|
|
||||||
#endif
|
#endif
|
||||||
break;
|
|
||||||
case DNN_OV:
|
|
||||||
#if (CONFIG_LIBOPENVINO == 1)
|
#if (CONFIG_LIBOPENVINO == 1)
|
||||||
*dnn_module = ff_dnn_backend_openvino;
|
case DNN_OV:
|
||||||
#else
|
return &ff_dnn_backend_openvino;
|
||||||
av_freep(&dnn_module);
|
|
||||||
return NULL;
|
|
||||||
#endif
|
#endif
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
av_log(NULL, AV_LOG_ERROR, "Module backend_type is not supported or enabled.\n");
|
av_log(NULL, AV_LOG_ERROR, "Module backend_type is not supported or enabled.\n");
|
||||||
av_freep(&dnn_module);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return dnn_module;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,6 +158,5 @@ void ff_dnn_uninit(DnnContext *ctx)
|
||||||
{
|
{
|
||||||
if (ctx->dnn_module) {
|
if (ctx->dnn_module) {
|
||||||
(ctx->dnn_module->free_model)(&ctx->model);
|
(ctx->dnn_module->free_model)(&ctx->model);
|
||||||
av_freep(&ctx->dnn_module);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ typedef struct DnnContext {
|
||||||
|
|
||||||
char **model_outputnames;
|
char **model_outputnames;
|
||||||
uint32_t nb_outputs;
|
uint32_t nb_outputs;
|
||||||
DNNModule *dnn_module;
|
const DNNModule *dnn_module;
|
||||||
DNNModel *model;
|
DNNModel *model;
|
||||||
} DnnContext;
|
} DnnContext;
|
||||||
|
|
||||||
|
|
|
@ -123,6 +123,6 @@ typedef struct DNNModule{
|
||||||
} DNNModule;
|
} DNNModule;
|
||||||
|
|
||||||
// Initializes DNNModule depending on chosen backend.
|
// Initializes DNNModule depending on chosen backend.
|
||||||
DNNModule *ff_get_dnn_module(DNNBackendType backend_type);
|
const DNNModule *ff_get_dnn_module(DNNBackendType backend_type);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue