annotate libfaad2/common.h @ 18385:4cdb4082d899

French Fixes by Pierre Lombard, (and 10l to me for not checking they were conflicts on my tree before committing, so previous version was probably not even building cleanly).
author gpoirier
date Thu, 04 May 2006 12:36:34 +0000
parents 59b6fa5b4201
children 0783dd397f74
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
1 /*
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
3 ** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
4 **
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
5 ** This program is free software; you can redistribute it and/or modify
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
6 ** it under the terms of the GNU General Public License as published by
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
7 ** the Free Software Foundation; either version 2 of the License, or
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
8 ** (at your option) any later version.
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
9 **
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
10 ** This program is distributed in the hope that it will be useful,
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
13 ** GNU General Public License for more details.
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
14 **
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
15 ** You should have received a copy of the GNU General Public License
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
16 ** along with this program; if not, write to the Free Software
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
18 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
19 ** Any non-GPL usage of this software or parts of this software is strictly
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
20 ** forbidden.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
21 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
22 ** Commercial non-GPL licensing of this software is possible.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
24 **
12625
d81145997036 More information about modifications to comply more closely with GPL 2a.
diego
parents: 12527
diff changeset
25 ** Initially modified for use with MPlayer by Arpad Gereöffy on 2003/08/30
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
26 ** $Id$
12625
d81145997036 More information about modifications to comply more closely with GPL 2a.
diego
parents: 12527
diff changeset
27 ** detailed CVS changelog at http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
14731
0cf5722252f8 Point to local_changes.diff.
diego
parents: 14729
diff changeset
28 ** local_changes.diff contains the exact changes to this file.
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
29 **/
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
30
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
31 #ifndef __COMMON_H__
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
32 #define __COMMON_H__
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
33
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
34 #ifdef __cplusplus
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
35 extern "C" {
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
36 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
37
14729
b4378a6f87a6 Sync missing cosmetics from the 2004-07-12 CVS snapshot.
diego
parents: 13685
diff changeset
38 /* Allow build on Cygwin*/
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
39 #if defined(__CYGWIN__)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
40 #define __STRICT_ANSI__
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
41 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
42
13685
ebd158d142f7 Fix playback on big-endian systems.
diego
parents: 13485
diff changeset
43 #include "../config.h"
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
44
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
45 #define INLINE __inline
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
46 #if 0 //defined(_WIN32) && !defined(_WIN32_WCE)
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
47 #define ALIGN __declspec(align(16))
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
48 #else
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
49 #define ALIGN
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
50 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
51
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
52 #ifndef max
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
53 #define max(a, b) (((a) > (b)) ? (a) : (b))
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
54 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
55 #ifndef min
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
56 #define min(a, b) (((a) < (b)) ? (a) : (b))
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
57 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
58
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
59 /* COMPILE TIME DEFINITIONS */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
60
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
61 /* use double precision */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
62 /* #define USE_DOUBLE_PRECISION */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
63 /* use fixed point reals */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
64 //#define FIXED_POINT
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
65 //#define BIG_IQ_TABLE
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
66
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
67 /* Use if target platform has address generators with autoincrement */
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
68 //#define PREFER_POINTERS
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
69
16230
ba7a79482bec prefer FIXED_POINT for ARM - patch by AGAWA Koji <i at atty.sakura.ne.jp>
alex
parents: 15593
diff changeset
70 #if defined(_WIN32_WCE) || defined(__arm__)
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
71 #define FIXED_POINT
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
72 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
73
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
74
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
75 #define ERROR_RESILIENCE
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
76
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
77
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
78 /* Allow decoding of MAIN profile AAC */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
79 #define MAIN_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
80 /* Allow decoding of SSR profile AAC */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
81 //#define SSR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
82 /* Allow decoding of LTP profile AAC */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
83 #define LTP_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
84 /* Allow decoding of LD profile AAC */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
85 #define LD_DEC
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
86 /* Allow decoding of scalable profiles */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
87 //#define SCALABLE_DEC
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
88 /* Allow decoding of Digital Radio Mondiale (DRM) */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
89 //#define DRM
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
90 //#define DRM_PS
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
91
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
92 /* LD can't do without LTP */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
93 #ifdef LD_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
94 #ifndef ERROR_RESILIENCE
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
95 #define ERROR_RESILIENCE
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
96 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
97 #ifndef LTP_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
98 #define LTP_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
99 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
100 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
101
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
102 #define ALLOW_SMALL_FRAMELENGTH
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
103
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
104
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
105 // Define LC_ONLY_DECODER if you want a pure AAC LC decoder (independant of SBR_DEC and PS_DEC)
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
106 //#define LC_ONLY_DECODER
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
107 #ifdef LC_ONLY_DECODER
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
108 #undef LD_DEC
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
109 #undef LTP_DEC
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
110 #undef MAIN_DEC
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
111 #undef SSR_DEC
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
112 #undef DRM
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
113 #undef ALLOW_SMALL_FRAMELENGTH
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
114 #undef ERROR_RESILIENCE
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
115 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
116
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
117 #define SBR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
118 //#define SBR_LOW_POWER
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
119 #define PS_DEC
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
120
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
121 /* FIXED POINT: No MAIN decoding */
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
122 #ifdef FIXED_POINT
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
123 # ifdef MAIN_DEC
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
124 # undef MAIN_DEC
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
125 # endif
13485
93a84777a6b5 SBR code does NOT work with fixed point (uses floats, slow as hell)
rfelker
parents: 13453
diff changeset
126 # ifdef SBR_DEC
93a84777a6b5 SBR code does NOT work with fixed point (uses floats, slow as hell)
rfelker
parents: 13453
diff changeset
127 # undef SBR_DEC
93a84777a6b5 SBR code does NOT work with fixed point (uses floats, slow as hell)
rfelker
parents: 13453
diff changeset
128 # endif
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
129 #endif // FIXED_POINT
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
130
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
131 #ifdef DRM
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
132 # ifndef SCALABLE_DEC
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
133 # define SCALABLE_DEC
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
134 # endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
135 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
136
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
137
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
138 #ifdef FIXED_POINT
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
139 #define DIV_R(A, B) (((int64_t)A << REAL_BITS)/B)
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
140 #define DIV_C(A, B) (((int64_t)A << COEF_BITS)/B)
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
141 #else
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
142 #define DIV_R(A, B) ((A)/(B))
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
143 #define DIV_C(A, B) ((A)/(B))
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
144 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
145
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
146 #ifndef SBR_LOW_POWER
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
147 #define qmf_t complex_t
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
148 #define QMF_RE(A) RE(A)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
149 #define QMF_IM(A) IM(A)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
150 #else
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
151 #define qmf_t real_t
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
152 #define QMF_RE(A) (A)
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
153 #define QMF_IM(A)
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
154 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
155
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
156
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
157 /* END COMPILE TIME DEFINITIONS */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
158
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
159 #if defined(_WIN32) && !defined(__MINGW32__)
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
160
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
161 #include <stdlib.h>
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
162
10805
125a35fc47a5 fixed win32 compile problems and broken bigendian support
alex
parents: 10725
diff changeset
163 #if 0
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
164 typedef unsigned __int64 uint64_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
165 typedef unsigned __int32 uint32_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
166 typedef unsigned __int16 uint16_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
167 typedef unsigned __int8 uint8_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
168 typedef __int64 int64_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
169 typedef __int32 int32_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
170 typedef __int16 int16_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
171 typedef __int8 int8_t;
10805
125a35fc47a5 fixed win32 compile problems and broken bigendian support
alex
parents: 10725
diff changeset
172 #else
125a35fc47a5 fixed win32 compile problems and broken bigendian support
alex
parents: 10725
diff changeset
173 #include <inttypes.h>
125a35fc47a5 fixed win32 compile problems and broken bigendian support
alex
parents: 10725
diff changeset
174 #endif
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
175
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
176 typedef float float32_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
177
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
178
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
179 #else
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
180
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
181 /* #undef HAVE_FLOAT32_T */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
182 /* Define if you have the <inttypes.h> header file. */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
183 #define HAVE_INTTYPES_H 1
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
184
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
185 /* Define if you have the `memcpy' function. */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
186 #define HAVE_MEMCPY 1
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
187
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
188 /* Define if you have the <stdint.h> header file. */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
189 #define HAVE_STDINT_H 1
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
190
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
191 /* Define if you have the `strchr' function. */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
192 #define HAVE_STRCHR 1
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
193
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
194 /* Define if you have the ANSI C header files. */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
195 #define STDC_HEADERS 1
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
196
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
197 #include <stdio.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
198 #if HAVE_SYS_TYPES_H
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
199 # include <sys/types.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
200 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
201 #if HAVE_SYS_STAT_H
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
202 # include <sys/stat.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
203 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
204 #if STDC_HEADERS
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
205 # include <stdlib.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
206 # include <stddef.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
207 #else
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
208 # if HAVE_STDLIB_H
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
209 # include <stdlib.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
210 # endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
211 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
212 #if HAVE_STRING_H
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
213 # if !STDC_HEADERS && HAVE_MEMORY_H
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
214 # include <memory.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
215 # endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
216 # include <string.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
217 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
218 #if HAVE_STRINGS_H
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
219 # include <strings.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
220 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
221 #if HAVE_INTTYPES_H
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
222 # include <inttypes.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
223 #else
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
224 # if HAVE_STDINT_H
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
225 # include <stdint.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
226 # else
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
227 /* we need these... */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
228 typedef unsigned long long uint64_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
229 typedef unsigned long uint32_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
230 typedef unsigned short uint16_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
231 typedef unsigned char uint8_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
232 typedef long long int64_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
233 typedef long int32_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
234 typedef short int16_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
235 typedef char int8_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
236 # endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
237 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
238 #if HAVE_UNISTD_H
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
239 # include <unistd.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
240 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
241
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
242 #ifndef HAVE_FLOAT32_T
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
243 typedef float float32_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
244 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
245
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
246 #if STDC_HEADERS
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
247 # include <string.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
248 #else
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
249 # if !HAVE_STRCHR
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
250 # define strchr index
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
251 # define strrchr rindex
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
252 # endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
253 char *strchr(), *strrchr();
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
254 # if !HAVE_MEMCPY
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
255 # define memcpy(d, s, n) bcopy((s), (d), (n))
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
256 # define memmove(d, s, n) bcopy((s), (d), (n))
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
257 # endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
258 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
259
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
260 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
261
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
262 #ifdef WORDS_BIGENDIAN
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
263 #define ARCH_IS_BIG_ENDIAN
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
264 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
265
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
266 /* FIXED_POINT doesn't work with MAIN and SSR yet */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
267 #ifdef FIXED_POINT
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
268 #undef MAIN_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
269 #undef SSR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
270 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
271
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
272
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
273 #if defined(FIXED_POINT)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
274
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
275 #include "fixed.h"
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
276
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
277 #elif defined(USE_DOUBLE_PRECISION)
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
278
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
279 typedef double real_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
280
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
281 #include <math.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
282
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
283 #define MUL_R(A,B) ((A)*(B))
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
284 #define MUL_C(A,B) ((A)*(B))
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
285 #define MUL_F(A,B) ((A)*(B))
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
286
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
287 /* Complex multiplication */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
288 static INLINE void ComplexMult(real_t *y1, real_t *y2,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
289 real_t x1, real_t x2, real_t c1, real_t c2)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
290 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
291 *y1 = MUL_F(x1, c1) + MUL_F(x2, c2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
292 *y2 = MUL_F(x2, c1) - MUL_F(x1, c2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
293 }
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
294
10989
3185f64f6350 synced with current cvs
alex
parents: 10805
diff changeset
295 #define REAL_CONST(A) ((real_t)(A))
3185f64f6350 synced with current cvs
alex
parents: 10805
diff changeset
296 #define COEF_CONST(A) ((real_t)(A))
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
297 #define Q2_CONST(A) ((real_t)(A))
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
298 #define FRAC_CONST(A) ((real_t)(A)) /* pure fractional part */
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
299
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
300 #else /* Normal floating point operation */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
301
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
302 typedef float real_t;
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
303
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
304 #define MUL_R(A,B) ((A)*(B))
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
305 #define MUL_C(A,B) ((A)*(B))
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
306 #define MUL_F(A,B) ((A)*(B))
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
307
10989
3185f64f6350 synced with current cvs
alex
parents: 10805
diff changeset
308 #define REAL_CONST(A) ((real_t)(A))
3185f64f6350 synced with current cvs
alex
parents: 10805
diff changeset
309 #define COEF_CONST(A) ((real_t)(A))
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
310 #define Q2_CONST(A) ((real_t)(A))
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
311 #define FRAC_CONST(A) ((real_t)(A)) /* pure fractional part */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
312
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
313 /* Complex multiplication */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
314 static INLINE void ComplexMult(real_t *y1, real_t *y2,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
315 real_t x1, real_t x2, real_t c1, real_t c2)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
316 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
317 *y1 = MUL_F(x1, c1) + MUL_F(x2, c2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
318 *y2 = MUL_F(x2, c1) - MUL_F(x1, c2);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
319 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
320
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
321
15593
a7abe85e8b41 avoid lrintf redeclaration
henry
parents: 14731
diff changeset
322 #if defined(_WIN32) && !defined(__MINGW32__) && !defined(HAVE_LRINTF)
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
323 #define HAS_LRINTF
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
324 static INLINE int lrintf(float f)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
325 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
326 int i;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
327 __asm
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
328 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
329 fld f
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
330 fistp i
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
331 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
332 return i;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
333 }
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 16230
diff changeset
334 #elif (defined(__i386__) && defined(__GNUC__)) && !defined(HAVE_LRINTF)
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
335 #define HAS_LRINTF
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
336 // from http://www.stereopsis.com/FPU.html
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
337 static INLINE int lrintf(float f)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
338 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
339 int i;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
340 __asm__ __volatile__ (
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
341 "flds %1 \n\t"
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
342 "fistpl %0 \n\t"
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
343 : "=m" (i)
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
344 : "m" (f));
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
345 return i;
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
346 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
347 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
348
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
349
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
350 #ifdef __ICL /* only Intel C compiler has fmath ??? */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
351
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
352 #include <mathf.h>
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
353
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
354 #define sin sinf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
355 #define cos cosf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
356 #define log logf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
357 #define floor floorf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
358 #define ceil ceilf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
359 #define sqrt sqrtf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
360
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
361 #else
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
362
13685
ebd158d142f7 Fix playback on big-endian systems.
diego
parents: 13485
diff changeset
363 #include <math.h>
ebd158d142f7 Fix playback on big-endian systems.
diego
parents: 13485
diff changeset
364
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
365 #ifdef HAVE_LRINTF
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
366 # define HAS_LRINTF
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
367 # define _ISOC9X_SOURCE 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
368 # define _ISOC99_SOURCE 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
369 # define __USE_ISOC9X 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
370 # define __USE_ISOC99 1
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
371 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
372
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
373 #ifdef HAVE_SINF
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
374 # define sin sinf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
375 #error
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
376 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
377 #ifdef HAVE_COSF
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
378 # define cos cosf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
379 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
380 #ifdef HAVE_LOGF
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
381 # define log logf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
382 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
383 #ifdef HAVE_EXPF
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
384 # define exp expf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
385 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
386 #ifdef HAVE_FLOORF
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
387 # define floor floorf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
388 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
389 #ifdef HAVE_CEILF
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
390 # define ceil ceilf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
391 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
392 #ifdef HAVE_SQRTF
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
393 # define sqrt sqrtf
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
394 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
395
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
396 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
397
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
398 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
399
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
400 #ifndef HAS_LRINTF
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
401 /* standard cast */
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
402 #define lrintf(f) ((int32_t)(f))
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
403 #endif
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
404
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
405 typedef real_t complex_t[2];
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
406 #define RE(A) A[0]
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
407 #define IM(A) A[1]
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
408
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
409
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
410 /* common functions */
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
411 uint8_t cpu_has_sse(void);
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
412 uint32_t random_int(void);
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
413 uint32_t ones32(uint32_t x);
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
414 uint32_t floor_log2(uint32_t x);
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
415 uint32_t wl_min_lzc(uint32_t x);
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
416 #ifdef FIXED_POINT
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
417 #define LOG2_MIN_INF REAL_CONST(-10000)
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
418 int32_t log2_int(uint32_t val);
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 16230
diff changeset
419 int32_t log2_fix(uint32_t val);
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
420 int32_t pow2_int(real_t val);
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
421 real_t pow2_fix(real_t val);
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
422 #endif
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
423 uint8_t get_sr_index(const uint32_t samplerate);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
424 uint8_t max_pred_sfb(const uint8_t sr_index);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
425 uint8_t max_tns_sfb(const uint8_t sr_index, const uint8_t object_type,
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
426 const uint8_t is_short);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
427 uint32_t get_sample_rate(const uint8_t sr_index);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
428 int8_t can_decode_ot(const uint8_t object_type);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
429
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
430 void *faad_malloc(size_t size);
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
431 void faad_free(void *b);
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
432
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
433 //#define PROFILE
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
434 #ifdef PROFILE
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
435 static int64_t faad_get_ts()
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
436 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
437 __asm
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
438 {
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
439 rdtsc
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
440 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
441 }
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
442 #endif
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
443
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
444 #ifndef M_PI
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
445 #define M_PI 3.14159265358979323846
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
446 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
447 #ifndef M_PI_2 /* PI/2 */
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
448 #define M_PI_2 1.57079632679489661923
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
449 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
450
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
451
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
452 #ifdef __cplusplus
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
453 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
454 #endif
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
455 #endif