comparison libmpeg2/libmpeg-0.4.1.diff @ 26282:79ab4ecba54a

Revert local changes that pointlessly add #ifdefs all over libmpeg2 to disable code depending on CPU capabilities. Instead, rely on libmpeg2's builtin CPU capability handling.
author diego
date Tue, 01 Apr 2008 17:31:37 +0000
parents 9153b0e6ab23
children 62abac0c8637
comparison
equal deleted inserted replaced
26281:6eb659782586 26282:79ab4ecba54a
25 { 25 {
26 +#if !defined(USE_MPLAYER_CPUDETECT) 26 +#if !defined(USE_MPLAYER_CPUDETECT)
27 uint32_t eax, ebx, ecx, edx; 27 uint32_t eax, ebx, ecx, edx;
28 int AMD; 28 int AMD;
29 uint32_t caps; 29 uint32_t caps;
30 @@ -105,10 +118,24 @@ 30 @@ -105,7 +120,21 @@
31 caps |= MPEG2_ACCEL_X86_MMXEXT; 31 caps |= MPEG2_ACCEL_X86_MMXEXT;
32 32
33 return caps; 33 return caps;
34 +#else /* USE_MPLAYER_CPUDETECT: Use MPlayer's cpu capability property */ 34 +#else /* USE_MPLAYER_CPUDETECT: Use MPlayer's cpu capability property */
35 + caps = 0; 35 + caps = 0;
47 +#endif /* USE_MPLAYER_CPUDETECT */ 47 +#endif /* USE_MPLAYER_CPUDETECT */
48 } 48 }
49 -#endif /* ARCH_X86 */ 49 -#endif /* ARCH_X86 */
50 +#endif /* ARCH_X86 || ARCH_X86_64 */ 50 +#endif /* ARCH_X86 || ARCH_X86_64 */
51 51
52 -#if defined(ARCH_PPC) || defined(ARCH_SPARC) 52 #if defined(ARCH_PPC) || defined(ARCH_SPARC)
53 +#if defined(ARCH_PPC) || (defined(ARCH_SPARC) && defined(HAVE_VIS)) 53 @@ -166,10 +168,10 @@
54 #include <signal.h>
55 #include <setjmp.h>
56
57 @@ -166,10 +166,10 @@
58 54
59 canjump = 1; 55 canjump = 1;
60 56
61 -#ifdef HAVE_ALTIVEC_H /* gnu */ 57 -#ifdef HAVE_ALTIVEC_H /* gnu */
62 -#define VAND(a,b,c) "vand " #a "," #b "," #c "\n\t" 58 -#define VAND(a,b,c) "vand " #a "," #b "," #c "\n\t"
66 +#else /* gnu */ 62 +#else /* gnu */
67 +#define VAND(a,b,c) "vand " #a "," #b "," #c "\n\t" 63 +#define VAND(a,b,c) "vand " #a "," #b "," #c "\n\t"
68 #endif 64 #endif
69 asm volatile ("mtspr 256, %0\n\t" 65 asm volatile ("mtspr 256, %0\n\t"
70 VAND (0, 0, 0) 66 VAND (0, 0, 0)
71 @@ -212,7 +243,7 @@ 67 @@ -212,7 +241,7 @@
72 68
73 accel = 0; 69 accel = 0;
74 #ifdef ACCEL_DETECT 70 #ifdef ACCEL_DETECT
75 -#if defined (ARCH_X86) || defined (ARCH_PPC) || defined (ARCH_ALPHA) || defined (ARCH_SPARC) 71 -#if defined (ARCH_X86) || defined (ARCH_PPC) || defined (ARCH_ALPHA) || defined (ARCH_SPARC)
76 +#if defined (ARCH_X86) || defined (ARCH_X86_64) || defined (ARCH_PPC) || defined (ARCH_ALPHA) || defined (ARCH_SPARC) 72 +#if defined (ARCH_X86) || defined (ARCH_X86_64) || defined (ARCH_PPC) || defined (ARCH_ALPHA) || defined (ARCH_SPARC)
121 +#define LVX0(a,b,c) "lvx " #a ",0," #c "\n\t" 117 +#define LVX0(a,b,c) "lvx " #a ",0," #c "\n\t"
122 +#define LVX(a,b,c) "lvx " #a "," #b "," #c "\n\t" 118 +#define LVX(a,b,c) "lvx " #a "," #b "," #c "\n\t"
123 #endif 119 #endif
124 120
125 static void state_save_altivec (cpu_state_t * state) 121 static void state_save_altivec (cpu_state_t * state)
126 @@ -115,12 +119,12 @@ 122 @@ -115,9 +119,9 @@
127 123
128 void mpeg2_cpu_state_init (uint32_t accel) 124 void mpeg2_cpu_state_init (uint32_t accel)
129 { 125 {
130 -#ifdef ARCH_X86 126 -#ifdef ARCH_X86
131 +#if defined(ARCH_X86) || defined(ARCH_X86_64) 127 +#if defined(ARCH_X86) || defined(ARCH_X86_64)
132 if (accel & MPEG2_ACCEL_X86_MMX) { 128 if (accel & MPEG2_ACCEL_X86_MMX) {
133 mpeg2_cpu_state_restore = state_restore_mmx; 129 mpeg2_cpu_state_restore = state_restore_mmx;
134 } 130 }
135 #endif 131 #endif
136 -#ifdef ARCH_PPC 132 #ifdef ARCH_PPC
137 +#if defined(ARCH_PPC) && defined(HAVE_ALTIVEC)
138 if (accel & MPEG2_ACCEL_PPC_ALTIVEC) {
139 mpeg2_cpu_state_save = state_save_altivec;
140 mpeg2_cpu_state_restore = state_restore_altivec;
141 --- libmpeg2/decode.c 2006-06-16 20:12:26.000000000 +0200 133 --- libmpeg2/decode.c 2006-06-16 20:12:26.000000000 +0200
142 +++ libmpeg2/decode.c 2006-06-16 20:12:50.000000000 +0200 134 +++ libmpeg2/decode.c 2006-06-16 20:12:50.000000000 +0200
143 @@ -351,6 +355,15 @@ 135 @@ -351,6 +355,15 @@
144 fbuf->buf[1] = buf[1]; 136 fbuf->buf[1] = buf[1];
145 fbuf->buf[2] = buf[2]; 137 fbuf->buf[2] = buf[2];
182 k = mpeg2dec->q_scale_type ? non_linear_scale[i] : (i << 1); 174 k = mpeg2dec->q_scale_type ? non_linear_scale[i] : (i << 1);
183 + decoder->quantizer_scales[i] = k; 175 + decoder->quantizer_scales[i] = k;
184 for (j = 0; j < 64; j++) 176 for (j = 0; j < 64; j++)
185 decoder->quantizer_prescale[index][i][j] = 177 decoder->quantizer_prescale[index][i][j] =
186 k * mpeg2dec->quantizer_matrix[index][j]; 178 k * mpeg2dec->quantizer_matrix[index][j];
187 --- libmpeg2/idct.c 2006-06-16 20:12:26.000000000 +0200
188 +++ libmpeg2/idct.c 2006-06-16 20:12:50.000000000 +0200
189 @@ -239,12 +239,15 @@
190
191 void mpeg2_idct_init (uint32_t accel)
192 {
193 -#ifdef ARCH_X86
194 +#ifdef HAVE_MMX2
195 if (accel & MPEG2_ACCEL_X86_MMXEXT) {
196 mpeg2_idct_copy = mpeg2_idct_copy_mmxext;
197 mpeg2_idct_add = mpeg2_idct_add_mmxext;
198 mpeg2_idct_mmx_init ();
199 - } else if (accel & MPEG2_ACCEL_X86_MMX) {
200 + } else
201 +#endif
202 +#ifdef HAVE_MMX
203 + if (accel & MPEG2_ACCEL_X86_MMX) {
204 mpeg2_idct_copy = mpeg2_idct_copy_mmx;
205 mpeg2_idct_add = mpeg2_idct_add_mmx;
206 mpeg2_idct_mmx_init ();
207 --- libmpeg2/idct_mmx.c 2006-06-16 20:12:26.000000000 +0200 179 --- libmpeg2/idct_mmx.c 2006-06-16 20:12:26.000000000 +0200
208 +++ libmpeg2/idct_mmx.c 2006-06-16 20:12:50.000000000 +0200 180 +++ libmpeg2/idct_mmx.c 2006-06-16 20:12:50.000000000 +0200
209 @@ -23,7 +27,7 @@ 181 @@ -23,7 +27,7 @@
210 182
211 #include "config.h" 183 #include "config.h"
215 187
216 #include <inttypes.h> 188 #include <inttypes.h>
217 189
218 --- libmpeg2/motion_comp.c 2006-06-16 20:12:26.000000000 +0200 190 --- libmpeg2/motion_comp.c 2006-06-16 20:12:26.000000000 +0200
219 +++ libmpeg2/motion_comp.c 2006-06-16 20:12:50.000000000 +0200 191 +++ libmpeg2/motion_comp.c 2006-06-16 20:12:50.000000000 +0200
220 @@ -37,16 +37,22 @@ 192 @@ -67,6 +61,13 @@
221
222 void mpeg2_mc_init (uint32_t accel)
223 {
224 -#ifdef ARCH_X86
225 +#ifdef HAVE_MMX2
226 if (accel & MPEG2_ACCEL_X86_MMXEXT)
227 mpeg2_mc = mpeg2_mc_mmxext;
228 - else if (accel & MPEG2_ACCEL_X86_3DNOW)
229 + else
230 +#endif
231 +#ifdef HAVE_3DNOW
232 + if (accel & MPEG2_ACCEL_X86_3DNOW)
233 mpeg2_mc = mpeg2_mc_3dnow;
234 - else if (accel & MPEG2_ACCEL_X86_MMX)
235 + else
236 +#endif
237 +#ifdef HAVE_MMX
238 + if (accel & MPEG2_ACCEL_X86_MMX)
239 mpeg2_mc = mpeg2_mc_mmx;
240 else
241 #endif
242 -#ifdef ARCH_PPC
243 +#if defined(ARCH_PPC) && defined(HAVE_ALTIVEC)
244 if (accel & MPEG2_ACCEL_PPC_ALTIVEC)
245 mpeg2_mc = mpeg2_mc_altivec;
246 else
247 @@ -52,7 +62,7 @@
248 mpeg2_mc = mpeg2_mc_alpha;
249 else
250 #endif
251 -#ifdef ARCH_SPARC
252 +#if defined(ARCH_SPARC) && defined(HAVE_VIS)
253 if (accel & MPEG2_ACCEL_SPARC_VIS)
254 mpeg2_mc = mpeg2_mc_vis;
255 else
256 @@ -67,6 +67,16 @@
257 mpeg2_mc = mpeg2_mc_vis; 193 mpeg2_mc = mpeg2_mc_vis;
258 else 194 else
259 #endif 195 #endif
260 +#ifdef ARCH_ARM 196 +#ifdef ARCH_ARM
261 + if (accel & MPEG2_ACCEL_ARM) { 197 + if (accel & MPEG2_ACCEL_ARM_IWMMXT)
262 +#ifdef HAVE_IWMMXT 198 + mpeg2_mc = mpeg2_mc_iwmmxt;
263 + if (accel & MPEG2_ACCEL_ARM_IWMMXT) 199 + else if (accel & MPEG2_ACCEL_ARM)
264 + mpeg2_mc = mpeg2_mc_iwmmxt; 200 + mpeg2_mc = mpeg2_mc_arm;
265 + else 201 + else
266 +#endif
267 + mpeg2_mc = mpeg2_mc_arm;
268 + } else
269 +#endif 202 +#endif
270 mpeg2_mc = mpeg2_mc_c; 203 mpeg2_mc = mpeg2_mc_c;
271 } 204 }
272 205
273 --- libmpeg2/motion_comp_mmx.c 2006-06-16 20:12:26.000000000 +0200 206 --- libmpeg2/motion_comp_mmx.c 2006-06-16 20:12:26.000000000 +0200
387 decoder->motion_parser[MC_FRAME] = motion_mp1; 320 decoder->motion_parser[MC_FRAME] = motion_mp1;
388 + decoder->motion_parser[MC_DMV] = motion_dummy; 321 + decoder->motion_parser[MC_DMV] = motion_dummy;
389 decoder->motion_parser[4] = motion_reuse_420; 322 decoder->motion_parser[4] = motion_reuse_420;
390 } else if (decoder->picture_structure == FRAME_PICTURE) { 323 } else if (decoder->picture_structure == FRAME_PICTURE) {
391 if (decoder->chroma_format == 0) { 324 if (decoder->chroma_format == 0) {
392 --- libmpeg2/idct.c 2006-06-16 20:12:26.000000000 +0200
393 +++ libmpeg2/idct.c 2006-06-16 20:12:50.000000000 +0200
394 @@ -253,7 +253,7 @@
395 mpeg2_idct_mmx_init ();
396 } else
397 #endif
398 -#ifdef ARCH_PPC
399 +#if defined(ARCH_PPC) && defined(HAVE_ALTIVEC)
400 if (accel & MPEG2_ACCEL_PPC_ALTIVEC) {
401 mpeg2_idct_copy = mpeg2_idct_copy_altivec;
402 mpeg2_idct_add = mpeg2_idct_add_altivec;
403 --- libmpeg2/idct_altivec.c 2004/08/02 11:26:43 12933 325 --- libmpeg2/idct_altivec.c 2004/08/02 11:26:43 12933
404 +++ libmpeg2/idct_altivec.c 2005/05/15 20:11:34 15484 326 +++ libmpeg2/idct_altivec.c 2005/05/15 20:11:34 15484
405 @@ -41,7 +41,7 @@ 327 @@ -41,7 +41,7 @@
406 typedef vector signed int vector_s32_t; 328 typedef vector signed int vector_s32_t;
407 typedef vector unsigned int vector_u32_t; 329 typedef vector unsigned int vector_u32_t;