else
{
// Otherwise, set in and out on producer directly
- mlt_producer_set_in_and_out( MLT_PRODUCER( service ), in, out );
+ mlt_producer_set_in_and_out( MLT_PRODUCER( producer ), in, out );
}
}
else
mlt_producer_set_in_and_out( MLT_PRODUCER( producer ), in, out );
}
}
-
+
// Push the producer onto the stack
context_push_service( context, producer, mlt_producer_type );
}
if ( multitrack != NULL )
{
- // Set the track on the multitrack
-
// Set producer i/o if specified
- if ( mlt_properties_get( track_props, "in" ) != NULL &&
+ if ( mlt_properties_get( track_props, "in" ) != NULL ||
mlt_properties_get( track_props, "out" ) != NULL )
{
+ if ( mlt_properties_get( track_props, "out" ) == NULL )
+ mlt_properties_set_position( track_props, "out", mlt_properties_get_position( track_props, "length" ) - 1 );
mlt_producer cut = mlt_producer_cut( MLT_PRODUCER( producer ),
mlt_properties_get_position( track_props, "in" ),
mlt_properties_get_position( track_props, "out" ) );
if ( parent_type == mlt_tractor_type )
{
mlt_field field = mlt_tractor_field( MLT_TRACTOR( parent ) );
+ if ( mlt_properties_get_int( properties, "a_track" ) == mlt_properties_get_int( properties, "b_track" ) )
+ mlt_properties_set_int( properties, "b_track", mlt_properties_get_int( properties, "a_track" ) + 1 );
mlt_field_plant_transition( field, MLT_TRANSITION( effect ),
mlt_properties_get_int( properties, "a_track" ),
mlt_properties_get_int( properties, "b_track" ) );
struct _xmlParserCtxt *xmlcontext;
int well_formed = 0;
char *filename = NULL;
-
+
context->producer_map = mlt_properties_new();
context->destructors = mlt_properties_new();
context->params = mlt_properties_new();
else
{
// Allow the project to be edited
+ mlt_properties_set( properties, "_westley", "was here" );
mlt_properties_set_int( properties, "_mlt_service_hidden", 1 );
}
}