# HG changeset patch
# User Diego 'Flameeyes' Pettenò <[EMAIL PROTECTED]>
# Date 1181395979 -7200
# Node ID 26351512648cf22745672d507b9913cf2f53be4d
# Parent  de77c978064fe3fd5c651872fc698138c4e919a9
Port libmpeg2 MMX/MMXEXT/3DNOW tests with the new cpu_accel.h interface.

diff -r 26351512648cf22745672d507b9913cf2f53be4d -r 
de77c978064fe3fd5c651872fc698138c4e919a9 src/libmpeg2/cpu_state.c
--- a/src/libmpeg2/cpu_state.c  Sat Jun 09 15:32:59 2007 +0200
+++ b/src/libmpeg2/cpu_state.c  Sat Jun 09 15:32:35 2007 +0200
@@ -28,11 +28,12 @@
 
 #include "mpeg2_internal.h"
 #include "xineutils.h"
+#include "cpu_accel.h"
 
 void (* mpeg2_cpu_state_save) (cpu_state_t * state) = NULL;
 void (* mpeg2_cpu_state_restore) (cpu_state_t * state) = NULL;
 
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+#ifdef BUILD_MMX_MAYBE
 static void state_restore_mmx (cpu_state_t * state)
 {
     emms ();
@@ -168,10 +169,9 @@ static void state_restore_altivec (cpu_s
 
 void mpeg2_cpu_state_init (uint32_t mm_accel)
 {
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
-    if (mm_accel & MM_ACCEL_X86_MMX) {
+#ifdef BUILD_MMX_MAYBE
+    if ( CHECK_MMX )
        mpeg2_cpu_state_restore = state_restore_mmx;
-    }
 #endif
 #if defined (ARCH_PPC) && defined (ENABLE_ALTIVEC)
     if (mm_accel & MM_ACCEL_PPC_ALTIVEC) {
diff -r 26351512648cf22745672d507b9913cf2f53be4d -r 
de77c978064fe3fd5c651872fc698138c4e919a9 src/libmpeg2/decode.c
--- a/src/libmpeg2/decode.c     Sat Jun 09 15:32:59 2007 +0200
+++ b/src/libmpeg2/decode.c     Sat Jun 09 15:32:35 2007 +0200
@@ -41,7 +41,6 @@
 #include "video_out.h"
 #include "mpeg2.h"
 #include "mpeg2_internal.h"
-#include "xineutils.h"
 #include "libmpeg2_accel.h"
 
 /*
@@ -57,14 +56,12 @@ void mpeg2_init (mpeg2dec_t * mpeg2dec,
                 xine_video_port_t * output)
 {
   static int do_init = 1;
-  uint32_t mm_accel;
 
     if (do_init) {
        do_init = 0;
-       mm_accel = xine_mm_accel();
-       mpeg2_cpu_state_init (mm_accel);
-       mpeg2_idct_init (mm_accel);
-       mpeg2_mc_init (mm_accel);
+       mpeg2_cpu_state_init ();
+       mpeg2_idct_init ();
+       mpeg2_mc_init ();
        libmpeg2_accel_scan(&mpeg2dec->accel, mpeg2_scan_norm, mpeg2_scan_alt);
     }
 
diff -r 26351512648cf22745672d507b9913cf2f53be4d -r 
de77c978064fe3fd5c651872fc698138c4e919a9 src/libmpeg2/idct.c
--- a/src/libmpeg2/idct.c       Sat Jun 09 15:32:59 2007 +0200
+++ b/src/libmpeg2/idct.c       Sat Jun 09 15:32:35 2007 +0200
@@ -44,9 +44,10 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <inttypes.h>
+#include <string.h>
 
 #include "mpeg2_internal.h"
-#include "xineutils.h"
+#include "cpu_accel.h"
 
 #define W1 2841 /* 2048*sqrt (2)*cos (1*pi/16) */
 #define W2 2676 /* 2048*sqrt (2)*cos (2*pi/16) */
@@ -278,12 +279,12 @@ static void mpeg2_zero_block_c (int16_t 
   memset( wblock, 0, sizeof(int16_t) * 64 );
 }
 
-void mpeg2_idct_init (uint32_t mm_accel)
+void mpeg2_idct_init ()
 {
     mpeg2_zero_block = mpeg2_zero_block_c;
 
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
-    if (mm_accel & MM_ACCEL_X86_MMXEXT) {
+#ifdef BUILD_MMXEXT_MAYBE
+    if ( CHECK_MMXEXT ) {
 #ifdef LOG
        fprintf (stderr, "Using MMXEXT for IDCT transform\n");
 #endif
@@ -292,7 +293,11 @@ void mpeg2_idct_init (uint32_t mm_accel)
        mpeg2_idct     = mpeg2_idct_mmxext;
        mpeg2_zero_block = mpeg2_zero_block_mmx;
        mpeg2_idct_mmx_init ();
-    } else if (mm_accel & MM_ACCEL_X86_MMX) {
+    } else
+#endif
+
+#ifdef BUILD_MMX_MAYBE
+    if ( CHECK_MMX ) {
 #ifdef LOG
        fprintf (stderr, "Using MMX for IDCT transform\n");
 #endif
@@ -303,6 +308,7 @@ void mpeg2_idct_init (uint32_t mm_accel)
        mpeg2_idct_mmx_init ();
     } else
 #endif
+
 #if defined (ARCH_PPC) && defined (ENABLE_ALTIVEC)
     if (mm_accel & MM_ACCEL_PPC_ALTIVEC) {
 #ifdef LOG
@@ -314,6 +320,7 @@ void mpeg2_idct_init (uint32_t mm_accel)
        mpeg2_idct       = mpeg2_idct_c;
     } else
 #endif
+
 #ifdef LIBMPEG2_MLIB
     if (mm_accel & MM_ACCEL_MLIB) {
        char * env_var;
diff -r 26351512648cf22745672d507b9913cf2f53be4d -r 
de77c978064fe3fd5c651872fc698138c4e919a9 src/libmpeg2/motion_comp.c
--- a/src/libmpeg2/motion_comp.c        Sat Jun 09 15:32:59 2007 +0200
+++ b/src/libmpeg2/motion_comp.c        Sat Jun 09 15:32:35 2007 +0200
@@ -27,11 +27,11 @@
 #include <inttypes.h>
 
 #include "mpeg2_internal.h"
-#include "xineutils.h"
+#include "cpu_accel.h"
 
 mpeg2_mc_t mpeg2_mc;
 
-void mpeg2_mc_init (uint32_t mm_accel)
+void mpeg2_mc_init ()
 {
 #ifdef LIBMPEG2_MLIB
     if (mm_accel & MM_ACCEL_MLIB) {
@@ -42,24 +42,33 @@ void mpeg2_mc_init (uint32_t mm_accel)
     }
 #endif
 
-#if defined(ARCH_X86) || defined(ARCH_X86_64)
-    if (mm_accel & MM_ACCEL_X86_MMXEXT) {
+#ifdef BUILD_MMXEXT_MAYBE
+    if ( CHECK_MMXEXT ) {
 #ifdef LOG
        fprintf (stderr, "Using MMXEXT for motion compensation\n");
 #endif
        mpeg2_mc = mpeg2_mc_mmxext;
-    } else if (mm_accel & MM_ACCEL_X86_3DNOW) {
+    } else
+#endif
+    
+#ifdef BUILD_3DNOW_MAYBE
+    if ( CHECK_3DNOW ) {
 #ifdef LOG
        fprintf (stderr, "Using 3DNOW for motion compensation\n");
 #endif
        mpeg2_mc = mpeg2_mc_3dnow;
-    } else if (mm_accel & MM_ACCEL_X86_MMX) {
+    } else
+#endif
+
+#ifdef BUILD_MMX_MAYBE
+    if ( CHECK_MMX ) {
 #ifdef LOG
        fprintf (stderr, "Using MMX for motion compensation\n");
 #endif
        mpeg2_mc = mpeg2_mc_mmx;
     } else
 #endif
+
 #if defined (ARCH_PPC) && defined (ENABLE_ALTIVEC)
     if (mm_accel & MM_ACCEL_PPC_ALTIVEC) {
 #ifdef LOG
diff -r 26351512648cf22745672d507b9913cf2f53be4d -r 
de77c978064fe3fd5c651872fc698138c4e919a9 src/libmpeg2/mpeg2_internal.h
--- a/src/libmpeg2/mpeg2_internal.h     Sat Jun 09 15:32:59 2007 +0200
+++ b/src/libmpeg2/mpeg2_internal.h     Sat Jun 09 15:32:35 2007 +0200
@@ -210,7 +210,7 @@ typedef struct cpu_state_s {
 /* cpu_state.c */
 extern void (* mpeg2_cpu_state_save) (cpu_state_t * state);
 extern void (* mpeg2_cpu_state_restore) (cpu_state_t * state);
-void mpeg2_cpu_state_init (uint32_t mm_accel);
+void mpeg2_cpu_state_init ();
 
 /* header.c */
 extern uint8_t mpeg2_scan_norm[64];
@@ -226,7 +226,7 @@ extern void (* mpeg2_idct_add) (int16_t 
 extern void (* mpeg2_idct_add) (int16_t * block, uint8_t * dest, int stride);
 extern void (* mpeg2_idct) (int16_t * block);
 extern void (* mpeg2_zero_block) (int16_t * block);
-void mpeg2_idct_init (uint32_t mm_accel);
+void mpeg2_idct_init ();
 
 /* idct_mlib.c */
 void mpeg2_idct_add_mlib (int16_t * block, uint8_t * dest, int stride);
@@ -261,7 +261,7 @@ void mpeg2_idct_altivec_init (void);
 void mpeg2_idct_altivec_init (void);
 
 /* motion_comp.c */
-void mpeg2_mc_init (uint32_t mm_accel);
+void mpeg2_mc_init ();
 
 typedef struct mpeg2_mc_s {
     void (* put [8]) (uint8_t * dst, uint8_t *, int32_t, int32_t);

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Xine-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xine-cvslog

Reply via email to