Hi,

In shotcut, the <consumer> tag is used in the playlist's xml to pass consumer 
arguments, allowing to render a playlist file with melt whitout passing extra 
arguments.

I am considering using the same approach for Kdenlive, but there is one small 
missing feature for us:

it would be useful to allow rendering only part of the playlist using this 
method. My idea was to allow in/out attributes on the consumer that would then 
be passed on the producer to allow rendering only a part of the project.

A simple patch to melt, like mine below, implements the feature.

Would you be ok to include such feature ?

Thanks
Jean-Baptiste

---------------------------------------------------------------
diff --git a/src/melt/melt.c b/src/melt/melt.c
index ab3a0ab4..300f9c88 100644
--- a/src/melt/melt.c
+++ b/src/melt/melt.c
@@ -972,11 +972,18 @@ query_all:
        
                        // Get the last group
                        mlt_properties group = mlt_properties_get_data( 
melt_props, 
"group", 0 );
-       
+
                        // Apply group settings
                        mlt_properties properties = MLT_CONSUMER_PROPERTIES( 
consumer 
);
                        mlt_properties_inherit( properties, group );
-
+                       int in = mlt_properties_get_int( properties, "in" );
+                       int out = mlt_properties_get_int( properties, "out" );
+                       if ( in > 0 || out > 0 ) {
+                               if ( out == 0 ) {
+                                       out = mlt_producer_get_length( melt ) - 
1;
+                               }
+                               mlt_producer_set_in_and_out(melt, in, out);
+                       }
                        // Connect consumer to melt
                        mlt_consumer_connect( consumer, MLT_PRODUCER_SERVICE( 
melt ) 
);




_______________________________________________
Mlt-devel mailing list
Mlt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlt-devel

Reply via email to