Fixes: signed integer overflow: 1169365504 + 981452800 cannot be represented in type 'int' Fixes: ticket8293
Unified · Split
| @@ -1850,9 +1850,9 @@ static av_always_inline void yuv2rgb_write_full(SwsContext *c, · 1849 unmodified lines | ||
| 1850 | 1850 | Y -= c->yuv2rgb_y_offset; |
| 1851 | 1851 | Y *= c->yuv2rgb_y_coeff; |
| 1852 | 1852 | Y += 1 << 21; |
| 1853 | − R = Y + V*c->yuv2rgb_v2r_coeff; | |
| 1854 | − G = Y + V*c->yuv2rgb_v2g_coeff + U*c->yuv2rgb_u2g_coeff; | |
| 1855 | − B = Y + U*c->yuv2rgb_u2b_coeff; | |
| 1853 | + R = (unsigned)Y + V*c->yuv2rgb_v2r_coeff; | |
| 1854 | + G = (unsigned)Y + V*c->yuv2rgb_v2g_coeff + U*c->yuv2rgb_u2g_coeff; | |
| 1855 | + B = (unsigned)Y + U*c->yuv2rgb_u2b_coeff; | |
| 1856 | 1856 | if ((R | G | B) & 0xC0000000) { |
| 1857 | 1857 | R = av_clip_uintp2(R, 30); |
| 1858 | 1858 | G = av_clip_uintp2(G, 30); |