ff_fft_init now double checks that the system has mm3dnow.h before
authorBenjamin Larsson <banan@ludd.ltu.se>
Sun, 2 Jul 2006 02:05:35 +0000 (02:05 +0000)
committerBenjamin Larsson <banan@ludd.ltu.se>
Sun, 2 Jul 2006 02:05:35 +0000 (02:05 +0000)
checking if the cpu can do 3dnow at all. This bug caused amd cpu's
without sse to not have a working fft function. Ie no wma, cook or
vorbis decoder.

Originally committed as revision 5570 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/fft.c

index 1306abd69b82ae6c7519a4518e4ae5548ac8e511..1c63f6889ff3e8ec782168fedc142c7955b4181c 100644 (file)
@@ -62,7 +62,11 @@ int ff_fft_init(FFTContext *s, int nbits, int inverse)
         int has_vectors = 0;
 
 #if defined(HAVE_MMX)
+#ifdef HAVE_MM3DNOW
         has_vectors = mm_support() & (MM_3DNOW | MM_3DNOWEXT | MM_SSE | MM_SSE2);
+#else
+        has_vectors = mm_support() & (MM_SSE | MM_SSE2);
+#endif
 #endif
 #if defined(HAVE_ALTIVEC) && !defined(ALTIVEC_USE_REFERENCE_C_CODE)
         has_vectors = mm_support() & MM_ALTIVEC;