feba4ec6f1dfc2d0823cb55d24c4532d41648564
[swftools.git] / lib / bladeenc / mdct.h
1 /*
2                         (c) Copyright 1998-2000 - Tord Jansson
3                         ======================================
4
5                 This file is part of the BladeEnc MP3 Encoder, based on
6                 ISO's reference code for MPEG Layer 3 compression, and might
7                 contain smaller or larger sections that are directly taken
8                 from ISO's reference code.
9
10                 All changes to the ISO reference code herein are either
11                 copyrighted by Tord Jansson (tord.jansson@swipnet.se)
12                 or sublicensed to Tord Jansson by a third party.
13
14         BladeEnc is free software; you can redistribute this file
15         and/or modify it under the terms of the GNU Lesser General Public
16         License as published by the Free Software Foundation; either
17         version 2.1 of the License, or (at your option) any later version.
18
19
20
21         ------------    Changes    ------------
22
23         2000-12-10  Andre Piotrowski
24
25         -       reformatted, redesigned
26         -       MDCT_CHANGE_LEVEL 5
27 */
28
29 /**********************************************************************
30  * ISO MPEG Audio Subgroup Software Simulation Group (1996)
31  * ISO 13818-3 MPEG-2 Audio Encoder - Lower Sampling Frequency Extension
32  *
33  * $Id: mdct.h,v 1.1 2004/05/08 12:21:08 kramm Exp $
34  *
35  * $Log: mdct.h,v $
36  * Revision 1.1  2004/05/08 12:21:08  kramm
37  * Version 0.94.1 of the bladeenc mp3 encoder
38  *
39  * Revision 1.1  2002/01/10 17:30:01  kramm
40  * Version 0.94.1 of the bladeenc mp3 encoder
41  *
42  * Revision 1.1  1996/02/14 04:04:23  rowlands
43  * Initial revision
44  *
45  * Received from Mike Coleman
46  **********************************************************************/
47
48 #ifndef         __MDCT__
49 #define         __MDCT__
50
51
52
53
54
55 #define MDCT_CHANGE_LEVEL 5
56
57
58
59
60
61 typedef         double                                  L3SBS[2][3][18][SBLIMIT];   /* [gr][ch] */
62
63
64
65
66
67 extern  int                             fInit_mdct_sub;
68 extern  int                             fInit_mdct;
69
70
71 extern  int                             gr_idx[3];
72
73
74
75
76
77 void                                    mdct_sub
78 (
79         L3SBS                                   *sb_sample,
80         double                                  (*mdct_freq)[2][576],
81         int                                             stereo,
82         III_side_info_t                 *l3_side,
83         int                                             mode_gr
84 );
85
86
87
88 #if MDCT_CHANGE_LEVEL < 5
89
90 void                                    mdct
91 (
92         double                                  *in,
93         double                                  *out,
94         int                                             block_type
95 );
96
97 #else
98
99 void                                    mdct
100 (
101         double                                  inA[18][32],
102         double                                  inB[18][32],
103         int                                             band,
104         double                                  *out,
105         int                                             block_type
106 );
107
108 #endif
109
110
111
112
113
114 #endif          /* __MDCT__ */