]> git.sesse.net Git - mlt/commitdiff
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 bd9d6b239a429384d9b7081c5a8ba8ebe742552f..762cfa373ca515292443b1f1bd72427558cd1427 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 dee8e074a98967fe739abad6630a83f31f35f832..d51dacb2068486cc34adb3734cd5aa5bda49de58 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 15bd5259bf114f0d84a51d34cb869ea50649c6e2..5b432082cf53a7169454711a874ab83f8539afa0 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 ff7c5806b81f8cae9e25e93fb21c00e64a86ba05..6ea81c7e12983c76a82d674207d688be8416f34a 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
                {