Speed switch corrections
[melted] / src / framework / mlt_producer.c
index 3382d11..55f85ad 100644 (file)
@@ -208,11 +208,6 @@ mlt_producer mlt_producer_cut( mlt_producer this, int in, int out )
        mlt_properties_set_int( MLT_FILTER_PROPERTIES( filter ), "_fezzik", 1 );
        mlt_producer_attach( result, filter );
        mlt_filter_close( filter );
-       filter = mlt_factory_filter( "data_show", "%obscure.properties" );
-       mlt_properties_set_int( MLT_FILTER_PROPERTIES( filter ), "_fezzik", 1 );
-       mlt_producer_attach( result, filter );
-       mlt_filter_close( filter );
-       mlt_events_unblock( MLT_PRODUCER_PROPERTIES( result ), MLT_PRODUCER_PROPERTIES( result ) );
 
        return result;
 }
@@ -508,6 +503,10 @@ static int producer_get_frame( mlt_service service, mlt_frame_ptr frame, int ind
                // We're done with the clone now
                mlt_properties_set_data( parent_properties, "use_clone", NULL, 0, NULL, NULL );
 
+               // This is useful and required by always_active transitions to determine in/out points of the cut
+               if ( mlt_properties_get_data( MLT_FRAME_PROPERTIES( *frame ), "_producer", NULL ) == MLT_PRODUCER_SERVICE( parent ) )
+                       mlt_properties_set_data( MLT_FRAME_PROPERTIES( *frame ), "_producer", this, 0, NULL, NULL );
+
                mlt_properties_set_double( MLT_FRAME_PROPERTIES( *frame ), "_speed", speed );
                mlt_producer_prepare_next( this );
        }