Mercurial > mplayer.hg
changeset 29441:3b88f0acdc0b
Remove 'offset' argument from PUTRGB* macros since it's unneeded and caused
pixel swapping during some YUV2RGB conversions.
author | kostya |
---|---|
date | Sun, 09 Aug 2009 15:04:17 +0000 |
parents | 0673fad0546f |
children | 89e415f4071f |
files | libswscale/yuv2rgb.c |
diffstat | 1 files changed, 66 insertions(+), 66 deletions(-) [+] |
line wrap: on
line diff
--- a/libswscale/yuv2rgb.c Sat Aug 08 15:18:48 2009 +0000 +++ b/libswscale/yuv2rgb.c Sun Aug 09 15:04:17 2009 +0000 @@ -56,10 +56,10 @@ g = (void *)(c->table_gU[U] + c->table_gV[V]); \ b = (void *)c->table_bU[U]; -#define PUTRGB(dst,src,i,o) \ - Y = src[2*i+o]; \ +#define PUTRGB(dst,src,i) \ + Y = src[2*i]; \ dst[2*i ] = r[Y] + g[Y] + b[Y]; \ - Y = src[2*i+1-o]; \ + Y = src[2*i+1]; \ dst[2*i+1] = r[Y] + g[Y] + b[Y]; #define PUTRGB24(dst,src,i) \ @@ -74,10 +74,10 @@ Y = src[2*i+1]; \ dst[6*i+3] = b[Y]; dst[6*i+4] = g[Y]; dst[6*i+5] = r[Y]; -#define PUTRGBA(dst,ysrc,asrc,i,o,s) \ - Y = ysrc[2*i+o]; \ +#define PUTRGBA(dst,ysrc,asrc,i,s) \ + Y = ysrc[2*i]; \ dst[2*i ] = r[Y] + g[Y] + b[Y] + (asrc[2*i ]<<s); \ - Y = ysrc[2*i+1-o]; \ + Y = ysrc[2*i+1]; \ dst[2*i+1] = r[Y] + g[Y] + b[Y] + (asrc[2*i+1]<<s); #define PUTRGB48(dst,src,i) \ @@ -167,84 +167,84 @@ YUV2RGBFUNC(yuv2rgb_c_32, uint32_t, 0) LOADCHROMA(0); - PUTRGB(dst_1,py_1,0,0); - PUTRGB(dst_2,py_2,0,1); + PUTRGB(dst_1,py_1,0); + PUTRGB(dst_2,py_2,0); LOADCHROMA(1); - PUTRGB(dst_2,py_2,1,1); - PUTRGB(dst_1,py_1,1,0); + PUTRGB(dst_2,py_2,1); + PUTRGB(dst_1,py_1,1); LOADCHROMA(2); - PUTRGB(dst_1,py_1,2,0); - PUTRGB(dst_2,py_2,2,1); + PUTRGB(dst_1,py_1,2); + PUTRGB(dst_2,py_2,2); LOADCHROMA(3); - PUTRGB(dst_2,py_2,3,1); - PUTRGB(dst_1,py_1,3,0); + PUTRGB(dst_2,py_2,3); + PUTRGB(dst_1,py_1,3); ENDYUV2RGBLINE(8) LOADCHROMA(0); - PUTRGB(dst_1,py_1,0,0); - PUTRGB(dst_2,py_2,0,1); + PUTRGB(dst_1,py_1,0); + PUTRGB(dst_2,py_2,0); LOADCHROMA(1); - PUTRGB(dst_2,py_2,1,1); - PUTRGB(dst_1,py_1,1,0); + PUTRGB(dst_2,py_2,1); + PUTRGB(dst_1,py_1,1); ENDYUV2RGBFUNC() YUV2RGBFUNC(yuva2rgba_c, uint32_t, 1) LOADCHROMA(0); - PUTRGBA(dst_1,py_1,pa_1,0,0,24); - PUTRGBA(dst_2,py_2,pa_2,0,1,24); + PUTRGBA(dst_1,py_1,pa_1,0,24); + PUTRGBA(dst_2,py_2,pa_2,0,24); LOADCHROMA(1); - PUTRGBA(dst_2,py_2,pa_1,1,1,24); - PUTRGBA(dst_1,py_1,pa_2,1,0,24); + PUTRGBA(dst_2,py_2,pa_1,1,24); + PUTRGBA(dst_1,py_1,pa_2,1,24); LOADCHROMA(2); - PUTRGBA(dst_1,py_1,pa_1,2,0,24); - PUTRGBA(dst_2,py_2,pa_2,2,1,24); + PUTRGBA(dst_1,py_1,pa_1,2,24); + PUTRGBA(dst_2,py_2,pa_2,2,24); LOADCHROMA(3); - PUTRGBA(dst_2,py_2,pa_1,3,1,24); - PUTRGBA(dst_1,py_1,pa_2,3,0,24); + PUTRGBA(dst_2,py_2,pa_1,3,24); + PUTRGBA(dst_1,py_1,pa_2,3,24); pa_1 += 8;\ pa_2 += 8;\ ENDYUV2RGBLINE(8) LOADCHROMA(0); - PUTRGBA(dst_1,py_1,pa_1,0,0,24); - PUTRGBA(dst_2,py_2,pa_2,0,1,24); + PUTRGBA(dst_1,py_1,pa_1,0,24); + PUTRGBA(dst_2,py_2,pa_2,0,24); LOADCHROMA(1); - PUTRGBA(dst_2,py_2,pa_1,1,1,24); - PUTRGBA(dst_1,py_1,pa_2,1,0,24); + PUTRGBA(dst_2,py_2,pa_1,1,24); + PUTRGBA(dst_1,py_1,pa_2,1,24); ENDYUV2RGBFUNC() YUV2RGBFUNC(yuva2argb_c, uint32_t, 1) LOADCHROMA(0); - PUTRGBA(dst_1,py_1,pa_1,0,0,0); - PUTRGBA(dst_2,py_2,pa_2,0,1,0); + PUTRGBA(dst_1,py_1,pa_1,0,0); + PUTRGBA(dst_2,py_2,pa_2,0,0); LOADCHROMA(1); - PUTRGBA(dst_2,py_2,pa_2,1,1,0); - PUTRGBA(dst_1,py_1,pa_1,1,0,0); + PUTRGBA(dst_2,py_2,pa_2,1,0); + PUTRGBA(dst_1,py_1,pa_1,1,0); LOADCHROMA(2); - PUTRGBA(dst_1,py_1,pa_1,2,0,0); - PUTRGBA(dst_2,py_2,pa_2,2,1,0); + PUTRGBA(dst_1,py_1,pa_1,2,0); + PUTRGBA(dst_2,py_2,pa_2,2,0); LOADCHROMA(3); - PUTRGBA(dst_2,py_2,pa_2,3,1,0); - PUTRGBA(dst_1,py_1,pa_1,3,0,0); + PUTRGBA(dst_2,py_2,pa_2,3,0); + PUTRGBA(dst_1,py_1,pa_1,3,0); pa_1 += 8;\ pa_2 += 8;\ ENDYUV2RGBLINE(8) LOADCHROMA(0); - PUTRGBA(dst_1,py_1,pa_1,0,0,0); - PUTRGBA(dst_2,py_2,pa_2,0,1,0); + PUTRGBA(dst_1,py_1,pa_1,0,0); + PUTRGBA(dst_2,py_2,pa_2,0,0); LOADCHROMA(1); - PUTRGBA(dst_2,py_2,pa_2,1,1,0); - PUTRGBA(dst_1,py_1,pa_1,1,0,0); + PUTRGBA(dst_2,py_2,pa_2,1,0); + PUTRGBA(dst_1,py_1,pa_1,1,0); ENDYUV2RGBFUNC() YUV2RGBFUNC(yuv2rgb_c_24_rgb, uint8_t, 0) @@ -304,40 +304,40 @@ // r, g, b, dst_1, dst_2 YUV2RGBFUNC(yuv2rgb_c_16, uint16_t, 0) LOADCHROMA(0); - PUTRGB(dst_1,py_1,0,0); - PUTRGB(dst_2,py_2,0,1); + PUTRGB(dst_1,py_1,0); + PUTRGB(dst_2,py_2,0); LOADCHROMA(1); - PUTRGB(dst_2,py_2,1,1); - PUTRGB(dst_1,py_1,1,0); + PUTRGB(dst_2,py_2,1); + PUTRGB(dst_1,py_1,1); LOADCHROMA(2); - PUTRGB(dst_1,py_1,2,0); - PUTRGB(dst_2,py_2,2,1); + PUTRGB(dst_1,py_1,2); + PUTRGB(dst_2,py_2,2); LOADCHROMA(3); - PUTRGB(dst_2,py_2,3,1); - PUTRGB(dst_1,py_1,3,0); + PUTRGB(dst_2,py_2,3); + PUTRGB(dst_1,py_1,3); CLOSEYUV2RGBFUNC(8) // This is exactly the same code as yuv2rgb_c_32 except for the types of // r, g, b, dst_1, dst_2 YUV2RGBFUNC(yuv2rgb_c_8, uint8_t, 0) LOADCHROMA(0); - PUTRGB(dst_1,py_1,0,0); - PUTRGB(dst_2,py_2,0,1); + PUTRGB(dst_1,py_1,0); + PUTRGB(dst_2,py_2,0); LOADCHROMA(1); - PUTRGB(dst_2,py_2,1,1); - PUTRGB(dst_1,py_1,1,0); + PUTRGB(dst_2,py_2,1); + PUTRGB(dst_1,py_1,1); LOADCHROMA(2); - PUTRGB(dst_1,py_1,2,0); - PUTRGB(dst_2,py_2,2,1); + PUTRGB(dst_1,py_1,2); + PUTRGB(dst_2,py_2,2); LOADCHROMA(3); - PUTRGB(dst_2,py_2,3,1); - PUTRGB(dst_1,py_1,3,0); + PUTRGB(dst_2,py_2,3); + PUTRGB(dst_1,py_1,3); CLOSEYUV2RGBFUNC(8) // r, g, b, dst_1, dst_2 @@ -429,20 +429,20 @@ // r, g, b, dst_1, dst_2 YUV2RGBFUNC(yuv2rgb_c_4b, uint8_t, 0) LOADCHROMA(0); - PUTRGB(dst_1,py_1,0,0); - PUTRGB(dst_2,py_2,0,1); + PUTRGB(dst_1,py_1,0); + PUTRGB(dst_2,py_2,0); LOADCHROMA(1); - PUTRGB(dst_2,py_2,1,1); - PUTRGB(dst_1,py_1,1,0); + PUTRGB(dst_2,py_2,1); + PUTRGB(dst_1,py_1,1); LOADCHROMA(2); - PUTRGB(dst_1,py_1,2,0); - PUTRGB(dst_2,py_2,2,1); + PUTRGB(dst_1,py_1,2); + PUTRGB(dst_2,py_2,2); LOADCHROMA(3); - PUTRGB(dst_2,py_2,3,1); - PUTRGB(dst_1,py_1,3,0); + PUTRGB(dst_2,py_2,3); + PUTRGB(dst_1,py_1,3); CLOSEYUV2RGBFUNC(8) YUV2RGBFUNC(yuv2rgb_c_4b_ordered_dither, uint8_t, 0)