summaryrefslogtreecommitdiff
path: root/src/post/deinterlace
diff options
context:
space:
mode:
Diffstat (limited to 'src/post/deinterlace')
-rw-r--r--src/post/deinterlace/plugins/greedy.c2
-rw-r--r--src/post/deinterlace/plugins/greedy2frame_template.c8
-rw-r--r--src/post/deinterlace/plugins/greedyh.asm2
-rw-r--r--src/post/deinterlace/plugins/linearblend.c10
-rw-r--r--src/post/deinterlace/plugins/tomsmocomp/TomsMoCompAll.inc2
-rw-r--r--src/post/deinterlace/plugins/vfir.c4
-rw-r--r--src/post/deinterlace/speedy.c44
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" );