Mercurial > mplayer.hg
changeset 27522:1462a44ea6b9
Use preprocessor conditionals to disable CPU-extension-specific code. We cannot
rely on libmpeg2's internal CPU extension handling, it leads to link failures
with our build system. Fixes Bugzilla #1188.
author | diego |
---|---|
date | Tue, 09 Sep 2008 10:56:51 +0000 |
parents | 09f068b67fc7 |
children | 508d7b481d45 |
files | libmpeg2/idct.c libmpeg2/libmpeg-0.4.1.diff libmpeg2/motion_comp.c |
diffstat | 3 files changed, 85 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpeg2/idct.c Tue Sep 09 10:52:47 2008 +0000 +++ b/libmpeg2/idct.c Tue Sep 09 10:56:51 2008 +0000 @@ -239,16 +239,20 @@ void mpeg2_idct_init (uint32_t accel) { -#ifdef ARCH_X86 +#ifdef HAVE_SSE2 if (accel & MPEG2_ACCEL_X86_SSE2) { mpeg2_idct_copy = mpeg2_idct_copy_sse2; mpeg2_idct_add = mpeg2_idct_add_sse2; mpeg2_idct_mmx_init (); - } else if (accel & MPEG2_ACCEL_X86_MMXEXT) { + } else +#elif HAVE_MMX2 + if (accel & MPEG2_ACCEL_X86_MMXEXT) { mpeg2_idct_copy = mpeg2_idct_copy_mmxext; mpeg2_idct_add = mpeg2_idct_add_mmxext; mpeg2_idct_mmx_init (); - } else if (accel & MPEG2_ACCEL_X86_MMX) { + } else +#elif HAVE_MMX + if (accel & MPEG2_ACCEL_X86_MMX) { mpeg2_idct_copy = mpeg2_idct_copy_mmx; mpeg2_idct_add = mpeg2_idct_add_mmx; mpeg2_idct_mmx_init (); @@ -261,12 +265,14 @@ mpeg2_idct_altivec_init (); } else #endif -#ifdef ARCH_ALPHA +#ifdef HAVE_VIS if (accel & MPEG2_ACCEL_ALPHA_MVI) { mpeg2_idct_copy = mpeg2_idct_copy_mvi; mpeg2_idct_add = mpeg2_idct_add_mvi; mpeg2_idct_alpha_init (); - } else if (accel & MPEG2_ACCEL_ALPHA) { + } else +#elif ARCH_ALPHA + if (accel & MPEG2_ACCEL_ALPHA) { int i; mpeg2_idct_copy = mpeg2_idct_copy_alpha;
--- a/libmpeg2/libmpeg-0.4.1.diff Tue Sep 09 10:52:47 2008 +0000 +++ b/libmpeg2/libmpeg-0.4.1.diff Tue Sep 09 10:56:51 2008 +0000 @@ -162,7 +162,28 @@ k * mpeg2dec->quantizer_matrix[index][j]; --- libmpeg2/idct.c (revision 26652) +++ libmpeg2/idct.c (working copy) -@@ -250,7 +254,7 @@ +@@ -235,30 +239,40 @@ + + void mpeg2_idct_init (uint32_t accel) + { +-#ifdef ARCH_X86 ++#ifdef HAVE_SSE2 ++ if (accel & MPEG2_ACCEL_X86_SSE2) { ++ mpeg2_idct_copy = mpeg2_idct_copy_sse2; ++ mpeg2_idct_add = mpeg2_idct_add_sse2; ++ mpeg2_idct_mmx_init (); ++ } else ++#elif HAVE_MMX2 + if (accel & MPEG2_ACCEL_X86_MMXEXT) { + mpeg2_idct_copy = mpeg2_idct_copy_mmxext; + mpeg2_idct_add = mpeg2_idct_add_mmxext; + mpeg2_idct_mmx_init (); +- } else if (accel & MPEG2_ACCEL_X86_MMX) { ++ } else ++#elif HAVE_MMX ++ if (accel & MPEG2_ACCEL_X86_MMX) { + mpeg2_idct_copy = mpeg2_idct_copy_mmx; + mpeg2_idct_add = mpeg2_idct_add_mmx; mpeg2_idct_mmx_init (); } else #endif @@ -171,6 +192,22 @@ if (accel & MPEG2_ACCEL_PPC_ALTIVEC) { mpeg2_idct_copy = mpeg2_idct_copy_altivec; mpeg2_idct_add = mpeg2_idct_add_altivec; + mpeg2_idct_altivec_init (); + } else + #endif +-#ifdef ARCH_ALPHA ++#ifdef HAVE_VIS + if (accel & MPEG2_ACCEL_ALPHA_MVI) { + mpeg2_idct_copy = mpeg2_idct_copy_mvi; + mpeg2_idct_add = mpeg2_idct_add_mvi; + mpeg2_idct_alpha_init (); +- } else if (accel & MPEG2_ACCEL_ALPHA) { ++ } else ++#elif ARCH_ALPHA ++ if (accel & MPEG2_ACCEL_ALPHA) { + int i; + + mpeg2_idct_copy = mpeg2_idct_copy_alpha; --- libmpeg2/idct_mmx.c 2006-06-16 20:12:26.000000000 +0200 +++ libmpeg2/idct_mmx.c 2006-06-16 20:12:50.000000000 +0200 @@ -23,7 +27,7 @@ @@ -184,7 +221,25 @@ --- libmpeg2/motion_comp.c 2006-06-16 20:12:26.000000000 +0200 +++ libmpeg2/motion_comp.c 2006-06-16 20:12:50.000000000 +0200 -@@ -46,7 +46,7 @@ +@@ -33,16 +37,22 @@ + + void mpeg2_mc_init (uint32_t accel) + { +-#ifdef ARCH_X86 ++#ifdef HAVE_MMX2 + if (accel & MPEG2_ACCEL_X86_MMXEXT) + mpeg2_mc = mpeg2_mc_mmxext; +- else if (accel & MPEG2_ACCEL_X86_3DNOW) ++ else ++#endif ++#ifdef HAVE_3DNOW ++ if (accel & MPEG2_ACCEL_X86_3DNOW) + mpeg2_mc = mpeg2_mc_3dnow; +- else if (accel & MPEG2_ACCEL_X86_MMX) ++ else ++#endif ++#ifdef HAVE_MMX ++ if (accel & MPEG2_ACCEL_X86_MMX) mpeg2_mc = mpeg2_mc_mmx; else #endif @@ -193,7 +248,13 @@ if (accel & MPEG2_ACCEL_PPC_ALTIVEC) mpeg2_mc = mpeg2_mc_altivec; else -@@ -61,6 +61,16 @@ +@@ -52,11 +62,21 @@ + mpeg2_mc = mpeg2_mc_alpha; + else + #endif +-#ifdef ARCH_SPARC ++#ifdef HAVE_VIS + if (accel & MPEG2_ACCEL_SPARC_VIS) mpeg2_mc = mpeg2_mc_vis; else #endif
--- a/libmpeg2/motion_comp.c Tue Sep 09 10:52:47 2008 +0000 +++ b/libmpeg2/motion_comp.c Tue Sep 09 10:56:51 2008 +0000 @@ -37,12 +37,18 @@ void mpeg2_mc_init (uint32_t accel) { -#ifdef ARCH_X86 +#ifdef HAVE_MMX2 if (accel & MPEG2_ACCEL_X86_MMXEXT) mpeg2_mc = mpeg2_mc_mmxext; - else if (accel & MPEG2_ACCEL_X86_3DNOW) + else +#endif +#ifdef HAVE_3DNOW + if (accel & MPEG2_ACCEL_X86_3DNOW) mpeg2_mc = mpeg2_mc_3dnow; - else if (accel & MPEG2_ACCEL_X86_MMX) + else +#endif +#ifdef HAVE_MMX + if (accel & MPEG2_ACCEL_X86_MMX) mpeg2_mc = mpeg2_mc_mmx; else #endif @@ -56,7 +62,7 @@ mpeg2_mc = mpeg2_mc_alpha; else #endif -#ifdef ARCH_SPARC +#ifdef HAVE_VIS if (accel & MPEG2_ACCEL_SPARC_VIS) mpeg2_mc = mpeg2_mc_vis; else