Mercurial > mplayer.hg
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; |