]> git.sesse.net Git - mlt/blobdiff - src/melt/melt.c
Let Movit effects supply their own fingerprint.
[mlt] / src / melt / melt.c
index ddb33359641893a74d3fab02f98d6b9b9600e152..4526090d9ab148d49276944c523da1814a66fb87 100644 (file)
@@ -100,6 +100,7 @@ static void transport_action( mlt_producer producer, char *value )
                        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':
@@ -685,8 +686,7 @@ static void query_vcodecs( )
 
 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 )
@@ -970,7 +970,10 @@ query_all:
 
        // 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 )
@@ -984,8 +987,11 @@ query_all:
        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;
 }