don't call altivec_yuv2packedX() with a dstFormat that it doesn't support;

instead fall back on yuv2packedXinC

Originally committed as revision 17642 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
pull/126/head
Alan Curry 19 years ago
parent 8cecedfbe8
commit b9a6fae930
  1. 19
      postproc/swscale_template.c

@ -967,14 +967,19 @@ static inline void RENAME(yuv2packedX)(SwsContext *c, int16_t *lumFilter, int16_
#endif #endif
default: default:
#ifdef HAVE_ALTIVEC #ifdef HAVE_ALTIVEC
altivec_yuv2packedX (c, lumFilter, lumSrc, lumFilterSize, /* The following list of supported dstFormat values should
chrFilter, chrSrc, chrFilterSize, match what's found in the body of altivec_yuv2packedX() */
dest, dstW, dstY); if(c->dstFormat==IMGFMT_ABGR || c->dstFormat==IMGFMT_BGRA ||
#else c->dstFormat==IMGFMT_BGR24 || c->dstFormat==IMGFMT_RGB24 ||
yuv2packedXinC(c, lumFilter, lumSrc, lumFilterSize, c->dstFormat==IMGFMT_RGBA || c->dstFormat==IMGFMT_ARGB)
chrFilter, chrSrc, chrFilterSize, altivec_yuv2packedX (c, lumFilter, lumSrc, lumFilterSize,
dest, dstW, dstY); chrFilter, chrSrc, chrFilterSize,
dest, dstW, dstY);
else
#endif #endif
yuv2packedXinC(c, lumFilter, lumSrc, lumFilterSize,
chrFilter, chrSrc, chrFilterSize,
dest, dstW, dstY);
break; break;
} }
} }

Loading…
Cancel
Save