]> git.sesse.net Git - vlc/blobdiff - src/ac3_decoder/ac3_decoder.h
* Fixed a segfault on exit under Windows 2000
[vlc] / src / ac3_decoder / ac3_decoder.h
index 7d727c54edc069927d18fb946a8285cd4702f7e3..c6740bc5196887a51894a572d2b0b6636ccb2bad 100644 (file)
@@ -2,7 +2,7 @@
  * ac3_decoder.h : ac3 decoder interface
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: ac3_decoder.h,v 1.5 2001/04/20 12:14:34 reno Exp $
+ * $Id: ac3_decoder.h,v 1.13 2001/10/31 11:55:53 reno Exp $
  *
  * Authors: Michel Kaempf <maxx@via.ecp.fr>
  *          Renaud Dartus <reno@videolan.org>
@@ -265,7 +265,7 @@ typedef struct audblk_s {
 //      u16 chmant[5][256];
 
     /* coupling mantissas */
-    float cplfbw[ 256 ];
+    float cpl_flt[ 256 ];
 //      u16 cplmant[256];
 
     /* coupling mantissas */
@@ -308,6 +308,7 @@ typedef struct audblk_s {
 } audblk_t;
 
 /* Everything you wanted to know about band structure */
+
 /*
  * The entire frequency domain is represented by 256 real
  * floating point fourier coefficients. Only the lower 253
@@ -326,17 +327,6 @@ typedef struct audblk_s {
  * approximate a 1/6 octave scale.
  */
 
-typedef struct stream_coeffs_s
-{
-    float fbw[5][256];
-    float lfe[256];
-} stream_coeffs_t;
-
-typedef struct stream_samples_s
-{
-    float channel[6][256];
-} stream_samples_t;
-
 typedef struct bit_allocate_s
 {
     s16 psd[256];
@@ -362,40 +352,14 @@ typedef struct mantissa_s
     u16 lfsr_state;
 } mantissa_t;
 
-typedef struct complex_s {
-    float real;
-    float imag;
-} complex_t;
-
-#define N 512
-
-typedef struct imdct_s
-{
-    complex_t buf[N/4];
-
-    /* Delay buffer for time domain interleaving */
-    float delay[6][256];
-
-    /* Twiddle factors for IMDCT */
-    float xcos1[N/4];
-    float xsin1[N/4];
-    float xcos2[N/8];
-    float xsin2[N/8];
-    
-    /* Twiddle factor LUT */
-    complex_t *w[7];
-    complex_t w_1[1];
-    complex_t w_2[2];
-    complex_t w_4[4];
-    complex_t w_8[8];
-    complex_t w_16[16];
-    complex_t w_32[32];
-    complex_t w_64[64];
-
-} imdct_t;
-
 struct ac3dec_s
 {
+    float *             samples;
+#if defined( __MINGW32__ )
+    float *             samples_back;
+#endif
+    imdct_t *           imdct;
+
     /*
      * Input properties
      */
@@ -412,10 +376,11 @@ struct ac3dec_s
     bsi_t               bsi;
     audblk_t            audblk;
 
-    stream_coeffs_t     coeffs;
-    stream_samples_t    samples;
+    dm_par_t            dm_par;
 
     bit_allocate_t      bit_allocate;
     mantissa_t          mantissa;
-    imdct_t             imdct;
+    downmix_t           downmix;
+
 };
+