|
|
|
@@ -386,8 +386,8 @@ yuv2gray16_X_c_template(SwsContext *c, const int16_t *lumFilter, |
|
|
|
|
|
|
|
for (i = 0; i < (dstW >> 1); i++) { |
|
|
|
int j; |
|
|
|
int Y1 = 1 << 14; |
|
|
|
int Y2 = 1 << 14; |
|
|
|
int Y1 = (1 << 14) - 0x40000000; |
|
|
|
int Y2 = (1 << 14) - 0x40000000; |
|
|
|
|
|
|
|
for (j = 0; j < lumFilterSize; j++) { |
|
|
|
Y1 += lumSrc[j][i * 2] * lumFilter[j]; |
|
|
|
@@ -395,12 +395,10 @@ yuv2gray16_X_c_template(SwsContext *c, const int16_t *lumFilter, |
|
|
|
} |
|
|
|
Y1 >>= 15; |
|
|
|
Y2 >>= 15; |
|
|
|
if ((Y1 | Y2) & 0x10000) { |
|
|
|
Y1 = av_clip_uint16(Y1); |
|
|
|
Y2 = av_clip_uint16(Y2); |
|
|
|
} |
|
|
|
output_pixel(&dest[i * 2 + 0], Y1); |
|
|
|
output_pixel(&dest[i * 2 + 1], Y2); |
|
|
|
Y1 = av_clip_int16(Y1); |
|
|
|
Y2 = av_clip_int16(Y2); |
|
|
|
output_pixel(&dest[i * 2 + 0], 0x8000 + Y1); |
|
|
|
output_pixel(&dest[i * 2 + 1], 0x8000 + Y2); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|