diff mbox

[FFmpeg-devel,GSOC] On the fly generation of default DNN models and code style fixes

Message ID CAAeE=qrNy=sPLM+kfuVGFK-uObLpHJ_e0Cv5Kfj1kbMOhZc98Q@mail.gmail.com
State Superseded
Headers show

Commit Message

Sergey Lavrushkin July 27, 2018, 5:06 p.m. UTC
Hello,

The first patch provides on the fly generation of default DNN models,
that eliminates data duplication for model weights. Also, files with
internal weights
were replaced with automatically generated one for models I trained.
Scripts for training and generating these files can be found here:
https://github.com/HighVoltageRocknRoll/sr
Later, I will add a description to this repo on how to use it and benchmark
results for trained models.

The second patch fixes some code style issues for pointers in DNN module
and sr filter. Are there any other code style fixes I should make for this
code?

Comments

Michael Niedermayer July 28, 2018, 1:31 a.m. UTC | #1
On Fri, Jul 27, 2018 at 08:06:15PM +0300, Sergey Lavrushkin wrote:
> Hello,
> 
> The first patch provides on the fly generation of default DNN models,
> that eliminates data duplication for model weights. Also, files with
> internal weights
> were replaced with automatically generated one for models I trained.
> Scripts for training and generating these files can be found here:
> https://github.com/HighVoltageRocknRoll/sr
> Later, I will add a description to this repo on how to use it and benchmark
> results for trained models.
> 
> The second patch fixes some code style issues for pointers in DNN module
> and sr filter. Are there any other code style fixes I should make for this
> code?


It seems the code with these patches produces some warnings:

In file included from libavfilter/dnn_backend_native.c:27:0:
libavfilter/dnn_srcnn.h:2113:21: warning: ‘srcnn_consts’ defined but not used [-Wunused-variable]
 static const float *srcnn_consts[] = {
                     ^
libavfilter/dnn_srcnn.h:2122:24: warning: ‘srcnn_consts_dims’ defined but not used [-Wunused-variable]
 static const long int *srcnn_consts_dims[] = {
                        ^
libavfilter/dnn_srcnn.h:2142:20: warning: ‘srcnn_activations’ defined but not used [-Wunused-variable]
 static const char *srcnn_activations[] = {
                    ^
In file included from libavfilter/dnn_backend_native.c:28:0:
libavfilter/dnn_espcn.h:5401:21: warning: ‘espcn_consts’ defined but not used [-Wunused-variable]
 static const float *espcn_consts[] = {
                     ^
libavfilter/dnn_espcn.h:5410:24: warning: ‘espcn_consts_dims’ defined but not used [-Wunused-variable]
 static const long int *espcn_consts_dims[] = {
                        ^
libavfilter/dnn_espcn.h:5432:20: warning: ‘espcn_activations’ defined but not used [-Wunused-variable]
 static const char *espcn_activations[] = {
                    ^


[...]
diff mbox

Patch

From 9e01a27c1f23af58d7e93c3c446e1a2f900e2fc4 Mon Sep 17 00:00:00 2001
From: Sergey Lavrushkin <dualfal@gmail.com>
Date: Fri, 27 Jul 2018 19:34:02 +0300
Subject: [PATCH 2/2] libavfilter: Code style fixes for pointers in DNN module
 and sr filter.

---
 libavfilter/dnn_backend_native.c |  84 +++++++++++++++---------------
 libavfilter/dnn_backend_native.h |   8 +--
 libavfilter/dnn_backend_tf.c     | 108 +++++++++++++++++++--------------------
 libavfilter/dnn_backend_tf.h     |   8 +--
 libavfilter/dnn_espcn.h          |   6 +--
 libavfilter/dnn_interface.c      |   4 +-
 libavfilter/dnn_interface.h      |  16 +++---
 libavfilter/dnn_srcnn.h          |   6 +--
 libavfilter/vf_sr.c              |  60 +++++++++++-----------
 9 files changed, 150 insertions(+), 150 deletions(-)

diff --git a/libavfilter/dnn_backend_native.c b/libavfilter/dnn_backend_native.c
index 3e6b86280d..baefea7fcb 100644
--- a/libavfilter/dnn_backend_native.c
+++ b/libavfilter/dnn_backend_native.c
@@ -34,15 +34,15 @@  typedef enum {RELU, TANH, SIGMOID} ActivationFunc;
 
 typedef struct Layer{
     LayerType type;
-    float* output;
-    void* params;
+    float *output;
+    void *params;
 } Layer;
 
 typedef struct ConvolutionalParams{
     int32_t input_num, output_num, kernel_size;
     ActivationFunc activation;
-    float* kernel;
-    float* biases;
+    float *kernel;
+    float *biases;
 } ConvolutionalParams;
 
 typedef struct InputParams{
@@ -55,16 +55,16 @@  typedef struct DepthToSpaceParams{
 
 // Represents simple feed-forward convolutional network.
 typedef struct ConvolutionalNetwork{
-    Layer* layers;
+    Layer *layers;
     int32_t layers_num;
 } ConvolutionalNetwork;
 
-static DNNReturnType set_input_output_native(void* model, DNNData* input, DNNData* output)
+static DNNReturnType set_input_output_native(void *model, DNNData *input, DNNData *output)
 {
-    ConvolutionalNetwork* network = (ConvolutionalNetwork*)model;
-    InputParams* input_params;
-    ConvolutionalParams* conv_params;
-    DepthToSpaceParams* depth_to_space_params;
+    ConvolutionalNetwork *network = (ConvolutionalNetwork *)model;
+    InputParams *input_params;
+    ConvolutionalParams *conv_params;
+    DepthToSpaceParams *depth_to_space_params;
     int cur_width, cur_height, cur_channels;
     int32_t layer;
 
@@ -72,7 +72,7 @@  static DNNReturnType set_input_output_native(void* model, DNNData* input, DNNDat
         return DNN_ERROR;
     }
     else{
-        input_params = (InputParams*)network->layers[0].params;
+        input_params = (InputParams *)network->layers[0].params;
         input_params->width = cur_width = input->width;
         input_params->height = cur_height = input->height;
         input_params->channels = cur_channels = input->channels;
@@ -88,14 +88,14 @@  static DNNReturnType set_input_output_native(void* model, DNNData* input, DNNDat
     for (layer = 1; layer < network->layers_num; ++layer){
         switch (network->layers[layer].type){
         case CONV:
-            conv_params = (ConvolutionalParams*)network->layers[layer].params;
+            conv_params = (ConvolutionalParams *)network->layers[layer].params;
             if (conv_params->input_num != cur_channels){
                 return DNN_ERROR;
             }
             cur_channels = conv_params->output_num;
             break;
         case DEPTH_TO_SPACE:
-            depth_to_space_params = (DepthToSpaceParams*)network->layers[layer].params;
+            depth_to_space_params = (DepthToSpaceParams *)network->layers[layer].params;
             if (cur_channels % (depth_to_space_params->block_size * depth_to_space_params->block_size) != 0){
                 return DNN_ERROR;
             }
@@ -127,16 +127,16 @@  static DNNReturnType set_input_output_native(void* model, DNNData* input, DNNDat
 // layers_num,layer_type,layer_parameterss,layer_type,layer_parameters...
 // For CONV layer: activation_function, input_num, output_num, kernel_size, kernel, biases
 // For DEPTH_TO_SPACE layer: block_size
-DNNModel* ff_dnn_load_model_native(const char* model_filename)
+DNNModel *ff_dnn_load_model_native(const char *model_filename)
 {
-    DNNModel* model = NULL;
-    ConvolutionalNetwork* network = NULL;
-    AVIOContext* model_file_context;
+    DNNModel *model = NULL;
+    ConvolutionalNetwork *network = NULL;
+    AVIOContext *model_file_context;
     int file_size, dnn_size, kernel_size, i;
     int32_t layer;
     LayerType layer_type;
-    ConvolutionalParams* conv_params;
-    DepthToSpaceParams* depth_to_space_params;
+    ConvolutionalParams *conv_params;
+    DepthToSpaceParams *depth_to_space_params;
 
     model = av_malloc(sizeof(DNNModel));
     if (!model){
@@ -155,7 +155,7 @@  DNNModel* ff_dnn_load_model_native(const char* model_filename)
         av_freep(&model);
         return NULL;
     }
-    model->model = (void*)network;
+    model->model = (void *)network;
 
     network->layers_num = 1 + (int32_t)avio_rl32(model_file_context);
     dnn_size = 4;
@@ -251,10 +251,10 @@  DNNModel* ff_dnn_load_model_native(const char* model_filename)
     return model;
 }
 
-static int set_up_conv_layer(Layer* layer, const float* kernel, const float* biases, ActivationFunc activation,
+static int set_up_conv_layer(Layer *layer, const float *kernel, const float *biases, ActivationFunc activation,
                              int32_t input_num, int32_t output_num, int32_t size)
 {
-    ConvolutionalParams* conv_params;
+    ConvolutionalParams *conv_params;
     int kernel_size;
 
     conv_params = av_malloc(sizeof(ConvolutionalParams));
@@ -282,11 +282,11 @@  static int set_up_conv_layer(Layer* layer, const float* kernel, const float* bia
     return DNN_SUCCESS;
 }
 
-DNNModel* ff_dnn_load_default_model_native(DNNDefaultModel model_type)
+DNNModel *ff_dnn_load_default_model_native(DNNDefaultModel model_type)
 {
-    DNNModel* model = NULL;
-    ConvolutionalNetwork* network = NULL;
-    DepthToSpaceParams* depth_to_space_params;
+    DNNModel *model = NULL;
+    ConvolutionalNetwork *network = NULL;
+    DepthToSpaceParams *depth_to_space_params;
     int32_t layer;
 
     model = av_malloc(sizeof(DNNModel));
@@ -299,7 +299,7 @@  DNNModel* ff_dnn_load_default_model_native(DNNDefaultModel model_type)
         av_freep(&model);
         return NULL;
     }
-    model->model = (void*)network;
+    model->model = (void *)network;
 
     switch (model_type){
     case DNN_SRCNN:
@@ -365,7 +365,7 @@  DNNModel* ff_dnn_load_default_model_native(DNNDefaultModel model_type)
 
 #define CLAMP_TO_EDGE(x, w) ((x) < 0 ? 0 : ((x) >= (w) ? (w - 1) : (x)))
 
-static void convolve(const float* input, float* output, const ConvolutionalParams* conv_params, int width, int height)
+static void convolve(const float *input, float *output, const ConvolutionalParams *conv_params, int width, int height)
 {
     int y, x, n_filter, ch, kernel_y, kernel_x;
     int radius = conv_params->kernel_size >> 1;
@@ -403,7 +403,7 @@  static void convolve(const float* input, float* output, const ConvolutionalParam
     }
 }
 
-static void depth_to_space(const float* input, float* output, int block_size, int width, int height, int channels)
+static void depth_to_space(const float *input, float *output, int block_size, int width, int height, int channels)
 {
     int y, x, by, bx, ch;
     int new_channels = channels / (block_size * block_size);
@@ -426,20 +426,20 @@  static void depth_to_space(const float* input, float* output, int block_size, in
     }
 }
 
-DNNReturnType ff_dnn_execute_model_native(const DNNModel* model)
+DNNReturnType ff_dnn_execute_model_native(const DNNModel *model)
 {
-    ConvolutionalNetwork* network = (ConvolutionalNetwork*)model->model;
+    ConvolutionalNetwork *network = (ConvolutionalNetwork *)model->model;
     int cur_width, cur_height, cur_channels;
     int32_t layer;
-    InputParams* input_params;
-    ConvolutionalParams* conv_params;
-    DepthToSpaceParams* depth_to_space_params;
+    InputParams *input_params;
+    ConvolutionalParams *conv_params;
+    DepthToSpaceParams *depth_to_space_params;
 
     if (network->layers_num <= 0 || network->layers[0].type != INPUT || !network->layers[0].output){
         return DNN_ERROR;
     }
     else{
-        input_params = (InputParams*)network->layers[0].params;
+        input_params = (InputParams *)network->layers[0].params;
         cur_width = input_params->width;
         cur_height = input_params->height;
         cur_channels = input_params->channels;
@@ -451,12 +451,12 @@  DNNReturnType ff_dnn_execute_model_native(const DNNModel* model)
         }
         switch (network->layers[layer].type){
         case CONV:
-            conv_params = (ConvolutionalParams*)network->layers[layer].params;
+            conv_params = (ConvolutionalParams *)network->layers[layer].params;
             convolve(network->layers[layer - 1].output, network->layers[layer].output, conv_params, cur_width, cur_height);
             cur_channels = conv_params->output_num;
             break;
         case DEPTH_TO_SPACE:
-            depth_to_space_params = (DepthToSpaceParams*)network->layers[layer].params;
+            depth_to_space_params = (DepthToSpaceParams *)network->layers[layer].params;
             depth_to_space(network->layers[layer - 1].output, network->layers[layer].output,
                            depth_to_space_params->block_size, cur_width, cur_height, cur_channels);
             cur_height *= depth_to_space_params->block_size;
@@ -471,19 +471,19 @@  DNNReturnType ff_dnn_execute_model_native(const DNNModel* model)
     return DNN_SUCCESS;
 }
 
-void ff_dnn_free_model_native(DNNModel** model)
+void ff_dnn_free_model_native(DNNModel **model)
 {
-    ConvolutionalNetwork* network;
-    ConvolutionalParams* conv_params;
+    ConvolutionalNetwork *network;
+    ConvolutionalParams *conv_params;
     int32_t layer;
 
     if (*model)
     {
-        network = (ConvolutionalNetwork*)(*model)->model;
+        network = (ConvolutionalNetwork *)(*model)->model;
         for (layer = 0; layer < network->layers_num; ++layer){
             av_freep(&network->layers[layer].output);
             if (network->layers[layer].type == CONV){
-                conv_params = (ConvolutionalParams*)network->layers[layer].params;
+                conv_params = (ConvolutionalParams *)network->layers[layer].params;
                 av_freep(&conv_params->kernel);
                 av_freep(&conv_params->biases);
             }
diff --git a/libavfilter/dnn_backend_native.h b/libavfilter/dnn_backend_native.h
index 599c1302e2..adbb7088b4 100644
--- a/libavfilter/dnn_backend_native.h
+++ b/libavfilter/dnn_backend_native.h
@@ -29,12 +29,12 @@ 
 
 #include "dnn_interface.h"
 
-DNNModel* ff_dnn_load_model_native(const char* model_filename);
+DNNModel *ff_dnn_load_model_native(const char *model_filename);
 
-DNNModel* ff_dnn_load_default_model_native(DNNDefaultModel model_type);
+DNNModel *ff_dnn_load_default_model_native(DNNDefaultModel model_type);
 
-DNNReturnType ff_dnn_execute_model_native(const DNNModel* model);
+DNNReturnType ff_dnn_execute_model_native(const DNNModel *model);
 
-void ff_dnn_free_model_native(DNNModel** model);
+void ff_dnn_free_model_native(DNNModel **model);
 
 #endif
diff --git a/libavfilter/dnn_backend_tf.c b/libavfilter/dnn_backend_tf.c
index 21516471c3..6307c794a5 100644
--- a/libavfilter/dnn_backend_tf.c
+++ b/libavfilter/dnn_backend_tf.c
@@ -31,24 +31,24 @@ 
 #include <tensorflow/c/c_api.h>
 
 typedef struct TFModel{
-    TF_Graph* graph;
-    TF_Session* session;
-    TF_Status* status;
+    TF_Graph *graph;
+    TF_Session *session;
+    TF_Status *status;
     TF_Output input, output;
-    TF_Tensor* input_tensor;
-    DNNData* output_data;
+    TF_Tensor *input_tensor;
+    DNNData *output_data;
 } TFModel;
 
-static void free_buffer(void* data, size_t length)
+static void free_buffer(void *data, size_t length)
 {
     av_freep(&data);
 }
 
-static TF_Buffer* read_graph(const char* model_filename)
+static TF_Buffer *read_graph(const char *model_filename)
 {
-    TF_Buffer* graph_buf;
-    unsigned char* graph_data = NULL;
-    AVIOContext* model_file_context;
+    TF_Buffer *graph_buf;
+    unsigned char *graph_data = NULL;
+    AVIOContext *model_file_context;
     long size, bytes_read;
 
     if (avio_open(&model_file_context, model_filename, AVIO_FLAG_READ) < 0){
@@ -70,20 +70,20 @@  static TF_Buffer* read_graph(const char* model_filename)
     }
 
     graph_buf = TF_NewBuffer();
-    graph_buf->data = (void*)graph_data;
+    graph_buf->data = (void *)graph_data;
     graph_buf->length = size;
     graph_buf->data_deallocator = free_buffer;
 
     return graph_buf;
 }
 
-static DNNReturnType set_input_output_tf(void* model, DNNData* input, DNNData* output)
+static DNNReturnType set_input_output_tf(void *model, DNNData *input, DNNData *output)
 {
-    TFModel* tf_model = (TFModel*)model;
+    TFModel *tf_model = (TFModel *)model;
     int64_t input_dims[] = {1, input->height, input->width, input->channels};
-    TF_SessionOptions* sess_opts;
-    const TF_Operation* init_op = TF_GraphOperationByName(tf_model->graph, "init");
-    TF_Tensor* output_tensor;
+    TF_SessionOptions *sess_opts;
+    const TF_Operation *init_op = TF_GraphOperationByName(tf_model->graph, "init");
+    TF_Tensor *output_tensor;
 
     // Input operation should be named 'x'
     tf_model->input.oper = TF_GraphOperationByName(tf_model->graph, "x");
@@ -99,7 +99,7 @@  static DNNReturnType set_input_output_tf(void* model, DNNData* input, DNNData* o
     if (!tf_model->input_tensor){
         return DNN_ERROR;
     }
-    input->data = (float*)TF_TensorData(tf_model->input_tensor);
+    input->data = (float *)TF_TensorData(tf_model->input_tensor);
 
     // Output operation should be named 'y'
     tf_model->output.oper = TF_GraphOperationByName(tf_model->graph, "y");
@@ -156,12 +156,12 @@  static DNNReturnType set_input_output_tf(void* model, DNNData* input, DNNData* o
     return DNN_SUCCESS;
 }
 
-DNNModel* ff_dnn_load_model_tf(const char* model_filename)
+DNNModel *ff_dnn_load_model_tf(const char *model_filename)
 {
-    DNNModel* model = NULL;
-    TFModel* tf_model = NULL;
-    TF_Buffer* graph_def;
-    TF_ImportGraphDefOptions* graph_opts;
+    DNNModel *model = NULL;
+    TFModel *tf_model = NULL;
+    TF_Buffer *graph_def;
+    TF_ImportGraphDefOptions *graph_opts;
 
     model = av_malloc(sizeof(DNNModel));
     if (!model){
@@ -197,25 +197,25 @@  DNNModel* ff_dnn_load_model_tf(const char* model_filename)
         return NULL;
     }
 
-    model->model = (void*)tf_model;
+    model->model = (void *)tf_model;
     model->set_input_output = &set_input_output_tf;
 
     return model;
 }
 
-static TF_Operation* add_pad_op(TFModel* tf_model, TF_Operation* input_op, int32_t pad)
+static TF_Operation *add_pad_op(TFModel *tf_model, TF_Operation *input_op, int32_t pad)
 {
-    TF_OperationDescription* op_desc;
-    TF_Operation* op;
-    TF_Tensor* tensor;
+    TF_OperationDescription *op_desc;
+    TF_Operation *op;
+    TF_Tensor *tensor;
     TF_Output input;
-    int32_t* pads;
+    int32_t *pads;
     int64_t pads_shape[] = {4, 2};
 
     op_desc = TF_NewOperation(tf_model->graph, "Const", "pads");
     TF_SetAttrType(op_desc, "dtype", TF_INT32);
     tensor = TF_AllocateTensor(TF_INT32, pads_shape, 2, 4 * 2 * sizeof(int32_t));
-    pads = (int32_t*)TF_TensorData(tensor);
+    pads = (int32_t *)TF_TensorData(tensor);
     pads[0] = 0;   pads[1] = 0;
     pads[2] = pad; pads[3] = pad;
     pads[4] = pad; pads[5] = pad;
@@ -246,11 +246,11 @@  static TF_Operation* add_pad_op(TFModel* tf_model, TF_Operation* input_op, int32
     return op;
 }
 
-static TF_Operation* add_const_op(TFModel* tf_model, const float* values, const int64_t* dims, int dims_len, const char* name)
+static TF_Operation *add_const_op(TFModel *tf_model, const float *values, const int64_t *dims, int dims_len, const char *name)
 {
     int dim;
-    TF_OperationDescription* op_desc;
-    TF_Tensor* tensor;
+    TF_OperationDescription *op_desc;
+    TF_Tensor *tensor;
     size_t len;
 
     op_desc = TF_NewOperation(tf_model->graph, "Const", name);
@@ -269,25 +269,25 @@  static TF_Operation* add_const_op(TFModel* tf_model, const float* values, const
     return TF_FinishOperation(op_desc, tf_model->status);
 }
 
-static TF_Operation* add_conv_layers(TFModel* tf_model, const float** consts, const int64_t** consts_dims,
-                                     const int* consts_dims_len, const char** activations,
-                                     TF_Operation* input_op, int layers_num)
+static TF_Operation* add_conv_layers(TFModel *tf_model, const float **consts, const int64_t **consts_dims,
+                                     const int *consts_dims_len, const char **activations,
+                                     TF_Operation *input_op, int layers_num)
 {
     int i;
-    TF_OperationDescription* op_desc;
-    TF_Operation* op;
-    TF_Operation* transpose_op;
+    TF_OperationDescription *op_desc;
+    TF_Operation *op;
+    TF_Operation *transpose_op;
     TF_Output input;
     int64_t strides[] = {1, 1, 1, 1};
-    int32_t* transpose_perm;
-    TF_Tensor* tensor;
+    int32_t *transpose_perm;
+    TF_Tensor *tensor;
     int64_t transpose_perm_shape[] = {4};
     char name_buffer[256];
 
     op_desc = TF_NewOperation(tf_model->graph, "Const", "transpose_perm");
     TF_SetAttrType(op_desc, "dtype", TF_INT32);
     tensor = TF_AllocateTensor(TF_INT32, transpose_perm_shape, 1, 4 * sizeof(int32_t));
-    transpose_perm = (int32_t*)TF_TensorData(tensor);
+    transpose_perm = (int32_t *)TF_TensorData(tensor);
     transpose_perm[0] = 1;
     transpose_perm[1] = 2;
     transpose_perm[2] = 3;
@@ -368,13 +368,13 @@  static TF_Operation* add_conv_layers(TFModel* tf_model, const float** consts, co
     return input_op;
 }
 
-DNNModel* ff_dnn_load_default_model_tf(DNNDefaultModel model_type)
+DNNModel *ff_dnn_load_default_model_tf(DNNDefaultModel model_type)
 {
-    DNNModel* model = NULL;
-    TFModel* tf_model = NULL;
-    TF_OperationDescription* op_desc;
-    TF_Operation* op;
-    TF_Operation* const_ops_buffer[6];
+    DNNModel *model = NULL;
+    TFModel *tf_model = NULL;
+    TF_OperationDescription *op_desc;
+    TF_Operation *op;
+    TF_Operation *const_ops_buffer[6];
     TF_Output input;
     int64_t input_shape[] = {1, -1, -1, 1};
 
@@ -460,16 +460,16 @@  DNNModel* ff_dnn_load_default_model_tf(DNNDefaultModel model_type)
         CLEANUP_ON_ERROR(tf_model, model);
     }
 
-    model->model = (void*)tf_model;
+    model->model = (void *)tf_model;
     model->set_input_output = &set_input_output_tf;
 
     return model;
 }
 
-DNNReturnType ff_dnn_execute_model_tf(const DNNModel* model)
+DNNReturnType ff_dnn_execute_model_tf(const DNNModel *model)
 {
-    TFModel* tf_model = (TFModel*)model->model;
-    TF_Tensor* output_tensor;
+    TFModel *tf_model = (TFModel *)model->model;
+    TF_Tensor *output_tensor;
 
     TF_SessionRun(tf_model->session, NULL,
                   &tf_model->input, &tf_model->input_tensor, 1,
@@ -489,12 +489,12 @@  DNNReturnType ff_dnn_execute_model_tf(const DNNModel* model)
     }
 }
 
-void ff_dnn_free_model_tf(DNNModel** model)
+void ff_dnn_free_model_tf(DNNModel **model)
 {
-    TFModel* tf_model;
+    TFModel *tf_model;
 
     if (*model){
-        tf_model = (TFModel*)(*model)->model;
+        tf_model = (TFModel *)(*model)->model;
         if (tf_model->graph){
             TF_DeleteGraph(tf_model->graph);
         }
diff --git a/libavfilter/dnn_backend_tf.h b/libavfilter/dnn_backend_tf.h
index 08e4a568b3..357a82d948 100644
--- a/libavfilter/dnn_backend_tf.h
+++ b/libavfilter/dnn_backend_tf.h
@@ -29,12 +29,12 @@ 
 
 #include "dnn_interface.h"
 
-DNNModel* ff_dnn_load_model_tf(const char* model_filename);
+DNNModel *ff_dnn_load_model_tf(const char *model_filename);
 
-DNNModel* ff_dnn_load_default_model_tf(DNNDefaultModel model_type);
+DNNModel *ff_dnn_load_default_model_tf(DNNDefaultModel model_type);
 
-DNNReturnType ff_dnn_execute_model_tf(const DNNModel* model);
+DNNReturnType ff_dnn_execute_model_tf(const DNNModel *model);
 
-void ff_dnn_free_model_tf(DNNModel** model);
+void ff_dnn_free_model_tf(DNNModel **model);
 
 #endif
diff --git a/libavfilter/dnn_espcn.h b/libavfilter/dnn_espcn.h
index 315ecf031d..a0dd61cd0d 100644
--- a/libavfilter/dnn_espcn.h
+++ b/libavfilter/dnn_espcn.h
@@ -5398,7 +5398,7 @@  static const long int espcn_conv3_bias_dims[] = {
     4
 };
 
-static const float* espcn_consts[] = {
+static const float *espcn_consts[] = {
     espcn_conv1_kernel,
     espcn_conv1_bias,
     espcn_conv2_kernel,
@@ -5407,7 +5407,7 @@  static const float* espcn_consts[] = {
     espcn_conv3_bias
 };
 
-static const long int* espcn_consts_dims[] = {
+static const long int *espcn_consts_dims[] = {
     espcn_conv1_kernel_dims,
     espcn_conv1_bias_dims,
     espcn_conv2_kernel_dims,
@@ -5429,7 +5429,7 @@  static const char espcn_tanh[] = "Tanh";
 
 static const char espcn_sigmoid[] = "Sigmoid";
 
-static const char* espcn_activations[] = {
+static const char *espcn_activations[] = {
     espcn_tanh,
     espcn_tanh,
     espcn_sigmoid
diff --git a/libavfilter/dnn_interface.c b/libavfilter/dnn_interface.c
index 87c90526be..ca7d6d1ea5 100644
--- a/libavfilter/dnn_interface.c
+++ b/libavfilter/dnn_interface.c
@@ -28,9 +28,9 @@ 
 #include "dnn_backend_tf.h"
 #include "libavutil/mem.h"
 
-DNNModule* ff_get_dnn_module(DNNBackendType backend_type)
+DNNModule *ff_get_dnn_module(DNNBackendType backend_type)
 {
-    DNNModule* dnn_module;
+    DNNModule *dnn_module;
 
     dnn_module = av_malloc(sizeof(DNNModule));
     if(!dnn_module){
diff --git a/libavfilter/dnn_interface.h b/libavfilter/dnn_interface.h
index 6b820d1d5b..a69717ae62 100644
--- a/libavfilter/dnn_interface.h
+++ b/libavfilter/dnn_interface.h
@@ -33,31 +33,31 @@  typedef enum {DNN_NATIVE, DNN_TF} DNNBackendType;
 typedef enum {DNN_SRCNN, DNN_ESPCN} DNNDefaultModel;
 
 typedef struct DNNData{
-    float* data;
+    float *data;
     int width, height, channels;
 } DNNData;
 
 typedef struct DNNModel{
     // Stores model that can be different for different backends.
-    void* model;
+    void *model;
     // Sets model input and output, while allocating additional memory for intermediate calculations.
     // Should be called at least once before model execution.
-    DNNReturnType (*set_input_output)(void* model, DNNData* input, DNNData* output);
+    DNNReturnType (*set_input_output)(void *model, DNNData *input, DNNData *output);
 } DNNModel;
 
 // Stores pointers to functions for loading, executing, freeing DNN models for one of the backends.
 typedef struct DNNModule{
     // Loads model and parameters from given file. Returns NULL if it is not possible.
-    DNNModel* (*load_model)(const char* model_filename);
+    DNNModel *(*load_model)(const char *model_filename);
     // Loads one of the default models
-    DNNModel* (*load_default_model)(DNNDefaultModel model_type);
+    DNNModel *(*load_default_model)(DNNDefaultModel model_type);
     // Executes model with specified input and output. Returns DNN_ERROR otherwise.
-    DNNReturnType (*execute_model)(const DNNModel* model);
+    DNNReturnType (*execute_model)(const DNNModel *model);
     // Frees memory allocated for model.
-    void (*free_model)(DNNModel** model);
+    void (*free_model)(DNNModel **model);
 } DNNModule;
 
 // Initializes DNNModule depending on chosen backend.
-DNNModule* ff_get_dnn_module(DNNBackendType backend_type);
+DNNModule *ff_get_dnn_module(DNNBackendType backend_type);
 
 #endif
diff --git a/libavfilter/dnn_srcnn.h b/libavfilter/dnn_srcnn.h
index 7ec11654b3..26143654b8 100644
--- a/libavfilter/dnn_srcnn.h
+++ b/libavfilter/dnn_srcnn.h
@@ -2110,7 +2110,7 @@  static const long int srcnn_conv3_bias_dims[] = {
     1
 };
 
-static const float* srcnn_consts[] = {
+static const float *srcnn_consts[] = {
     srcnn_conv1_kernel,
     srcnn_conv1_bias,
     srcnn_conv2_kernel,
@@ -2119,7 +2119,7 @@  static const float* srcnn_consts[] = {
     srcnn_conv3_bias
 };
 
-static const long int* srcnn_consts_dims[] = {
+static const long int *srcnn_consts_dims[] = {
     srcnn_conv1_kernel_dims,
     srcnn_conv1_bias_dims,
     srcnn_conv2_kernel_dims,
@@ -2139,7 +2139,7 @@  static const int srcnn_consts_dims_len[] = {
 
 static const char srcnn_relu[] = "Relu";
 
-static const char* srcnn_activations[] = {
+static const char *srcnn_activations[] = {
     srcnn_relu,
     srcnn_relu,
     srcnn_relu
diff --git a/libavfilter/vf_sr.c b/libavfilter/vf_sr.c
index f3ca9a09a8..944a0e28e7 100644
--- a/libavfilter/vf_sr.c
+++ b/libavfilter/vf_sr.c
@@ -39,13 +39,13 @@  typedef struct SRContext {
     const AVClass *class;
 
     SRModel model_type;
-    char* model_filename;
+    char *model_filename;
     DNNBackendType backend_type;
-    DNNModule* dnn_module;
-    DNNModel* model;
+    DNNModule *dnn_module;
+    DNNModel *model;
     DNNData input, output;
     int scale_factor;
-    struct SwsContext* sws_context;
+    struct SwsContext *sws_context;
     int sws_slice_h;
 } SRContext;
 
@@ -67,9 +67,9 @@  static const AVOption sr_options[] = {
 
 AVFILTER_DEFINE_CLASS(sr);
 
-static av_cold int init(AVFilterContext* context)
+static av_cold int init(AVFilterContext *context)
 {
-    SRContext* sr_context = context->priv;
+    SRContext *sr_context = context->priv;
 
     sr_context->dnn_module = ff_get_dnn_module(sr_context->backend_type);
     if (!sr_context->dnn_module){
@@ -98,12 +98,12 @@  static av_cold int init(AVFilterContext* context)
     return 0;
 }
 
-static int query_formats(AVFilterContext* context)
+static int query_formats(AVFilterContext *context)
 {
     const enum AVPixelFormat pixel_formats[] = {AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P,
                                                 AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_GRAY8,
                                                 AV_PIX_FMT_NONE};
-    AVFilterFormats* formats_list;
+    AVFilterFormats *formats_list;
 
     formats_list = ff_make_format_list(pixel_formats);
     if (!formats_list){
@@ -113,11 +113,11 @@  static int query_formats(AVFilterContext* context)
     return ff_set_common_formats(context, formats_list);
 }
 
-static int config_props(AVFilterLink* inlink)
+static int config_props(AVFilterLink *inlink)
 {
-    AVFilterContext* context = inlink->dst;
-    SRContext* sr_context = context->priv;
-    AVFilterLink* outlink = context->outputs[0];
+    AVFilterContext *context = inlink->dst;
+    SRContext *sr_context = context->priv;
+    AVFilterLink *outlink = context->outputs[0];
     DNNReturnType result;
     int sws_src_h, sws_src_w, sws_dst_h, sws_dst_w;
 
@@ -202,18 +202,18 @@  static int config_props(AVFilterLink* inlink)
 }
 
 typedef struct ThreadData{
-    uint8_t* data;
+    uint8_t *data;
     int data_linesize, height, width;
 } ThreadData;
 
-static int uint8_to_float(AVFilterContext* context, void* arg, int jobnr, int nb_jobs)
+static int uint8_to_float(AVFilterContext *context, void *arg, int jobnr, int nb_jobs)
 {
-    SRContext* sr_context = context->priv;
-    const ThreadData* td = arg;
+    SRContext *sr_context = context->priv;
+    const ThreadData *td = arg;
     const int slice_start = (td->height *  jobnr     ) / nb_jobs;
     const int slice_end   = (td->height * (jobnr + 1)) / nb_jobs;
-    const uint8_t* src = td->data + slice_start * td->data_linesize;
-    float* dst = sr_context->input.data + slice_start * td->width;
+    const uint8_t *src = td->data + slice_start * td->data_linesize;
+    float *dst = sr_context->input.data + slice_start * td->width;
     int y, x;
 
     for (y = slice_start; y < slice_end; ++y){
@@ -227,14 +227,14 @@  static int uint8_to_float(AVFilterContext* context, void* arg, int jobnr, int nb
     return 0;
 }
 
-static int float_to_uint8(AVFilterContext* context, void* arg, int jobnr, int nb_jobs)
+static int float_to_uint8(AVFilterContext *context, void *arg, int jobnr, int nb_jobs)
 {
-    SRContext* sr_context = context->priv;
-    const ThreadData* td = arg;
+    SRContext *sr_context = context->priv;
+    const ThreadData *td = arg;
     const int slice_start = (td->height *  jobnr     ) / nb_jobs;
     const int slice_end   = (td->height * (jobnr + 1)) / nb_jobs;
-    const float* src = sr_context->output.data + slice_start * td->width;
-    uint8_t* dst = td->data + slice_start * td->data_linesize;
+    const float *src = sr_context->output.data + slice_start * td->width;
+    uint8_t *dst = td->data + slice_start * td->data_linesize;
     int y, x;
 
     for (y = slice_start; y < slice_end; ++y){
@@ -248,12 +248,12 @@  static int float_to_uint8(AVFilterContext* context, void* arg, int jobnr, int nb
     return 0;
 }
 
-static int filter_frame(AVFilterLink* inlink, AVFrame* in)
+static int filter_frame(AVFilterLink *inlink, AVFrame *in)
 {
-    AVFilterContext* context = inlink->dst;
-    SRContext* sr_context = context->priv;
-    AVFilterLink* outlink = context->outputs[0];
-    AVFrame* out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
+    AVFilterContext *context = inlink->dst;
+    SRContext *sr_context = context->priv;
+    AVFilterLink *outlink = context->outputs[0];
+    AVFrame *out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
     ThreadData td;
     int nb_threads;
     DNNReturnType dnn_result;
@@ -307,9 +307,9 @@  static int filter_frame(AVFilterLink* inlink, AVFrame* in)
     return ff_filter_frame(outlink, out);
 }
 
-static av_cold void uninit(AVFilterContext* context)
+static av_cold void uninit(AVFilterContext *context)
 {
-    SRContext* sr_context = context->priv;
+    SRContext *sr_context = context->priv;
 
     if (sr_context->dnn_module){
         (sr_context->dnn_module->free_model)(&sr_context->model);
-- 
2.14.1