From 3d00ba2688f69a55ed2832349b802997bef7f876 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 24 Dec 2014 00:10:49 +0100 Subject: swscale/yuv2rgb: fix width % 8 != 0 and rgb/bgr8 output Fixes Ticket2570 Signed-off-by: Michael Niedermayer --- libswscale/yuv2rgb.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'libswscale') diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c index 8e92e6d..bef43dc 100644 --- a/libswscale/yuv2rgb.c +++ b/libswscale/yuv2rgb.c @@ -504,7 +504,27 @@ YUV2RGBFUNC(yuv2rgb_c_8_ordered_dither, uint8_t, 0) LOADCHROMA(3); PUTRGB8(dst_2, py_2, 3, 6 + 8); PUTRGB8(dst_1, py_1, 3, 6); -CLOSEYUV2RGBFUNC(8) + +ENDYUV2RGBLINE(8, 0) + const uint8_t *d32 = ff_dither_8x8_32[y & 7]; + const uint8_t *d64 = ff_dither_8x8_73[y & 7]; + LOADCHROMA(0); + PUTRGB8(dst_1, py_1, 0, 0); + PUTRGB8(dst_2, py_2, 0, 0 + 8); + + LOADCHROMA(1); + PUTRGB8(dst_2, py_2, 1, 2 + 8); + PUTRGB8(dst_1, py_1, 1, 2); + +ENDYUV2RGBLINE(8, 1) + const uint8_t *d32 = ff_dither_8x8_32[y & 7]; + const uint8_t *d64 = ff_dither_8x8_73[y & 7]; + LOADCHROMA(0); + PUTRGB8(dst_1, py_1, 0, 0); + PUTRGB8(dst_2, py_2, 0, 0 + 8); + +ENDYUV2RGBFUNC() + YUV2RGBFUNC(yuv2rgb_c_4_ordered_dither, uint8_t, 0) const uint8_t * d64 = ff_dither_8x8_73[y & 7]; -- cgit v1.1