X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fframework%2Fmlt_properties.c;h=a774ca1d06727cfc5640d394f14fc6cf3b543547;hb=0ef075de03b447797a8530585815c8c86aae5178;hp=d830e44f7df3a3c7723ec69c664ad8343a5572af;hpb=0b288164cbeb9a3c98107d439d86844be13ba910;p=melted diff --git a/src/framework/mlt_properties.c b/src/framework/mlt_properties.c index d830e44..a774ca1 100644 --- a/src/framework/mlt_properties.c +++ b/src/framework/mlt_properties.c @@ -105,18 +105,40 @@ void mlt_properties_mirror( mlt_properties this, mlt_properties that ) int mlt_properties_inherit( mlt_properties this, mlt_properties that ) { int count = mlt_properties_count( that ); - while ( count -- ) + int i = 0; + for ( i = 0; i < count; i ++ ) { - char *value = mlt_properties_get_value( that, count ); + char *value = mlt_properties_get_value( that, i ); if ( value != NULL ) { - char *name = mlt_properties_get_name( that, count ); + char *name = mlt_properties_get_name( that, i ); mlt_properties_set( this, name, value ); } } return 0; } +/** Pass all properties from 'that' that match the prefix to 'this' (excluding the prefix). +*/ + +int mlt_properties_pass( mlt_properties this, mlt_properties that, char *prefix ) +{ + int count = mlt_properties_count( that ); + int length = strlen( prefix ); + int i = 0; + for ( i = 0; i < count; i ++ ) + { + char *name = mlt_properties_get_name( that, i ); + if ( !strncmp( name, prefix, length ) ) + { + char *value = mlt_properties_get_value( that, i ); + if ( value != NULL ) + mlt_properties_set( this, name + length, value ); + } + } + return 0; +} + /** Locate a property by name */