annotate libfaad2/local_changes.diff @ 28511:db19e31a2c7c

Add a calc_src_dst_rects that calculates from window size, panscan etc. which part of the video source must be scaled onto which part of the window. Direct3D and (future) VDPAU need this, for XvMC it makes it easier to add cropping support and Xv is changed to keep the diff to XvMC small.
author reimar
date Thu, 12 Feb 2009 17:40:53 +0000
parents 1a5cd79b2e6e
children 8c9ed8e6fc99
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
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
3 @@ -22,7 +22,10 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
4 ** Commercial non-GPL licensing of this software is possible.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
5 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
6 **
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
7 +** Initially modified for use with MPlayer by Arpad Gereöffy on 2003/08/30
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
8 ** $Id: bits.h,v 1.40 2004/09/04 14:56:27 menno Exp $
18783
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 18141
diff changeset
9 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
10 +** local_changes.diff contains the exact changes to this file.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
11 **/
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
12
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
13 #ifndef __BITS_H__
14858
cc0c5443548d cosmetics: Make diff -R apply without offsets.
diego
parents: 14712
diff changeset
14 @@ -58,7 +61,7 @@
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
15
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
16 #if defined (_WIN32) && !defined(_WIN32_WCE) && !defined(__MINGW32__)
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
17 #define BSWAP(a) __asm mov eax,a __asm bswap eax __asm mov a, eax
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
18 -#elif defined(LINUX) || defined(DJGPP) || defined(__MINGW32__)
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
19 +#elif defined(LINUX) || defined(DJGPP)
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
20 #define BSWAP(a) __asm__ ( "bswapl %0\n" : "=r" (a) : "0" (a) )
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
21 #else
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
22 #define BSWAP(a) \
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
23 --- 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
24 +++ libfaad2/common.h 2006-03-16 20:56:56.000000000 +0100
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
25 @@ -22,7 +22,10 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
26 ** Commercial non-GPL licensing of this software is possible.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
27 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
28 **
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
29 +** Initially modified for use with MPlayer by Arpad Gereöffy on 2003/08/30
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
30 ** $Id: common.h,v 1.65 2004/09/08 09:43:11 gcp Exp $
18783
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 18141
diff changeset
31 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
32 +** local_changes.diff contains the exact changes to this file.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
33 **/
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
34
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
35 #ifndef __COMMON_H__
24023
1ac62a61ea56 Move some more compiler flags to configure.
diego
parents: 24011
diff changeset
36 @@ -32,8 +35,13 @@
1ac62a61ea56 Move some more compiler flags to configure.
diego
parents: 24011
diff changeset
37
1ac62a61ea56 Move some more compiler flags to configure.
diego
parents: 24011
diff changeset
38 #ifdef HAVE_CONFIG_H
1ac62a61ea56 Move some more compiler flags to configure.
diego
parents: 24011
diff changeset
39 # include "../config.h"
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
40 #endif
24023
1ac62a61ea56 Move some more compiler flags to configure.
diego
parents: 24011
diff changeset
41 +
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
42 +/* Allow build on Cygwin*/
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
43 +#if defined(__CYGWIN__)
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
44 +#define __STRICT_ANSI__
24023
1ac62a61ea56 Move some more compiler flags to configure.
diego
parents: 24011
diff changeset
45 +#endif
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
46
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
47 #define INLINE __inline
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
48 #if 0 //defined(_WIN32) && !defined(_WIN32_WCE)
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
49 #define ALIGN __declspec(align(16))
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
50 @@ -61,7 +67,7 @@
16249
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
51 /* Use if target platform has address generators with autoincrement */
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
52 //#define PREFER_POINTERS
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
53
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
54 -#ifdef _WIN32_WCE
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
55 +#if defined(_WIN32_WCE) || defined(__arm__)
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
56 #define FIXED_POINT
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
57 #endif
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
58
14858
cc0c5443548d cosmetics: Make diff -R apply without offsets.
diego
parents: 14712
diff changeset
59 @@ -117,6 +123,9 @@
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
60 # ifdef MAIN_DEC
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
61 # undef MAIN_DEC
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
62 # endif
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
63 +# ifdef SBR_DEC
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
64 +# undef SBR_DEC
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
65 +# endif
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
66 #endif // FIXED_POINT
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
67
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
68 #ifdef DRM
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
69 @@ -151,6 +160,7 @@
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
70
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
71 #include <stdlib.h>
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
72
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
73 +#if 0
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
74 typedef unsigned __int64 uint64_t;
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
75 typedef unsigned __int32 uint32_t;
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
76 typedef unsigned __int16 uint16_t;
24011
aa0a5aa712fc Move some #defines into configure/config.h.
diego
parents: 24001
diff changeset
77 @@ -159,5 +169,9 @@
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
78 typedef __int32 int32_t;
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
79 typedef __int16 int16_t;
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
80 typedef __int8 int8_t;
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
81 +#else
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
82 +#include <inttypes.h>
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
83 +#endif
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
84 +
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
85 typedef float float32_t;
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 @@ -289,7 +319,7 @@
16249
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
88 }
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
89
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
90
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
91 - #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
92 + #if defined(_WIN32) && !defined(__MINGW32__) && !HAVE_LRINTF
16249
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
93 #define HAS_LRINTF
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
94 static INLINE int lrintf(float f)
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
95 {
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
96 @@ -301,7 +331,7 @@
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
97 }
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
98 return i;
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
99 }
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
100 - #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
101 + #elif (defined(__i386__) && defined(__GNUC__)) && !HAVE_LRINTF
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
102 #define HAS_LRINTF
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
103 // from http://www.stereopsis.com/FPU.html
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
104 static INLINE int lrintf(float f)
28336
1a5cd79b2e6e HAVE_LRINTF is now always defined to either 0 or 1, not defined/undefined.
diego
parents: 24023
diff changeset
105 @@ -330,7 +360,7 @@
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
106
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
107 #else
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
108
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
109 +#include <math.h>
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
110 +
28336
1a5cd79b2e6e HAVE_LRINTF is now always defined to either 0 or 1, not defined/undefined.
diego
parents: 24023
diff changeset
111 -#ifdef HAVE_LRINTF
1a5cd79b2e6e HAVE_LRINTF is now always defined to either 0 or 1, not defined/undefined.
diego
parents: 24023
diff changeset
112 -#if HAVE_LRINTF
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
113 # define HAS_LRINTF
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
114 # define _ISOC9X_SOURCE 1
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
115 @@ -338,8 +370,6 @@
14712
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
116 # define __USE_ISOC99 1
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
117 #endif
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
118
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
119 - #include <math.h>
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
120 -
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
121 #ifdef HAVE_SINF
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
122 # define sin sinf
ca694d6b5375 MPlayer-specific changes to libfaad
diego
parents:
diff changeset
123 #error
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
124 --- 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
125 +++ libfaad2/output.c 2006-04-18 19:50:26.000000000 +0200
16249
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
126 @@ -19,10 +19,9 @@
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
127 ** Any non-GPL usage of this software or parts of this software is strictly
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
128 ** forbidden.
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
129 **
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
130 -** Commercial non-GPL licensing of this software is possible.
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
131 -** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
132 -**
17181
53c3eaaf8b49 Unify paths in patch and fix recent breakage, no -ko keyword expansion
diego
parents: 17137
diff changeset
133 -** $Id: output.c,v 1.42 2004/09/04 14:56:28 menno Exp $
16249
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
134 +** Initially modified for use with MPlayer by Rich Felker on 2005/03/29
17181
53c3eaaf8b49 Unify paths in patch and fix recent breakage, no -ko keyword expansion
diego
parents: 17137
diff changeset
135 +** $Id: output.c,v 1.11 2005/04/05 05:43:41 rfelker Exp $
18783
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 18141
diff changeset
136 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
16249
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
137 **/
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
138
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
139 #include "common.h"
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
140 @@ -463,7 +462,7 @@
16249
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
141 }
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
142 }
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
143
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
144 -void* output_to_PCM(NeAACDecHandle hDecoder,
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
145 +void* output_to_PCM_sux(NeAACDecHandle hDecoder,
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
146 real_t **input, void *sample_buffer, uint8_t channels,
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
147 uint16_t frame_len, uint8_t format)
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
148 {
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
149 @@ -554,4 +553,51 @@
16249
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
150 return sample_buffer;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
151 }
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
152
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
153 +void* output_to_PCM(NeAACDecHandle hDecoder,
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
154 + real_t **input, void *sample_buffer, uint8_t channels,
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
155 + uint16_t frame_len, uint8_t format)
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
156 +{
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
157 + int ch;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
158 + int i;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
159 + int16_t *short_sample_buffer = (int16_t*)sample_buffer;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
160 + real_t *ch0 = input[hDecoder->internal_channel[0]];
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
161 + real_t *ch1 = input[hDecoder->internal_channel[1]];
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
162 + real_t *ch2 = input[hDecoder->internal_channel[2]];
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
163 + real_t *ch3 = input[hDecoder->internal_channel[3]];
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
164 + real_t *ch4 = input[hDecoder->internal_channel[4]];
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
165 +
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
166 + if (format != FAAD_FMT_16BIT)
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
167 + return output_to_PCM_sux(hDecoder, input, sample_buffer, channels, frame_len, format);
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
168 +
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
169 + if (hDecoder->downMatrix) {
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
170 + for(i = 0; i < frame_len; i++)
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
171 + {
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
172 + int32_t tmp;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
173 + 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
174 + if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
175 + short_sample_buffer[0] = tmp;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
176 + 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
177 + if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
178 + short_sample_buffer[1] = tmp;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
179 + short_sample_buffer += channels;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
180 + }
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
181 + return sample_buffer;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
182 + }
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
183 +
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
184 + /* Copy output to a standard PCM buffer */
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
185 + for(i = 0; i < frame_len; i++)
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
186 + {
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
187 + for (ch = 0; ch < channels; ch++)
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
188 + {
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
189 + int32_t tmp = input[hDecoder->internal_channel[ch]][i];
16249
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
190 + tmp += (1 << (REAL_BITS-1));
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
191 + tmp >>= REAL_BITS;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
192 + if ((tmp+0x8000) & ~0xffff) tmp = ~(tmp>>31)-0x8000;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
193 + *(short_sample_buffer++) = tmp;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
194 + }
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
195 + }
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
196 +
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
197 + return sample_buffer;
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
198 +}
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
199 +
d47cd711f617 Update for latest changes.
diego
parents: 14858
diff changeset
200 #endif
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
201 --- 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
202 +++ 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
203 @@ -22,7 +22,10 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
204 ** Commercial non-GPL licensing of this software is possible.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
205 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
206 **
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
207 +** Initially modified for use with MPlayer on 2005/12/05
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
208 ** $Id: ps_dec.c,v 1.10 2004/09/04 14:56:28 menno Exp $
18783
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 18141
diff changeset
209 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
210 +** local_changes.diff contains the exact changes to this file.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
211 **/
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
212
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
213 #include "common.h"
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
214 @@ -159,7 +162,7 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
215
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
216 /* static function declarations */
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
217 static void ps_data_decode(ps_info *ps);
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
218 -static hyb_info *hybrid_init();
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
219 +static hyb_info *hybrid_init(void);
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
220 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
221 qmf_t *buffer, qmf_t **X_hybrid);
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
222 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
223 @@ -189,7 +192,7 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
224 /* */
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
225
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 -static hyb_info *hybrid_init()
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
228 +static hyb_info *hybrid_init(void)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
229 {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
230 uint8_t i;
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 @@ -1935,8 +1938,8 @@
17136
d89bfef62e03 add my fix to ps_dec.c to our diff
rathann
parents: 16249
diff changeset
233 /* main Parametric Stereo decoding function */
d89bfef62e03 add my fix to ps_dec.c to our diff
rathann
parents: 16249
diff changeset
234 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
235 {
d89bfef62e03 add my fix to ps_dec.c to our diff
rathann
parents: 16249
diff changeset
236 - qmf_t X_hybrid_left[32][32] = {{0}};
d89bfef62e03 add my fix to ps_dec.c to our diff
rathann
parents: 16249
diff changeset
237 - qmf_t X_hybrid_right[32][32] = {{0}};
d89bfef62e03 add my fix to ps_dec.c to our diff
rathann
parents: 16249
diff changeset
238 + qmf_t X_hybrid_left[32][32] = {{{0}}};
d89bfef62e03 add my fix to ps_dec.c to our diff
rathann
parents: 16249
diff changeset
239 + qmf_t X_hybrid_right[32][32] = {{{0}}};
d89bfef62e03 add my fix to ps_dec.c to our diff
rathann
parents: 16249
diff changeset
240
d89bfef62e03 add my fix to ps_dec.c to our diff
rathann
parents: 16249
diff changeset
241 /* delta decoding of the bitstream data */
d89bfef62e03 add my fix to ps_dec.c to our diff
rathann
parents: 16249
diff changeset
242 ps_data_decode(ps);
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
243 --- 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
244 +++ 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
245 @@ -22,7 +22,10 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
246 ** Commercial non-GPL licensing of this software is possible.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
247 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
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 +** Initially modified for use with MPlayer on 2005/12/05
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
250 ** $Id: sbr_dec.c,v 1.39 2004/09/04 14:56:28 menno Exp $
18783
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 18141
diff changeset
251 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
252 +** local_changes.diff contains the exact changes to this file.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
253 **/
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
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
256 @@ -526,8 +529,8 @@
17137
5234ca38792e add fix for sbr_dec.c to local diff, too
rathann
parents: 17136
diff changeset
257 uint8_t l, k;
5234ca38792e add fix for sbr_dec.c to local diff, too
rathann
parents: 17136
diff changeset
258 uint8_t dont_process = 0;
5234ca38792e add fix for sbr_dec.c to local diff, too
rathann
parents: 17136
diff changeset
259 uint8_t ret = 0;
5234ca38792e add fix for sbr_dec.c to local diff, too
rathann
parents: 17136
diff changeset
260 - ALIGN qmf_t X_left[38][64] = {{0}};
5234ca38792e add fix for sbr_dec.c to local diff, too
rathann
parents: 17136
diff changeset
261 - 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
262 + ALIGN qmf_t X_left[38][64] = {{{0}}};
5234ca38792e add fix for sbr_dec.c to local diff, too
rathann
parents: 17136
diff changeset
263 + 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
264
5234ca38792e add fix for sbr_dec.c to local diff, too
rathann
parents: 17136
diff changeset
265 if (sbr == NULL)
5234ca38792e add fix for sbr_dec.c to local diff, too
rathann
parents: 17136
diff changeset
266 return 20;
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
267 --- 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
268 +++ libfaad2/specrec.c 2006-04-18 20:38:09.000000000 +0200
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
269 @@ -19,10 +19,10 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
270 ** Any non-GPL usage of this software or parts of this software is strictly
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
271 ** forbidden.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
272 **
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
273 -** Commercial non-GPL licensing of this software is possible.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
274 -** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
275 -**
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
276 +** Initially modified for use with MPlayer on 2006/04/18
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
277 ** $Id: specrec.c,v 1.56 2004/09/08 09:43:11 gcp Exp $
18783
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 18141
diff changeset
278 +** detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
18141
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
279 +** local_changes.diff contains the exact changes to this file.
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
280 **/
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 /*
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
283 @@ -673,29 +673,19 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
284 /* MAIN object type prediction */
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
285 if (hDecoder->object_type == MAIN)
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 - /* allocate the state only when needed */
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
288 - if (hDecoder->pred_stat[channel] == NULL)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
289 - {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
290 - 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
291 + 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
292 reset_all_predictors(hDecoder->pred_stat[channel], hDecoder->frameLength);
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
293 - }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
294 }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
295 #endif
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 #ifdef LTP_DEC
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
298 if (is_ltp_ot(hDecoder->object_type))
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
299 {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
300 - /* allocate the state only when needed */
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
301 - if (hDecoder->lt_pred_stat[channel] == NULL)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
302 - {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
303 - 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
304 + 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
305 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
306 - }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
307 }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
308 #endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
309
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
310 - if (hDecoder->time_out[channel] == NULL)
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 mul = 1;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
313 #ifdef SBR_DEC
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
314 hDecoder->sbr_alloced[hDecoder->fr_ch_ele] = 0;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
315 @@ -706,41 +696,28 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
316 hDecoder->sbr_alloced[hDecoder->fr_ch_ele] = 1;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
317 }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
318 #endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
319 - 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
320 + 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
321 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
322 - }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
323 #if (defined(PS_DEC) || defined(DRM_PS))
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
324 if (output_channels == 2)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
325 {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
326 - if (hDecoder->time_out[channel+1] == NULL)
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 - 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
329 + 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
330 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
331 - }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
332 }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
333 #endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
334
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
335 - if (hDecoder->fb_intermed[channel] == NULL)
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 - 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
338 + 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
339 memset(hDecoder->fb_intermed[channel], 0, hDecoder->frameLength*sizeof(real_t));
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
340 - }
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 #ifdef SSR_DEC
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
343 if (hDecoder->object_type == SSR)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
344 {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
345 - if (hDecoder->ssr_overlap[channel] == NULL)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
346 - {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
347 - 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
348 - 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
349 - }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
350 - if (hDecoder->prev_fmd[channel] == NULL)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
351 - {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
352 uint16_t k;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
353 - 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
354 + 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
355 + 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
356 + 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
357 for (k = 0; k < 2*hDecoder->frameLength; k++)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
358 hDecoder->prev_fmd[channel][k] = REAL_CONST(-1);
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
359 - }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
360 }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
361 #endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
362
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
363 @@ -865,22 +842,13 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
364
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
365 /* always allocate 2 channels, PS can always "suddenly" turn up */
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
366 #if (defined(PS_DEC) || defined(DRM_PS))
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
367 - output_channels = 2;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
368 + output_channels = hDecoder->ps_used[hDecoder->fr_ch_ele] ? 2 : 1;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
369 #else
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
370 output_channels = 1;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
371 #endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
372
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
373 - if (hDecoder->element_output_channels[hDecoder->fr_ch_ele] == 0)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
374 - {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
375 - /* element_output_channels not set yet */
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
376 + if (hDecoder->element_output_channels[hDecoder->fr_ch_ele] < output_channels) {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
377 hDecoder->element_output_channels[hDecoder->fr_ch_ele] = output_channels;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
378 - } 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
379 - /* element inconsistency */
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
380 - return 21;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
381 - }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
382 -
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
383 - if (hDecoder->element_alloced[hDecoder->fr_ch_ele] == 0)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
384 - {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
385 retval = allocate_single_channel(hDecoder, sce->channel, output_channels);
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
386 if (retval > 0)
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
387 return retval;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
388 @@ -1026,11 +994,10 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
389 {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
390 return 23;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
391 }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
392 -#endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
393
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
394 /* copy L to R when no PS is used */
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
395 #if (defined(PS_DEC) || defined(DRM_PS))
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
396 - if ((hDecoder->ps_used[hDecoder->fr_ch_ele] == 0))
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
397 + 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
398 {
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
399 uint8_t ele = hDecoder->fr_ch_ele;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
400 uint8_t ch = sce->channel;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
401 @@ -1040,6 +1007,7 @@
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
402 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
403 }
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
404 #endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
405 +#endif
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
406
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
407 return 0;
59b6fa5b4201 Update to faad2 cvs 20040915+MPlayer fixes
rtognimp
parents: 17181
diff changeset
408 }