case '5':
mlt_producer_set_speed( producer, 0 );
mlt_consumer_purge( consumer );
+ mlt_producer_seek( producer, mlt_consumer_position( consumer ) + 1 );
mlt_events_fire( jack, "jack-stop", NULL );
break;
case '6':
static void on_fatal_error( mlt_properties owner, mlt_consumer consumer )
{
- mlt_consumer_stop( consumer );
- exit( EXIT_FAILURE );
+ mlt_properties_set_int( MLT_CONSUMER_PROPERTIES(consumer), "done", 1 );
}
int main( int argc, char **argv )
// Disconnect producer from consumer to prevent ref cycles from closing services
if ( consumer )
+ {
mlt_consumer_connect( consumer, NULL );
+ mlt_events_fire( MLT_CONSUMER_PROPERTIES(consumer), "consumer-cleanup", NULL);
+ }
// Close the producer
if ( melt != NULL )
mlt_profile_close( profile );
exit_factory:
-
+
+// Workaround qmelt on OS X from crashing at exit.
+#if !defined(__MACH__) || !defined(QT_GUI_LIB)
mlt_factory_close( );
+#endif
return 0;
}