X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fframework%2Fmlt_multitrack.c;h=6c24400f243993175a9c42b76ae8c66e3d9fd9c8;hb=8de8411c3af4b5746e9040a67e928364be9ac058;hp=323d1ee9e3da4ac5807bc053646a6b3e600f4eb4;hpb=12d4027b3039f13c4b5f9fdb12f2fb4b7d3c3f44;p=melted diff --git a/src/framework/mlt_multitrack.c b/src/framework/mlt_multitrack.c index 323d1ee..6c24400 100644 --- a/src/framework/mlt_multitrack.c +++ b/src/framework/mlt_multitrack.c @@ -127,7 +127,8 @@ void mlt_multitrack_refresh( mlt_multitrack this ) mlt_properties_set( mlt_producer_properties( producer ), "eof", "continue" ); // Determine the longest length - length = mlt_producer_get_playtime( producer ) > length ? mlt_producer_get_playtime( producer ) : length; + if ( !mlt_properties_get_int( mlt_producer_properties( producer ), "hide" ) ) + length = mlt_producer_get_playtime( producer ) > length ? mlt_producer_get_playtime( producer ) : length; // Handle fps if ( fps == 0 ) @@ -259,7 +260,7 @@ mlt_position mlt_multitrack_clip( mlt_multitrack this, mlt_whence whence, int in // Get the producer for this track mlt_producer producer = this->list[ i ]; - // If it's assigned... + // If it's assigned and not a hidden track if ( producer != NULL ) { // Get the properties of this producer @@ -374,6 +375,7 @@ static int producer_get_frame( mlt_producer parent, mlt_frame_ptr frame, int ind double speed = mlt_properties_get_double( producer_properties, "_speed" ); mlt_properties properties = mlt_frame_properties( *frame ); mlt_properties_set_double( properties, "_speed", speed ); + mlt_properties_set_int( properties, "hide", mlt_properties_get_int( mlt_producer_properties( producer ), "hide" ) ); } else {