#ifndef _MLTPP_PRODUCER_H_
#define _MLTPP_PRODUCER_H_
+#include "config.h"
+
#include <framework/mlt.h>
#include "MltService.h"
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( );
};
}