Mercurial > mplayer.hg
comparison postproc/swscale_template.c @ 12017:21e5cb258a95
AltiVec support in postproc/ + altivec optimizations for yuv2yuvX patch by (Romain Dolbeau <dolbeau at irisa dot fr>)
author | michael |
---|---|
date | Thu, 11 Mar 2004 17:58:11 +0000 |
parents | c552fe6acbaa |
children | 2ef24558b732 |
comparison
equal
deleted
inserted
replaced
12016:b962aaad2940 | 12017:21e5cb258a95 |
---|---|
55 | 55 |
56 #ifdef HAVE_MMX2 | 56 #ifdef HAVE_MMX2 |
57 #define MOVNTQ(a,b) "movntq " #a ", " #b " \n\t" | 57 #define MOVNTQ(a,b) "movntq " #a ", " #b " \n\t" |
58 #else | 58 #else |
59 #define MOVNTQ(a,b) "movq " #a ", " #b " \n\t" | 59 #define MOVNTQ(a,b) "movq " #a ", " #b " \n\t" |
60 #endif | |
61 | |
62 #ifdef HAVE_ALTIVEC | |
63 #include "swscale_altivec_template.c" | |
60 #endif | 64 #endif |
61 | 65 |
62 #define YSCALEYUV2YV12X(x, offset) \ | 66 #define YSCALEYUV2YV12X(x, offset) \ |
63 "xorl %%eax, %%eax \n\t"\ | 67 "xorl %%eax, %%eax \n\t"\ |
64 "movq "VROUNDER_OFFSET"(%0), %%mm3\n\t"\ | 68 "movq "VROUNDER_OFFSET"(%0), %%mm3\n\t"\ |
764 :: "r" (&c->redDither), | 768 :: "r" (&c->redDither), |
765 "r" (dest), "m" (dstW) | 769 "r" (dest), "m" (dstW) |
766 : "%eax", "%edx", "%esi" | 770 : "%eax", "%edx", "%esi" |
767 ); | 771 ); |
768 #else | 772 #else |
773 #ifdef HAVE_ALTIVEC | |
774 yuv2yuvX_altivec_real(lumFilter, lumSrc, lumFilterSize, | |
775 chrFilter, chrSrc, chrFilterSize, | |
776 dest, uDest, vDest, dstW, chrDstW); | |
777 #else //HAVE_ALTIVEC | |
769 yuv2yuvXinC(lumFilter, lumSrc, lumFilterSize, | 778 yuv2yuvXinC(lumFilter, lumSrc, lumFilterSize, |
770 chrFilter, chrSrc, chrFilterSize, | 779 chrFilter, chrSrc, chrFilterSize, |
771 dest, uDest, vDest, dstW, chrDstW); | 780 dest, uDest, vDest, dstW, chrDstW); |
781 #endif //!HAVE_ALTIVEC | |
772 #endif | 782 #endif |
773 } | 783 } |
774 | 784 |
775 static inline void RENAME(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc, | 785 static inline void RENAME(yuv2yuv1)(int16_t *lumSrc, int16_t *chrSrc, |
776 uint8_t *dest, uint8_t *uDest, uint8_t *vDest, int dstW, int chrDstW) | 786 uint8_t *dest, uint8_t *uDest, uint8_t *vDest, int dstW, int chrDstW) |