Configure needs AS to be set for the Makefiles.
[mplayer/glamo.git] / libfaad2 / local_changes.diff
blob56d584093e5116f587bbbd5f8ae82d0e03ffdcc1
1 --- libfaad2.orig/bits.h 2006-03-16 20:15:04.000000000 +0100
2 +++ libfaad2/bits.h 2006-03-16 20:37:21.000000000 +0100
3 @@ -22,7 +22,10 @@
4 ** Commercial non-GPL licensing of this software is possible.
5 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
6 **
7 +** Initially modified for use with MPlayer by Arpad Gereöffy on 2003/08/30
8 ** $Id: bits.h,v 1.40 2004/09/04 14:56:27 menno Exp $
9 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
10 +** local_changes.diff contains the exact changes to this file.
11 **/
13 #ifndef __BITS_H__
14 @@ -58,7 +61,7 @@
16 #if defined (_WIN32) && !defined(_WIN32_WCE) && !defined(__MINGW32__)
17 #define BSWAP(a) __asm mov eax,a __asm bswap eax __asm mov a, eax
18 -#elif defined(LINUX) || defined(DJGPP) || defined(__MINGW32__)
19 +#elif defined(LINUX) || defined(DJGPP)
20 #define BSWAP(a) __asm__ ( "bswapl %0\n" : "=r" (a) : "0" (a) )
21 #else
22 #define BSWAP(a) \
23 --- libfaad2.orig/common.h 2006-03-16 20:15:04.000000000 +0100
24 +++ libfaad2/common.h 2006-03-16 20:56:56.000000000 +0100
25 @@ -22,7 +22,10 @@
26 ** Commercial non-GPL licensing of this software is possible.
27 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
29 +** Initially modified for use with MPlayer by Arpad Gereöffy on 2003/08/30
30 ** $Id: common.h,v 1.65 2004/09/08 09:43:11 gcp Exp $
31 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
32 +** local_changes.diff contains the exact changes to this file.
33 **/
35 #ifndef __COMMON_H__
36 @@ -32,8 +35,13 @@
38 #ifdef HAVE_CONFIG_H
39 # include "../config.h"
40 #endif
42 +/* Allow build on Cygwin*/
43 +#if defined(__CYGWIN__)
44 +#define __STRICT_ANSI__
45 +#endif
47 #define INLINE __inline
48 #if 0 //defined(_WIN32) && !defined(_WIN32_WCE)
49 #define ALIGN __declspec(align(16))
50 @@ -61,7 +67,7 @@
51 /* Use if target platform has address generators with autoincrement */
52 //#define PREFER_POINTERS
54 -#ifdef _WIN32_WCE
55 +#if defined(_WIN32_WCE) || defined(__arm__) || defined(__avr32__)
56 #define FIXED_POINT
57 #endif
59 @@ -117,6 +123,9 @@
60 # ifdef MAIN_DEC
61 # undef MAIN_DEC
62 # endif
63 +# ifdef SBR_DEC
64 +# undef SBR_DEC
65 +# endif
66 #endif // FIXED_POINT
68 #ifdef DRM
69 @@ -151,6 +160,7 @@
71 #include <stdlib.h>
73 +#if 0
74 typedef unsigned __int64 uint64_t;
75 typedef unsigned __int32 uint32_t;
76 typedef unsigned __int16 uint16_t;
77 @@ -159,5 +169,9 @@
78 typedef __int32 int32_t;
79 typedef __int16 int16_t;
80 typedef __int8 int8_t;
81 +#else
82 +#include <inttypes.h>
83 +#endif
85 typedef float float32_t;
87 @@ -289,7 +319,7 @@
91 - #if defined(_WIN32) && !defined(__MINGW32__)
92 + #if defined(_WIN32) && !defined(__MINGW32__) && !HAVE_LRINTF
93 #define HAS_LRINTF
94 static INLINE int lrintf(float f)
96 @@ -301,7 +331,7 @@
98 return i;
100 - #elif (defined(__i386__) && defined(__GNUC__))
101 + #elif (defined(__i386__) && defined(__GNUC__)) && !HAVE_LRINTF
102 #define HAS_LRINTF
103 // from http://www.stereopsis.com/FPU.html
104 static INLINE int lrintf(float f)
105 @@ -330,7 +360,7 @@
107 #else
109 +#include <math.h>
111 -#ifdef HAVE_LRINTF
112 -#if HAVE_LRINTF
113 # define HAS_LRINTF
114 # define _ISOC9X_SOURCE 1
115 @@ -338,8 +370,6 @@
116 # define __USE_ISOC99 1
117 #endif
119 - #include <math.h>
121 #ifdef HAVE_SINF
122 # define sin sinf
123 #error
124 --- libfaad2.orig/output.c 2006-03-16 20:15:04.000000000 +0100
125 +++ libfaad2/output.c 2006-04-18 19:50:26.000000000 +0200
126 @@ -19,10 +19,9 @@
127 ** Any non-GPL usage of this software or parts of this software is strictly
128 ** forbidden.
130 -** Commercial non-GPL licensing of this software is possible.
131 -** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
133 -** $Id: output.c,v 1.42 2004/09/04 14:56:28 menno 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 changelog at http://svn.mplayerhq.hu/mplayer/trunk/
139 #include "common.h"
140 @@ -463,7 +462,7 @@
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)
149 @@ -554,4 +553,51 @@
150 return sample_buffer;
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)
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]];
166 + if (format != FAAD_FMT_16BIT)
167 + return output_to_PCM_sux(hDecoder, input, sample_buffer, channels, frame_len, format);
169 + if (hDecoder->downMatrix) {
170 + for(i = 0; i < frame_len; i++)
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;
181 + return sample_buffer;
184 + /* Copy output to a standard PCM buffer */
185 + for(i = 0; i < frame_len; i++)
187 + for (ch = 0; ch < channels; ch++)
189 + int32_t tmp = input[hDecoder->internal_channel[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;
197 + return sample_buffer;
200 #endif
201 --- libfaad2.orig/ps_dec.c 2006-03-16 20:15:04.000000000 +0100
202 +++ libfaad2/ps_dec.c 2006-04-18 20:29:38.000000000 +0200
203 @@ -22,7 +22,10 @@
204 ** Commercial non-GPL licensing of this software is possible.
205 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
207 +** Initially modified for use with MPlayer on 2005/12/05
208 ** $Id: ps_dec.c,v 1.10 2004/09/04 14:56:28 menno Exp $
209 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
210 +** local_changes.diff contains the exact changes to this file.
213 #include "common.h"
214 @@ -159,7 +162,7 @@
216 /* static function declarations */
217 static void ps_data_decode(ps_info *ps);
218 -static hyb_info *hybrid_init();
219 +static hyb_info *hybrid_init(void);
220 static void channel_filter2(hyb_info *hyb, uint8_t frame_len, const real_t *filter,
221 qmf_t *buffer, qmf_t **X_hybrid);
222 static void INLINE DCT3_4_unscaled(real_t *y, real_t *x);
223 @@ -189,7 +192,7 @@
224 /* */
227 -static hyb_info *hybrid_init()
228 +static hyb_info *hybrid_init(void)
230 uint8_t i;
232 @@ -1935,8 +1938,8 @@
233 /* main Parametric Stereo decoding function */
234 uint8_t ps_decode(ps_info *ps, qmf_t X_left[38][64], qmf_t X_right[38][64])
236 - qmf_t X_hybrid_left[32][32] = {{0}};
237 - qmf_t X_hybrid_right[32][32] = {{0}};
238 + qmf_t X_hybrid_left[32][32] = {{{0}}};
239 + qmf_t X_hybrid_right[32][32] = {{{0}}};
241 /* delta decoding of the bitstream data */
242 ps_data_decode(ps);
243 --- libfaad2.orig/sbr_dec.c 2006-03-16 20:15:04.000000000 +0100
244 +++ libfaad2/sbr_dec.c 2006-04-18 20:33:57.000000000 +0200
245 @@ -22,7 +22,10 @@
246 ** Commercial non-GPL licensing of this software is possible.
247 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
249 +** Initially modified for use with MPlayer on 2005/12/05
250 ** $Id: sbr_dec.c,v 1.39 2004/09/04 14:56:28 menno Exp $
251 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
252 +** local_changes.diff contains the exact changes to this file.
256 @@ -526,8 +529,8 @@
257 uint8_t l, k;
258 uint8_t dont_process = 0;
259 uint8_t ret = 0;
260 - ALIGN qmf_t X_left[38][64] = {{0}};
261 - ALIGN qmf_t X_right[38][64] = {{0}}; /* must set this to 0 */
262 + ALIGN qmf_t X_left[38][64] = {{{0}}};
263 + ALIGN qmf_t X_right[38][64] = {{{0}}}; /* must set this to 0 */
265 if (sbr == NULL)
266 return 20;
267 --- libfaad2.orig/specrec.c 2006-03-16 20:15:04.000000000 +0100
268 +++ libfaad2/specrec.c 2006-04-18 20:38:09.000000000 +0200
269 @@ -19,10 +19,10 @@
270 ** Any non-GPL usage of this software or parts of this software is strictly
271 ** forbidden.
273 -** Commercial non-GPL licensing of this software is possible.
274 -** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
276 +** Initially modified for use with MPlayer on 2006/04/18
277 ** $Id: specrec.c,v 1.56 2004/09/08 09:43:11 gcp Exp $
278 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
279 +** local_changes.diff contains the exact changes to this file.
283 @@ -673,29 +673,19 @@
284 /* MAIN object type prediction */
285 if (hDecoder->object_type == MAIN)
287 - /* allocate the state only when needed */
288 - if (hDecoder->pred_stat[channel] == NULL)
290 - hDecoder->pred_stat[channel] = (pred_state*)faad_malloc(hDecoder->frameLength * sizeof(pred_state));
291 + hDecoder->pred_stat[channel] = (pred_state*)realloc(hDecoder->pred_stat[channel], hDecoder->frameLength * sizeof(pred_state));
292 reset_all_predictors(hDecoder->pred_stat[channel], hDecoder->frameLength);
295 #endif
297 #ifdef LTP_DEC
298 if (is_ltp_ot(hDecoder->object_type))
300 - /* allocate the state only when needed */
301 - if (hDecoder->lt_pred_stat[channel] == NULL)
303 - hDecoder->lt_pred_stat[channel] = (int16_t*)faad_malloc(hDecoder->frameLength*4 * sizeof(int16_t));
304 + hDecoder->lt_pred_stat[channel] = (int16_t*)realloc(hDecoder->lt_pred_stat[channel], hDecoder->frameLength*4 * sizeof(int16_t));
305 memset(hDecoder->lt_pred_stat[channel], 0, hDecoder->frameLength*4 * sizeof(int16_t));
308 #endif
310 - if (hDecoder->time_out[channel] == NULL)
312 mul = 1;
313 #ifdef SBR_DEC
314 hDecoder->sbr_alloced[hDecoder->fr_ch_ele] = 0;
315 @@ -706,41 +696,28 @@
316 hDecoder->sbr_alloced[hDecoder->fr_ch_ele] = 1;
318 #endif
319 - hDecoder->time_out[channel] = (real_t*)faad_malloc(mul*hDecoder->frameLength*sizeof(real_t));
320 + hDecoder->time_out[channel] = (real_t*)realloc(hDecoder->time_out[channel], mul*hDecoder->frameLength*sizeof(real_t));
321 memset(hDecoder->time_out[channel], 0, mul*hDecoder->frameLength*sizeof(real_t));
323 #if (defined(PS_DEC) || defined(DRM_PS))
324 if (output_channels == 2)
326 - if (hDecoder->time_out[channel+1] == NULL)
328 - hDecoder->time_out[channel+1] = (real_t*)faad_malloc(mul*hDecoder->frameLength*sizeof(real_t));
329 + hDecoder->time_out[channel+1] = (real_t*)realloc(hDecoder->time_out[channel+1], mul*hDecoder->frameLength*sizeof(real_t));
330 memset(hDecoder->time_out[channel+1], 0, mul*hDecoder->frameLength*sizeof(real_t));
333 #endif
335 - if (hDecoder->fb_intermed[channel] == NULL)
337 - hDecoder->fb_intermed[channel] = (real_t*)faad_malloc(hDecoder->frameLength*sizeof(real_t));
338 + hDecoder->fb_intermed[channel] = (real_t*)realloc(hDecoder->fb_intermed[channel], hDecoder->frameLength*sizeof(real_t));
339 memset(hDecoder->fb_intermed[channel], 0, hDecoder->frameLength*sizeof(real_t));
342 #ifdef SSR_DEC
343 if (hDecoder->object_type == SSR)
345 - if (hDecoder->ssr_overlap[channel] == NULL)
347 - hDecoder->ssr_overlap[channel] = (real_t*)faad_malloc(2*hDecoder->frameLength*sizeof(real_t));
348 - memset(hDecoder->ssr_overlap[channel], 0, 2*hDecoder->frameLength*sizeof(real_t));
350 - if (hDecoder->prev_fmd[channel] == NULL)
352 uint16_t k;
353 - hDecoder->prev_fmd[channel] = (real_t*)faad_malloc(2*hDecoder->frameLength*sizeof(real_t));
354 + hDecoder->ssr_overlap[channel] = (real_t*)realloc(hDecoder->ssr_overlap[channel], 2*hDecoder->frameLength*sizeof(real_t));
355 + memset(hDecoder->ssr_overlap[channel], 0, 2*hDecoder->frameLength*sizeof(real_t));
356 + hDecoder->prev_fmd[channel] = (real_t*)realloc(hDecoder->prev_fmd[channel], 2*hDecoder->frameLength*sizeof(real_t));
357 for (k = 0; k < 2*hDecoder->frameLength; k++)
358 hDecoder->prev_fmd[channel][k] = REAL_CONST(-1);
361 #endif
363 @@ -865,22 +842,14 @@
365 /* always allocate 2 channels, PS can always "suddenly" turn up */
366 #if (defined(PS_DEC) || defined(DRM_PS))
367 - output_channels = 2;
368 + output_channels = hDecoder->ps_used[hDecoder->fr_ch_ele] ? 2 : 1;
369 #else
370 output_channels = 1;
371 #endif
373 - if (hDecoder->element_output_channels[hDecoder->fr_ch_ele] == 0)
375 - /* element_output_channels not set yet */
376 + if (hDecoder->element_alloced[hDecoder->fr_ch_ele] == 0 ||
377 + hDecoder->element_output_channels[hDecoder->fr_ch_ele] < output_channels) {
378 hDecoder->element_output_channels[hDecoder->fr_ch_ele] = output_channels;
379 - } else if (hDecoder->element_output_channels[hDecoder->fr_ch_ele] != output_channels) {
380 - /* element inconsistency */
381 - return 21;
384 - if (hDecoder->element_alloced[hDecoder->fr_ch_ele] == 0)
386 retval = allocate_single_channel(hDecoder, sce->channel, output_channels);
387 if (retval > 0)
388 return retval;
389 @@ -1026,11 +994,10 @@
391 return 23;
393 -#endif
395 /* copy L to R when no PS is used */
396 #if (defined(PS_DEC) || defined(DRM_PS))
397 - if ((hDecoder->ps_used[hDecoder->fr_ch_ele] == 0))
398 + if ((hDecoder->ps_used[hDecoder->fr_ch_ele] == 0) && (output_channels == 2))
400 uint8_t ele = hDecoder->fr_ch_ele;
401 uint8_t ch = sce->channel;
402 @@ -1040,6 +1007,7 @@
403 memcpy(hDecoder->time_out[ch+1], hDecoder->time_out[ch], frame_size);
405 #endif
406 +#endif
408 return 0;