From 3a2bed1f9ebc1a3b477c54d2cdba4be0cc4f372b Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 24 Dec 2014 00:33:21 +0100 Subject: [PATCH] swscale/yuv2rgb: Fix width % 4 != 0 with bgr4_byte/rgb4_byte Signed-off-by: Michael Niedermayer --- libswscale/yuv2rgb.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/libswscale/yuv2rgb.c b/libswscale/yuv2rgb.c index 41b603e444..8ed36e4e0a 100644 --- a/libswscale/yuv2rgb.c +++ b/libswscale/yuv2rgb.c @@ -608,7 +608,23 @@ YUV2RGBFUNC(yuv2rgb_c_4b_ordered_dither, uint8_t, 0) LOADCHROMA(3); PUTRGB4DB(dst_2, py_2, 3, 6 + 8); PUTRGB4DB(dst_1, py_1, 3, 6); -CLOSEYUV2RGBFUNC(8) +ENDYUV2RGBLINE(8, 0) + const uint8_t *d64 = ff_dither_8x8_73[y & 7]; + const uint8_t *d128 = ff_dither_8x8_220[y & 7]; + LOADCHROMA(0); + PUTRGB4DB(dst_1, py_1, 0, 0); + PUTRGB4DB(dst_2, py_2, 0, 0 + 8); + + LOADCHROMA(1); + PUTRGB4DB(dst_2, py_2, 1, 2 + 8); + PUTRGB4DB(dst_1, py_1, 1, 2); +ENDYUV2RGBLINE(8, 1) + const uint8_t *d64 = ff_dither_8x8_73[y & 7]; + const uint8_t *d128 = ff_dither_8x8_220[y & 7]; + LOADCHROMA(0); + PUTRGB4DB(dst_1, py_1, 0, 0); + PUTRGB4DB(dst_2, py_2, 0, 0 + 8); +ENDYUV2RGBFUNC() YUV2RGBFUNC(yuv2rgb_c_1_ordered_dither, uint8_t, 0) const uint8_t *d128 = ff_dither_8x8_220[y & 7];