* \brief abstraction for all consumer services
* \see mlt_consumer_s
*
- * Copyright (C) 2003-2009 Ushodaya Enterprises Limited
+ * Copyright (C) 2003-2010 Ushodaya Enterprises Limited
* \author Charles Yates <charles.yates@pandora.be>
+ * \author Dan Dennedy <dan@dennedy.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
mlt_image_format format;
mlt_deque queue;
pthread_t ahead_thread;
- pthread_mutex_t mutex;
- pthread_cond_t cond;
+ pthread_mutex_t queue_mutex;
+ pthread_cond_t queue_cond;
pthread_mutex_t put_mutex;
pthread_cond_t put_cond;
mlt_frame put;
int put_active;
mlt_event event_listener;
mlt_position position;
+
+ /* additional fields added for the parallel work queue */
+ mlt_deque worker_threads;
+ pthread_mutex_t done_mutex;
+ pthread_cond_t done_cond;
+ int consecutive_dropped;
+ int consecutive_rendered;
+ int process_head;
+ int started;
};
#define MLT_CONSUMER_SERVICE( consumer ) ( &( consumer )->parent )