X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=mlt%2B%2B%2Fsrc%2FMltFilteredConsumer.cpp;h=73ee474951991dc83883bfa04451a78e2a7e9a6a;hb=f4963a6aa07644399b273b5d2b1f9299c9047414;hp=944281f5929ca9c049b44031dffcbd6a6d7b680a;hpb=1d262eab5f8850bf2603a405e09ad213341f4ab7;p=melted diff --git a/mlt++/src/MltFilteredConsumer.cpp b/mlt++/src/MltFilteredConsumer.cpp index 944281f..73ee474 100644 --- a/mlt++/src/MltFilteredConsumer.cpp +++ b/mlt++/src/MltFilteredConsumer.cpp @@ -21,8 +21,15 @@ #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( ) )