From d926e8c5c39758fee31e06de4680cd5d15abcf8e Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Mon, 27 Jun 2005 07:40:24 +0000
Subject: [PATCH] width % 16 != 0 workaround by (Nicolas Plourde: nicolas
 plourde, gmail com>) cleanup by me   indention fixed   second one must be
 yv12touyvy instead of yv12toyuy2   replace slow modulo by bitwise and   move
 %16!=0 code before the comment saying the code cant handle %16!=0

Originally committed as revision 15825 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
---
 postproc/swscale_altivec_template.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/postproc/swscale_altivec_template.c b/postproc/swscale_altivec_template.c
index f5c7b965f68..93ae41fcdff 100644
--- a/postproc/swscale_altivec_template.c
+++ b/postproc/swscale_altivec_template.c
@@ -400,6 +400,11 @@ static inline int yv12toyuy2_unscaled_altivec(SwsContext *c, uint8_t* src[], int
   const int vertLumPerChroma = 2;  
   register unsigned int y;
 
+  if(width&15){
+    yv12toyuy2( ysrc, usrc, vsrc, dst,c->srcW,srcSliceH, lumStride, chromStride, dstStride);
+    return srcSliceH;
+  }
+
   /* this code assume:
 
   1) dst is 16 bytes-aligned
@@ -474,6 +479,11 @@ static inline int yv12touyvy_unscaled_altivec(SwsContext *c, uint8_t* src[], int
   const vector unsigned char yperm = vec_lvsl(0, ysrc);
   register unsigned int y;
 
+  if(width&15){
+    yv12touyvy( ysrc, usrc, vsrc, dst,c->srcW,srcSliceH, lumStride, chromStride, dstStride);
+    return srcSliceH;
+  }
+
   /* this code assume:
 
   1) dst is 16 bytes-aligned
-- 
GitLab