]> git.sesse.net Git - mlt/blobdiff - mlt/src/framework/mlt_tractor.c
xml based westley serialisation
[mlt] / mlt / src / framework / mlt_tractor.c
index 147c45d43b7ab5bfbff4ca0d60fe449265ba4fe2..f68079a1b436ff2e0f47eed4c6e99887d6b234b2 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 /** Private structure.
 */
@@ -56,6 +57,8 @@ mlt_tractor mlt_tractor_init( )
                {
                        producer->get_frame = producer_get_frame;
                        mlt_properties_set( mlt_producer_properties( producer ), "resource", "<tractor>" );
+                       mlt_properties_set( mlt_producer_properties( producer ), "mlt_type", "mlt_producer" );
+                       mlt_properties_set( mlt_producer_properties( producer ), "mlt_service", "tractor" );
                }
                else
                {
@@ -135,7 +138,6 @@ static int producer_get_frame( mlt_producer parent, mlt_frame_ptr frame, int tra
                        mlt_producer target = mlt_multitrack_producer( multitrack );
                        mlt_producer_seek( target, mlt_producer_frame( parent ) );
                        mlt_producer_set_speed( target, mlt_producer_get_speed( parent ) );
-                       //mlt_producer_set_in_and_out( parent, mlt_producer_get_in( target ), mlt_producer_get_out( target ) );
                }
                else
                {
@@ -176,6 +178,8 @@ static int producer_get_frame( mlt_producer parent, mlt_frame_ptr frame, int tra
                        mlt_properties frame_properties = mlt_frame_properties( *frame );
                        char label[ 30 ];
                        sprintf( label, "tractor_%d", count );
+                       while ( mlt_properties_get_data( frame_properties, label, NULL ) != NULL )
+                               strcat( label, "+" );
                        mlt_properties_set_data( frame_properties, label, store[ count ], 0, ( mlt_destructor )mlt_frame_close, NULL );
                }