kludgy fft init
authorjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Wed, 5 Oct 2005 23:38:24 +0000 (23:38 +0000)
committerjm <jm@0101bb08-14d6-0310-b084-bc0e0c8e3800>
Wed, 5 Oct 2005 23:38:24 +0000 (23:38 +0000)
git-svn-id: http://svn.xiph.org/trunk/speex@10132 0101bb08-14d6-0310-b084-bc0e0c8e3800

libspeex/curves.c

index 91716c2..8d8625b 100644 (file)
@@ -29,6 +29,8 @@
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
+/*#define VORBIS_PSYCHO*/
+
 #ifdef VORBIS_PSYCHO
 
 
 
 struct drft_lookup lookup;
 
+/* FIXME: This is an horrible kludge */
+static void fft_init(int size)
+{
+   static initialized = -1;
+   if (size != initialized)
+   {
+      if (initialized != -1)
+         spx_drft_clear(&lookup);
+      spx_drft_init(&lookup, size);
+      initialized = size;
+   }
+}
 /* */
-void curve_to_lpc(float *curve, int len, float *ak, int ord)
+void curve_to_lpc(float *curve, int len, float *awk1, float *awk2, int ord)
 {
    int i;
    float ac[len*2];
@@ -49,9 +63,12 @@ void curve_to_lpc(float *curve, int len, float *ak, int ord)
    ac[0] = curve[0];
    ac[2*len-1] = curve[len-1];
    
+   fft_init(2*len);
    spx_drft_backward(&lookup, ac);
-   _spx_lpc(ak, ac, ord);
+   _spx_lpc(awk1, ac, ord);
+   for (i=0;i<ord;i++)
+      awk2[i] = 0;
 }
 
 
-#endif
\ No newline at end of file
+#endif