From e1b0019568430ee80c3bb474829897700ef31f1c Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 29 May 2015 12:06:51 +0200 Subject: [PATCH] avformat/mov: Avoid float usage in yuv_to_rgba() This avoids the possibility for rounding/precision differences between platforms Signed-off-by: Michael Niedermayer --- libavformat/mov.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 51cdd21abd..60729343dd 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1711,9 +1711,9 @@ static uint32_t yuv_to_rgba(uint32_t ycbcr) cr = (ycbcr >> 8) & 0xFF; cb = ycbcr & 0xFF; - b = av_clip_uint8(1.164 * (y - 16) + 2.018 * (cb - 128)); - g = av_clip_uint8(1.164 * (y - 16) - 0.813 * (cr - 128) - 0.391 * (cb - 128)); - r = av_clip_uint8(1.164 * (y - 16) + 1.596 * (cr - 128)); + b = av_clip_uint8((1164 * (y - 16) + 2018 * (cb - 128)) / 1000); + g = av_clip_uint8((1164 * (y - 16) - 813 * (cr - 128) - 391 * (cb - 128)) / 1000); + r = av_clip_uint8((1164 * (y - 16) + 1596 * (cr - 128) ) / 1000); return (r << 16) | (g << 8) | b; }