]> git.sesse.net Git - mlt/blobdiff - src/framework/mlt_factory.c
consumer avformat added, various cleanups and consumer realtime switching
[mlt] / src / framework / mlt_factory.c
index dee338e3bab2d36d0716568c8db2791c48454de4..4b92fe412eab40ffb6a715ab66686fa085387e65 100644 (file)
@@ -174,6 +174,16 @@ mlt_consumer mlt_factory_consumer( char *service, void *input )
        return obj;
 }
 
+/** Register an object for clean up.
+*/
+
+void mlt_factory_register_for_clean_up( void *ptr, mlt_destructor destructor )
+{
+       char unique[ 256 ];
+       sprintf( unique, "%08d", mlt_properties_count( global_properties ) );
+       mlt_properties_set_data( global_properties, unique, ptr, 0, destructor, NULL );
+}
+
 /** Close the factory.
 */
 
@@ -185,8 +195,8 @@ void mlt_factory_close( )
                mlt_repository_close( filters );
                mlt_repository_close( transitions );
                mlt_repository_close( consumers );
-               mlt_properties_close( object_list );
                mlt_properties_close( global_properties );
+               mlt_properties_close( object_list );
                free( mlt_prefix );
                mlt_prefix = NULL;
                mlt_pool_close( );