struct mlt_consumer_s
{
- // We're implementing service here
+ /* We're implementing service here */
struct mlt_service_s parent;
- // public virtual
+ /* public virtual */
int ( *start )( mlt_consumer );
int ( *stop )( mlt_consumer );
int ( *is_stopped )( mlt_consumer );
void ( *close )( mlt_consumer );
- // Private data
+ /* Private data */
void *local;
void *child;
pthread_t ahead_thread;
pthread_mutex_t mutex;
pthread_cond_t cond;
+ pthread_mutex_t put_mutex;
+ pthread_cond_t put_cond;
+ mlt_frame put;
+ int put_active;
};
/** Public final methods
*/
+#define MLT_CONSUMER_SERVICE( consumer ) ( &( consumer )->parent )
+#define MLT_CONSUMER_PROPERTIES( consumer ) MLT_SERVICE_PROPERTIES( MLT_CONSUMER_SERVICE( consumer ) )
+
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 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 int mlt_consumer_put_frame( mlt_consumer self, mlt_frame frame );
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 );
+extern int mlt_consumer_profile( mlt_properties properties, char *profile );
#endif