X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=mlt%2B%2B%2Fsrc%2FMltProducer.h;h=7b28e94db4379c43064c978d9d9cf37095833361;hb=3e54b5c2dc70cad4d4e039f9d20db6c2472f556d;hp=ade287c1b9bd52eabcce49962eee7685d335f4bd;hpb=cde26839b277ce44c4f8c379e7e9da38353e9f64;p=melted diff --git a/mlt++/src/MltProducer.h b/mlt++/src/MltProducer.h index ade287c..7b28e94 100644 --- a/mlt++/src/MltProducer.h +++ b/mlt++/src/MltProducer.h @@ -21,6 +21,8 @@ #ifndef _MLTPP_PRODUCER_H_ #define _MLTPP_PRODUCER_H_ +#include "config.h" + #include #include "MltService.h" @@ -29,18 +31,25 @@ namespace Mlt { class Service; class Filter; + class Profile; + class Frame; - class Producer : public Service + class MLTPP_DECLSPEC Producer : public Service { private: mlt_producer instance; + Producer *parent_; public: Producer( ); - Producer( char *id, char *service = NULL ); + Producer( Profile& profile, const char *id, const char *service = NULL ); + Producer( Service &producer ); Producer( mlt_producer producer ); Producer( Producer &producer ); + Producer( Producer *producer ); virtual ~Producer( ); virtual mlt_producer get_producer( ); + Producer &parent( ); + mlt_producer get_parent( ); mlt_service get_service( ); int seek( int position ); int position( ); @@ -53,8 +62,12 @@ namespace Mlt int get_out( ); int get_length( ); int get_playtime( ); - int attach( Filter &filter ); - int detach( Filter &filter ); + Producer *cut( int in = 0, int out = -1 ); + bool is_cut( ); + bool is_blank( ); + bool same_clip( Producer &that ); + bool runs_into( Producer &that ); + void optimise( ); }; }