Mercurial > mplayer.hg
comparison libswscale/swscale.c @ 30271:2fad32dd128c
Don't initialize normal horizontal filter if MMX2 filter is used.
author | ramiro |
---|---|
date | Fri, 15 Jan 2010 19:50:59 +0000 |
parents | 1032ff2e83f1 |
children | e5c5eccd8d84 |
comparison
equal
deleted
inserted
replaced
30270:02d2d9fc2009 | 30271:2fad32dd128c |
---|---|
2671 } | 2671 } |
2672 } | 2672 } |
2673 | 2673 |
2674 /* precalculate horizontal scaler filter coefficients */ | 2674 /* precalculate horizontal scaler filter coefficients */ |
2675 { | 2675 { |
2676 const int filterAlign= | |
2677 (flags & SWS_CPU_CAPS_MMX) ? 4 : | |
2678 (flags & SWS_CPU_CAPS_ALTIVEC) ? 8 : | |
2679 1; | |
2680 | |
2681 if (initFilter(&c->hLumFilter, &c->hLumFilterPos, &c->hLumFilterSize, c->lumXInc, | |
2682 srcW , dstW, filterAlign, 1<<14, | |
2683 (flags&SWS_BICUBLIN) ? (flags|SWS_BICUBIC) : flags, | |
2684 srcFilter->lumH, dstFilter->lumH, c->param) < 0) | |
2685 goto fail; | |
2686 if (initFilter(&c->hChrFilter, &c->hChrFilterPos, &c->hChrFilterSize, c->chrXInc, | |
2687 c->chrSrcW, c->chrDstW, filterAlign, 1<<14, | |
2688 (flags&SWS_BICUBLIN) ? (flags|SWS_BILINEAR) : flags, | |
2689 srcFilter->chrH, dstFilter->chrH, c->param) < 0) | |
2690 goto fail; | |
2691 | |
2692 #if defined(COMPILE_MMX2) | 2676 #if defined(COMPILE_MMX2) |
2693 // can't downscale !!! | 2677 // can't downscale !!! |
2694 if (c->canMMX2BeUsed && (flags & SWS_FAST_BILINEAR)) { | 2678 if (c->canMMX2BeUsed && (flags & SWS_FAST_BILINEAR)) { |
2695 c->lumMmx2FilterCodeSize = initMMX2HScaler( dstW, c->lumXInc, NULL, NULL, NULL, 8); | 2679 c->lumMmx2FilterCodeSize = initMMX2HScaler( dstW, c->lumXInc, NULL, NULL, NULL, 8); |
2696 c->chrMmx2FilterCodeSize = initMMX2HScaler(c->chrDstW, c->chrXInc, NULL, NULL, NULL, 4); | 2680 c->chrMmx2FilterCodeSize = initMMX2HScaler(c->chrDstW, c->chrXInc, NULL, NULL, NULL, 4); |
2716 | 2700 |
2717 #ifdef MAP_ANONYMOUS | 2701 #ifdef MAP_ANONYMOUS |
2718 mprotect(c->lumMmx2FilterCode, c->lumMmx2FilterCodeSize, PROT_EXEC | PROT_READ); | 2702 mprotect(c->lumMmx2FilterCode, c->lumMmx2FilterCodeSize, PROT_EXEC | PROT_READ); |
2719 mprotect(c->chrMmx2FilterCode, c->chrMmx2FilterCodeSize, PROT_EXEC | PROT_READ); | 2703 mprotect(c->chrMmx2FilterCode, c->chrMmx2FilterCodeSize, PROT_EXEC | PROT_READ); |
2720 #endif | 2704 #endif |
2721 } | 2705 } else |
2722 #endif /* defined(COMPILE_MMX2) */ | 2706 #endif /* defined(COMPILE_MMX2) */ |
2707 { | |
2708 const int filterAlign= | |
2709 (flags & SWS_CPU_CAPS_MMX) ? 4 : | |
2710 (flags & SWS_CPU_CAPS_ALTIVEC) ? 8 : | |
2711 1; | |
2712 | |
2713 if (initFilter(&c->hLumFilter, &c->hLumFilterPos, &c->hLumFilterSize, c->lumXInc, | |
2714 srcW , dstW, filterAlign, 1<<14, | |
2715 (flags&SWS_BICUBLIN) ? (flags|SWS_BICUBIC) : flags, | |
2716 srcFilter->lumH, dstFilter->lumH, c->param) < 0) | |
2717 goto fail; | |
2718 if (initFilter(&c->hChrFilter, &c->hChrFilterPos, &c->hChrFilterSize, c->chrXInc, | |
2719 c->chrSrcW, c->chrDstW, filterAlign, 1<<14, | |
2720 (flags&SWS_BICUBLIN) ? (flags|SWS_BILINEAR) : flags, | |
2721 srcFilter->chrH, dstFilter->chrH, c->param) < 0) | |
2722 goto fail; | |
2723 } | |
2723 } // initialize horizontal stuff | 2724 } // initialize horizontal stuff |
2724 | 2725 |
2725 | 2726 |
2726 | 2727 |
2727 /* precalculate vertical scaler filter coefficients */ | 2728 /* precalculate vertical scaler filter coefficients */ |