]> git.sesse.net Git - mlt/blobdiff - src/modules/frei0r/factory.c
Merge branch 'frei0r-metadata'
[mlt] / src / modules / frei0r / factory.c
index e214292d6dddd78ebe00e40085861937d4f15098..ad9ecb777d0ce4d26f6c14802322c56697f97561 100644 (file)
@@ -178,7 +178,7 @@ static mlt_properties fill_param_info ( mlt_service_type type, const char *servi
                mlt_properties_set_data ( parameter , string , pnum , 0 , ( mlt_destructor )mlt_properties_close, NULL );
                f0r_param_info_t paraminfo;
                param_info(&paraminfo,j);
-               mlt_properties_set ( pnum , "identifier" , paraminfo.name );
+               mlt_properties_set ( pnum , "identifier" , string );
                mlt_properties_set ( pnum , "title" , paraminfo.name );
                mlt_properties_set ( pnum , "description" , paraminfo.explanation);
                if ( paraminfo.type == F0R_PARAM_DOUBLE ){
@@ -310,13 +310,13 @@ static void * load_lib( mlt_profile profile, mlt_service_type type , void* handl
                        }
                }
                check_thread_safe( properties, name );
-               mlt_properties_set_data(properties, "_dlclose_handle", handle , sizeof (void*) , NULL , NULL );
+               mlt_properties_set_data(properties, "_dlclose_handle", handle , sizeof ( handle ) , NULL , NULL );
                mlt_properties_set_data(properties, "_dlclose", dlclose , sizeof (void*) , NULL , NULL );
-               mlt_properties_set_data(properties, "f0r_construct", f0r_construct , sizeof(void*),NULL,NULL);
-               mlt_properties_set_data(properties, "f0r_update", f0r_update , sizeof(void*),NULL,NULL);
+               mlt_properties_set_data(properties, "f0r_construct", f0r_construct , sizeof( f0r_construct ),NULL,NULL);
+               mlt_properties_set_data(properties, "f0r_update", f0r_update , sizeof( f0r_update ),NULL,NULL);
                if (f0r_update2)
-                       mlt_properties_set_data(properties, "f0r_update2", f0r_update2 , sizeof(void*),NULL,NULL);
-               mlt_properties_set_data(properties, "f0r_destruct", f0r_destruct , sizeof(void*),NULL,NULL);
+                       mlt_properties_set_data(properties, "f0r_update2", f0r_update2 , sizeof( f0r_update2 ),NULL,NULL);
+               mlt_properties_set_data(properties, "f0r_destruct", f0r_destruct , sizeof( f0r_destruct ),NULL,NULL);
                mlt_properties_set_data(properties, "f0r_get_plugin_info", f0r_get_plugin_info , sizeof(void*),NULL,NULL);
                mlt_properties_set_data(properties, "f0r_get_param_info", f0r_get_param_info , sizeof(void*),NULL,NULL);
                mlt_properties_set_data(properties, "f0r_set_param_value", f0r_set_param_value , sizeof(void*),NULL,NULL);
@@ -419,9 +419,10 @@ MLT_REPOSITORY
                        char* firstname = strtok_r( shortname, ".", &save_firstptr );
 #endif
                        char pluginname[1024]="frei0r.";
-                       strcat(pluginname,firstname);
+                       if ( firstname )
+                               strncat( pluginname, firstname, sizeof( pluginname ) - strlen( pluginname ) -1 );
 
-                       if ( mlt_properties_get( blacklist, firstname ) )
+                       if ( firstname && mlt_properties_get( blacklist, firstname ) )
                                continue;
 
                        void* handle=dlopen(strcat(name, LIBSUF),RTLD_LAZY);