]> git.sesse.net Git - mlt/blobdiff - src/modules/opengl/filter_movit_convert.cpp
Propertly refcount the GlslManager.
[mlt] / src / modules / opengl / filter_movit_convert.cpp
index 2b9a39dbc022f66dff306d27c64e3bf458bcd23d..dab3eae41dca83887bb4be161939091be89b7715 100644 (file)
@@ -131,6 +131,14 @@ static void build_fingerprint( mlt_service service, mlt_frame frame, std::string
 
        fingerprint->push_back( '(' );
        fingerprint->append( mlt_properties_get( MLT_SERVICE_PROPERTIES( service ), "_unique_id" ) );
+
+       const char* effect_fingerprint = mlt_properties_get( MLT_SERVICE_PROPERTIES( service ), "_movit fingerprint" );
+       if ( effect_fingerprint ) {
+               fingerprint->push_back( '[' );
+               fingerprint->append( effect_fingerprint );
+               fingerprint->push_back( ']' );
+       }
+
        bool disable = mlt_properties_get_int( MLT_SERVICE_PROPERTIES( service ), "movit.parms.int.disable" );
        if ( disable ) {
                fingerprint->push_back( 'd' );
@@ -539,6 +547,8 @@ mlt_filter filter_movit_convert_init( mlt_profile profile, mlt_service_type type
 
        if ( glsl && ( filter = mlt_filter_new() ) )
        {
+               mlt_properties properties = MLT_FILTER_PROPERTIES( filter );
+               glsl->add_ref( properties );
 #ifdef WIN32
                // XXX avcolor_space is crashing on Windows in this context!
                mlt_filter cpu_csc = NULL;