X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fframework%2Fmlt_multitrack.c;fp=src%2Fframework%2Fmlt_multitrack.c;h=50a9426d9c1c507df26566ea71a12fcf1f3e7207;hb=9ad7cb6cdea367db7a720fa0335f8b8eccf0ae09;hp=5d99b3fa63832ecd6525c7f04ba68ad91173318d;hpb=42ed8e7a15a5e2ba693c644e73948ff6ffb0fed4;p=melted diff --git a/src/framework/mlt_multitrack.c b/src/framework/mlt_multitrack.c index 5d99b3f..50a9426 100644 --- a/src/framework/mlt_multitrack.c +++ b/src/framework/mlt_multitrack.c @@ -381,8 +381,6 @@ mlt_position mlt_multitrack_clip( mlt_multitrack this, mlt_whence whence, int in out of sync. See playlist logic too. - - This is not as clean as it should be... */ static int producer_get_frame( mlt_producer parent, mlt_frame_ptr frame, int index ) @@ -393,28 +391,14 @@ static int producer_get_frame( mlt_producer parent, mlt_frame_ptr frame, int ind // Check if we have a track for this index if ( index < this->count && this->list[ index ] != NULL ) { - // Determine the in point - int in = mlt_producer_is_cut( this->list[ index ]->producer ) ? mlt_producer_get_in( this->list[ index ]->producer ) : 0; - // Get the producer for this track - mlt_producer producer = mlt_producer_cut_parent( this->list[ index ]->producer ); + mlt_producer producer = this->list[ index ]->producer; // Obtain the current position mlt_position position = mlt_producer_frame( parent ); - // Get the clone index - int clone_index = mlt_properties_get_int( mlt_producer_properties( this->list[ index ]->producer ), "_clone" ); - - // Additionally, check if we're supposed to use a clone here - if ( clone_index > 0 ) - { - char key[ 25 ]; - sprintf( key, "_clone.%d", clone_index - 1 ); - producer = mlt_properties_get_data( mlt_producer_properties( producer ), key, NULL ); - } - // Make sure we're at the same point - mlt_producer_seek( producer, in + position ); + mlt_producer_seek( producer, position ); // Get the frame from the producer mlt_service_get_frame( mlt_producer_service( producer ), frame, 0 );