mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
swscale: Use av_clip_uintp2()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
b20426398c
commit
03bffb68f6
@ -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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user