Corrects cuts with filters
authorlilo_booter <lilo_booter@d19143bc-622f-0410-bfdd-b5b2a6649095>
Sat, 25 Sep 2004 11:03:47 +0000 (11:03 +0000)
committerlilo_booter <lilo_booter@d19143bc-622f-0410-bfdd-b5b2a6649095>
Sat, 25 Sep 2004 11:03:47 +0000 (11:03 +0000)
git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@446 d19143bc-622f-0410-bfdd-b5b2a6649095

src/framework/mlt_playlist.c
src/framework/mlt_playlist.h
src/modules/westley/consumer_westley.c
src/modules/westley/producer_westley.c

index bd9d6b2..762cfa3 100644 (file)
@@ -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;
 }
 
index dee8e07..d51dacb 100644 (file)
@@ -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;
index 15bd525..5b43208 100644 (file)
@@ -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 );
                                }
                        }
                }
index ff7c580..6ea81c7 100644 (file)
@@ -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
                {