From 256a13009f23bb17ffa337373f48520258e1dda4 Mon Sep 17 00:00:00 2001 From: ddennedy Date: Fri, 1 Jun 2007 08:16:13 +0000 Subject: [PATCH] bugfix transition processing hidden track git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@974 d19143bc-622f-0410-bfdd-b5b2a6649095 --- src/framework/mlt_transition.c | 26 ++++++++++++++------------ 1 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/framework/mlt_transition.c b/src/framework/mlt_transition.c index 18e747d..047a9e9 100644 --- a/src/framework/mlt_transition.c +++ b/src/framework/mlt_transition.c @@ -275,18 +275,20 @@ static int transition_get_frame( mlt_service service, mlt_frame_ptr frame, int i mlt_frame b_frame_ptr = this->frames[ !reverse_order ? b_frame : a_frame ]; int a_hide = mlt_properties_get_int( MLT_FRAME_PROPERTIES( a_frame_ptr ), "hide" ); int b_hide = mlt_properties_get_int( MLT_FRAME_PROPERTIES( b_frame_ptr ), "hide" ); - - // Process the transition - *frame = mlt_transition_process( this, a_frame_ptr, b_frame_ptr ); - - // We need to ensure that the tractor doesn't consider this frame for output - if ( *frame == a_frame_ptr ) - b_hide |= type; - else - a_hide |= type; - - mlt_properties_set_int( MLT_FRAME_PROPERTIES( a_frame_ptr ), "hide", a_hide ); - mlt_properties_set_int( MLT_FRAME_PROPERTIES( b_frame_ptr ), "hide", b_hide ); + if ( !( a_hide & type ) && !( b_hide & type ) ) + { + // Process the transition + *frame = mlt_transition_process( this, a_frame_ptr, b_frame_ptr ); + + // We need to ensure that the tractor doesn't consider this frame for output + if ( *frame == a_frame_ptr ) + b_hide |= type; + else + a_hide |= type; + + mlt_properties_set_int( MLT_FRAME_PROPERTIES( a_frame_ptr ), "hide", a_hide ); + mlt_properties_set_int( MLT_FRAME_PROPERTIES( b_frame_ptr ), "hide", b_hide ); + } } } -- 1.7.4.4