shithub: opus

Download patch

ref: 088ee4ffa611d65b87aa6a213d1f23c3730383ce
parent: 12f16df6b7effe3913dfc47ccebd3bead84a0fb4
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Thu Dec 13 13:03:58 EST 2018

Should make dump_data able to handle partial overlap

--- a/dnn/dump_data.c
+++ b/dnn/dump_data.c
@@ -53,10 +53,9 @@
 
 
 typedef struct {
-  float analysis_mem[FRAME_SIZE];
+  float analysis_mem[OVERLAP_SIZE];
   float cepstral_mem[CEPS_MEM][NB_BANDS];
   int memid;
-  float synthesis_mem[FRAME_SIZE];
   float pitch_buf[PITCH_BUF_SIZE];
   float pitch_enh_buf[PITCH_BUF_SIZE];
   float last_gain;
@@ -98,11 +97,9 @@
 static void frame_analysis(DenoiseState *st, kiss_fft_cpx *X, float *Ex, const float *in) {
   int i;
   float x[WINDOW_SIZE];
-  float x0[WINDOW_SIZE];
-  RNN_COPY(x, st->analysis_mem, FRAME_SIZE);
-  for (i=0;i<FRAME_SIZE;i++) x[FRAME_SIZE + i] = in[i];
-  RNN_COPY(st->analysis_mem, in, FRAME_SIZE);
-  RNN_COPY(x0, x, WINDOW_SIZE);
+  RNN_COPY(x, st->analysis_mem, OVERLAP_SIZE);
+  RNN_COPY(&x[OVERLAP_SIZE], in, FRAME_SIZE);
+  RNN_COPY(st->analysis_mem, &in[FRAME_SIZE-OVERLAP_SIZE], OVERLAP_SIZE);
   apply_window(x);
   forward_transform(X, x);
   for (i=lowpass;i<FREQ_SIZE;i++)
--