diff options
author | Ramiro Polla <ramiro.polla@gmail.com> | 2010-01-15 19:50:59 +0000 |
---|---|---|
committer | Ramiro Polla <ramiro.polla@gmail.com> | 2010-01-15 19:50:59 +0000 |
commit | 2e3e8031ec32b8b819e253151d228ba20394adbe (patch) | |
tree | f96ca8e595044114f3553868197f1dd17cf1dbca | |
parent | 93fe7eb68d6ec19312dd35bf8506184481d89407 (diff) | |
download | ffmpeg-2e3e8031ec32b8b819e253151d228ba20394adbe.tar.gz |
Don't initialize normal horizontal filter if MMX2 filter is used.
Originally committed as revision 30313 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
-rw-r--r-- | libswscale/swscale.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/libswscale/swscale.c b/libswscale/swscale.c index f525420f91..15071ea218 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -2673,22 +2673,6 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d /* precalculate horizontal scaler filter coefficients */ { - const int filterAlign= - (flags & SWS_CPU_CAPS_MMX) ? 4 : - (flags & SWS_CPU_CAPS_ALTIVEC) ? 8 : - 1; - - if (initFilter(&c->hLumFilter, &c->hLumFilterPos, &c->hLumFilterSize, c->lumXInc, - srcW , dstW, filterAlign, 1<<14, - (flags&SWS_BICUBLIN) ? (flags|SWS_BICUBIC) : flags, - srcFilter->lumH, dstFilter->lumH, c->param) < 0) - goto fail; - if (initFilter(&c->hChrFilter, &c->hChrFilterPos, &c->hChrFilterSize, c->chrXInc, - c->chrSrcW, c->chrDstW, filterAlign, 1<<14, - (flags&SWS_BICUBLIN) ? (flags|SWS_BILINEAR) : flags, - srcFilter->chrH, dstFilter->chrH, c->param) < 0) - goto fail; - #if defined(COMPILE_MMX2) // can't downscale !!! if (c->canMMX2BeUsed && (flags & SWS_FAST_BILINEAR)) { @@ -2718,8 +2702,25 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d mprotect(c->lumMmx2FilterCode, c->lumMmx2FilterCodeSize, PROT_EXEC | PROT_READ); mprotect(c->chrMmx2FilterCode, c->chrMmx2FilterCodeSize, PROT_EXEC | PROT_READ); #endif - } + } else #endif /* defined(COMPILE_MMX2) */ + { + const int filterAlign= + (flags & SWS_CPU_CAPS_MMX) ? 4 : + (flags & SWS_CPU_CAPS_ALTIVEC) ? 8 : + 1; + + if (initFilter(&c->hLumFilter, &c->hLumFilterPos, &c->hLumFilterSize, c->lumXInc, + srcW , dstW, filterAlign, 1<<14, + (flags&SWS_BICUBLIN) ? (flags|SWS_BICUBIC) : flags, + srcFilter->lumH, dstFilter->lumH, c->param) < 0) + goto fail; + if (initFilter(&c->hChrFilter, &c->hChrFilterPos, &c->hChrFilterSize, c->chrXInc, + c->chrSrcW, c->chrDstW, filterAlign, 1<<14, + (flags&SWS_BICUBLIN) ? (flags|SWS_BILINEAR) : flags, + srcFilter->chrH, dstFilter->chrH, c->param) < 0) + goto fail; + } } // initialize horizontal stuff |