#define _MLT_CONSUMER_H_
#include "mlt_service.h"
+#include <pthread.h>
/** The interface definition for all consumers.
*/
struct mlt_service_s parent;
// public virtual
+ int ( *start )( mlt_consumer );
+ int ( *stop )( mlt_consumer );
+ int ( *is_stopped )( mlt_consumer );
void ( *close )( mlt_consumer );
// Private data
- void *private;
+ void *local;
void *child;
+
+ int real_time;
+ int ahead;
+ mlt_image_format format;
+ mlt_deque queue;
+ pthread_t ahead_thread;
+ pthread_mutex_t mutex;
+ pthread_cond_t cond;
};
/** Public final methods
*/
-extern int mlt_consumer_init( mlt_consumer this, void *child );
-extern mlt_service mlt_consumer_service( mlt_consumer this );
-extern mlt_properties mlt_consumer_properties( mlt_consumer this );
-extern int mlt_consumer_connect( mlt_consumer this, mlt_service producer );
+extern int mlt_consumer_init( mlt_consumer self, void *child );
+extern mlt_consumer mlt_consumer_new( );
+extern mlt_service mlt_consumer_service( mlt_consumer self );
+extern mlt_properties mlt_consumer_properties( mlt_consumer self );
+extern int mlt_consumer_connect( mlt_consumer self, mlt_service producer );
+extern int mlt_consumer_start( mlt_consumer self );
+extern void mlt_consumer_purge( mlt_consumer self );
+extern mlt_frame mlt_consumer_get_frame( mlt_consumer self );
+extern mlt_frame mlt_consumer_rt_frame( mlt_consumer self );
+extern int mlt_consumer_stop( mlt_consumer self );
+extern int mlt_consumer_is_stopped( mlt_consumer self );
+extern void mlt_consumer_stopped( mlt_consumer self );
extern void mlt_consumer_close( mlt_consumer );
#endif