[Mlt-devel] SF.net SVN: mlt: [1029] trunk/mlt/src/framework
Brought to you by:
ddennedy,
lilo_booter
From: <dde...@us...> - 2007-10-13 06:53:33
|
Revision: 1029 http://mlt.svn.sourceforge.net/mlt/?rev=1029&view=rev Author: ddennedy Date: 2007-10-12 23:53:31 -0700 (Fri, 12 Oct 2007) Log Message: ----------- mlt_profile.c, mlt_factory.c: bugfix loading profile by file specification and remove a small memory leak Modified Paths: -------------- trunk/mlt/src/framework/mlt_factory.c trunk/mlt/src/framework/mlt_profile.c Modified: trunk/mlt/src/framework/mlt_factory.c =================================================================== --- trunk/mlt/src/framework/mlt_factory.c 2007-10-13 06:02:44 UTC (rev 1028) +++ trunk/mlt/src/framework/mlt_factory.c 2007-10-13 06:53:31 UTC (rev 1029) @@ -116,10 +116,7 @@ // 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" ); Modified: trunk/mlt/src/framework/mlt_profile.c =================================================================== --- trunk/mlt/src/framework/mlt_profile.c 2007-10-13 06:02:44 UTC (rev 1028) +++ trunk/mlt/src/framework/mlt_profile.c 2007-10-13 06:53:31 UTC (rev 1029) @@ -65,11 +65,16 @@ { 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" ) ) { - // default behavior is to use $prefix/share/mlt/profiles + filename = calloc( 1, strlen( name ) + 1 ); + } + // Load from $prefix/share/mlt/profiles + else if ( prefix == NULL ) + { prefix = PREFIX; filename = calloc( 1, strlen( prefix ) + strlen( PROFILES_DIR ) + strlen( name ) + 2 ); strcpy( filename, prefix ); @@ -77,16 +82,24 @@ 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 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |