From 129978af6b6503109517777eba8890713a787cb5 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Wed, 10 Feb 2021 14:08:23 +0100 Subject: [PATCH] avfilter/af_arnndn: skip array extra entries by looking for new line --- libavfilter/af_arnndn.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/libavfilter/af_arnndn.c b/libavfilter/af_arnndn.c index 81a7f9318a7..049865b5890 100644 --- a/libavfilter/af_arnndn.c +++ b/libavfilter/af_arnndn.c @@ -187,7 +187,7 @@ static void rnnoise_model_free(RNNModel *model) static int rnnoise_model_from_file(FILE *f, RNNModel **rnn) { - RNNModel *ret; + RNNModel *ret = NULL; DenseLayer *input_dense; GRULayer *vad_gru; GRULayer *noise_gru; @@ -277,13 +277,24 @@ static int rnnoise_model_from_file(FILE *f, RNNModel **rnn) } \ } while (0) +#define NEW_LINE() do { \ + int c; \ + while ((c = fgetc(f)) != EOF) { \ + if (c == '\n') \ + break; \ + } \ + } while (0) + #define INPUT_DENSE(name) do { \ INPUT_VAL(name->nb_inputs); \ INPUT_VAL(name->nb_neurons); \ ret->name ## _size = name->nb_neurons; \ INPUT_ACTIVATION(name->activation); \ + NEW_LINE(); \ INPUT_ARRAY(name->input_weights, name->nb_inputs * name->nb_neurons); \ + NEW_LINE(); \ INPUT_ARRAY(name->bias, name->nb_neurons); \ + NEW_LINE(); \ } while (0) #define INPUT_GRU(name) do { \ @@ -291,9 +302,13 @@ static int rnnoise_model_from_file(FILE *f, RNNModel **rnn) INPUT_VAL(name->nb_neurons); \ ret->name ## _size = name->nb_neurons; \ INPUT_ACTIVATION(name->activation); \ + NEW_LINE(); \ INPUT_ARRAY3(name->input_weights, name->nb_inputs, name->nb_neurons, 3); \ + NEW_LINE(); \ INPUT_ARRAY3(name->recurrent_weights, name->nb_neurons, name->nb_neurons, 3); \ + NEW_LINE(); \ INPUT_ARRAY(name->bias, name->nb_neurons * 3); \ + NEW_LINE(); \ } while (0) INPUT_DENSE(input_dense); -- 2.39.2