From e1efacf60bc8100d5075cf682f7d7a2f8f90f285 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 18 May 2013 15:08:55 +0200 Subject: [PATCH] sws/output: yuv2rgb_write() assert that alpha has the correct value in the tables Signed-off-by: Michael Niedermayer --- libswscale/output.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libswscale/output.c b/libswscale/output.c index c9af23b67e..6aa3112ca0 100644 --- a/libswscale/output.c +++ b/libswscale/output.c @@ -1149,9 +1149,15 @@ yuv2rgb_write(uint8_t *_dest, int i, int Y1, int Y2, if (hasAlpha) { int sh = (target == AV_PIX_FMT_RGB32_1 || target == AV_PIX_FMT_BGR32_1) ? 0 : 24; + av_assert2((((r[Y1] + g[Y1] + b[Y1]) >> sh) & 0xFF) == 0); dest[i * 2 + 0] = r[Y1] + g[Y1] + b[Y1] + (A1 << sh); dest[i * 2 + 1] = r[Y2] + g[Y2] + b[Y2] + (A2 << sh); } else { +#if ASSERT_LEVEL > 1 + int sh = (target == AV_PIX_FMT_RGB32_1 || target == AV_PIX_FMT_BGR32_1) ? 0 : 24; + + av_assert2((((r[Y1] + g[Y1] + b[Y1]) >> sh) & 0xFF) == 0xFF); +#endif dest[i * 2 + 0] = r[Y1] + g[Y1] + b[Y1]; dest[i * 2 + 1] = r[Y2] + g[Y2] + b[Y2]; }