X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=mlt%2B%2B%2Fsrc%2FMltProducer.h;h=7b28e94db4379c43064c978d9d9cf37095833361;hb=3e54b5c2dc70cad4d4e039f9d20db6c2472f556d;hp=2973f3fbc970eed66c6cb93f40e93fc40c23165f;hpb=01c1d44e8df201c3061cf20addf5421d21d8bcb0;p=melted diff --git a/mlt++/src/MltProducer.h b/mlt++/src/MltProducer.h index 2973f3f..7b28e94 100644 --- a/mlt++/src/MltProducer.h +++ b/mlt++/src/MltProducer.h @@ -21,41 +21,53 @@ #ifndef _MLTPP_PRODUCER_H_ #define _MLTPP_PRODUCER_H_ +#include "config.h" + #include #include "MltService.h" namespace Mlt { - class Producer : public Service + class Service; + class Filter; + class Profile; + class Frame; + + class MLTPP_DECLSPEC Producer : public Service { + private: + mlt_producer instance; + Producer *parent_; public: - virtual mlt_producer get_producer( ) = 0; + Producer( ); + 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( ); - }; - - class ProducerInstance : public Producer - { - private: - bool destroy; - mlt_producer instance; - public: - mlt_producer get_producer( ); - ProducerInstance( char *id, char *service = NULL ); - ProducerInstance( mlt_producer producer ); - ProducerInstance( Producer &producer ); - virtual ~ProducerInstance( ); + 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( ); }; }