index 606346735bc5d13d09d681094490223d47d7394a..085d5ac122f3970beab6b1b68ada3bcf8f72d583 100644 (file)
#define GST_IS_QUEUE_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_QUEUE))
+enum {
+ GST_QUEUE_NO_LEAK = 0,
+ GST_QUEUE_LEAK_UPSTREAM = 1,
+ GST_QUEUE_LEAK_DOWNSTREAM = 2
+};
+
typedef struct _GstQueue GstQueue;
typedef struct _GstQueueClass GstQueueClass;
GSList *queue;
gint level_buffers; /* number of buffers queued here */
- gint max_buffers; /* maximum number of buffers queued here */
- gboolean block; /* if set to FALSE, _get returns NULL if queue empty */
gint level_bytes; /* number of bytes queued here */
+ guint64 level_time; /* amount of time queued here */
+
gint size_buffers; /* size of queue in buffers */
gint size_bytes; /* size of queue in bytes */
+ guint64 size_time; /* size of queue in time */
+ gint leaky; /* whether the queue is leaky, and if so at which end */
+
+// GMutex *lock; (optimization?)
GCond *emptycond;
GCond *fullcond;
struct _GstQueueClass {
GstElementClass parent_class;
+
+ /* signal callbacks */
+ void (*low_watermark) (GstQueue *queue, gint level);
+ void (*high_watermark) (GstQueue *queue, gint level);
};
GtkType gst_queue_get_type (void);