Browse Source

avformat/mov: Avoid float usage in yuv_to_rgba()

This avoids the possibility for rounding/precision differences between platforms

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.7
Michael Niedermayer 10 years ago
parent
commit
e1b0019568
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      libavformat/mov.c

+ 3
- 3
libavformat/mov.c View File

@@ -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;
}


Loading…
Cancel
Save