From a1f3ffa3ce52d207bd5b8afddcd0ad56c56d8f3b Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 18 Jul 2008 00:09:09 +0000 Subject: [PATCH] Make C code in yuv2yuv1() do accurate rounding, this could be split depending on SWS_ACCURATE as well if someone wants. Originally committed as revision 27323 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale --- libswscale/swscale_template.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libswscale/swscale_template.c b/libswscale/swscale_template.c index 45cd491d53..1280ba6c02 100644 --- a/libswscale/swscale_template.c +++ b/libswscale/swscale_template.c @@ -1020,7 +1020,7 @@ static inline void RENAME(yuv2yuv1)(SwsContext *c, int16_t *lumSrc, int16_t *chr int i; for (i=0; i>7; + int val= (lumSrc[i]+64)>>7; if (val&256){ if (val<0) val=0; @@ -1033,8 +1033,8 @@ static inline void RENAME(yuv2yuv1)(SwsContext *c, int16_t *lumSrc, int16_t *chr if (uDest) for (i=0; i>7; - int v=chrSrc[i + VOFW]>>7; + int u=(chrSrc[i ]+64)>>7; + int v=(chrSrc[i + VOFW]+64)>>7; if ((u|v)&256){ if (u<0) u=0;