annotate Input/aac/libfaad2/cfft.h @ 22:696f87ed66e2 trunk

[svn] More GCC retardation
author nenolod
date Mon, 24 Oct 2005 20:25:00 -0700
parents 6efb9e514224
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
1 /*
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
3 ** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
4 **
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
5 ** This program is free software; you can redistribute it and/or modify
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
6 ** it under the terms of the GNU General Public License as published by
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
7 ** the Free Software Foundation; either version 2 of the License, or
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
8 ** (at your option) any later version.
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
9 **
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
10 ** This program is distributed in the hope that it will be useful,
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
13 ** GNU General Public License for more details.
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
14 **
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
15 ** You should have received a copy of the GNU General Public License
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
16 ** along with this program; if not, write to the Free Software
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
18 **
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
19 ** Any non-GPL usage of this software or parts of this software is strictly
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
20 ** forbidden.
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
21 **
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
22 ** Commercial non-GPL licensing of this software is possible.
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
24 **
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
25 ** $Id: cfft.h,v 1.12 2003/11/12 20:47:57 menno Exp $
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
26 **/
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
27
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
28 #ifndef __CFFT_H__
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
29 #define __CFFT_H__
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
30
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
31 #ifdef __cplusplus
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
32 extern "C" {
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
33 #endif
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
34
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
35 typedef struct
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
36 {
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
37 uint16_t n;
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
38 uint16_t ifac[15];
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
39 complex_t *work;
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
40 complex_t *tab;
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
41 } cfft_info;
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
42
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
43
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
44 void cfftf(cfft_info *cfft, complex_t *c);
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
45 void cfftb(cfft_info *cfft, complex_t *c);
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
46 cfft_info *cffti(uint16_t n);
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
47 void cfftu(cfft_info *cfft);
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
48
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
49
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
50 static void passf2(const uint16_t ido, const uint16_t l1, const complex_t *cc,
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
51 complex_t *ch, const complex_t *wa, const int8_t isign);
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
52 static void passf3(const uint16_t ido, const uint16_t l1, const complex_t *cc,
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
53 complex_t *ch, const complex_t *wa1, const complex_t *wa2, const int8_t isign);
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
54 static void passf4(const uint16_t ido, const uint16_t l1, const complex_t *cc, complex_t *ch,
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
55 const complex_t *wa1, const complex_t *wa2, const complex_t *wa3,
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
56 const int8_t isign);
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
57 static void passf5(const uint16_t ido, const uint16_t l1, const complex_t *cc, complex_t *ch,
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
58 const complex_t *wa1, const complex_t *wa2, const complex_t *wa3,
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
59 const complex_t *wa4, const int8_t isign);
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
60 INLINE void cfftf1(uint16_t n, complex_t *c, complex_t *ch,
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
61 uint16_t *ifac, complex_t *wa, int8_t isign);
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
62 static void cffti1(uint16_t n, complex_t *wa, uint16_t *ifac);
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
63
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
64
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
65 #ifdef __cplusplus
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
66 }
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
67 #endif
6efb9e514224 [svn] Import AAC stuff.
nenolod
parents:
diff changeset
68 #endif