X-Git-Url: https://git.sesse.net/?p=mlt;a=blobdiff_plain;f=src%2Fmodules%2Fcore%2Fconsumer_multi.c;fp=src%2Fmodules%2Fcore%2Fconsumer_multi.c;h=8d0b66eb71a17514e9d21bf60747aa0dba5f3afc;hp=ffcc608619a7bc4b50967861c72efe769bb2cd5e;hb=cd57591f30d646a5a650d8e880ed24130eddc4b6;hpb=5d1defb9892cf1c92344c0d0a0bfc2f20ff56c99 diff --git a/src/modules/core/consumer_multi.c b/src/modules/core/consumer_multi.c index ffcc6086..8d0b66eb 100644 --- a/src/modules/core/consumer_multi.c +++ b/src/modules/core/consumer_multi.c @@ -259,12 +259,23 @@ static void foreach_consumer_init( mlt_consumer consumer ) if ( ( s = mlt_properties_get( properties, key ) ) ) { mlt_properties p = mlt_properties_new(); - int i, count; - if ( !p ) break; - mlt_properties_set( p, "mlt_service", mlt_properties_get( properties, key ) ); + + // Terminate mlt_service value at the argument delimiter if supplied. + // Needed here instead of just relying upon create_consumer() so that + // a properties preset is picked up correctly. + char *service = strdup( mlt_properties_get( properties, key ) ); + char *arg = strchr( service, ':' ); + if ( arg ) { + *arg ++ = '\0'; + mlt_properties_set( p, "target", arg ); + } + mlt_properties_set( p, "mlt_service", service ); + free( service ); + snprintf( key, sizeof(key), "%d.", index ); + int i, count; count = mlt_properties_count( properties ); for ( i = 0; i < count; i++ ) {