diff options
author | Kostya Shishkov <kostya.shishkov@gmail.com> | 2009-03-09 17:25:43 +0000 |
---|---|---|
committer | Kostya Shishkov <kostya.shishkov@gmail.com> | 2009-03-09 17:25:43 +0000 |
commit | bcff32d1b4eb583b8be96295fe63c575cef441f2 (patch) | |
tree | f103ba0952b255a6d5bebb7f6539761892d0ebc7 | |
parent | 2500d8bea69970bee3805f0db88114173fa49298 (diff) | |
download | ffmpeg-bcff32d1b4eb583b8be96295fe63c575cef441f2.tar.gz |
Mask all unused bits for packed pixel format instead of green and alpha mask only.
That fixes the case when converting 15-bit RGB/BGR to YUV and high bit is set
for input value(s).
Originally committed as revision 28916 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
-rw-r--r-- | libswscale/swscale_template.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libswscale/swscale_template.c b/libswscale/swscale_template.c index 6f2e243052..da6278d80c 100644 --- a/libswscale/swscale_template.c +++ b/libswscale/swscale_template.c @@ -1663,7 +1663,7 @@ static inline void RENAME(name ## _half)(uint8_t *dstU, uint8_t *dstV, uint8_t * {\ int pix0= ((type*)src)[2*i+0];\ int pix1= ((type*)src)[2*i+1];\ - int g= (pix0&(maskg|maska))+(pix1&(maskg|maska));\ + int g= (pix0&~(maskr|maskb))+(pix1&~(maskr|maskb));\ int b= ((pix0+pix1-g)&(maskb|(2*maskb)))>>shb;\ int r= ((pix0+pix1-g)&(maskr|(2*maskr)))>>shr;\ g&= maskg|(2*maskg);\ |