]> git.sesse.net Git - vlc/commitdiff
* disable any MMX usage in FFmpeg on Darwin 9 (x86). This way, we can use the ffmpeg...
authorFelix Paul Kühne <fkuehne@videolan.org>
Tue, 25 Dec 2007 13:36:02 +0000 (13:36 +0000)
committerFelix Paul Kühne <fkuehne@videolan.org>
Tue, 25 Dec 2007 13:36:02 +0000 (13:36 +0000)
configure.ac
extras/contrib/src/Makefile
extras/contrib/src/Patches/ffmpeg-svn-mmx_removal-darwin9.patch [new file with mode: 0644]

index 3646cd23b60823eb7edd040e178bdf872778b0e1..99bb27c535e80b7d556ee4f6f2bfd512352fc3c5 100644 (file)
@@ -238,8 +238,6 @@ case "${host_os}" in
             echo "  Assuming --disable-mmx (due to a bug in ld)"
             enable_sse="no"
             echo "  Assuming --disable-sse (due to a bug in ld)"
-            enable_ffmpeg="no"
-            echo "  Assuming --disable-ffmpeg (due to a bug in ld)"
         fi
     fi
     ;;
@@ -6271,7 +6269,7 @@ if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
    echo ""
    echo "Warning: Due to a bug in ld, mmx/sse support has been"
    echo "         turned off."
-   echo "         More over FFmpeg support has been disabled."
-   echo "         VLC WILL NOT BE ABLE TO PLAY MOST FILES."
+   echo "         FFmpeg will be REALLY slow."
+   echo "         VLC WILL NOT PERFORM AS EXPECTED."
    echo ""
 fi
index b52a523cec3865f0720e8f396e2944d23c632853..cb749095a70b359fe13d0a136e1cd040f861b7ce 100644 (file)
@@ -147,6 +147,10 @@ ifdef HAVE_DARWIN_OS_ON_INTEL
 FFMPEGCONF += --enable-memalign-hack --cpu=pentium-m
 endif
 
+ifdef HAVE_DARWIN_9
+FFMPEGCONF += --disable-mmx
+endif
+
 ifdef HAVE_DARWIN_OS
 X264CONF += --enable-pic
 ifdef HAVE_DARWIN_OS_ON_INTEL
@@ -1068,6 +1072,11 @@ endif
 ifdef HAVE_DARWIN_OS
        (cd $@; patch -p0 < ../Patches/ffmpeg-macosx-intel-mmx.patch)
 endif
+ifdef HAVE_DARWIN_9
+ifdef HAVE_DARWIN_OS_ON_INTEL
+       (cd $@; patch -p0 < ../Patches/ffmpeg-svn-mmx_removal-darwin9.patch)
+endif
+endif
 ifdef HAVE_UCLIBC
        patch -p0 < Patches/ffmpeg-svn-uclibc.patch
        patch -p0 < Patches/ffmpeg-svn-internal-define.patch
diff --git a/extras/contrib/src/Patches/ffmpeg-svn-mmx_removal-darwin9.patch b/extras/contrib/src/Patches/ffmpeg-svn-mmx_removal-darwin9.patch
new file mode 100644 (file)
index 0000000..acf7883
--- /dev/null
@@ -0,0 +1,135 @@
+Index: libswscale/yuv2rgb.c
+===================================================================
+--- libswscale/yuv2rgb.c       (revision 25527)
++++ libswscale/yuv2rgb.c       (working copy)
+@@ -156,6 +156,7 @@
+ };
+ #endif
++#if 0
+ #ifdef HAVE_MMX
+ /* hope these constant values are cache line aligned */
+@@ -201,6 +202,7 @@
+ #include "yuv2rgb_template.c"
+ #endif /* defined(ARCH_X86) */
++#endif
+ const int32_t Inverse_Table_6_9[8][4] = {
+     {117504, 138453, 13954, 34903}, /* no sequence_display_extension */
+Index: libswscale/swscale.c
+===================================================================
+--- libswscale/swscale.c       (revision 25527)
++++ libswscale/swscale.c       (working copy)
+@@ -875,9 +875,7 @@
+ //Note: we have C, X86, MMX, MMX2, 3DNOW version therse no 3DNOW+MMX2 one
+ //Plain C versions
+-#if !defined (HAVE_MMX) || defined (RUNTIME_CPUDETECT) || !defined(CONFIG_GPL)
+ #define COMPILE_C
+-#endif
+ #ifdef ARCH_POWERPC
+ #if (defined (HAVE_ALTIVEC) || defined (RUNTIME_CPUDETECT)) && defined (CONFIG_GPL)
+@@ -885,6 +883,7 @@
+ #endif //HAVE_ALTIVEC
+ #endif //ARCH_POWERPC
++#if 0
+ #if defined(ARCH_X86)
+ #if ((defined (HAVE_MMX) && !defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT)) && defined (CONFIG_GPL)
+@@ -899,6 +898,7 @@
+ #define COMPILE_3DNOW
+ #endif
+ #endif //ARCH_X86 || ARCH_X86_64
++#endif
+ #undef HAVE_MMX
+ #undef HAVE_MMX2
+@@ -1544,13 +1544,6 @@
+ #if defined(RUNTIME_CPUDETECT) && defined (CONFIG_GPL)
+ #if defined(ARCH_X86)
+     // ordered per speed fasterst first
+-    if (flags & SWS_CPU_CAPS_MMX2)
+-        return swScale_MMX2;
+-    else if (flags & SWS_CPU_CAPS_3DNOW)
+-        return swScale_3DNow;
+-    else if (flags & SWS_CPU_CAPS_MMX)
+-        return swScale_MMX;
+-    else
+         return swScale_C;
+ #else
+Index: libswscale/rgb2rgb.c
+===================================================================
+--- libswscale/rgb2rgb.c       (revision 25527)
++++ libswscale/rgb2rgb.c       (working copy)
+@@ -171,6 +171,7 @@
+ #define RENAME(a) a ## _C
+ #include "rgb2rgb_template.c"
++#if 0
+ #if defined(ARCH_X86) && defined(CONFIG_GPL)
+ //MMX versions
+@@ -201,6 +202,7 @@
+ #include "rgb2rgb_template.c"
+ #endif //ARCH_X86 || ARCH_X86_64
++#endif
+ /*
+  rgb15->rgb16 Original by Strepto/Astral
+Index: libpostproc/postprocess.c
+===================================================================
+--- libpostproc/postprocess.c  (revision 11315)
++++ libpostproc/postprocess.c  (working copy)
+@@ -566,10 +566,6 @@
+ //Note: we have C, MMX, MMX2, 3DNOW version there is no 3DNOW+MMX2 one
+ //Plain C versions
+-#if !defined (HAVE_MMX) || defined (RUNTIME_CPUDETECT)
+-#define COMPILE_C
+-#endif
+-
+ #ifdef ARCH_POWERPC
+ #ifdef HAVE_ALTIVEC
+ #define COMPILE_ALTIVEC
+@@ -578,17 +574,8 @@
+ #if defined(ARCH_X86)
+-#if (defined (HAVE_MMX) && !defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT)
+-#define COMPILE_MMX
+-#endif
++#define COMPILE_C
+-#if defined (HAVE_MMX2) || defined (RUNTIME_CPUDETECT)
+-#define COMPILE_MMX2
+-#endif
+-
+-#if (defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT)
+-#define COMPILE_3DNOW
+-#endif
+ #endif /* defined(ARCH_X86) */
+ #undef HAVE_MMX
+@@ -658,15 +645,7 @@
+         // someone might exchange the CPU whithout restarting MPlayer ;)
+ #ifdef RUNTIME_CPUDETECT
+ #if defined(ARCH_X86)
+-        // ordered per speed fasterst first
+-        if(c->cpuCaps & PP_CPU_CAPS_MMX2)
+-                postProcess_MMX2(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
+-        else if(c->cpuCaps & PP_CPU_CAPS_3DNOW)
+-                postProcess_3DNow(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
+-        else if(c->cpuCaps & PP_CPU_CAPS_MMX)
+-                postProcess_MMX(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
+-        else
+-                postProcess_C(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
++        postProcess_C(src, srcStride, dst, dstStride, width, height, QPs, QPStride, isColor, c);
+ #else
+ #ifdef ARCH_POWERPC
+ #ifdef HAVE_ALTIVEC