#include <stddef.h>
#include <stdio.h>
+#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
#include <dlfcn.h>
#include <stdlib.h>
+#include <limits.h>
extern mlt_filter filter_frei0r_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg );
extern mlt_frame filter_process( mlt_filter this, mlt_frame frame );
static mlt_properties fill_param_info ( mlt_service_type type, const char *service_name, char *name )
{
+ char file[ PATH_MAX ];
+ char servicetype[ 1024 ]="";
+ struct stat stat_buff;
+
+ switch ( type ) {
+ case filter_type:
+ strcpy ( servicetype , "filter" );
+ break;
+ case transition_type:
+ strcpy ( servicetype , "transition" ) ;
+ break;
+ default:
+ strcpy ( servicetype , "" );
+ };
+
+ snprintf( file, PATH_MAX, "%s/frei0r/%s_%s.yml", mlt_environment( "MLT_DATA" ), servicetype, service_name );
+ stat(file,&stat_buff);
+
+ if (S_ISREG(stat_buff.st_mode)){
+ return mlt_properties_parse_yaml( file );
+ }
+
void* handle=dlopen(name,RTLD_LAZY);
if (!handle) return NULL;
void (*plginfo)(f0r_plugin_info_t*)=dlsym(handle,"f0r_get_plugin_info");
mlt_properties_set ( pnum , "description" , paraminfo.explanation);
if ( paraminfo.type == F0R_PARAM_DOUBLE ){
mlt_properties_set ( pnum , "type" , "float" );
- mlt_properties_set ( pnum , "minimum" , "-2" );
- mlt_properties_set ( pnum , "maximum" , "2" );
+ mlt_properties_set ( pnum , "minimum" , "0" );
+ mlt_properties_set ( pnum , "maximum" , "1" );
mlt_properties_set ( pnum , "readonly" , "no" );
mlt_properties_set ( pnum , "widget" , "spinner" );
}else