X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fframework%2Fmlt_playlist.c;h=632eefb1eee8b1190798662d633da91111dcdbbd;hb=1f6faabf5ef11e6321d186772d88fb6958cdd057;hp=68c0dc7f6380797675cf68e52a01e43572488c6f;hpb=7979a37dedd6e43689a8436a860ee284f7273529;p=melted diff --git a/src/framework/mlt_playlist.c b/src/framework/mlt_playlist.c index 68c0dc7..632eefb 100644 --- a/src/framework/mlt_playlist.c +++ b/src/framework/mlt_playlist.c @@ -263,6 +263,18 @@ static int mlt_playlist_virtual_append( mlt_playlist this, mlt_producer source, // Fetch the cuts parent properties parent = MLT_PRODUCER_PROPERTIES( mlt_producer_cut_parent( producer ) ); + // Remove fezzik normalisers for fx cuts + if ( mlt_properties_get_int( parent, "meta.fx_cut" ) ) + { + mlt_service service = MLT_PRODUCER_SERVICE( mlt_producer_cut_parent( producer ) ); + mlt_filter filter = mlt_service_filter( service, 0 ); + while ( filter != NULL && mlt_properties_get_int( MLT_FILTER_PROPERTIES( filter ), "_fezzik" ) ) + { + mlt_service_detach( service, filter ); + filter = mlt_service_filter( service, 0 ); + } + } + // Check that we have room if ( this->count >= this->size ) { @@ -872,14 +884,14 @@ int mlt_playlist_split_at( mlt_playlist this, mlt_position position, int left ) int mlt_playlist_join( mlt_playlist this, int clip, int count, int merge ) { - int error = clip < 0 || ( clip ) >= this->count; + int error = clip < 0 || clip >= this->count; if ( error == 0 ) { int i = clip; mlt_playlist new_clip = mlt_playlist_init( ); mlt_events_block( MLT_PLAYLIST_PROPERTIES( this ), this ); if ( clip + count >= this->count ) - count = this->count - clip; + count = this->count - clip - 1; for ( i = 0; i <= count; i ++ ) { playlist_entry *entry = this->list[ clip ]; @@ -1329,7 +1341,7 @@ int mlt_playlist_clip_start( mlt_playlist this, int clip ) mlt_playlist_clip_info info; if ( mlt_playlist_get_clip_info( this, &info, clip ) == 0 ) return info.start; - return clip < 0 ? 0 : mlt_producer_get_playtime( MLT_PLAYLIST_PRODUCER( this ) ) + 1; + return clip < 0 ? 0 : mlt_producer_get_playtime( MLT_PLAYLIST_PRODUCER( this ) ); } int mlt_playlist_clip_length( mlt_playlist this, int clip )