* 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>
// u16 chmant[5][256];
/* coupling mantissas */
- float cplfbw[ 256 ];
+ float cpl_flt[ 256 ];
// u16 cplmant[256];
/* coupling mantissas */
} 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
* 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];
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
*/
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;
+
};
+