From: <fla...@gm...> - 2007-06-09 14:23:42
|
# HG changeset patch # User Diego 'Flameeyes' Pettenò <fla...@gm...> # 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() ) { |