Commit a1f3ffa3 authored by Michael Niedermayer's avatar Michael Niedermayer

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
parent 96e8987e
...@@ -1020,7 +1020,7 @@ static inline void RENAME(yuv2yuv1)(SwsContext *c, int16_t *lumSrc, int16_t *chr ...@@ -1020,7 +1020,7 @@ static inline void RENAME(yuv2yuv1)(SwsContext *c, int16_t *lumSrc, int16_t *chr
int i; int i;
for (i=0; i<dstW; i++) for (i=0; i<dstW; i++)
{ {
int val= lumSrc[i]>>7; int val= (lumSrc[i]+64)>>7;
if (val&256){ if (val&256){
if (val<0) val=0; if (val<0) val=0;
...@@ -1033,8 +1033,8 @@ static inline void RENAME(yuv2yuv1)(SwsContext *c, int16_t *lumSrc, int16_t *chr ...@@ -1033,8 +1033,8 @@ static inline void RENAME(yuv2yuv1)(SwsContext *c, int16_t *lumSrc, int16_t *chr
if (uDest) if (uDest)
for (i=0; i<chrDstW; i++) for (i=0; i<chrDstW; i++)
{ {
int u=chrSrc[i]>>7; int u=(chrSrc[i ]+64)>>7;
int v=chrSrc[i + VOFW]>>7; int v=(chrSrc[i + VOFW]+64)>>7;
if ((u|v)&256){ if ((u|v)&256){
if (u<0) u=0; if (u<0) u=0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment