comparison libfaad2/local_changes.diff @ 16249:d47cd711f617

Update for latest changes.
author diego
date Wed, 17 Aug 2005 22:50:29 +0000
parents cc0c5443548d
children d89bfef62e03
comparison
equal deleted inserted replaced
16248:2f2e55614b3e 16249:d47cd711f617
25 +#include "../config.h" 25 +#include "../config.h"
26 + 26 +
27 #define INLINE __inline 27 #define INLINE __inline
28 #if 0 //defined(_WIN32) && !defined(_WIN32_WCE) 28 #if 0 //defined(_WIN32) && !defined(_WIN32_WCE)
29 #define ALIGN __declspec(align(16)) 29 #define ALIGN __declspec(align(16))
30 @@ -67,6 +67,6 @@
31 /* Use if target platform has address generators with autoincrement */
32 //#define PREFER_POINTERS
33
34 -#ifdef _WIN32_WCE
35 +#if defined(_WIN32_WCE) || defined(__arm__)
36 #define FIXED_POINT
37 #endif
30 @@ -117,6 +123,9 @@ 38 @@ -117,6 +123,9 @@
31 # ifdef MAIN_DEC 39 # ifdef MAIN_DEC
32 # undef MAIN_DEC 40 # undef MAIN_DEC
33 # endif 41 # endif
34 +# ifdef SBR_DEC 42 +# ifdef SBR_DEC
75 +#define STDC_HEADERS 1 83 +#define STDC_HEADERS 1
76 + 84 +
77 #include <stdio.h> 85 #include <stdio.h>
78 #if HAVE_SYS_TYPES_H 86 #if HAVE_SYS_TYPES_H
79 # include <sys/types.h> 87 # include <sys/types.h>
80 @@ -311,7 +341,7 @@ 88 @@ -329,7 +329,7 @@
89 }
90
91
92 - #if defined(_WIN32) && !defined(__MINGW32__)
93 + #if defined(_WIN32) && !defined(__MINGW32__) && !defined(HAVE_LRINTF)
94 #define HAS_LRINTF
95 static INLINE int lrintf(float f)
96 {
97 @@ -341,7 +341,7 @@
81 } 98 }
82 return i; 99 return i;
83 } 100 }
84 - #elif (defined(__i386__) && defined(__GNUC__)) 101 - #elif (defined(__i386__) && defined(__GNUC__)) && !defined(__MINGW32__)
85 + #elif (defined(__i386__) && defined(__GNUC__)) && !defined(__MINGW32__) 102 + #elif (defined(__i386__) && defined(__GNUC__)) && !defined(__MINGW32__) && !defined(HAVE_LRINTF)
86 #define HAS_LRINTF 103 #define HAS_LRINTF
87 // from http://www.stereopsis.com/FPU.html 104 // from http://www.stereopsis.com/FPU.html
88 static INLINE int lrintf(float f) 105 static INLINE int lrintf(float f)
89 @@ -340,6 +370,8 @@ 106 @@ -340,6 +370,8 @@
90 107
102 - #include <math.h> 119 - #include <math.h>
103 - 120 -
104 #ifdef HAVE_SINF 121 #ifdef HAVE_SINF
105 # define sin sinf 122 # define sin sinf
106 #error 123 #error
124 --- main/libfaad2/output.c 2005/02/19 01:21:19 1.7
125 +++ main/libfaad2/output.c 2005/03/29 18:14:24 1.8
126 @@ -19,10 +19,9 @@
127 ** Any non-GPL usage of this software or parts of this software is strictly
128 ** forbidden.
129 **
130 -** Commercial non-GPL licensing of this software is possible.
131 -** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
132 -**
133 -** $Id: output.c,v 1.8 2005/03/29 18:14:24 rfelker Exp $
134 +** Initially modified for use with MPlayer by Rich Felker on 2005/03/29
135 +** $Id: output.c,v 1.11 2005/04/05 05:43:41 rfelker Exp $
136 +** detailed CVS changelog at http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
137 **/
138
139 #include "common.h"
140 @@ -462,7 +462,7 @@
141 }
142 }
143
144 -void* output_to_PCM(NeAACDecHandle hDecoder,
145 +void* output_to_PCM_sux(NeAACDecHandle hDecoder,
146 real_t **input, void *sample_buffer, uint8_t channels,
147 uint16_t frame_len, uint8_t format)
148 {
149 @@ -553,4 +553,51 @@
150 return sample_buffer;
151 }
152
153 +void* output_to_PCM(NeAACDecHandle hDecoder,
154 + real_t **input, void *sample_buffer, uint8_t channels,
155 + uint16_t frame_len, uint8_t format)
156 +{
157 + int ch;
158 + int i;
159 + int16_t *short_sample_buffer = (int16_t*)sample_buffer;
160 + real_t *ch0 = input[hDecoder->internal_channel[0]];
161 + real_t *ch1 = input[hDecoder->internal_channel[1]];
162 + real_t *ch2 = input[hDecoder->internal_channel[2]];
163 + real_t *ch3 = input[hDecoder->internal_channel[3]];
164 + real_t *ch4 = input[hDecoder->internal_channel[4]];
165 +
166 + if (format != FAAD_FMT_16BIT)
167 + return output_to_PCM_sux(hDecoder, input, sample_buffer, channels, frame_len, format);
168 +
169 + if (hDecoder->downMatrix) {
170 + for(i = 0; i < frame_len; i++)
171 + {
172 + int32_t tmp;
173 + tmp = (ch1[i] + ((ch0[i]+ch3[i])>>1) + ((ch0[i]+ch3[i])>>2) + (1<<(REAL_BITS))) >> (REAL_BITS+1);
174 + if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000;
175 + short_sample_buffer[0] = tmp;
176 + tmp = (ch2[i] + ((ch0[i]+ch4[i])>>1) + ((ch0[i]+ch4[i])>>2) + (1<<(REAL_BITS))) >> (REAL_BITS+1);
177 + if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000;
178 + short_sample_buffer[1] = tmp;
179 + short_sample_buffer += channels;
180 + }
181 + return sample_buffer;
182 + }
183 +
184 + /* Copy output to a standard PCM buffer */
185 + for(i = 0; i < frame_len; i++)
186 + {
187 + for (ch = 0; ch < channels; ch++)
188 + {
189 + int32_t tmp = input[ch][i];
190 + tmp += (1 << (REAL_BITS-1));
191 + tmp >>= REAL_BITS;
192 + if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000;
193 + *(short_sample_buffer++) = tmp;
194 + }
195 + }
196 +
197 + return sample_buffer;
198 +}
199 +
200 #endif