result = mlt_factory_producer( "pixbuf", file );
else if ( strstr( file, ".png" ) )
result = mlt_factory_producer( "pixbuf", file );
+ else if ( strstr( file, ".tga" ) )
+ result = mlt_factory_producer( "pixbuf", file );
+ else if ( strstr( file, ".txt" ) )
+ result = mlt_factory_producer( "pango", file );
// 2nd Line fallbacks
if ( result == NULL && strstr( file, ".dv" ) )
{
clear_unit( unit );
miracle_log( LOG_DEBUG, "Cleaned playlist" );
+ miracle_unit_status_communicate( unit );
return valerie_ok;
}
return valerie_invalid_file;
}
-/** Start playing the clip.
-
- Start a dv-pump and commence dv1394 transmission.
+/** Start playing the unit.
\todo error handling
\param unit A miracle_unit handle.
mlt_properties properties = unit->properties;
mlt_playlist playlist = mlt_properties_get_data( properties, "playlist", NULL );
mlt_producer producer = mlt_playlist_producer( playlist );
+ mlt_consumer consumer = mlt_properties_get_data( unit->properties, "consumer", NULL );
mlt_producer_set_speed( producer, ( double )speed / 1000 );
+ mlt_consumer_start( consumer );
miracle_unit_status_communicate( unit );
}
void miracle_unit_terminate( miracle_unit unit )
{
+ mlt_consumer consumer = mlt_properties_get_data( unit->properties, "consumer", NULL );
+ mlt_consumer_stop( consumer );
+ miracle_unit_status_communicate( unit );
}
/** Query the status of unit playback.
int miracle_unit_has_terminated( miracle_unit unit )
{
- return 0;
+ mlt_consumer consumer = mlt_properties_get_data( unit->properties, "consumer", NULL );
+ return mlt_consumer_is_stopped( consumer );
}
/** Transfer the currently loaded clip to another unit
status->generation = mlt_properties_get_int( properties, "generation" );
- if ( !strcmp( status->clip, "" ) )
+ if ( miracle_unit_has_terminated( unit ) )
+ status->status = unit_stopped;
+ else if ( !strcmp( status->clip, "" ) )
status->status = unit_not_loaded;
else if ( status->speed == 0 )
status->status = unit_paused;