X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=mlt%2B%2B%2Fsrc%2FMltProducer.h;h=7b28e94db4379c43064c978d9d9cf37095833361;hb=3e54b5c2dc70cad4d4e039f9d20db6c2472f556d;hp=e3572d8e7dbc13884755e5d545b630013aa88978;hpb=01116637238e74419971afc26311c7a65b7b43aa;p=melted diff --git a/mlt++/src/MltProducer.h b/mlt++/src/MltProducer.h index e3572d8..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" @@ -28,31 +30,44 @@ namespace Mlt { class Service; + class Filter; + class Profile; + class Frame; - class Producer : public Service + class MLTPP_DECLSPEC Producer : public Service { private: - bool destroy; 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( mlt_position position ); - mlt_position position( ); - mlt_position frame( ); + int seek( int position ); + int position( ); + int frame( ); int set_speed( double speed ); double get_speed( ); double get_fps( ); - int set_in_and_out( mlt_position in, mlt_position out ); - mlt_position get_in( ); - mlt_position get_out( ); - mlt_position get_length( ); - mlt_position get_playtime( ); + int set_in_and_out( int in, int out ); + int get_in( ); + int get_out( ); + int get_length( ); + int get_playtime( ); + 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( ); }; }