X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fframework%2Fmlt_multitrack.c;h=d274dbcd5609ea6456cd38e54347c0ec80b8b137;hb=51f097a1265af1a197988b9731c8dc414ac8cc9b;hp=50a9426d9c1c507df26566ea71a12fcf1f3e7207;hpb=9ad7cb6cdea367db7a720fa0335f8b8eccf0ae09;p=melted diff --git a/src/framework/mlt_multitrack.c b/src/framework/mlt_multitrack.c index 50a9426..d274dbc 100644 --- a/src/framework/mlt_multitrack.c +++ b/src/framework/mlt_multitrack.c @@ -136,7 +136,7 @@ void mlt_multitrack_refresh( mlt_multitrack this ) mlt_properties_set( mlt_producer_properties( producer ), "eof", "continue" ); // Determine the longest length - if ( !mlt_properties_get_int( mlt_producer_properties( producer ), "hide" ) ) + //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 @@ -394,9 +394,18 @@ static int producer_get_frame( mlt_producer parent, mlt_frame_ptr frame, int ind // Get the producer for this track mlt_producer producer = this->list[ index ]->producer; + // Get the track hide property + int hide = mlt_properties_get_int( mlt_producer_properties( mlt_producer_cut_parent( producer ) ), "hide" ); + // Obtain the current position mlt_position position = mlt_producer_frame( parent ); + // Get the parent properties + mlt_properties producer_properties = mlt_producer_properties( parent ); + + // Get the speed + double speed = mlt_properties_get_double( producer_properties, "_speed" ); + // Make sure we're at the same point mlt_producer_seek( producer, position ); @@ -404,12 +413,10 @@ static int producer_get_frame( mlt_producer parent, mlt_frame_ptr frame, int ind mlt_service_get_frame( mlt_producer_service( producer ), frame, 0 ); // Indicate speed of this producer - mlt_properties producer_properties = mlt_producer_properties( parent ); - 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_position( properties, "_position", position ); - mlt_properties_set_int( properties, "hide", mlt_properties_get_int( mlt_producer_properties( producer ), "hide" ) ); + mlt_properties_set_int( properties, "hide", hide ); } else {