uint8_t *image = mlt_properties_get_data( a_props, "image", NULL );
int width = mlt_properties_get_int( a_props, "width" );
int height = mlt_properties_get_int( a_props, "height" );
+ int format = mlt_properties_get_int( a_props, "format" );
// Pointers for copy operation
uint8_t *p;
mlt_properties_set_data( b_props, "image", dest, w * h * 2, mlt_pool_release, NULL );
mlt_properties_set_int( b_props, "width", w );
mlt_properties_set_int( b_props, "height", h );
+ mlt_properties_set_int( b_props, "format", format );
if ( y < 0 )
{
mlt_properties_set( b_props, "rescale.interp", rescale );
// Do the calculation
+ // NB: Locks needed here since the properties are being modified
+ mlt_service_lock( MLT_TRANSITION_SERVICE( this ) );
composite_calculate( this, &result, a_frame, position );
+ mlt_service_unlock( MLT_TRANSITION_SERVICE( this ) );
// Since we are the consumer of the b_frame, we must pass along these
// consumer properties from the a_frame
double field_position = position + field * delta;
// Do the calculation if we need to
+ // NB: Locks needed here since the properties are being modified
+ mlt_service_lock( MLT_TRANSITION_SERVICE( this ) );
composite_calculate( this, &result, a_frame, field_position );
+ mlt_service_unlock( MLT_TRANSITION_SERVICE( this ) );
if ( mlt_properties_get_int( properties, "titles" ) )
{