]> git.sesse.net Git - mlt/commitdiff
Cleaner fix for segfault at exit on av_lockmgr_regiter (SF-192).
authorDan Dennedy <dan@dennedy.org>
Fri, 22 Mar 2013 06:30:32 +0000 (23:30 -0700)
committerDan Dennedy <dan@dennedy.org>
Fri, 22 Mar 2013 06:30:32 +0000 (23:30 -0700)
src/modules/avformat/factory.c

index 179eb3c7ec187b67675e30ad7eba68c5d0c2fd67..6908db8173f2f51a765f128b5f9e52655d13ee76 100644 (file)
@@ -88,7 +88,7 @@ static int avformat_lockmgr(void **mutex, enum AVLockOp op)
    return 0;
 }
 
-static void avformat_exit( )
+static void unregister_lockmgr( void *p )
 {
        av_lockmgr_register( NULL );
 }
@@ -100,6 +100,7 @@ static void avformat_init( )
        {
                avformat_initialised = 1;
                av_lockmgr_register( &avformat_lockmgr );
+               mlt_factory_register_for_clean_up( &avformat_lockmgr, unregister_lockmgr );
                av_register_all( );
 #ifdef AVDEVICE
                avdevice_register_all();
@@ -108,7 +109,6 @@ static void avformat_init( )
                avformat_network_init();
 #endif
                av_log_set_level( mlt_log_get_level() );
-               atexit(avformat_exit);
        }
 }