Mercurial > mplayer.hg
changeset 28520:6cdce79a0b9a
Some AltiVec functions in SwScaler produce different output than their
counterparts in pure C, so don't invoke them in bitexact mode.
author | kostya |
---|---|
date | Sat, 14 Feb 2009 16:37:39 +0000 |
parents | b1f68e0d1a39 |
children | 3bc8263972a3 |
files | libswscale/swscale.c libswscale/swscale_template.c |
diffstat | 2 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/libswscale/swscale.c Sat Feb 14 13:06:52 2009 +0000 +++ b/libswscale/swscale.c Sat Feb 14 16:37:39 2009 +0000 @@ -2396,6 +2396,7 @@ #ifdef COMPILE_ALTIVEC if ((c->flags & SWS_CPU_CAPS_ALTIVEC) && + !(c->flags & SWS_BITEXACT) && srcFormat == PIX_FMT_YUV420P) { // unscaled YV12 -> packed YUV, we want speed if (dstFormat == PIX_FMT_YUYV422)
--- a/libswscale/swscale_template.c Sat Feb 14 13:06:52 2009 +0000 +++ b/libswscale/swscale_template.c Sat Feb 14 16:37:39 2009 +0000 @@ -1136,9 +1136,10 @@ #if HAVE_ALTIVEC /* The following list of supported dstFormat values should match what's found in the body of altivec_yuv2packedX() */ - if (c->dstFormat==PIX_FMT_ABGR || c->dstFormat==PIX_FMT_BGRA || + if (!(c->flags & SWS_BITEXACT) && + (c->dstFormat==PIX_FMT_ABGR || c->dstFormat==PIX_FMT_BGRA || c->dstFormat==PIX_FMT_BGR24 || c->dstFormat==PIX_FMT_RGB24 || - c->dstFormat==PIX_FMT_RGBA || c->dstFormat==PIX_FMT_ARGB) + c->dstFormat==PIX_FMT_RGBA || c->dstFormat==PIX_FMT_ARGB)) altivec_yuv2packedX (c, lumFilter, lumSrc, lumFilterSize, chrFilter, chrSrc, chrFilterSize, dest, dstW, dstY);