From: lilo_booter Date: Sat, 25 Sep 2004 11:03:47 +0000 (+0000) Subject: Corrects cuts with filters X-Git-Url: http://research.m1stereo.tv/gitweb?a=commitdiff_plain;h=b917ae819659606f59b3ae761d06ab2095ade658;p=melted Corrects cuts with filters git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@446 d19143bc-622f-0410-bfdd-b5b2a6649095 --- diff --git a/src/framework/mlt_playlist.c b/src/framework/mlt_playlist.c index bd9d6b2..762cfa3 100644 --- a/src/framework/mlt_playlist.c +++ b/src/framework/mlt_playlist.c @@ -490,6 +490,7 @@ int mlt_playlist_get_clip_info( mlt_playlist this, mlt_playlist_clip_info *info, mlt_properties properties = mlt_producer_properties( producer ); info->clip = index; info->producer = producer; + info->cut = this->list[ index ]->producer; info->start = mlt_playlist_clip( this, mlt_whence_relative_start, index ); info->resource = mlt_properties_get( properties, "resource" ); info->frame_in = this->list[ index ]->frame_in; @@ -500,14 +501,6 @@ int mlt_playlist_get_clip_info( mlt_playlist this, mlt_playlist_clip_info *info, info->event = this->list[ index ]->event; } - // Determine the consuming filter service - if ( info->producer != NULL ) - { - info->service = mlt_producer_service( info->producer ); - while ( mlt_service_consumer( info->service ) != NULL ) - info->service = mlt_service_consumer( info->service ); - } - return error; } diff --git a/src/framework/mlt_playlist.h b/src/framework/mlt_playlist.h index dee8e07..d51dacb 100644 --- a/src/framework/mlt_playlist.h +++ b/src/framework/mlt_playlist.h @@ -30,7 +30,7 @@ typedef struct { int clip; mlt_producer producer; - mlt_service service; + mlt_producer cut; mlt_position start; char *resource; mlt_position frame_in; diff --git a/src/modules/westley/consumer_westley.c b/src/modules/westley/consumer_westley.c index 15bd525..5b43208 100644 --- a/src/modules/westley/consumer_westley.c +++ b/src/modules/westley/consumer_westley.c @@ -385,8 +385,8 @@ static void serialise_playlist( serialise_context context, mlt_service service, xmlNewProp( entry, "in", temp ); sprintf( temp, "%d", info.frame_out ); xmlNewProp( entry, "out", temp ); - if ( mlt_producer_is_cut( info.producer ) ) - serialise_service_filters( context, mlt_producer_service( info.producer ), entry ); + if ( mlt_producer_is_cut( info.cut ) ) + serialise_service_filters( context, mlt_producer_service( info.cut ), entry ); } } } diff --git a/src/modules/westley/producer_westley.c b/src/modules/westley/producer_westley.c index ff7c580..6ea81c7 100644 --- a/src/modules/westley/producer_westley.c +++ b/src/modules/westley/producer_westley.c @@ -640,7 +640,7 @@ static void on_start_entry( deserialise_context context, const xmlChar *name, co } mlt_playlist_get_clip_info( MLT_PLAYLIST( parent ), &info, mlt_playlist_count( MLT_PLAYLIST( parent ) ) - 1 ); - entry = info.producer; + entry = info.cut; } else {