[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