From 4a9f466b997e0c44d1e304a7a9c5d5de0b0868c7 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 4 Mar 2012 13:42:16 +0100 Subject: [PATCH] Fix alpha overflow when converting from RGBA64 to RGBA. Fixes converting the sample from ticket #503 to 32bit RGB. --- libswscale/output.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libswscale/output.c b/libswscale/output.c index cae2c31805..de41f778d2 100644 --- a/libswscale/output.c +++ b/libswscale/output.c @@ -1040,8 +1040,8 @@ yuv2rgb_1_c_template(SwsContext *c, const int16_t *buf0, *b = c->table_bU[U + YUVRGB_TABLE_HEADROOM]; if (hasAlpha) { - A1 = (abuf0[i * 2 ] + 64) >> 7; - A2 = (abuf0[i * 2 + 1] + 64) >> 7; + A1 = abuf0[i * 2 ] * 255 + 16384 >> 15; + A2 = abuf0[i * 2 + 1] * 255 + 16384 >> 15; } yuv2rgb_write(dest, i, Y1, Y2, hasAlpha ? A1 : 0, hasAlpha ? A2 : 0,