Merge ../mlt
[melted] / mlt++ / src / MltFilteredConsumer.cpp
index 944281f..73ee474 100644 (file)
 #include "MltFilteredConsumer.h"
 using namespace Mlt;
 
-FilteredConsumer::FilteredConsumer( char *id, char *arg ) :
-       Consumer( id, arg )
+FilteredConsumer::FilteredConsumer( Profile& profile, char *id, char *arg ) :
+       Consumer( profile, id, arg )
+{
+       // Create a reference to the first service
+       first = new Service( *this );
+}
+
+FilteredConsumer::FilteredConsumer( Consumer &consumer ) :
+       Consumer( consumer )
 {
        // Create a reference to the first service
        first = new Service( *this );
@@ -62,6 +69,24 @@ int FilteredConsumer::attach( Filter &filter )
        return error;
 }
 
+int FilteredConsumer::last( Filter &filter )
+{
+       int error = 0;
+       if ( filter.is_valid( ) )
+       {
+               Service *producer = this->producer( );
+               error = filter.connect( *producer );
+               if ( error == 0 )
+                       connect_producer( filter );
+               delete producer;
+       }
+       else
+       {
+               error = 1;
+       }
+       return error;
+}
+
 int FilteredConsumer::detach( Filter &filter )
 {
        if ( filter.is_valid( ) )