# HG changeset patch
# User Diego 'Flameeyes' Pettenò <[EMAIL PROTECTED]>
# Date 1181399031 -7200
# Node ID 3a4f5594f404c9d8050a4328ca623961eead7e25
# Parent fb2c63b1438ee6ca875aa64ec4d1800cc36e57ea
Complete deinterlacers port.
diff -r 3a4f5594f404c9d8050a4328ca623961eead7e25 -r
fb2c63b1438ee6ca875aa64ec4d1800cc36e57ea
src/post/deinterlace/plugins/kdetv_tomsmocomp.c
--- a/src/post/deinterlace/plugins/kdetv_tomsmocomp.c Sat Jun 09 16:23:51
2007 +0200
+++ b/src/post/deinterlace/plugins/kdetv_tomsmocomp.c Sat Jun 09 16:03:22
2007 +0200
@@ -33,12 +33,13 @@
#include "attributes.h"
#include "xineutils.h"
+#include "cpu_accel.h"
#include "deinterlace.h"
#include "speedtools.h"
#include "speedy.h"
#include "plugins.h"
-#if defined (ARCH_X86) || defined (ARCH_X86_64)
+#if defined(BUILD_SSE_MAYBE) || defined(BUILD_3DNOW_MAYBE) ||
defined(BUILD_MMX_MAYBE)
static int Fieldcopy(void *dest, const void *src, size_t count,
int rows, int dst_pitch, int src_pitch)
@@ -65,7 +66,7 @@ static long SearchEffort=SearchEffortDef
static long SearchEffort=SearchEffortDefault;
static int UseStrangeBob=UseStrangeBobDefault;
-
+#ifdef BUILD_MMX_MAYBE
#define IS_MMX
#define SSE_TYPE MMX
#define FUNCT_NAME tomsmocomp_filter_mmx
@@ -73,7 +74,9 @@ static int UseStrangeBob=UseStrangeBobDe
#undef IS_MMX
#undef SSE_TYPE
#undef FUNCT_NAME
+#endif
+#ifdef BUILD_3DNOW_MAYBE
#define IS_3DNOW
#define SSE_TYPE 3DNOW
#define FUNCT_NAME tomsmocomp_filter_3dnow
@@ -81,7 +84,9 @@ static int UseStrangeBob=UseStrangeBobDe
#undef IS_3DNOW
#undef SSE_TYPE
#undef FUNCT_NAME
+#endif
+#ifdef BUILD_SSE_MAYBE
#define IS_SSE
#define SSE_TYPE SSE
#define FUNCT_NAME tomsmocomp_filter_sse
@@ -89,7 +94,6 @@ static int UseStrangeBob=UseStrangeBobDe
#undef IS_SSE
#undef SSE_TYPE
#undef FUNCT_NAME
-
#endif
static void deinterlace_frame_di_tomsmocomp( uint8_t *output, int outstride,
@@ -97,22 +101,29 @@ static void deinterlace_frame_di_tomsmoc
int bottom_field, int
second_field,
int width, int height )
{
-#if defined (ARCH_X86) || defined (ARCH_X86_64)
-
- if( xine_mm_accel() & MM_ACCEL_X86_MMXEXT ) {
+#ifdef BUILD_SSE_MAYBE
+ if( CHECK_SSE ) {
tomsmocomp_filter_sse( output, outstride, data,
bottom_field, second_field,
width, height );
- } else if( xine_mm_accel() & MM_ACCEL_X86_3DNOW ) {
+ return;
+ }
+#endif
+#ifdef BUILD_3DNOW_MAYBE
+ if( CHECK_3DNOW ) {
tomsmocomp_filter_3dnow( output, outstride, data,
bottom_field, second_field,
width, height );
- } else {
+ return;
+ }
+#endif
+#ifdef BUILD_MMX_MAYBE
+ if ( CHECK_MMX ) {
tomsmocomp_filter_mmx( output, outstride, data,
bottom_field, second_field,
width, height );
+ return;
}
-
#endif
}
@@ -145,3 +156,5 @@ deinterlace_method_t *dscaler_tomsmocomp
return &tomsmocompmethod;
}
+#endif
+
diff -r 3a4f5594f404c9d8050a4328ca623961eead7e25 -r
fb2c63b1438ee6ca875aa64ec4d1800cc36e57ea src/post/deinterlace/plugins/plugins.h
--- a/src/post/deinterlace/plugins/plugins.h Sat Jun 09 16:23:51 2007 +0200
+++ b/src/post/deinterlace/plugins/plugins.h Sat Jun 09 16:03:22 2007 +0200
@@ -41,8 +41,8 @@ deinterlace_method_t *scalerbob_get_meth
deinterlace_method_t *scalerbob_get_method( void );
deinterlace_method_t *linearblend_get_method( void );
deinterlace_method_t *vfir_get_method( void );
+#if defined(BUILD_SSE_MAYBE) || defined(BUILD_3DNOW_MAYBE) ||
defined(BUILD_MMX_MAYBE)
deinterlace_method_t *dscaler_tomsmocomp_get_method( void );
-#if defined(BUILD_SSE_MAYBE) || defined(BUILD_3DNOW_MAYBE) ||
defined(BUILD_MMX_MAYBE)
deinterlace_method_t *dscaler_greedyh_get_method( void );
#endif
deinterlace_method_t *greedy_get_method( void );
diff -r 3a4f5594f404c9d8050a4328ca623961eead7e25 -r
fb2c63b1438ee6ca875aa64ec4d1800cc36e57ea src/post/deinterlace/speedy.c
--- a/src/post/deinterlace/speedy.c Sat Jun 09 16:23:51 2007 +0200
+++ b/src/post/deinterlace/speedy.c Sat Jun 09 16:03:22 2007 +0200
@@ -64,6 +64,7 @@
#include "attributes.h"
#include "xineutils.h"
+#include "cpu_accel.h"
#include "speedtools.h"
#include "speedy.h"
diff -r 3a4f5594f404c9d8050a4328ca623961eead7e25 -r
fb2c63b1438ee6ca875aa64ec4d1800cc36e57ea src/post/deinterlace/xine_plugin.c
--- a/src/post/deinterlace/xine_plugin.c Sat Jun 09 16:23:51 2007 +0200
+++ b/src/post/deinterlace/xine_plugin.c Sat Jun 09 16:03:22 2007 +0200
@@ -32,6 +32,7 @@
#include "xine_internal.h"
#include "post.h"
#include "xineutils.h"
+#include "cpu_accel.h"
#include "xine_buffer.h"
#include <pthread.h>
@@ -320,8 +321,8 @@ static void *deinterlace_init_plugin(xin
register_deinterlace_method( scalerbob_get_method() );
#if defined(BUILD_SSE_MAYBE) || defined(BUILD_3DNOW_MAYBE) ||
defined(BUILD_MMX_MAYBE)
register_deinterlace_method( dscaler_greedyh_get_method() );
+ register_deinterlace_method( dscaler_tomsmocomp_get_method() );
#endif
- register_deinterlace_method( dscaler_tomsmocomp_get_method() );
filter_deinterlace_methods( config_flags, 5 /*fieldsavailable*/ );
if( !get_num_deinterlace_methods() ) {
-------------------------------------------------------------------------
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