// Load the most appropriate profile
// MLT_PROFILE preferred
if ( getenv( "MLT_PROFILE" ) )
- {
- if ( !mlt_profile_select( mlt_environment( "MLT_PROFILE" ) ) )
- mlt_profile_load_file( mlt_environment( "MLT_PROFILE" ) );
- }
+ mlt_profile_select( mlt_environment( "MLT_PROFILE" ) );
// MLT_NORMALISATION backwards compatibility
else if ( strcmp( mlt_environment( "MLT_NORMALISATION" ), "PAL" ) )
mlt_profile_select( "dv_ntsc" );
{
char *filename = NULL;
const char *prefix = getenv( "MLT_PROFILES_PATH" );
+ mlt_properties properties = mlt_properties_load( name );
- // Allow environment to override default behavior
- if ( prefix == NULL )
+ // Try to load from file specification
+ if ( properties && mlt_properties_get_int( properties, "width" ) )
+ {
+ filename = calloc( 1, strlen( name ) + 1 );
+ }
+ // Load from $prefix/share/mlt/profiles
+ else if ( prefix == NULL )
{
- // default behavior is to use $prefix/share/mlt/profiles
prefix = PREFIX;
filename = calloc( 1, strlen( prefix ) + strlen( PROFILES_DIR ) + strlen( name ) + 2 );
strcpy( filename, prefix );
filename[ strlen( filename ) ] = '/';
strcat( filename, PROFILES_DIR );
}
+ // Use environment variable instead
else
{
- // just use environment variable
filename = calloc( 1, strlen( prefix ) + strlen( name ) + 2 );
strcpy( filename, prefix );
if ( filename[ strlen( filename ) - 1 ] != '/' )
filename[ strlen( filename ) ] = '/';
}
+
+ // Finish loading
strcat( filename, name );
- return mlt_profile_load_file( filename );
+ mlt_profile_load_file( filename );
+
+ // Cleanup
+ mlt_properties_close( properties );
+ free( filename );
+
+ return profile;
}
/** Load a profile from specific file