diff options
Diffstat (limited to 'src/post/deinterlace')
-rw-r--r-- | src/post/deinterlace/plugins/greedy.c | 2 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/greedy2frame_template.c | 8 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/greedyh.asm | 2 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/linearblend.c | 10 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc | 2 | ||||
-rw-r--r-- | src/post/deinterlace/plugins/vfir.c | 4 | ||||
-rw-r--r-- | src/post/deinterlace/speedy.c | 44 |
7 files changed, 38 insertions, 34 deletions
diff --git a/src/post/deinterlace/plugins/greedy.c b/src/post/deinterlace/plugins/greedy.c index 9f0e313b9..fa157258f 100644 --- a/src/post/deinterlace/plugins/greedy.c +++ b/src/post/deinterlace/plugins/greedy.c @@ -64,7 +64,7 @@ static void deinterlace_greedy_packed422_scanline_mmxext( uint8_t *output, deinterlace_scanline_data_t *data, int width ) { -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) mmx_t MaxComb; uint8_t *m0 = data->m0; uint8_t *t1 = data->t1; diff --git a/src/post/deinterlace/plugins/greedy2frame_template.c b/src/post/deinterlace/plugins/greedy2frame_template.c index 7b68d6e46..42c575f58 100644 --- a/src/post/deinterlace/plugins/greedy2frame_template.c +++ b/src/post/deinterlace/plugins/greedy2frame_template.c @@ -1,5 +1,5 @@ /***************************************************************************** -** $Id: greedy2frame_template.c,v 1.8 2005/06/05 16:00:06 miguelfreitas Exp $ +** $Id: greedy2frame_template.c,v 1.9 2006/02/04 14:06:29 miguelfreitas Exp $ ****************************************************************************** ** Copyright (c) 2000 John Adcock, Tom Barry, Steve Grimm All rights reserved. ** port copyright (c) 2003 Miguel Freitas @@ -19,6 +19,10 @@ ** CVS Log ** ** $Log: greedy2frame_template.c,v $ +** Revision 1.9 2006/02/04 14:06:29 miguelfreitas +** Enable AMD64 mmx/sse support in some plugins (tvtime, libmpeg2, goom...) +** patch by dani3l +** ** Revision 1.8 2005/06/05 16:00:06 miguelfreitas ** quite some hacks for gcc 2.95 compatibility ** @@ -112,7 +116,7 @@ static void DeinterlaceGreedy2Frame_MMX(uint8_t *output, int outstride, int bottom_field, int second_field, int width, int height ) #endif { -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) int Line; int stride = width * 2; register uint8_t* M1; diff --git a/src/post/deinterlace/plugins/greedyh.asm b/src/post/deinterlace/plugins/greedyh.asm index a885b1dd3..0bbd745aa 100644 --- a/src/post/deinterlace/plugins/greedyh.asm +++ b/src/post/deinterlace/plugins/greedyh.asm @@ -323,7 +323,7 @@ static void FUNCT_NAME(uint8_t *output, int outstride, } // clear out the MMX registers ready for doing floating point again -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) __asm__ __volatile__ ("emms\n\t"); #endif } diff --git a/src/post/deinterlace/plugins/linearblend.c b/src/post/deinterlace/plugins/linearblend.c index d8ecacefc..3b65e381c 100644 --- a/src/post/deinterlace/plugins/linearblend.c +++ b/src/post/deinterlace/plugins/linearblend.c @@ -45,7 +45,7 @@ static void deinterlace_scanline_linear_blend( uint8_t *output, uint8_t *t0 = data->t0; uint8_t *b0 = data->b0; uint8_t *m1 = data->m1; -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) int i; // Get width in bytes. @@ -110,7 +110,7 @@ static void deinterlace_scanline_linear_blend2( uint8_t *output, uint8_t *t1 = data->t1; uint8_t *b1 = data->b1; -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) int i; // Get width in bytes. @@ -167,7 +167,7 @@ static void deinterlace_scanline_linear_blend2( uint8_t *output, #endif } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) /* MMXEXT version is about 15% faster with Athlon XP [MF] */ @@ -337,7 +337,7 @@ static deinterlace_method_t linearblendmethod = "BlurTemporal", */ 2, -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) MM_ACCEL_X86_MMX, #else 0, @@ -362,7 +362,7 @@ static deinterlace_method_t linearblendmethod = deinterlace_method_t *linearblend_get_method( void ) { -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) if( xine_mm_accel() & MM_ACCEL_X86_MMXEXT ) return &linearblendmethod_mmxext; else diff --git a/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc b/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc index 0fd3f451f..5870d77be 100644 --- a/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc +++ b/src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc @@ -246,7 +246,7 @@ static void FUNCT_NAME(uint8_t *output, int outstride, } end: -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) __asm__ __volatile__("emms"); #endif return; diff --git a/src/post/deinterlace/plugins/vfir.c b/src/post/deinterlace/plugins/vfir.c index 6809b2244..3bf03a4a0 100644 --- a/src/post/deinterlace/plugins/vfir.c +++ b/src/post/deinterlace/plugins/vfir.c @@ -51,7 +51,7 @@ static void deinterlace_line( uint8_t *dst, uint8_t *lum_m4, uint8_t *lum_m3, uint8_t *lum_m2, uint8_t *lum_m1, uint8_t *lum, int size ) { -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) mmx_t rounder; rounder.uw[0]=4; @@ -137,7 +137,7 @@ static deinterlace_method_t vfirmethod = "BlurVertical", */ 1, -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) MM_ACCEL_X86_MMXEXT, #else 0, diff --git a/src/post/deinterlace/speedy.c b/src/post/deinterlace/speedy.c index 4d3b9710a..0cf07258b 100644 --- a/src/post/deinterlace/speedy.c +++ b/src/post/deinterlace/speedy.c @@ -178,7 +178,7 @@ static inline __attribute__ ((always_inline,const)) uint8_t clip255( int x ) static unsigned long CombJaggieThreshold = 73; -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static unsigned int comb_factor_packed422_scanline_mmx( uint8_t *top, uint8_t *mid, uint8_t *bot, int width ) { @@ -304,7 +304,7 @@ static unsigned int diff_factor_packed422_scanline_test_c( uint8_t *cur, uint8_t } */ -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static unsigned int diff_factor_packed422_scanline_mmx( uint8_t *cur, uint8_t *old, int width ) { const mmx_t qwYMask = { 0x00ff00ff00ff00ffULL }; @@ -345,7 +345,7 @@ static unsigned int diff_factor_packed422_scanline_mmx( uint8_t *cur, uint8_t *o #define ABS(a) (((a) < 0)?-(a):(a)) -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void diff_packed422_block8x8_mmx( pulldown_metrics_t *m, uint8_t *old, uint8_t *new, int os, int ns ) { @@ -586,7 +586,7 @@ static void packed422_to_packed444_rec601_scanline_c( uint8_t *dest, uint8_t *sr } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void vfilter_chroma_121_packed422_scanline_mmx( uint8_t *output, int width, uint8_t *m, uint8_t *t, uint8_t *b ) { @@ -652,7 +652,7 @@ static void vfilter_chroma_121_packed422_scanline_c( uint8_t *output, int width, } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void vfilter_chroma_332_packed422_scanline_mmx( uint8_t *output, int width, uint8_t *m, uint8_t *t, uint8_t *b ) { @@ -726,7 +726,7 @@ static void vfilter_chroma_332_packed422_scanline_c( uint8_t *output, int width, } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void kill_chroma_packed422_inplace_scanline_mmx( uint8_t *data, int width ) { const mmx_t ymask = { 0x00ff00ff00ff00ffULL }; @@ -758,7 +758,7 @@ static void kill_chroma_packed422_inplace_scanline_c( uint8_t *data, int width ) } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void invert_colour_packed422_inplace_scanline_mmx( uint8_t *data, int width ) { const mmx_t allones = { 0xffffffffffffffffULL }; @@ -885,7 +885,7 @@ static void interpolate_packed422_scanline_c( uint8_t *output, uint8_t *top, } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void interpolate_packed422_scanline_mmx( uint8_t *output, uint8_t *top, uint8_t *bot, int width ) { @@ -955,7 +955,7 @@ static void interpolate_packed422_scanline_mmx( uint8_t *output, uint8_t *top, } #endif -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void interpolate_packed422_scanline_mmxext( uint8_t *output, uint8_t *top, uint8_t *bot, int width ) { @@ -1015,7 +1015,7 @@ static void blit_colour_packed422_scanline_c( uint8_t *output, int width, int y, } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void blit_colour_packed422_scanline_mmx( uint8_t *output, int width, int y, int cb, int cr ) { uint32_t colour = cr << 24 | y << 16 | cb << 8 | y; @@ -1055,7 +1055,7 @@ static void blit_colour_packed422_scanline_mmx( uint8_t *output, int width, int } #endif -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void blit_colour_packed422_scanline_mmxext( uint8_t *output, int width, int y, int cb, int cr ) { uint32_t colour = cr << 24 | y << 16 | cb << 8 | y; @@ -1109,7 +1109,7 @@ static void blit_colour_packed4444_scanline_c( uint8_t *output, int width, } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void blit_colour_packed4444_scanline_mmx( uint8_t *output, int width, int alpha, int luma, int cb, int cr ) @@ -1146,7 +1146,7 @@ static void blit_colour_packed4444_scanline_mmx( uint8_t *output, int width, } #endif -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void blit_colour_packed4444_scanline_mmxext( uint8_t *output, int width, int alpha, int luma, int cb, int cr ) @@ -1195,14 +1195,14 @@ static void blit_packed422_scanline_c( uint8_t *dest, const uint8_t *src, int wi speedy_memcpy_c( dest, src, width*2 ); } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void blit_packed422_scanline_mmx( uint8_t *dest, const uint8_t *src, int width ) { speedy_memcpy_mmx( dest, src, width*2 ); } #endif -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void blit_packed422_scanline_mmxext( uint8_t *dest, const uint8_t *src, int width ) { speedy_memcpy_mmxext( dest, src, width*2 ); @@ -1267,7 +1267,7 @@ static void composite_packed4444_alpha_to_packed422_scanline_c( uint8_t *output, } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void composite_packed4444_alpha_to_packed422_scanline_mmxext( uint8_t *output, uint8_t *input, uint8_t *foreground, @@ -1409,7 +1409,7 @@ static void composite_packed4444_to_packed422_scanline_c( uint8_t *output, uint8 } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void composite_packed4444_to_packed422_scanline_mmxext( uint8_t *output, uint8_t *input, uint8_t *foreground, int width ) { @@ -1543,7 +1543,7 @@ static void composite_alphamask_to_packed4444_scanline_c( uint8_t *output, } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void composite_alphamask_to_packed4444_scanline_mmxext( uint8_t *output, uint8_t *input, uint8_t *mask, @@ -1691,7 +1691,7 @@ static void premultiply_packed4444_scanline_c( uint8_t *output, uint8_t *input, } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void premultiply_packed4444_scanline_mmxext( uint8_t *output, uint8_t *input, int width ) { const mmx_t round = { 0x0080008000800080ULL }; @@ -1747,7 +1747,7 @@ static void blend_packed422_scanline_c( uint8_t *output, uint8_t *src1, } } -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void blend_packed422_scanline_mmxext( uint8_t *output, uint8_t *src1, uint8_t *src2, int width, int pos ) { @@ -1792,7 +1792,7 @@ static void blend_packed422_scanline_mmxext( uint8_t *output, uint8_t *src1, } #endif -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) static void quarter_blit_vertical_packed422_scanline_mmxext( uint8_t *output, uint8_t *one, uint8_t *three, int width ) { @@ -2414,7 +2414,7 @@ void setup_speedy_calls( uint32_t accel, int verbose ) vfilter_chroma_121_packed422_scanline = vfilter_chroma_121_packed422_scanline_c; vfilter_chroma_332_packed422_scanline = vfilter_chroma_332_packed422_scanline_c; -#ifdef ARCH_X86 +#if defined(ARCH_X86) || defined(ARCH_X86_64) if( speedy_accel & MM_ACCEL_X86_MMXEXT ) { if( verbose ) { printf( "speedycode: Using MMXEXT optimized functions.\n" ); |