Commit 03bffb68 authored by Michael Niedermayer's avatar Michael Niedermayer

swscale: Use av_clip_uintp2()

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent b2042639
...@@ -1549,16 +1549,16 @@ static av_always_inline void yuv2rgb_write_full(SwsContext *c, ...@@ -1549,16 +1549,16 @@ static av_always_inline void yuv2rgb_write_full(SwsContext *c,
r = (((R >> 19) + A_DITHER(i,y) -96)>>8); r = (((R >> 19) + A_DITHER(i,y) -96)>>8);
g = (((G >> 19) + A_DITHER(i + 17,y) - 96)>>8); g = (((G >> 19) + A_DITHER(i + 17,y) - 96)>>8);
b = (((B >> 20) + A_DITHER(i + 17*2,y) -96)>>8); b = (((B >> 20) + A_DITHER(i + 17*2,y) -96)>>8);
r = av_clip(r, 0, 7); r = av_clip_uintp2(r, 3);
g = av_clip(g, 0, 7); g = av_clip_uintp2(g, 3);
b = av_clip(b, 0, 3); b = av_clip_uintp2(b, 2);
} else { } else {
r = (((R >> 21) + A_DITHER(i,y)-256)>>8); r = (((R >> 21) + A_DITHER(i,y)-256)>>8);
g = (((G >> 19) + A_DITHER(i + 17,y)-256)>>8); g = (((G >> 19) + A_DITHER(i + 17,y)-256)>>8);
b = (((B >> 21) + A_DITHER(i + 17*2,y)-256)>>8); b = (((B >> 21) + A_DITHER(i + 17*2,y)-256)>>8);
r = av_clip(r, 0, 1); r = av_clip_uintp2(r, 1);
g = av_clip(g, 0, 3); g = av_clip_uintp2(g, 2);
b = av_clip(b, 0, 1); b = av_clip_uintp2(b, 1);
} }
break; break;
case SWS_DITHER_X_DITHER: case SWS_DITHER_X_DITHER:
...@@ -1568,16 +1568,16 @@ static av_always_inline void yuv2rgb_write_full(SwsContext *c, ...@@ -1568,16 +1568,16 @@ static av_always_inline void yuv2rgb_write_full(SwsContext *c,
r = (((R >> 19) + X_DITHER(i,y) - 96)>>8); r = (((R >> 19) + X_DITHER(i,y) - 96)>>8);
g = (((G >> 19) + X_DITHER(i + 17,y) - 96)>>8); g = (((G >> 19) + X_DITHER(i + 17,y) - 96)>>8);
b = (((B >> 20) + X_DITHER(i + 17*2,y) - 96)>>8); b = (((B >> 20) + X_DITHER(i + 17*2,y) - 96)>>8);
r = av_clip(r, 0, 7); r = av_clip_uintp2(r, 3);
g = av_clip(g, 0, 7); g = av_clip_uintp2(g, 3);
b = av_clip(b, 0, 3); b = av_clip_uintp2(b, 2);
} else { } else {
r = (((R >> 21) + X_DITHER(i,y)-256)>>8); r = (((R >> 21) + X_DITHER(i,y)-256)>>8);
g = (((G >> 19) + X_DITHER(i + 17,y)-256)>>8); g = (((G >> 19) + X_DITHER(i + 17,y)-256)>>8);
b = (((B >> 21) + X_DITHER(i + 17*2,y)-256)>>8); b = (((B >> 21) + X_DITHER(i + 17*2,y)-256)>>8);
r = av_clip(r, 0, 1); r = av_clip_uintp2(r, 1);
g = av_clip(g, 0, 3); g = av_clip_uintp2(g, 2);
b = av_clip(b, 0, 1); b = av_clip_uintp2(b, 1);
} }
break; break;
......
...@@ -805,9 +805,9 @@ static void xyz12Torgb48(struct SwsContext *c, uint16_t *dst, ...@@ -805,9 +805,9 @@ static void xyz12Torgb48(struct SwsContext *c, uint16_t *dst,
c->xyz2rgb_matrix[2][2] * z >> 12; c->xyz2rgb_matrix[2][2] * z >> 12;
// limit values to 12-bit depth // limit values to 12-bit depth
r = av_clip(r, 0, 4095); r = av_clip_uintp2(r, 12);
g = av_clip(g, 0, 4095); g = av_clip_uintp2(g, 12);
b = av_clip(b, 0, 4095); b = av_clip_uintp2(b, 12);
// convert from sRGBlinear to RGB and scale from 12bit to 16bit // convert from sRGBlinear to RGB and scale from 12bit to 16bit
if (desc->flags & AV_PIX_FMT_FLAG_BE) { if (desc->flags & AV_PIX_FMT_FLAG_BE) {
...@@ -861,9 +861,9 @@ static void rgb48Toxyz12(struct SwsContext *c, uint16_t *dst, ...@@ -861,9 +861,9 @@ static void rgb48Toxyz12(struct SwsContext *c, uint16_t *dst,
c->rgb2xyz_matrix[2][2] * b >> 12; c->rgb2xyz_matrix[2][2] * b >> 12;
// limit values to 12-bit depth // limit values to 12-bit depth
x = av_clip(x, 0, 4095); x = av_clip_uintp2(x, 12);
y = av_clip(y, 0, 4095); y = av_clip_uintp2(y, 12);
z = av_clip(z, 0, 4095); z = av_clip_uintp2(z, 12);
// convert from XYZlinear to X'Y'Z' and scale from 12bit to 16bit // convert from XYZlinear to X'Y'Z' and scale from 12bit to 16bit
if (desc->flags & AV_PIX_FMT_FLAG_BE) { if (desc->flags & AV_PIX_FMT_FLAG_BE) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment