diff options
author | Paul B Mahol <onemda@gmail.com> | 2021-02-10 14:08:23 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2021-02-10 14:15:42 +0100 |
commit | 129978af6b6503109517777eba8890713a787cb5 (patch) | |
tree | 82eff1e36d80c0e42b2c2a29ca27c95dfe125567 | |
parent | 2014b0135293c41d261757bfa1aaba51653bab8e (diff) | |
download | ffmpeg-129978af6b6503109517777eba8890713a787cb5.tar.gz |
avfilter/af_arnndn: skip array extra entries by looking for new line
-rw-r--r-- | libavfilter/af_arnndn.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/libavfilter/af_arnndn.c b/libavfilter/af_arnndn.c index 81a7f9318a..049865b589 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); |