X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmodules%2Fplus%2Ffilter_charcoal.c;h=cb0b13e2450380e30047b8b6f1cbfac73515421a;hb=9b6540065980faa29d412eadae56a461c80ad5c2;hp=76b8f58fbaccb9e1d0893c383d07e0d18ba54e75;hpb=b57890c57a31e765cc53ba5835b21fb46ae1d2a6;p=melted diff --git a/src/modules/plus/filter_charcoal.c b/src/modules/plus/filter_charcoal.c index 76b8f58..cb0b13e 100644 --- a/src/modules/plus/filter_charcoal.c +++ b/src/modules/plus/filter_charcoal.c @@ -34,7 +34,7 @@ static inline int get_Y( uint8_t *pixels, int width, int height, int x, int y ) } else { - uint8_t *pixel = pixels + y * width * 2 + x * 2; + uint8_t *pixel = pixels + y * ( width << 1 ) + ( x << 1 ); return *pixel; } } @@ -47,13 +47,13 @@ static inline int sqrti( int n ) int h = 0; while( q <= n ) - q = 4 * q; + q = q << 2; while( q != 1 ) { - q = q / 4; + q = q >> 2; h = p + q; - p = p / 2; + p = p >> 1; if ( r >= h ) { p = p + q; @@ -79,11 +79,11 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format * if ( error == 0 && *format == mlt_image_yuv422 ) { // Get the charcoal scatter value - int x_scatter = mlt_properties_get_double( mlt_filter_properties( filter ), "x_scatter" ); - int y_scatter = mlt_properties_get_double( mlt_filter_properties( filter ), "y_scatter" ); - float scale = mlt_properties_get_double( mlt_filter_properties( filter ), "scale" ); - float mix = mlt_properties_get_double( mlt_filter_properties( filter ), "mix" ); - int invert = mlt_properties_get_int( mlt_filter_properties( filter ), "invert" ); + int x_scatter = mlt_properties_get_double( MLT_FILTER_PROPERTIES( filter ), "x_scatter" ); + int y_scatter = mlt_properties_get_double( MLT_FILTER_PROPERTIES( filter ), "y_scatter" ); + float scale = mlt_properties_get_double( MLT_FILTER_PROPERTIES( filter ), "scale" ); + float mix = mlt_properties_get_double( MLT_FILTER_PROPERTIES( filter ), "mix" ); + int invert = mlt_properties_get_int( MLT_FILTER_PROPERTIES( filter ), "invert" ); // We'll process pixel by pixel int x = 0; @@ -119,8 +119,8 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format * matrix[ 2 ][ 2 ] = get_Y( *image, *width, *height, x + x_scatter, y + y_scatter ); // Do calculations - sum1 = (matrix[2][0] - matrix[0][0]) + 2*(matrix[2][1] - matrix[0][1]) + (matrix[2][2] - matrix[2][0]); - sum2 = (matrix[0][2] - matrix[0][0]) + 2*(matrix[1][2] - matrix[1][0]) + (matrix[2][2] - matrix[2][0]); + sum1 = (matrix[2][0] - matrix[0][0]) + ( (matrix[2][1] - matrix[0][1]) << 1 ) + (matrix[2][2] - matrix[2][0]); + sum2 = (matrix[0][2] - matrix[0][0]) + ( (matrix[1][2] - matrix[1][0]) << 1 ) + (matrix[2][2] - matrix[2][0]); sum = scale * sqrti( sum1 * sum1 + sum2 * sum2 ); // Assign value @@ -135,7 +135,7 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format * *image = temp; // Store new and destroy old - mlt_properties_set_data( mlt_frame_properties( this ), "image", *image, *width * *height * 2, mlt_pool_release, NULL ); + mlt_properties_set_data( MLT_FRAME_PROPERTIES( this ), "image", *image, *width * *height * 2, mlt_pool_release, NULL ); } return error; @@ -162,10 +162,10 @@ mlt_filter filter_charcoal_init( char *arg ) if ( this != NULL ) { this->process = filter_process; - mlt_properties_set( mlt_filter_properties( this ), "x_scatter", "1" ); - mlt_properties_set( mlt_filter_properties( this ), "y_scatter", "1" ); - mlt_properties_set( mlt_filter_properties( this ), "scale", "1.5" ); - mlt_properties_set( mlt_filter_properties( this ), "mix", "0" ); + mlt_properties_set( MLT_FILTER_PROPERTIES( this ), "x_scatter", "1" ); + mlt_properties_set( MLT_FILTER_PROPERTIES( this ), "y_scatter", "1" ); + mlt_properties_set( MLT_FILTER_PROPERTIES( this ), "scale", "1.5" ); + mlt_properties_set( MLT_FILTER_PROPERTIES( this ), "mix", "0" ); } return this; }