diff mdct.c @ 10199:38ab367d4231 libavcodec

Merge FFTContext and MDCTContext
author mru
date Sun, 20 Sep 2009 17:30:20 +0000
parents 89cd870ca180
children db033d1fbf44
line wrap: on
line diff
--- a/mdct.c	Sun Sep 20 17:18:59 2009 +0000
+++ b/mdct.c	Sun Sep 20 17:30:20 2009 +0000
@@ -72,15 +72,15 @@
 /**
  * init MDCT or IMDCT computation.
  */
-av_cold int ff_mdct_init(MDCTContext *s, int nbits, int inverse, double scale)
+av_cold int ff_mdct_init(FFTContext *s, int nbits, int inverse, double scale)
 {
     int n, n4, i;
     double alpha, theta;
 
     memset(s, 0, sizeof(*s));
     n = 1 << nbits;
-    s->nbits = nbits;
-    s->n = n;
+    s->mdct_bits = nbits;
+    s->mdct_size = n;
     n4 = n >> 2;
     s->tcos = av_malloc(n4 * sizeof(FFTSample));
     if (!s->tcos)
@@ -96,7 +96,7 @@
         s->tcos[i] = -cos(alpha) * scale;
         s->tsin[i] = -sin(alpha) * scale;
     }
-    if (ff_fft_init(&s->fft, s->nbits - 2, inverse) < 0)
+    if (ff_fft_init(s, s->mdct_bits - 2, inverse) < 0)
         goto fail;
     return 0;
  fail:
@@ -122,16 +122,16 @@
  * @param output N/2 samples
  * @param input N/2 samples
  */
-void ff_imdct_half_c(MDCTContext *s, FFTSample *output, const FFTSample *input)
+void ff_imdct_half_c(FFTContext *s, FFTSample *output, const FFTSample *input)
 {
     int k, n8, n4, n2, n, j;
-    const uint16_t *revtab = s->fft.revtab;
+    const uint16_t *revtab = s->revtab;
     const FFTSample *tcos = s->tcos;
     const FFTSample *tsin = s->tsin;
     const FFTSample *in1, *in2;
     FFTComplex *z = (FFTComplex *)output;
 
-    n = 1 << s->nbits;
+    n = 1 << s->mdct_bits;
     n2 = n >> 1;
     n4 = n >> 2;
     n8 = n >> 3;
@@ -145,7 +145,7 @@
         in1 += 2;
         in2 -= 2;
     }
-    ff_fft_calc(&s->fft, z);
+    ff_fft_calc(s, z);
 
     /* post rotation + reordering */
     for(k = 0; k < n8; k++) {
@@ -164,10 +164,10 @@
  * @param output N samples
  * @param input N/2 samples
  */
-void ff_imdct_calc_c(MDCTContext *s, FFTSample *output, const FFTSample *input)
+void ff_imdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input)
 {
     int k;
-    int n = 1 << s->nbits;
+    int n = 1 << s->mdct_bits;
     int n2 = n >> 1;
     int n4 = n >> 2;
 
@@ -184,16 +184,16 @@
  * @param input N samples
  * @param out N/2 samples
  */
-void ff_mdct_calc_c(MDCTContext *s, FFTSample *out, const FFTSample *input)
+void ff_mdct_calc_c(FFTContext *s, FFTSample *out, const FFTSample *input)
 {
     int i, j, n, n8, n4, n2, n3;
     FFTSample re, im;
-    const uint16_t *revtab = s->fft.revtab;
+    const uint16_t *revtab = s->revtab;
     const FFTSample *tcos = s->tcos;
     const FFTSample *tsin = s->tsin;
     FFTComplex *x = (FFTComplex *)out;
 
-    n = 1 << s->nbits;
+    n = 1 << s->mdct_bits;
     n2 = n >> 1;
     n4 = n >> 2;
     n8 = n >> 3;
@@ -212,7 +212,7 @@
         CMUL(x[j].re, x[j].im, re, im, -tcos[n8 + i], tsin[n8 + i]);
     }
 
-    ff_fft_calc(&s->fft, x);
+    ff_fft_calc(s, x);
 
     /* post rotation */
     for(i=0;i<n8;i++) {
@@ -226,9 +226,9 @@
     }
 }
 
-av_cold void ff_mdct_end(MDCTContext *s)
+av_cold void ff_mdct_end(FFTContext *s)
 {
     av_freep(&s->tcos);
     av_freep(&s->tsin);
-    ff_fft_end(&s->fft);
+    ff_fft_end(s);
 }