annotate libfaad2/local_changes.diff @ 30953:d3f31670562d

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