]> git.sesse.net Git - mlt/blobdiff - src/modules/kdenlive/filter_wave.c
Fix possible divide by zero.
[mlt] / src / modules / kdenlive / filter_wave.c
index 2e655f4c622deb7af9d193f659999122a986e164..551f8bf9ecbc14c4c22f877b354918fb669ea33e 100644 (file)
@@ -81,7 +81,7 @@ static int filter_get_image( mlt_frame frame, uint8_t **image, mlt_image_format
                        uint8_t *dst = mlt_pool_alloc (image_size);
                        DoWave(*image, *width, (*height), dst, position, speed, factor, deformX, deformY);
                        *image = dst;
-                       mlt_properties_set_data( MLT_FRAME_PROPERTIES( frame ), "image", *image, image_size, mlt_pool_release, NULL );
+                       mlt_frame_set_image( frame, *image, image_size, mlt_pool_release );
                }
        }
 
@@ -103,12 +103,8 @@ static mlt_frame filter_process( mlt_filter filter, mlt_frame frame )
        if ( mlt_properties_get( MLT_FILTER_PROPERTIES( filter ), "end" ) != NULL )
        {
                // Determine the time position of this frame in the transition duration
-               mlt_position in = mlt_filter_get_in( filter );
-               mlt_position out = mlt_filter_get_out( filter );
-               mlt_position time = mlt_frame_get_position( frame );
-               double position = ( double )( time - in ) / ( double )( out - in + 1 );
                double end = fabs( mlt_properties_get_double( MLT_FILTER_PROPERTIES( filter ), "end" ) );
-               wave += ( end - wave ) * position;
+               wave += ( end - wave ) * mlt_filter_get_progress( filter, frame );
        }
 
        // Push the frame filter