aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/vf_srcnn.c
diff options
context:
space:
mode:
authorSergey Lavrushkin <dualfal@gmail.com>2018-06-03 20:22:50 +0300
committerPedro Arthur <bygrandao@gmail.com>2018-06-05 10:16:50 -0300
commitd8c0bbb0aa45eed61b159c4842473fe27e77ac12 (patch)
treecc3f2b09aacf93ea7d5ce42adfd62a4fcc561fb1 /libavfilter/vf_srcnn.c
parentddf6ff9dc6e6441b68b83b3bf047dbc573cc5b7c (diff)
downloadffmpeg-d8c0bbb0aa45eed61b159c4842473fe27e77ac12.tar.gz
Adds TensorFlow backend for dnn inference module.
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
Diffstat (limited to 'libavfilter/vf_srcnn.c')
-rw-r--r--libavfilter/vf_srcnn.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/libavfilter/vf_srcnn.c b/libavfilter/vf_srcnn.c
index d6efe9b478..5c5e26b33a 100644
--- a/libavfilter/vf_srcnn.c
+++ b/libavfilter/vf_srcnn.c
@@ -41,7 +41,6 @@ typedef struct SRCNNContext {
DNNData input_output;
} SRCNNContext;
-
#define OFFSET(x) offsetof(SRCNNContext, x)
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_VIDEO_PARAM
static const AVOption srcnn_options[] = {
@@ -55,10 +54,19 @@ static av_cold int init(AVFilterContext* context)
{
SRCNNContext* srcnn_context = context->priv;
- srcnn_context->dnn_module = ff_get_dnn_module(DNN_NATIVE);
+ srcnn_context->dnn_module = ff_get_dnn_module(DNN_TF);
if (!srcnn_context->dnn_module){
- av_log(context, AV_LOG_ERROR, "could not create dnn module\n");
- return AVERROR(ENOMEM);
+ srcnn_context->dnn_module = ff_get_dnn_module(DNN_NATIVE);
+ if (!srcnn_context->dnn_module){
+ av_log(context, AV_LOG_ERROR, "could not create dnn module\n");
+ return AVERROR(ENOMEM);
+ }
+ else{
+ av_log(context, AV_LOG_INFO, "using native backend for DNN inference\n");
+ }
+ }
+ else{
+ av_log(context, AV_LOG_INFO, "using tensorflow backend for DNN inference\n");
}
if (!srcnn_context->model_filename){
av_log(context, AV_LOG_INFO, "model file for network was not specified, using default network for x2 upsampling\n");