/** Calculate the field delta for this frame - position between two frames.
*/
-static inline double delta_calculate( mlt_transition this, mlt_frame frame, mlt_position position )
-{
- // Get the in and out position
- mlt_position in = mlt_transition_get_in( this );
- mlt_position out = mlt_transition_get_out( this );
- double length = out - in + 1;
-
- // Now do the calcs
- double x = ( double )( position - in ) / length;
- double y = ( double )( position + 1 - in ) / length;
-
- return length * ( y - x ) / 2.0;
-}
-
static int get_value( mlt_properties properties, const char *preferred, const char *fallback )
{
int value = mlt_properties_get_int( properties, preferred );
struct geometry_s result;
// Calculate the position
- double delta = delta_calculate( this, a_frame, position );
+ double delta = mlt_transition_get_progress_delta( this, a_frame );
// Get the image from the b frame
uint8_t *image_b = NULL;
#include <string.h>
#include <math.h>
-/** Calculate the field delta for this frame - position between two frames.
-*/
-
-static float delta_calculate( mlt_transition this, mlt_frame frame )
-{
- // Get the in and out position
- mlt_position in = mlt_transition_get_in( this );
- mlt_position out = mlt_transition_get_out( this );
-
- // Get the position of the frame
- mlt_position position = mlt_frame_get_position( frame );
-
- // Now do the calcs
- float x = ( float )( position - in ) / ( float )( out - in + 1 );
- float y = ( float )( position + 1 - in ) / ( float )( out - in + 1 );
-
- return ( y - x ) / 2.0;
-}
-
static inline int dissolve_yuv( mlt_frame this, mlt_frame that, float weight, int width, int height )
{
int ret = 0;
// Arbitrary composite defaults
float mix = mlt_transition_get_progress( transition, a_frame );
- float frame_delta = delta_calculate( transition, a_frame );
+ float frame_delta = mlt_transition_get_progress_delta( transition, a_frame );
float luma_softness = mlt_properties_get_double( properties, "softness" );
int progressive =
mlt_properties_get_int( a_props, "consumer_deinterlace" ) ||