+ Bounds checking on chroma samples
authorlilo_booter <lilo_booter@d19143bc-622f-0410-bfdd-b5b2a6649095>
Fri, 23 Sep 2005 06:16:53 +0000 (06:16 +0000)
committerlilo_booter <lilo_booter@d19143bc-622f-0410-bfdd-b5b2a6649095>
Fri, 23 Sep 2005 06:16:53 +0000 (06:16 +0000)
git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@828 d19143bc-622f-0410-bfdd-b5b2a6649095

src/modules/plus/filter_charcoal.c

index cb0b13e..f48f37f 100644 (file)
@@ -101,6 +101,7 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format *
                int sum1;
                int sum2;
                float sum;
+               int val;
 
                // Loop for each row
                for ( y = 0; y < *height; y ++ )
@@ -127,7 +128,9 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format *
                                *p ++ = !invert ? ( sum >= 16 && sum <= 235 ? 251 - sum : sum < 16 ? 235 : 16 ) :
                                                                  ( sum >= 16 && sum <= 235 ? sum : sum < 16 ? 16 : 235 );
                                q ++;
-                               *p ++ = 128 + mix * ( *q ++ - 128 );
+                               val = 128 + mix * ( *q ++ - 128 );
+                               val = val < 16 ? 16 : val > 240 ? 240 : val;
+                               *p ++ = val;
                        }
                }