[MPlayer-cvslog] r18730 - in trunk/libmpeg2: cpu_accel.c mpeg2.h

gpoirier subversion at mplayerhq.hu
Fri Jun 16 15:40:00 CEST 2006


Author: gpoirier
Date: Fri Jun 16 15:40:00 2006
New Revision: 18730

Modified:
   trunk/libmpeg2/cpu_accel.c
   trunk/libmpeg2/mpeg2.h

Log:
Use MPlayer's CPU detection module instead of libmpeg2's,
initial patch by Jim Huang jserv A linux2°cc°ntu°edu°tw,
reworked by me according to The Guru's advices ;-)

Original thread:
Date: Jun 15, 2006 8:35 AM
Subject: [MPlayer-dev-eng] [PATCH] Remove duplicated CPU detection in libmpeg2


Modified: trunk/libmpeg2/cpu_accel.c
==============================================================================
--- trunk/libmpeg2/cpu_accel.c	(original)
+++ trunk/libmpeg2/cpu_accel.c	Fri Jun 16 15:40:00 2006
@@ -26,6 +26,7 @@
  */
 
 #include "config.h"
+#include "cpudetect.h"
 
 #include <inttypes.h>
 
@@ -35,8 +36,16 @@
 
 #ifdef ACCEL_DETECT
 #if defined(ARCH_X86) || defined(ARCH_X86_64)
+
+/* MPlayer imports libmpeg2 as decoder, which detects MMX / 3DNow! 
+ * instructions via assembly. However, it is regarded as duplicaed work
+ * in MPlayer, so that we enforce to use MPlayer's implementation.
+ */
+#define USE_MPLAYER_CPUDETECT
+
 static inline uint32_t arch_accel (void)
 {
+#if !defined(USE_MPLAYER_CPUDETECT)
     uint32_t eax, ebx, ecx, edx;
     int AMD;
     uint32_t caps;
@@ -109,6 +118,20 @@
 	caps |= MPEG2_ACCEL_X86_MMXEXT;
 
     return caps;
+#else /* USE_MPLAYER_CPUDETECT: Use MPlayer's cpu capability property */
+    caps = 0;
+    if (gCpuCaps.hasMMX)
+        caps |= MPEG2_ACCEL_X86_MMX;
+    if (gCpuCaps.hasSSE2)
+	caps |= MPEG2_ACCEL_X86_SSE2;
+    if (gCpuCaps.hasMMX2)
+	caps |= MPEG2_ACCEL_X86_MMXEXT;
+    if (gCpuCaps.has3DNow)
+	caps |= MPEG2_ACCEL_X86_3DNOW;
+
+    return caps;
+
+#endif /* USE_MPLAYER_CPUDETECT */
 }
 #endif /* ARCH_X86 || ARCH_X86_64 */
 

Modified: trunk/libmpeg2/mpeg2.h
==============================================================================
--- trunk/libmpeg2/mpeg2.h	(original)
+++ trunk/libmpeg2/mpeg2.h	Fri Jun 16 15:40:00 2006
@@ -159,6 +159,7 @@
 #define MPEG2_ACCEL_X86_MMX 1
 #define MPEG2_ACCEL_X86_3DNOW 2
 #define MPEG2_ACCEL_X86_MMXEXT 4
+#define MPEG2_ACCEL_X86_SSE2 8
 #define MPEG2_ACCEL_PPC_ALTIVEC 1
 #define MPEG2_ACCEL_ALPHA 1
 #define MPEG2_ACCEL_ALPHA_MVI 2



More information about the MPlayer-cvslog mailing list