avfilter/vf_eq: Fix clipping code
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 26 Jan 2015 22:46:44 +0000 (23:46 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 26 Jan 2015 22:46:44 +0000 (23:46 +0100)
Found-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavfilter/vf_eq.c
libavfilter/x86/vf_eq.c

index 0c2f0ce..7bbbaee 100644 (file)
@@ -91,7 +91,7 @@ static void process_c(EQParameters *param, uint8_t *dst, int dst_stride,
         for (x = 0; x < w; x++) {
             pel = ((src[y * src_stride + x] * contrast) >> 12) + brightness;
 
-            if (pel & 768)
+            if (pel & ~255)
                 pel = (-pel) >> 31;
 
             dst[y * dst_stride + x] = pel;
index cfcc18f..2e42cdf 100644 (file)
@@ -72,7 +72,7 @@ static void process_MMX(EQParameters *param, uint8_t *dst, int dst_stride,
 
                 for (i = w&7; i; i--) {
                         pel = ((*src++ * contrast) >> 12) + brightness;
-                        if (pel & 768)
+                        if (pel & ~255)
                             pel = (-pel) >> 31;
                         *dst++ = pel;
                 }