From b63f641e9b2aeb0656288f8b16cea272ac890c22 Mon Sep 17 00:00:00 2001 From: Aurelien Jacobs Date: Wed, 14 Jan 2009 00:13:56 +0000 Subject: Change semantic of CONFIG_*, HAVE_* and ARCH_*. They are now always defined to either 0 or 1. Originally committed as revision 28311 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale --- libswscale/rgb2rgb.c | 32 +++++------ libswscale/rgb2rgb_template.c | 122 +++++++++++++++++++++--------------------- libswscale/swscale-example.c | 4 +- libswscale/swscale.c | 99 +++++++++++++++++++--------------- libswscale/swscale_internal.h | 10 ++-- libswscale/swscale_template.c | 86 ++++++++++++++--------------- libswscale/yuv2rgb.c | 22 ++++---- libswscale/yuv2rgb_template.c | 6 +-- 8 files changed, 195 insertions(+), 186 deletions(-) diff --git a/libswscale/rgb2rgb.c b/libswscale/rgb2rgb.c index ac452a008a..5b79fea761 100644 --- a/libswscale/rgb2rgb.c +++ b/libswscale/rgb2rgb.c @@ -88,7 +88,7 @@ void (*yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint8_t *sr long srcStride1, long srcStride2, long srcStride3, long dstStride); -#if defined(ARCH_X86) && defined(CONFIG_GPL) +#if ARCH_X86 && CONFIG_GPL DECLARE_ASM_CONST(8, uint64_t, mmx_null) = 0x0000000000000000ULL; DECLARE_ASM_CONST(8, uint64_t, mmx_one) = 0xFFFFFFFFFFFFFFFFULL; DECLARE_ASM_CONST(8, uint64_t, mask32b) = 0x000000FF000000FFULL; @@ -122,7 +122,7 @@ DECLARE_ASM_CONST(8, uint64_t, blue_16mask) = 0x0000001f0000001fULL; DECLARE_ASM_CONST(8, uint64_t, red_15mask) = 0x00007c0000007c00ULL; DECLARE_ASM_CONST(8, uint64_t, green_15mask) = 0x000003e0000003e0ULL; DECLARE_ASM_CONST(8, uint64_t, blue_15mask) = 0x0000001f0000001fULL; -#endif /* defined(ARCH_X86) */ +#endif /* ARCH_X86 */ #define RGB2YUV_SHIFT 8 #define BY ((int)( 0.098*(1<>1; for (y=0; y>1; for (y=0; y>1; for (y=0; y>1; for (y=0; y>1; -#ifdef HAVE_MMX +#if HAVE_MMX for (y=0; y>1); uint8_t* d=dst1+dstStride1*y; x=0; -#ifdef HAVE_MMX +#if HAVE_MMX for (;x>1); uint8_t* d=dst2+dstStride2*y; x=0; -#ifdef HAVE_MMX +#if HAVE_MMX for (;x>2); uint8_t* d=dst+dstStride*y; x=0; -#ifdef HAVE_MMX +#if HAVE_MMX for (;x #include "config.h" #include -#ifdef HAVE_SYS_MMAN_H +#if HAVE_SYS_MMAN_H #include #if defined(MAP_ANON) && !defined(MAP_ANONYMOUS) #define MAP_ANONYMOUS MAP_ANON @@ -202,7 +202,7 @@ add BGR4 output support write special BGR->BGR scaler */ -#if defined(ARCH_X86) && defined (CONFIG_GPL) +#if ARCH_X86 && CONFIG_GPL DECLARE_ASM_CONST(8, uint64_t, bF8)= 0xF8F8F8F8F8F8F8F8LL; DECLARE_ASM_CONST(8, uint64_t, bFC)= 0xFCFCFCFCFCFCFCFCLL; DECLARE_ASM_CONST(8, uint64_t, w10)= 0x0010001000100010LL; @@ -257,7 +257,7 @@ DECLARE_ASM_CONST(8, uint64_t, ff_bgr24toUV[2][4]) = { DECLARE_ASM_CONST(8, uint64_t, ff_bgr24toUVOffset)= 0x0040400000404000ULL; -#endif /* defined(ARCH_X86) */ +#endif /* ARCH_X86 */ // clipping helper table for C implementations: static unsigned char clip_table[768]; @@ -947,27 +947,27 @@ static inline void yuv2rgbXinC_full(SwsContext *c, int16_t *lumFilter, int16_t * //Note: we have C, X86, MMX, MMX2, 3DNOW version therse no 3DNOW+MMX2 one //Plain C versions -#if !defined (HAVE_MMX) || defined (RUNTIME_CPUDETECT) || !defined(CONFIG_GPL) +#if !HAVE_MMX || defined (RUNTIME_CPUDETECT) || !CONFIG_GPL #define COMPILE_C #endif -#ifdef ARCH_PPC -#if (defined (HAVE_ALTIVEC) || defined (RUNTIME_CPUDETECT)) && defined (CONFIG_GPL) +#if ARCH_PPC +#if (HAVE_ALTIVEC || defined (RUNTIME_CPUDETECT)) && CONFIG_GPL #define COMPILE_ALTIVEC #endif //HAVE_ALTIVEC #endif //ARCH_PPC -#if defined(ARCH_X86) +#if ARCH_X86 -#if ((defined (HAVE_MMX) && !defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT)) && defined (CONFIG_GPL) +#if ((HAVE_MMX && !HAVE_3DNOW && !HAVE_MMX2) || defined (RUNTIME_CPUDETECT)) && CONFIG_GPL #define COMPILE_MMX #endif -#if (defined (HAVE_MMX2) || defined (RUNTIME_CPUDETECT)) && defined (CONFIG_GPL) +#if (HAVE_MMX2 || defined (RUNTIME_CPUDETECT)) && CONFIG_GPL #define COMPILE_MMX2 #endif -#if ((defined (HAVE_3DNOW) && !defined (HAVE_MMX2)) || defined (RUNTIME_CPUDETECT)) && defined (CONFIG_GPL) +#if ((HAVE_3DNOW && !HAVE_MMX2) || defined (RUNTIME_CPUDETECT)) && CONFIG_GPL #define COMPILE_3DNOW #endif #endif //ARCH_X86 || ARCH_X86_64 @@ -975,24 +975,26 @@ static inline void yuv2rgbXinC_full(SwsContext *c, int16_t *lumFilter, int16_t * #undef HAVE_MMX #undef HAVE_MMX2 #undef HAVE_3DNOW +#undef HAVE_ALTIVEC +#define HAVE_MMX 0 +#define HAVE_MMX2 0 +#define HAVE_3DNOW 0 +#define HAVE_ALTIVEC 0 #ifdef COMPILE_C -#undef HAVE_MMX -#undef HAVE_MMX2 -#undef HAVE_3DNOW -#undef HAVE_ALTIVEC #define RENAME(a) a ## _C #include "swscale_template.c" #endif #ifdef COMPILE_ALTIVEC #undef RENAME -#define HAVE_ALTIVEC +#undef HAVE_ALTIVEC +#define HAVE_ALTIVEC 1 #define RENAME(a) a ## _altivec #include "swscale_template.c" #endif -#if defined(ARCH_X86) +#if ARCH_X86 //X86 versions /* @@ -1007,9 +1009,12 @@ static inline void yuv2rgbXinC_full(SwsContext *c, int16_t *lumFilter, int16_t * //MMX versions #ifdef COMPILE_MMX #undef RENAME -#define HAVE_MMX +#undef HAVE_MMX #undef HAVE_MMX2 #undef HAVE_3DNOW +#define HAVE_MMX 1 +#define HAVE_MMX2 0 +#define HAVE_3DNOW 0 #define RENAME(a) a ## _MMX #include "swscale_template.c" #endif @@ -1017,9 +1022,12 @@ static inline void yuv2rgbXinC_full(SwsContext *c, int16_t *lumFilter, int16_t * //MMX2 versions #ifdef COMPILE_MMX2 #undef RENAME -#define HAVE_MMX -#define HAVE_MMX2 +#undef HAVE_MMX +#undef HAVE_MMX2 #undef HAVE_3DNOW +#define HAVE_MMX 1 +#define HAVE_MMX2 1 +#define HAVE_3DNOW 0 #define RENAME(a) a ## _MMX2 #include "swscale_template.c" #endif @@ -1027,9 +1035,12 @@ static inline void yuv2rgbXinC_full(SwsContext *c, int16_t *lumFilter, int16_t * //3DNOW versions #ifdef COMPILE_3DNOW #undef RENAME -#define HAVE_MMX +#undef HAVE_MMX #undef HAVE_MMX2 -#define HAVE_3DNOW +#undef HAVE_3DNOW +#define HAVE_MMX 1 +#define HAVE_MMX2 0 +#define HAVE_3DNOW 1 #define RENAME(a) a ## _3DNow #include "swscale_template.c" #endif @@ -1061,7 +1072,7 @@ static inline int initFilter(int16_t **outFilter, int16_t **filterPos, int *outF int64_t *filter2=NULL; const int64_t fone= 1LL<<54; int ret= -1; -#if defined(ARCH_X86) +#if ARCH_X86 if (flags & SWS_CPU_CAPS_MMX) __asm__ volatile("emms\n\t"::: "memory"); //FIXME this should not be required but it IS (even for non-MMX versions) #endif @@ -1617,8 +1628,8 @@ static void globalInit(void){ static SwsFunc getSwsFunc(int flags){ -#if defined(RUNTIME_CPUDETECT) && defined (CONFIG_GPL) -#if defined(ARCH_X86) +#if defined(RUNTIME_CPUDETECT) && CONFIG_GPL +#if ARCH_X86 // ordered per speed fastest first if (flags & SWS_CPU_CAPS_MMX2) return swScale_MMX2; @@ -1630,22 +1641,22 @@ static SwsFunc getSwsFunc(int flags){ return swScale_C; #else -#ifdef ARCH_PPC +#if ARCH_PPC if (flags & SWS_CPU_CAPS_ALTIVEC) return swScale_altivec; else return swScale_C; #endif return swScale_C; -#endif /* defined(ARCH_X86) */ +#endif /* ARCH_X86 */ #else //RUNTIME_CPUDETECT -#ifdef HAVE_MMX2 +#if HAVE_MMX2 return swScale_MMX2; -#elif defined (HAVE_3DNOW) +#elif HAVE_3DNOW return swScale_3DNow; -#elif defined (HAVE_MMX) +#elif HAVE_MMX return swScale_MMX; -#elif defined (HAVE_ALTIVEC) +#elif HAVE_ALTIVEC return swScale_altivec; #else return swScale_C; @@ -2169,22 +2180,22 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d int unscaled, needsDither; int srcRange, dstRange; SwsFilter dummyFilter= {NULL, NULL, NULL, NULL}; -#if defined(ARCH_X86) +#if ARCH_X86 if (flags & SWS_CPU_CAPS_MMX) __asm__ volatile("emms\n\t"::: "memory"); #endif -#if !defined(RUNTIME_CPUDETECT) || !defined (CONFIG_GPL) //ensure that the flags match the compiled variant if cpudetect is off +#if !defined(RUNTIME_CPUDETECT) || !CONFIG_GPL //ensure that the flags match the compiled variant if cpudetect is off flags &= ~(SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_MMX2|SWS_CPU_CAPS_3DNOW|SWS_CPU_CAPS_ALTIVEC|SWS_CPU_CAPS_BFIN); -#ifdef HAVE_MMX2 +#if HAVE_MMX2 flags |= SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_MMX2; -#elif defined (HAVE_3DNOW) +#elif HAVE_3DNOW flags |= SWS_CPU_CAPS_MMX|SWS_CPU_CAPS_3DNOW; -#elif defined (HAVE_MMX) +#elif HAVE_MMX flags |= SWS_CPU_CAPS_MMX; -#elif defined (HAVE_ALTIVEC) +#elif HAVE_ALTIVEC flags |= SWS_CPU_CAPS_ALTIVEC; -#elif defined (ARCH_BFIN) +#elif ARCH_BFIN flags |= SWS_CPU_CAPS_BFIN; #endif #endif /* RUNTIME_CPUDETECT */ @@ -2311,7 +2322,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d { c->swScale= PlanarToNV12Wrapper; } -#ifdef CONFIG_GPL +#if CONFIG_GPL /* yuv2bgr */ if ((srcFormat==PIX_FMT_YUV420P || srcFormat==PIX_FMT_YUV422P) && (isBGR(dstFormat) || isRGB(dstFormat)) && !(flags & SWS_ACCURATE_RND) && !(dstH&1)) @@ -2410,7 +2421,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d c->swScale= gray16swap; } -#ifdef ARCH_BFIN +#if ARCH_BFIN if (flags & SWS_CPU_CAPS_BFIN) ff_bfin_get_unscaled_swscale (c); #endif @@ -2518,7 +2529,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d (flags&SWS_BICUBLIN) ? (flags|SWS_BILINEAR) : flags, srcFilter->chrV, dstFilter->chrV, c->param); -#ifdef HAVE_ALTIVEC +#if HAVE_ALTIVEC c->vYCoeffsBank = av_malloc(sizeof (vector signed short)*c->vLumFilterSize*c->dstH); c->vCCoeffsBank = av_malloc(sizeof (vector signed short)*c->vChrFilterSize*c->chrDstH); @@ -2648,7 +2659,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d } else { -#if defined(ARCH_X86) +#if ARCH_X86 av_log(c, AV_LOG_VERBOSE, "using X86-Asm scaler for horizontal scaling\n"); #else if (flags & SWS_FAST_BILINEAR) @@ -3115,7 +3126,7 @@ void sws_freeContext(SwsContext *c){ av_freep(&c->vChrFilter); av_freep(&c->hLumFilter); av_freep(&c->hChrFilter); -#ifdef HAVE_ALTIVEC +#if HAVE_ALTIVEC av_freep(&c->vYCoeffsBank); av_freep(&c->vCCoeffsBank); #endif @@ -3125,7 +3136,7 @@ void sws_freeContext(SwsContext *c){ av_freep(&c->hLumFilterPos); av_freep(&c->hChrFilterPos); -#if defined(ARCH_X86) && defined(CONFIG_GPL) +#if ARCH_X86 && CONFIG_GPL #ifdef MAP_ANONYMOUS if (c->funnyYCode) munmap(c->funnyYCode, MAX_FUNNY_CODE_SIZE); if (c->funnyUVCode) munmap(c->funnyUVCode, MAX_FUNNY_CODE_SIZE); @@ -3135,7 +3146,7 @@ void sws_freeContext(SwsContext *c){ #endif c->funnyYCode=NULL; c->funnyUVCode=NULL; -#endif /* defined(ARCH_X86) */ +#endif /* ARCH_X86 */ av_freep(&c->lumMmx2Filter); av_freep(&c->chrMmx2Filter); diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index 48995571e0..b2505c0f7d 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -23,7 +23,7 @@ #include "config.h" -#ifdef HAVE_ALTIVEC_H +#if HAVE_ALTIVEC_H #include #endif @@ -42,7 +42,7 @@ #define ALT32_CORR 1 #endif -#ifdef ARCH_X86_64 +#if ARCH_X86_64 # define APCK_PTR2 8 # define APCK_COEF 16 # define APCK_SIZE 24 @@ -175,7 +175,7 @@ typedef struct SwsContext{ uint64_t u_temp __attribute__((aligned(8))); uint64_t v_temp __attribute__((aligned(8))); -#ifdef HAVE_ALTIVEC +#if HAVE_ALTIVEC vector signed short CY; vector signed short CRV; @@ -189,7 +189,7 @@ typedef struct SwsContext{ #endif -#ifdef ARCH_BFIN +#if ARCH_BFIN uint32_t oy __attribute__((aligned(4))); uint32_t oc __attribute__((aligned(4))); uint32_t zero __attribute__((aligned(4))); @@ -203,7 +203,7 @@ typedef struct SwsContext{ uint32_t gmask __attribute__((aligned(4))); #endif -#ifdef HAVE_VIS +#if HAVE_VIS uint64_t sparc_coeffs[10] __attribute__((aligned(8))); #endif diff --git a/libswscale/swscale_template.c b/libswscale/swscale_template.c index 4c8bc6e066..2144b5a57c 100644 --- a/libswscale/swscale_template.c +++ b/libswscale/swscale_template.c @@ -29,17 +29,17 @@ #undef EMMS #undef SFENCE -#ifdef HAVE_3DNOW +#if HAVE_3DNOW /* On K6 femms is faster than emms. On K7 femms is directly mapped to emms. */ #define EMMS "femms" #else #define EMMS "emms" #endif -#ifdef HAVE_3DNOW +#if HAVE_3DNOW #define PREFETCH "prefetch" #define PREFETCHW "prefetchw" -#elif defined (HAVE_MMX2) +#elif HAVE_MMX2 #define PREFETCH "prefetchnta" #define PREFETCHW "prefetcht0" #else @@ -47,26 +47,26 @@ #define PREFETCHW " # nop" #endif -#ifdef HAVE_MMX2 +#if HAVE_MMX2 #define SFENCE "sfence" #else #define SFENCE " # nop" #endif -#ifdef HAVE_MMX2 +#if HAVE_MMX2 #define PAVGB(a,b) "pavgb " #a ", " #b " \n\t" -#elif defined (HAVE_3DNOW) +#elif HAVE_3DNOW #define PAVGB(a,b) "pavgusb " #a ", " #b " \n\t" #endif -#ifdef HAVE_MMX2 +#if HAVE_MMX2 #define REAL_MOVNTQ(a,b) "movntq " #a ", " #b " \n\t" #else #define REAL_MOVNTQ(a,b) "movq " #a ", " #b " \n\t" #endif #define MOVNTQ(a,b) REAL_MOVNTQ(a,b) -#ifdef HAVE_ALTIVEC +#if HAVE_ALTIVEC #include "swscale_altivec_template.c" #endif @@ -865,7 +865,7 @@ "cmp "#dstw", "#index" \n\t"\ " jb 1b \n\t" -#ifdef HAVE_MMX2 +#if HAVE_MMX2 #undef WRITEBGR24 #define WRITEBGR24(dst, dstw, index) WRITEBGR24MMX2(dst, dstw, index) #else @@ -895,7 +895,7 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, int16_t *lumFilter, int16_t * int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize, uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW) { -#ifdef HAVE_MMX +#if HAVE_MMX if(!(c->flags & SWS_BITEXACT)){ if (c->flags & SWS_ACCURATE_RND){ if (uDest){ @@ -915,7 +915,7 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, int16_t *lumFilter, int16_t * return; } #endif -#ifdef HAVE_ALTIVEC +#if HAVE_ALTIVEC yuv2yuvX_altivec_real(lumFilter, lumSrc, lumFilterSize, chrFilter, chrSrc, chrFilterSize, dest, uDest, vDest, dstW, chrDstW); @@ -939,7 +939,7 @@ static inline void RENAME(yuv2yuv1)(SwsContext *c, int16_t *lumSrc, int16_t *chr uint8_t *dest, uint8_t *uDest, uint8_t *vDest, long dstW, long chrDstW) { int i; -#ifdef HAVE_MMX +#if HAVE_MMX if(!(c->flags & SWS_BITEXACT)){ long p= uDest ? 3 : 1; uint8_t *src[3]= {lumSrc + dstW, chrSrc + chrDstW, chrSrc + VOFW + chrDstW}; @@ -1006,7 +1006,7 @@ static inline void RENAME(yuv2packedX)(SwsContext *c, int16_t *lumFilter, int16_ int16_t *chrFilter, int16_t **chrSrc, int chrFilterSize, uint8_t *dest, long dstW, long dstY) { -#ifdef HAVE_MMX +#if HAVE_MMX long dummy=0; if(!(c->flags & SWS_BITEXACT)){ if (c->flags & SWS_ACCURATE_RND){ @@ -1133,7 +1133,7 @@ static inline void RENAME(yuv2packedX)(SwsContext *c, int16_t *lumFilter, int16_ } } #endif /* HAVE_MMX */ -#ifdef HAVE_ALTIVEC +#if HAVE_ALTIVEC /* The following list of supported dstFormat values should match what's found in the body of altivec_yuv2packedX() */ if (c->dstFormat==PIX_FMT_ABGR || c->dstFormat==PIX_FMT_BGRA || @@ -1159,7 +1159,7 @@ static inline void RENAME(yuv2packed2)(SwsContext *c, uint16_t *buf0, uint16_t * int uvalpha1=4095-uvalpha; int i; -#ifdef HAVE_MMX +#if HAVE_MMX if(!(c->flags & SWS_BITEXACT)){ switch(c->dstFormat) { @@ -1270,7 +1270,7 @@ static inline void RENAME(yuv2packed1)(SwsContext *c, uint16_t *buf0, uint16_t * return; } -#ifdef HAVE_MMX +#if HAVE_MMX if(!(flags & SWS_BITEXACT)){ if (uvalpha < 2048) // note this is not correct (shifts chrominance by 0.5 pixels) but it is a bit faster { @@ -1464,7 +1464,7 @@ static inline void RENAME(yuv2packed1)(SwsContext *c, uint16_t *buf0, uint16_t * static inline void RENAME(yuy2ToY)(uint8_t *dst, uint8_t *src, long width, uint32_t *unused) { -#ifdef HAVE_MMX +#if HAVE_MMX __asm__ volatile( "movq "MANGLE(bm01010101)", %%mm2 \n\t" "mov %0, %%"REG_a" \n\t" @@ -1489,7 +1489,7 @@ static inline void RENAME(yuy2ToY)(uint8_t *dst, uint8_t *src, long width, uint3 static inline void RENAME(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused) { -#ifdef HAVE_MMX +#if HAVE_MMX __asm__ volatile( "movq "MANGLE(bm01010101)", %%mm4 \n\t" "mov %0, %%"REG_a" \n\t" @@ -1526,7 +1526,7 @@ static inline void RENAME(yuy2ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, * yuy2ToY/UV)(dst, src+1, ...) would have 100% unaligned accesses. */ static inline void RENAME(uyvyToY)(uint8_t *dst, uint8_t *src, long width, uint32_t *unused) { -#ifdef HAVE_MMX +#if HAVE_MMX __asm__ volatile( "mov %0, %%"REG_a" \n\t" "1: \n\t" @@ -1550,7 +1550,7 @@ static inline void RENAME(uyvyToY)(uint8_t *dst, uint8_t *src, long width, uint3 static inline void RENAME(uyvyToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused) { -#ifdef HAVE_MMX +#if HAVE_MMX __asm__ volatile( "movq "MANGLE(bm01010101)", %%mm4 \n\t" "mov %0, %%"REG_a" \n\t" @@ -1643,7 +1643,7 @@ BGR2UV(uint16_t, bgr15ToUV, 0, 0, 0, 0x001F, 0x03E0, 0x7C00, RU<<10, GU<<5, BU BGR2UV(uint16_t, rgb16ToUV, 0, 0, 0, 0xF800, 0x07E0, 0x001F, RU , GU<<5, BU<<11, RV , GV<<5, BV<<11, RGB2YUV_SHIFT+8) BGR2UV(uint16_t, rgb15ToUV, 0, 0, 0, 0x7C00, 0x03E0, 0x001F, RU , GU<<5, BU<<10, RV , GV<<5, BV<<10, RGB2YUV_SHIFT+7) -#ifdef HAVE_MMX +#if HAVE_MMX static inline void RENAME(bgr24ToY_mmx)(uint8_t *dst, uint8_t *src, long width, int srcFormat) { @@ -1758,7 +1758,7 @@ static inline void RENAME(bgr24ToUV_mmx)(uint8_t *dstU, uint8_t *dstV, uint8_t * static inline void RENAME(bgr24ToY)(uint8_t *dst, uint8_t *src, long width, uint32_t *unused) { -#ifdef HAVE_MMX +#if HAVE_MMX RENAME(bgr24ToY_mmx)(dst, src, width, PIX_FMT_BGR24); #else int i; @@ -1775,7 +1775,7 @@ static inline void RENAME(bgr24ToY)(uint8_t *dst, uint8_t *src, long width, uint static inline void RENAME(bgr24ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused) { -#ifdef HAVE_MMX +#if HAVE_MMX RENAME(bgr24ToUV_mmx)(dstU, dstV, src1, width, PIX_FMT_BGR24); #else int i; @@ -1809,7 +1809,7 @@ static inline void RENAME(bgr24ToUV_half)(uint8_t *dstU, uint8_t *dstV, uint8_t static inline void RENAME(rgb24ToY)(uint8_t *dst, uint8_t *src, long width, uint32_t *unused) { -#ifdef HAVE_MMX +#if HAVE_MMX RENAME(bgr24ToY_mmx)(dst, src, width, PIX_FMT_RGB24); #else int i; @@ -1826,7 +1826,7 @@ static inline void RENAME(rgb24ToY)(uint8_t *dst, uint8_t *src, long width, uint static inline void RENAME(rgb24ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused) { -#ifdef HAVE_MMX +#if HAVE_MMX assert(src1==src2); RENAME(bgr24ToUV_mmx)(dstU, dstV, src1, width, PIX_FMT_RGB24); #else @@ -1908,7 +1908,7 @@ static inline void RENAME(monoblack2Y)(uint8_t *dst, uint8_t *src, long width, u static inline void RENAME(hScale)(int16_t *dst, int dstW, uint8_t *src, int srcW, int xInc, int16_t *filter, int16_t *filterPos, long filterSize) { -#ifdef HAVE_MMX +#if HAVE_MMX assert(filterSize % 4 == 0 && filterSize>0); if (filterSize==4) // Always true for upscaling, sometimes for down, too. { @@ -2064,7 +2064,7 @@ static inline void RENAME(hScale)(int16_t *dst, int dstW, uint8_t *src, int srcW ); } #else -#ifdef HAVE_ALTIVEC +#if HAVE_ALTIVEC hScale_altivec_real(dst, dstW, src, srcW, xInc, filter, filterPos, filterSize); #else int i; @@ -2169,7 +2169,7 @@ static inline void RENAME(hyscale)(SwsContext *c, uint16_t *dst, long dstWidth, src= formatConvBuffer; } -#ifdef HAVE_MMX +#if HAVE_MMX // Use the new MMX scaler if the MMX2 one can't be used (it is faster than the x86 ASM one). if (!(flags&SWS_FAST_BILINEAR) || (!canMMX2BeUsed)) #else @@ -2180,8 +2180,8 @@ static inline void RENAME(hyscale)(SwsContext *c, uint16_t *dst, long dstWidth, } else // fast bilinear upscale / crap downscale { -#if defined(ARCH_X86) -#ifdef HAVE_MMX2 +#if ARCH_X86 +#if HAVE_MMX2 int i; #if defined(PIC) uint64_t ebxsave __attribute__((aligned(8))); @@ -2202,7 +2202,7 @@ static inline void RENAME(hyscale)(SwsContext *c, uint16_t *dst, long dstWidth, PREFETCH" 32(%%"REG_c") \n\t" PREFETCH" 64(%%"REG_c") \n\t" -#ifdef ARCH_X86_64 +#if ARCH_X86_64 #define FUNNY_Y_CODE \ "movl (%%"REG_b"), %%esi \n\t"\ @@ -2292,7 +2292,7 @@ FUNNY_Y_CODE :: "r" (src), "m" (dst), "m" (dstWidth), "m" (xInc_shr16), "m" (xInc_mask) : "%"REG_a, "%"REG_d, "%ecx", "%"REG_D, "%esi" ); -#ifdef HAVE_MMX2 +#if HAVE_MMX2 } //if MMX2 can't be used #endif #else @@ -2305,7 +2305,7 @@ FUNNY_Y_CODE dst[i]= (src[xx]<<7) + (src[xx+1] - src[xx])*xalpha; xpos+=xInc; } -#endif /* defined(ARCH_X86) */ +#endif /* ARCH_X86 */ } if(c->srcRange != c->dstRange && !(isRGB(c->dstFormat) || isBGR(c->dstFormat))){ @@ -2441,7 +2441,7 @@ inline static void RENAME(hcscale)(SwsContext *c, uint16_t *dst, long dstWidth, src2= formatConvBuffer+VOFW; } -#ifdef HAVE_MMX +#if HAVE_MMX // Use the new MMX scaler if the MMX2 one can't be used (it is faster than the x86 ASM one). if (!(flags&SWS_FAST_BILINEAR) || (!canMMX2BeUsed)) #else @@ -2453,8 +2453,8 @@ inline static void RENAME(hcscale)(SwsContext *c, uint16_t *dst, long dstWidth, } else // fast bilinear upscale / crap downscale { -#if defined(ARCH_X86) -#ifdef HAVE_MMX2 +#if ARCH_X86 +#if HAVE_MMX2 int i; #if defined(PIC) uint64_t ebxsave __attribute__((aligned(8))); @@ -2475,7 +2475,7 @@ inline static void RENAME(hcscale)(SwsContext *c, uint16_t *dst, long dstWidth, PREFETCH" 32(%%"REG_c") \n\t" PREFETCH" 64(%%"REG_c") \n\t" -#ifdef ARCH_X86_64 +#if ARCH_X86_64 #define FUNNY_UV_CODE \ "movl (%%"REG_b"), %%esi \n\t"\ @@ -2573,7 +2573,7 @@ FUNNY_UV_CODE /* GCC 3.3 makes MPlayer crash on IA-32 machines when using "g" operand here, which is needed to support GCC 4.0. */ -#if defined(ARCH_X86_64) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +#if ARCH_X86_64 && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) :: "m" (src1), "m" (dst), "g" ((long)dstWidth), "m" (xInc_shr16), "m" (xInc_mask), #else :: "m" (src1), "m" (dst), "m" ((long)dstWidth), "m" (xInc_shr16), "m" (xInc_mask), @@ -2581,7 +2581,7 @@ FUNNY_UV_CODE "r" (src2) : "%"REG_a, "%"REG_d, "%ecx", "%"REG_D, "%esi" ); -#ifdef HAVE_MMX2 +#if HAVE_MMX2 } //if MMX2 can't be used #endif #else @@ -2599,7 +2599,7 @@ FUNNY_UV_CODE */ xpos+=xInc; } -#endif /* defined(ARCH_X86) */ +#endif /* ARCH_X86 */ } if(c->srcRange != c->dstRange && !(isRGB(c->dstFormat) || isBGR(c->dstFormat))){ int i; @@ -2821,7 +2821,7 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s break; //we can't output a dstY line so let's try with the next slice } -#ifdef HAVE_MMX +#if HAVE_MMX c->blueDither= ff_dither8[dstY&1]; if (c->dstFormat == PIX_FMT_RGB555 || c->dstFormat == PIX_FMT_BGR555) c->greenDither= ff_dither8[dstY&1]; @@ -2833,7 +2833,7 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s { int16_t **lumSrcPtr= lumPixBuf + lumBufIndex + firstLumSrcY - lastInLumBuf + vLumBufSize; int16_t **chrSrcPtr= chrPixBuf + chrBufIndex + firstChrSrcY - lastInChrBuf + vChrBufSize; -#ifdef HAVE_MMX +#if HAVE_MMX int i; if (flags & SWS_ACCURATE_RND){ int s= APCK_SIZE / 8; @@ -2987,7 +2987,7 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s } } -#ifdef HAVE_MMX +#if HAVE_MMX __asm__ volatile(SFENCE:::"memory"); __asm__ volatile(EMMS:::"memory"); #endif diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c index d19430fd17..9dedd2a701 100644 --- a/libswscale/yuv2rgb.c +++ b/libswscale/yuv2rgb.c @@ -45,28 +45,26 @@ extern const uint8_t dither_8x8_32[8][8]; extern const uint8_t dither_8x8_73[8][8]; extern const uint8_t dither_8x8_220[8][8]; -#ifdef HAVE_MMX +#if HAVE_MMX /* hope these constant values are cache line aligned */ DECLARE_ASM_CONST(8, uint64_t, mmx_00ffw) = 0x00ff00ff00ff00ffULL; DECLARE_ASM_CONST(8, uint64_t, mmx_redmask) = 0xf8f8f8f8f8f8f8f8ULL; DECLARE_ASM_CONST(8, uint64_t, mmx_grnmask) = 0xfcfcfcfcfcfcfcfcULL; -#undef HAVE_MMX - //MMX versions #undef RENAME -#define HAVE_MMX #undef HAVE_MMX2 #undef HAVE_3DNOW +#define HAVE_MMX2 0 +#define HAVE_3DNOW 0 #define RENAME(a) a ## _MMX #include "yuv2rgb_template.c" //MMX2 versions #undef RENAME -#define HAVE_MMX -#define HAVE_MMX2 -#undef HAVE_3DNOW +#undef HAVE_MMX2 +#define HAVE_MMX2 1 #define RENAME(a) a ## _MMX2 #include "yuv2rgb_template.c" @@ -485,7 +483,7 @@ EPILOG(1) SwsFunc yuv2rgb_get_func_ptr (SwsContext *c) { -#if defined(HAVE_MMX2) || defined(HAVE_MMX) +#if HAVE_MMX2 || HAVE_MMX if (c->flags & SWS_CPU_CAPS_MMX2){ switch(c->dstFormat){ case PIX_FMT_RGB32: return yuv420_rgb32_MMX2; @@ -503,19 +501,19 @@ SwsFunc yuv2rgb_get_func_ptr (SwsContext *c) } } #endif -#ifdef HAVE_VIS +#if HAVE_VIS { SwsFunc t= yuv2rgb_init_vis(c); if (t) return t; } #endif -#ifdef CONFIG_MLIB +#if CONFIG_MLIB { SwsFunc t= yuv2rgb_init_mlib(c); if (t) return t; } #endif -#ifdef HAVE_ALTIVEC +#if HAVE_ALTIVEC if (c->flags & SWS_CPU_CAPS_ALTIVEC) { SwsFunc t = yuv2rgb_init_altivec(c); @@ -523,7 +521,7 @@ SwsFunc yuv2rgb_get_func_ptr (SwsContext *c) } #endif -#ifdef ARCH_BFIN +#if ARCH_BFIN if (c->flags & SWS_CPU_CAPS_BFIN) { SwsFunc t = ff_bfin_yuv2rgb_get_func_ptr (c); diff --git a/libswscale/yuv2rgb_template.c b/libswscale/yuv2rgb_template.c index e8b6ff30cf..c66f24edeb 100644 --- a/libswscale/yuv2rgb_template.c +++ b/libswscale/yuv2rgb_template.c @@ -30,14 +30,14 @@ #undef EMMS #undef SFENCE -#ifdef HAVE_3DNOW +#if HAVE_3DNOW /* On K6 femms is faster than emms. On K7 femms is directly mapped to emms. */ #define EMMS "femms" #else #define EMMS "emms" #endif -#ifdef HAVE_MMX2 +#if HAVE_MMX2 #define MOVNTQ "movntq" #define SFENCE "sfence" #else @@ -335,7 +335,7 @@ static inline int RENAME(yuv420_rgb24)(SwsContext *c, uint8_t* src[], int srcStr "1: \n\t" YUV2RGB /* mm0=B, %%mm2=G, %%mm1=R */ -#ifdef HAVE_MMX2 +#if HAVE_MMX2 "movq "MANGLE(ff_M24A)", %%mm4 \n\t" "movq "MANGLE(ff_M24C)", %%mm7 \n\t" "pshufw $0x50, %%mm0, %%mm5 \n\t" /* B3 B2 B3 B2 B1 B0 B1 B0 */ -- cgit v1.2.3