diff options
author | Ramiro Polla <ramiro.polla@gmail.com> | 2009-12-20 17:09:46 +0000 |
---|---|---|
committer | Ramiro Polla <ramiro.polla@gmail.com> | 2009-12-20 17:09:46 +0000 |
commit | b501a1f56a94cac08957b1059bf2ee5c376fe547 (patch) | |
tree | 55a40ddd0ad71913b2c01dffc5d800b903f21218 | |
parent | bae76dc3eb6e5cd07f5881092d375ddc0270f693 (diff) | |
download | ffmpeg-b501a1f56a94cac08957b1059bf2ee5c376fe547.tar.gz |
Set fast_bilinear functions in sws_init_swScale().
Originally committed as revision 30085 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
-rw-r--r-- | libswscale/swscale_template.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/libswscale/swscale_template.c b/libswscale/swscale_template.c index bf944ee6bc..92786bea5b 100644 --- a/libswscale/swscale_template.c +++ b/libswscale/swscale_template.c @@ -2293,12 +2293,7 @@ static inline void RENAME(hyscale)(SwsContext *c, uint16_t *dst, long dstWidth, src= formatConvBuffer; } -#if COMPILE_TEMPLATE_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 - if (!(flags&SWS_FAST_BILINEAR)) -#endif + if (!c->hyscale_fast) { c->hScale(dst, dstWidth, src, srcW, xInc, hLumFilter, hLumFilterPos, hLumFilterSize); } else { // fast bilinear upscale / crap downscale @@ -2455,12 +2450,7 @@ inline static void RENAME(hcscale)(SwsContext *c, uint16_t *dst, long dstWidth, src2= formatConvBuffer+VOFW; } -#if COMPILE_TEMPLATE_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 - if (!(flags&SWS_FAST_BILINEAR)) -#endif + if (!c->hcscale_fast) { c->hScale(dst , dstWidth, src1, srcW, xInc, hChrFilter, hChrFilterPos, hChrFilterSize); c->hScale(dst+VOFW, dstWidth, src2, srcW, xInc, hChrFilter, hChrFilterPos, hChrFilterSize); @@ -2948,8 +2938,16 @@ static void RENAME(sws_init_swScale)(SwsContext *c) c->hScale = RENAME(hScale ); +#if COMPILE_TEMPLATE_MMX + // Use the new MMX scaler if the MMX2 one can't be used (it is faster than the x86 ASM one). + if (c->flags & SWS_FAST_BILINEAR && c->canMMX2BeUsed) +#else + if (c->flags & SWS_FAST_BILINEAR) +#endif + { c->hyscale_fast = RENAME(hyscale_fast); c->hcscale_fast = RENAME(hcscale_fast); + } c->hcscale_internal = NULL; switch(srcFormat) { |