X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmodules%2Fxine%2Fdeinterlace.c;h=4a99e94337559e355e8b5ca4215696a64365a1ed;hb=4fc3fa1bf4116848c423837437d75f103cdd0154;hp=60139e00c27a8dcf3556529a6006223c9c452c95;hpb=2e4eb8e703760fb408f86152451aeaf425f6a579;p=melted diff --git a/src/modules/xine/deinterlace.c b/src/modules/xine/deinterlace.c index 60139e0..4a99e94 100644 --- a/src/modules/xine/deinterlace.c +++ b/src/modules/xine/deinterlace.c @@ -36,6 +36,7 @@ #include "xineutils.h" #define xine_fast_memcpy memcpy +#define xine_fast_memmove memmove /* DeinterlaceFieldBob algorithm @@ -46,7 +47,7 @@ static void deinterlace_bob_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], int width, int height ) { -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#ifdef USE_MMX int Line; uint64_t *YVal1; uint64_t *YVal2; @@ -190,7 +191,7 @@ static void deinterlace_bob_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], static int deinterlace_weave_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], int width, int height ) { -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#ifdef USE_MMX int Line; uint64_t *YVal1; @@ -389,7 +390,7 @@ static int deinterlace_weave_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], static int deinterlace_greedy_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], int width, int height ) { -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#ifdef USE_MMX int Line; int LoopCtr; uint64_t *L1; // ptr to Line1, of 3 @@ -552,7 +553,7 @@ static int deinterlace_greedy_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], static void deinterlace_onefield_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], int width, int height ) { -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#ifdef USE_MMX int Line; uint64_t *YVal1; uint64_t *YVal3; @@ -633,7 +634,7 @@ static void deinterlace_onefield_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], static void deinterlace_linearblend_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], int width, int height ) { -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#ifdef USE_MMX int Line; uint64_t *YVal1; uint64_t *YVal2; @@ -644,7 +645,7 @@ static void deinterlace_linearblend_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], int n; /* Copy first line */ - xine_fast_memcpy(pdst, psrc[0], LineLength); + xine_fast_memmove(pdst, psrc[0], LineLength); for (Line = 1; Line < height - 1; ++Line) { @@ -694,7 +695,7 @@ static void deinterlace_linearblend_yuv_mmx( uint8_t *pdst, uint8_t *psrc[], } /* Copy last line */ - xine_fast_memcpy(pdst + Line * LineLength, + xine_fast_memmove(pdst + Line * LineLength, psrc[0] + Line * LineLength, LineLength); /* clear out the MMX registers ready for doing floating point @@ -753,7 +754,7 @@ static void deinterlace_linearblend_yuv( uint8_t *pdst, uint8_t *psrc[], static int check_for_mmx(void) { -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#ifdef USE_MMX static int config_flags = -1; if ( config_flags == -1 ) @@ -820,7 +821,7 @@ void deinterlace_yuv( uint8_t *pdst, uint8_t *psrc[], deinterlace_linearblend_yuv(pdst,psrc,width,height); break; default: - lprintf("unknow method %d.\n",method); + lprintf("unknown method %d.\n",method); break; } } @@ -845,8 +846,8 @@ int deinterlace_yuv_supported ( int method ) return 0; } -char *deinterlace_methods[] = { - "none", +const char *deinterlace_methods[] = { + "none", "bob", "weave", "greedy",