Mercurial > mplayer.hg
diff libswscale/swscale.c @ 29105:9502a8895e77
swscale: Use function pointers for swScale functions.
author | ramiro |
---|---|
date | Sat, 04 Apr 2009 22:45:02 +0000 |
parents | f40ddfeeb70b |
children | a8593f0bdb9c |
line wrap: on
line diff
--- a/libswscale/swscale.c Sat Apr 04 22:43:24 2009 +0000 +++ b/libswscale/swscale.c Sat Apr 04 22:45:02 2009 +0000 @@ -1776,42 +1776,55 @@ } } -static SwsFunc getSwsFunc(int flags) +static SwsFunc getSwsFunc(SwsContext *c) { + int flags = c->flags; #if defined(RUNTIME_CPUDETECT) && CONFIG_GPL #if ARCH_X86 // ordered per speed fastest first if (flags & SWS_CPU_CAPS_MMX2) { + sws_init_swScale_MMX2(c); return swScale_MMX2; } else if (flags & SWS_CPU_CAPS_3DNOW) { + sws_init_swScale_3DNow(c); return swScale_3DNow; } else if (flags & SWS_CPU_CAPS_MMX) { + sws_init_swScale_MMX(c); return swScale_MMX; } else { + sws_init_swScale_C(c); return swScale_C; } #else #if ARCH_PPC if (flags & SWS_CPU_CAPS_ALTIVEC) { + sws_init_swScale_altivec(c); return swScale_altivec; } else { + sws_init_swScale_C(c); return swScale_C; } #endif + sws_init_swScale_C(c); return swScale_C; #endif /* ARCH_X86 */ #else //RUNTIME_CPUDETECT #if HAVE_MMX2 + sws_init_swScale_MMX2(c); return swScale_MMX2; #elif HAVE_AMD3DNOW + sws_init_swScale_3DNow(c); return swScale_3DNow; #elif HAVE_MMX + sws_init_swScale_MMX(c); return swScale_MMX; #elif HAVE_ALTIVEC + sws_init_swScale_altivec(c); return swScale_altivec; #else + sws_init_swScale_C(c); return swScale_C; #endif #endif //!RUNTIME_CPUDETECT @@ -2932,7 +2945,7 @@ c->chrSrcW, c->chrSrcH, c->chrDstW, c->chrDstH, c->chrXInc, c->chrYInc); } - c->swScale= getSwsFunc(flags); + c->swScale= getSwsFunc(c); return c; }