summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2021-02-10 14:08:23 +0100
committerPaul B Mahol <onemda@gmail.com>2021-02-10 14:15:42 +0100
commit129978af6b6503109517777eba8890713a787cb5 (patch)
tree82eff1e36d80c0e42b2c2a29ca27c95dfe125567
parent2014b0135293c41d261757bfa1aaba51653bab8e (diff)
avfilter/af_arnndn: skip array extra entries by looking for new line
-rw-r--r--libavfilter/af_arnndn.c17
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);