summaryrefslogtreecommitdiffstats
path: root/postproc/swscale.c
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-07-06 13:52:56 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-07-06 13:52:56 +0000
commitb612dd86b09d7c3b024e723ebb02a9a01bd20abc (patch)
treeafeded01ee71737d0428fb0363f34b4487970a4c /postproc/swscale.c
parent5896bf6cfdd89afefc5be6b2a233a09721154764 (diff)
downloadmpv-b612dd86b09d7c3b024e723ebb02a9a01bd20abc.tar.bz2
mpv-b612dd86b09d7c3b024e723ebb02a9a01bd20abc.tar.xz
Altivec unscaled YV12 -> packed YUV patch by (Romain Dolbeau <dolbeau at irisa dot fr>)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12769 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'postproc/swscale.c')
-rw-r--r--postproc/swscale.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/postproc/swscale.c b/postproc/swscale.c
index 67a75a93af..891352121c 100644
--- a/postproc/swscale.c
+++ b/postproc/swscale.c
@@ -1909,6 +1909,18 @@ SwsContext *sws_getContext(int srcW, int srcH, int origSrcFormat, int dstW, int
}
}
+#ifdef HAVE_ALTIVEC
+ if ((c->flags & SWS_CPU_CAPS_ALTIVEC) &&
+ ((srcFormat == IMGFMT_YV12 &&
+ (dstFormat == IMGFMT_YUY2 || dstFormat == IMGFMT_UYVY)))) {
+ // unscaled YV12 -> packed YUV, we want speed
+ if (dstFormat == IMGFMT_YUY2)
+ c->swScale= yv12toyuy2_unscaled_altivec;
+ else
+ c->swScale= yv12touyvy_unscaled_altivec;
+ }
+#endif
+
/* simple copy */
if( srcFormat == dstFormat
|| (isPlanarYUV(srcFormat) && isGray(dstFormat))