Mercurial > mplayer.hg
annotate libfaad2/local_changes.diff @ 29400:0446f018f9fc
Make diff apply cleanly to our tree again.
The GPL modification notices were dropped, same as for the other diffs we store.
author | diego |
---|---|
date | Sun, 26 Jul 2009 19:38:22 +0000 |
parents | e83eef58b30a |
children | f01023c524c3 |
rev | line source |
---|---|
18141 | 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 | |
14858 | 3 @@ -58,7 +61,7 @@ |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
4 |
14712 | 5 #if defined (_WIN32) && !defined(_WIN32_WCE) && !defined(__MINGW32__) |
6 #define BSWAP(a) __asm mov eax,a __asm bswap eax __asm mov a, eax | |
7 -#elif defined(LINUX) || defined(DJGPP) || defined(__MINGW32__) | |
8 +#elif defined(LINUX) || defined(DJGPP) | |
9 #define BSWAP(a) __asm__ ( "bswapl %0\n" : "=r" (a) : "0" (a) ) | |
10 #else | |
11 #define BSWAP(a) \ | |
18141 | 12 --- libfaad2.orig/common.h 2006-03-16 20:15:04.000000000 +0100 |
13 +++ libfaad2/common.h 2006-03-16 20:56:56.000000000 +0100 | |
29400 | 14 @@ -32,8 +37,13 @@ |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
15 |
24023 | 16 #ifdef HAVE_CONFIG_H |
17 # include "../config.h" | |
14712 | 18 #endif |
24023 | 19 + |
14712 | 20 +/* Allow build on Cygwin*/ |
21 +#if defined(__CYGWIN__) | |
22 +#define __STRICT_ANSI__ | |
24023 | 23 +#endif |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
24 |
14712 | 25 #define INLINE __inline |
26 #if 0 //defined(_WIN32) && !defined(_WIN32_WCE) | |
27 #define ALIGN __declspec(align(16)) | |
29400 | 28 @@ -61,7 +69,7 @@ |
16249 | 29 /* Use if target platform has address generators with autoincrement */ |
30 //#define PREFER_POINTERS | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
31 |
16249 | 32 -#ifdef _WIN32_WCE |
28578 | 33 +#if defined(_WIN32_WCE) || defined(__arm__) || defined(__avr32__) |
16249 | 34 #define FIXED_POINT |
35 #endif | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
36 |
29400 | 37 @@ -117,6 +125,9 @@ |
14712 | 38 # ifdef MAIN_DEC |
39 # undef MAIN_DEC | |
40 # endif | |
41 +# ifdef SBR_DEC | |
42 +# undef SBR_DEC | |
43 +# endif | |
44 #endif // FIXED_POINT | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
45 |
14712 | 46 #ifdef DRM |
29400 | 47 @@ -151,6 +162,7 @@ |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
48 |
14712 | 49 #include <stdlib.h> |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
50 |
14712 | 51 +#if 0 |
52 typedef unsigned __int64 uint64_t; | |
53 typedef unsigned __int32 uint32_t; | |
54 typedef unsigned __int16 uint16_t; | |
29400 | 55 @@ -159,5 +171,9 @@ |
14712 | 56 typedef __int32 int32_t; |
57 typedef __int16 int16_t; | |
58 typedef __int8 int8_t; | |
59 +#else | |
60 +#include <inttypes.h> | |
61 +#endif | |
62 + | |
63 typedef float float32_t; | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
64 |
29400 | 65 @@ -289,7 +305,7 @@ |
16249 | 66 } |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
67 |
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
68 |
16249 | 69 - #if defined(_WIN32) && !defined(__MINGW32__) |
28336
1a5cd79b2e6e
HAVE_LRINTF is now always defined to either 0 or 1, not defined/undefined.
diego
parents:
24023
diff
changeset
|
70 + #if defined(_WIN32) && !defined(__MINGW32__) && !HAVE_LRINTF |
16249 | 71 #define HAS_LRINTF |
72 static INLINE int lrintf(float f) | |
73 { | |
29400 | 74 @@ -301,7 +317,7 @@ |
14712 | 75 } |
76 return i; | |
77 } | |
18141 | 78 - #elif (defined(__i386__) && defined(__GNUC__)) |
28336
1a5cd79b2e6e
HAVE_LRINTF is now always defined to either 0 or 1, not defined/undefined.
diego
parents:
24023
diff
changeset
|
79 + #elif (defined(__i386__) && defined(__GNUC__)) && !HAVE_LRINTF |
14712 | 80 #define HAS_LRINTF |
81 // from http://www.stereopsis.com/FPU.html | |
82 static INLINE int lrintf(float f) | |
29400 | 83 @@ -330,6 +346,8 @@ |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
84 |
14712 | 85 #else |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
86 |
14712 | 87 +#include <math.h> |
88 + | |
28336
1a5cd79b2e6e
HAVE_LRINTF is now always defined to either 0 or 1, not defined/undefined.
diego
parents:
24023
diff
changeset
|
89 -#ifdef HAVE_LRINTF |
29400 | 90 +#if HAVE_LRINTF |
14712 | 91 # define HAS_LRINTF |
92 # define _ISOC9X_SOURCE 1 | |
29400 | 93 @@ -338,8 +356,6 @@ |
14712 | 94 # define __USE_ISOC99 1 |
95 #endif | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
96 |
14712 | 97 - #include <math.h> |
98 - | |
99 #ifdef HAVE_SINF | |
100 # define sin sinf | |
101 #error | |
18141 | 102 --- libfaad2.orig/output.c 2006-03-16 20:15:04.000000000 +0100 |
103 +++ libfaad2/output.c 2006-04-18 19:50:26.000000000 +0200 | |
104 @@ -463,7 +462,7 @@ | |
16249 | 105 } |
106 } | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
107 |
16249 | 108 -void* output_to_PCM(NeAACDecHandle hDecoder, |
109 +void* output_to_PCM_sux(NeAACDecHandle hDecoder, | |
110 real_t **input, void *sample_buffer, uint8_t channels, | |
111 uint16_t frame_len, uint8_t format) | |
112 { | |
18141 | 113 @@ -554,4 +553,51 @@ |
16249 | 114 return sample_buffer; |
115 } | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
116 |
16249 | 117 +void* output_to_PCM(NeAACDecHandle hDecoder, |
118 + real_t **input, void *sample_buffer, uint8_t channels, | |
119 + uint16_t frame_len, uint8_t format) | |
120 +{ | |
121 + int ch; | |
122 + int i; | |
123 + int16_t *short_sample_buffer = (int16_t*)sample_buffer; | |
124 + real_t *ch0 = input[hDecoder->internal_channel[0]]; | |
125 + real_t *ch1 = input[hDecoder->internal_channel[1]]; | |
126 + real_t *ch2 = input[hDecoder->internal_channel[2]]; | |
127 + real_t *ch3 = input[hDecoder->internal_channel[3]]; | |
128 + real_t *ch4 = input[hDecoder->internal_channel[4]]; | |
129 + | |
130 + if (format != FAAD_FMT_16BIT) | |
131 + return output_to_PCM_sux(hDecoder, input, sample_buffer, channels, frame_len, format); | |
132 + | |
133 + if (hDecoder->downMatrix) { | |
134 + for(i = 0; i < frame_len; i++) | |
135 + { | |
136 + int32_t tmp; | |
137 + tmp = (ch1[i] + ((ch0[i]+ch3[i])>>1) + ((ch0[i]+ch3[i])>>2) + (1<<(REAL_BITS))) >> (REAL_BITS+1); | |
138 + if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000; | |
139 + short_sample_buffer[0] = tmp; | |
140 + tmp = (ch2[i] + ((ch0[i]+ch4[i])>>1) + ((ch0[i]+ch4[i])>>2) + (1<<(REAL_BITS))) >> (REAL_BITS+1); | |
141 + if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000; | |
142 + short_sample_buffer[1] = tmp; | |
143 + short_sample_buffer += channels; | |
144 + } | |
145 + return sample_buffer; | |
146 + } | |
147 + | |
148 + /* Copy output to a standard PCM buffer */ | |
149 + for(i = 0; i < frame_len; i++) | |
150 + { | |
151 + for (ch = 0; ch < channels; ch++) | |
152 + { | |
18141 | 153 + int32_t tmp = input[hDecoder->internal_channel[ch]][i]; |
16249 | 154 + tmp += (1 << (REAL_BITS-1)); |
155 + tmp >>= REAL_BITS; | |
156 + if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000; | |
157 + *(short_sample_buffer++) = tmp; | |
158 + } | |
159 + } | |
160 + | |
161 + return sample_buffer; | |
162 +} | |
163 + | |
164 #endif | |
18141 | 165 --- libfaad2.orig/ps_dec.c 2006-03-16 20:15:04.000000000 +0100 |
166 +++ libfaad2/ps_dec.c 2006-04-18 20:29:38.000000000 +0200 | |
167 @@ -159,7 +162,7 @@ | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
168 |
18141 | 169 /* static function declarations */ |
170 static void ps_data_decode(ps_info *ps); | |
171 -static hyb_info *hybrid_init(); | |
172 +static hyb_info *hybrid_init(void); | |
173 static void channel_filter2(hyb_info *hyb, uint8_t frame_len, const real_t *filter, | |
174 qmf_t *buffer, qmf_t **X_hybrid); | |
175 static void INLINE DCT3_4_unscaled(real_t *y, real_t *x); | |
176 @@ -189,7 +192,7 @@ | |
177 /* */ | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
178 |
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
179 |
18141 | 180 -static hyb_info *hybrid_init() |
181 +static hyb_info *hybrid_init(void) | |
182 { | |
183 uint8_t i; | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
184 |
18141 | 185 @@ -1935,8 +1938,8 @@ |
17136 | 186 /* main Parametric Stereo decoding function */ |
187 uint8_t ps_decode(ps_info *ps, qmf_t X_left[38][64], qmf_t X_right[38][64]) | |
188 { | |
189 - qmf_t X_hybrid_left[32][32] = {{0}}; | |
190 - qmf_t X_hybrid_right[32][32] = {{0}}; | |
191 + qmf_t X_hybrid_left[32][32] = {{{0}}}; | |
192 + qmf_t X_hybrid_right[32][32] = {{{0}}}; | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
193 |
17136 | 194 /* delta decoding of the bitstream data */ |
195 ps_data_decode(ps); | |
18141 | 196 --- libfaad2.orig/sbr_dec.c 2006-03-16 20:15:04.000000000 +0100 |
197 +++ libfaad2/sbr_dec.c 2006-04-18 20:33:57.000000000 +0200 | |
198 @@ -526,8 +529,8 @@ | |
17137 | 199 uint8_t l, k; |
200 uint8_t dont_process = 0; | |
201 uint8_t ret = 0; | |
202 - ALIGN qmf_t X_left[38][64] = {{0}}; | |
203 - ALIGN qmf_t X_right[38][64] = {{0}}; /* must set this to 0 */ | |
204 + ALIGN qmf_t X_left[38][64] = {{{0}}}; | |
205 + ALIGN qmf_t X_right[38][64] = {{{0}}}; /* must set this to 0 */ | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
206 |
17137 | 207 if (sbr == NULL) |
208 return 20; | |
18141 | 209 --- libfaad2.orig/specrec.c 2006-03-16 20:15:04.000000000 +0100 |
210 +++ libfaad2/specrec.c 2006-04-18 20:38:09.000000000 +0200 | |
211 @@ -673,29 +673,19 @@ | |
212 /* MAIN object type prediction */ | |
213 if (hDecoder->object_type == MAIN) | |
214 { | |
215 - /* allocate the state only when needed */ | |
216 - if (hDecoder->pred_stat[channel] == NULL) | |
217 - { | |
218 - hDecoder->pred_stat[channel] = (pred_state*)faad_malloc(hDecoder->frameLength * sizeof(pred_state)); | |
219 + hDecoder->pred_stat[channel] = (pred_state*)realloc(hDecoder->pred_stat[channel], hDecoder->frameLength * sizeof(pred_state)); | |
220 reset_all_predictors(hDecoder->pred_stat[channel], hDecoder->frameLength); | |
221 - } | |
222 } | |
223 #endif | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
224 |
18141 | 225 #ifdef LTP_DEC |
226 if (is_ltp_ot(hDecoder->object_type)) | |
227 { | |
228 - /* allocate the state only when needed */ | |
229 - if (hDecoder->lt_pred_stat[channel] == NULL) | |
230 - { | |
231 - hDecoder->lt_pred_stat[channel] = (int16_t*)faad_malloc(hDecoder->frameLength*4 * sizeof(int16_t)); | |
232 + hDecoder->lt_pred_stat[channel] = (int16_t*)realloc(hDecoder->lt_pred_stat[channel], hDecoder->frameLength*4 * sizeof(int16_t)); | |
233 memset(hDecoder->lt_pred_stat[channel], 0, hDecoder->frameLength*4 * sizeof(int16_t)); | |
234 - } | |
235 } | |
236 #endif | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
237 |
18141 | 238 - if (hDecoder->time_out[channel] == NULL) |
239 - { | |
240 mul = 1; | |
241 #ifdef SBR_DEC | |
242 hDecoder->sbr_alloced[hDecoder->fr_ch_ele] = 0; | |
243 @@ -706,41 +696,28 @@ | |
244 hDecoder->sbr_alloced[hDecoder->fr_ch_ele] = 1; | |
245 } | |
246 #endif | |
247 - hDecoder->time_out[channel] = (real_t*)faad_malloc(mul*hDecoder->frameLength*sizeof(real_t)); | |
248 + hDecoder->time_out[channel] = (real_t*)realloc(hDecoder->time_out[channel], mul*hDecoder->frameLength*sizeof(real_t)); | |
249 memset(hDecoder->time_out[channel], 0, mul*hDecoder->frameLength*sizeof(real_t)); | |
250 - } | |
251 #if (defined(PS_DEC) || defined(DRM_PS)) | |
252 if (output_channels == 2) | |
253 { | |
254 - if (hDecoder->time_out[channel+1] == NULL) | |
255 - { | |
256 - hDecoder->time_out[channel+1] = (real_t*)faad_malloc(mul*hDecoder->frameLength*sizeof(real_t)); | |
257 + hDecoder->time_out[channel+1] = (real_t*)realloc(hDecoder->time_out[channel+1], mul*hDecoder->frameLength*sizeof(real_t)); | |
258 memset(hDecoder->time_out[channel+1], 0, mul*hDecoder->frameLength*sizeof(real_t)); | |
259 - } | |
260 } | |
261 #endif | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
262 |
18141 | 263 - if (hDecoder->fb_intermed[channel] == NULL) |
264 - { | |
265 - hDecoder->fb_intermed[channel] = (real_t*)faad_malloc(hDecoder->frameLength*sizeof(real_t)); | |
266 + hDecoder->fb_intermed[channel] = (real_t*)realloc(hDecoder->fb_intermed[channel], hDecoder->frameLength*sizeof(real_t)); | |
267 memset(hDecoder->fb_intermed[channel], 0, hDecoder->frameLength*sizeof(real_t)); | |
268 - } | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
269 |
18141 | 270 #ifdef SSR_DEC |
271 if (hDecoder->object_type == SSR) | |
272 { | |
273 - if (hDecoder->ssr_overlap[channel] == NULL) | |
274 - { | |
275 - hDecoder->ssr_overlap[channel] = (real_t*)faad_malloc(2*hDecoder->frameLength*sizeof(real_t)); | |
276 - memset(hDecoder->ssr_overlap[channel], 0, 2*hDecoder->frameLength*sizeof(real_t)); | |
277 - } | |
278 - if (hDecoder->prev_fmd[channel] == NULL) | |
279 - { | |
280 uint16_t k; | |
281 - hDecoder->prev_fmd[channel] = (real_t*)faad_malloc(2*hDecoder->frameLength*sizeof(real_t)); | |
282 + hDecoder->ssr_overlap[channel] = (real_t*)realloc(hDecoder->ssr_overlap[channel], 2*hDecoder->frameLength*sizeof(real_t)); | |
283 + memset(hDecoder->ssr_overlap[channel], 0, 2*hDecoder->frameLength*sizeof(real_t)); | |
284 + hDecoder->prev_fmd[channel] = (real_t*)realloc(hDecoder->prev_fmd[channel], 2*hDecoder->frameLength*sizeof(real_t)); | |
285 for (k = 0; k < 2*hDecoder->frameLength; k++) | |
286 hDecoder->prev_fmd[channel][k] = REAL_CONST(-1); | |
287 - } | |
288 } | |
289 #endif | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
290 |
28722
5f24919c13ef
Fix a possible NULL-pointer crash introduced by local changes to libfaad2
reimar
parents:
28578
diff
changeset
|
291 @@ -865,22 +842,14 @@ |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
292 |
18141 | 293 /* always allocate 2 channels, PS can always "suddenly" turn up */ |
294 #if (defined(PS_DEC) || defined(DRM_PS)) | |
295 - output_channels = 2; | |
296 + output_channels = hDecoder->ps_used[hDecoder->fr_ch_ele] ? 2 : 1; | |
297 #else | |
298 output_channels = 1; | |
299 #endif | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
300 |
18141 | 301 - if (hDecoder->element_output_channels[hDecoder->fr_ch_ele] == 0) |
302 - { | |
303 - /* element_output_channels not set yet */ | |
28722
5f24919c13ef
Fix a possible NULL-pointer crash introduced by local changes to libfaad2
reimar
parents:
28578
diff
changeset
|
304 + if (hDecoder->element_alloced[hDecoder->fr_ch_ele] == 0 || |
5f24919c13ef
Fix a possible NULL-pointer crash introduced by local changes to libfaad2
reimar
parents:
28578
diff
changeset
|
305 + hDecoder->element_output_channels[hDecoder->fr_ch_ele] < output_channels) { |
18141 | 306 hDecoder->element_output_channels[hDecoder->fr_ch_ele] = output_channels; |
307 - } else if (hDecoder->element_output_channels[hDecoder->fr_ch_ele] != output_channels) { | |
308 - /* element inconsistency */ | |
309 - return 21; | |
310 - } | |
311 - | |
312 - if (hDecoder->element_alloced[hDecoder->fr_ch_ele] == 0) | |
313 - { | |
314 retval = allocate_single_channel(hDecoder, sce->channel, output_channels); | |
315 if (retval > 0) | |
316 return retval; | |
29400 | 317 @@ -1026,11 +995,10 @@ |
18141 | 318 { |
319 return 23; | |
320 } | |
321 -#endif | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
322 |
18141 | 323 /* copy L to R when no PS is used */ |
324 #if (defined(PS_DEC) || defined(DRM_PS)) | |
325 - if ((hDecoder->ps_used[hDecoder->fr_ch_ele] == 0)) | |
326 + if ((hDecoder->ps_used[hDecoder->fr_ch_ele] == 0) && (output_channels == 2)) | |
327 { | |
328 uint8_t ele = hDecoder->fr_ch_ele; | |
329 uint8_t ch = sce->channel; | |
29400 | 330 @@ -1040,6 +1008,7 @@ |
18141 | 331 memcpy(hDecoder->time_out[ch+1], hDecoder->time_out[ch], frame_size); |
332 } | |
333 #endif | |
334 +#endif | |
29264
e83eef58b30a
Remove all kind of trailing whitespaces from all MPlayer's files.
bircoph
parents:
28722
diff
changeset
|
335 |
18141 | 336 return 0; |
337 } |