From 5b9b4381eb410107a3b3783ec150f41ae4b535f4 Mon Sep 17 00:00:00 2001
From: Jean-Marc Valin <jmvalin@amazon.com>
Date: Tue, 20 Dec 2022 21:55:28 -0500
Subject: [PATCH] Add call to clear FEC buffer

---
 dnn/include/lpcnet.h | 2 ++
 dnn/lpcnet_plc.c     | 5 +++++
 2 files changed, 7 insertions(+)

diff --git a/dnn/include/lpcnet.h b/dnn/include/lpcnet.h
index b3546e378..e8718fcb3 100644
--- a/dnn/include/lpcnet.h
+++ b/dnn/include/lpcnet.h
@@ -197,4 +197,6 @@ LPCNET_EXPORT int lpcnet_plc_conceal(LPCNetPLCState *st, short *pcm);
 
 LPCNET_EXPORT void lpcnet_plc_fec_add(LPCNetPLCState *st, const float *features);
 
+LPCNET_EXPORT void lpcnet_plc_fec_clear(LPCNetPLCState *st);
+
 #endif
diff --git a/dnn/lpcnet_plc.c b/dnn/lpcnet_plc.c
index b23dbdae0..6dfb50534 100644
--- a/dnn/lpcnet_plc.c
+++ b/dnn/lpcnet_plc.c
@@ -93,6 +93,11 @@ void lpcnet_plc_fec_add(LPCNetPLCState *st, const float *features) {
   st->fec_fill_pos++;
 }
 
+void lpcnet_plc_fec_clear(LPCNetPLCState *st) {
+  st->fec_keep_pos = st->fec_read_pos = st->fec_fill_pos = st-> fec_skip = 0;
+}
+
+
 static void compute_plc_pred(PLCNetState *net, float *out, const float *in) {
   float zeros[3*PLC_MAX_RNN_NEURONS] = {0};
   float dense_out[PLC_DENSE1_OUT_SIZE];
-- 
GitLab