Move skip coding into interp_bits2pulses().
[opus.git] / libcelt / mdct.h
index 6d1e0d6..e119e95 100644 (file)
@@ -1,5 +1,6 @@
-/* (C) 2008 Jean-Marc Valin, CSIRO
-*/
+/* Copyright (c) 2007-2008 CSIRO
+   Copyright (c) 2007-2008 Xiph.Org Foundation
+   Written by Jean-Marc Valin */
 /*
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    and scaling in many places. 
 */
 
+#ifndef MDCT_H
+#define MDCT_H
+
 #include "kiss_fft.h"
+#include "arch.h"
 
 typedef struct {
    int n;
-   kiss_fft_cfg kfft;
-   kiss_twiddle_scalar *trig;
+   int maxshift;
+   const kiss_fft_state *kfft[4];
+   const kiss_twiddle_scalar * restrict trig;
 } mdct_lookup;
 
-void mdct_init(mdct_lookup *l,int N);
-void mdct_clear(mdct_lookup *l);
+void clt_mdct_init(mdct_lookup *l,int N, int maxshift);
+void clt_mdct_clear(mdct_lookup *l);
 
-/** Compute a forward MDCT and scale by 2/N */
-void mdct_forward(mdct_lookup *l, kiss_fft_scalar *in, kiss_fft_scalar *out);
+/** Compute a forward MDCT and scale by 4/N */
+void clt_mdct_forward(const mdct_lookup *l, kiss_fft_scalar *in, kiss_fft_scalar *out, const celt_word16 *window, int overlap, int shift);
 
-/** Compute a backward MDCT (no scaling) */
-void mdct_backward(mdct_lookup *l, kiss_fft_scalar *in, kiss_fft_scalar *out);
+/** Compute a backward MDCT (no scaling) and performs weighted overlap-add 
+    (scales implicitly by 1/2) */
+void clt_mdct_backward(const mdct_lookup *l, kiss_fft_scalar *in, kiss_fft_scalar *out, const celt_word16 * restrict window, int overlap, int shift);
 
+#endif