| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #ifndef __GST_DATA_QUEUE_H__ |
| #define __GST_DATA_QUEUE_H__ |
| |
| #include <gst/gst.h> |
| #include <gst/base/base-prelude.h> |
| |
| G_BEGIN_DECLS |
| #define GST_TYPE_DATA_QUEUE \ |
| (gst_data_queue_get_type()) |
| #define GST_DATA_QUEUE(obj) \ |
| (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DATA_QUEUE,GstDataQueue)) |
| #define GST_DATA_QUEUE_CLASS(klass) \ |
| (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DATA_QUEUE,GstDataQueueClass)) |
| #define GST_IS_DATA_QUEUE(obj) \ |
| (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DATA_QUEUE)) |
| #define GST_IS_DATA_QUEUE_CLASS(klass) \ |
| (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DATA_QUEUE)) |
| |
| typedef struct _GstDataQueue GstDataQueue; |
| typedef struct _GstDataQueueClass GstDataQueueClass; |
| typedef struct _GstDataQueueSize GstDataQueueSize; |
| typedef struct _GstDataQueueItem GstDataQueueItem; |
| typedef struct _GstDataQueuePrivate GstDataQueuePrivate; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| struct _GstDataQueueItem |
| { |
| GstMiniObject *object; |
| guint size; |
| guint64 duration; |
| gboolean visible; |
| |
| |
| GDestroyNotify destroy; |
| |
| |
| gpointer _gst_reserved[GST_PADDING]; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| struct _GstDataQueueSize |
| { |
| guint visible; |
| guint bytes; |
| guint64 time; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| typedef gboolean (*GstDataQueueCheckFullFunction) (GstDataQueue * queue, |
| guint visible, guint bytes, guint64 time, gpointer checkdata); |
| |
| typedef void (*GstDataQueueFullCallback) (GstDataQueue * queue, gpointer checkdata); |
| typedef void (*GstDataQueueEmptyCallback) (GstDataQueue * queue, gpointer checkdata); |
| |
| |
| |
| |
| |
| |
| |
| struct _GstDataQueue |
| { |
| GObject object; |
| |
| |
| GstDataQueuePrivate *priv; |
| gpointer _gst_reserved[GST_PADDING]; |
| }; |
| |
| |
| |
| |
| struct _GstDataQueueClass |
| { |
| GObjectClass parent_class; |
| |
| |
| void (*empty) (GstDataQueue * queue); |
| void (*full) (GstDataQueue * queue); |
| |
| gpointer _gst_reserved[GST_PADDING]; |
| }; |
| |
| GST_BASE_API |
| GType gst_data_queue_get_type (void); |
| |
| GST_BASE_API |
| GstDataQueue * gst_data_queue_new (GstDataQueueCheckFullFunction checkfull, |
| GstDataQueueFullCallback fullcallback, |
| GstDataQueueEmptyCallback emptycallback, |
| gpointer checkdata) G_GNUC_MALLOC; |
| GST_BASE_API |
| gboolean gst_data_queue_push (GstDataQueue * queue, GstDataQueueItem * item); |
| |
| GST_BASE_API |
| gboolean gst_data_queue_push_force (GstDataQueue * queue, GstDataQueueItem * item); |
| |
| GST_BASE_API |
| gboolean gst_data_queue_pop (GstDataQueue * queue, GstDataQueueItem ** item); |
| |
| GST_BASE_API |
| gboolean gst_data_queue_peek (GstDataQueue * queue, GstDataQueueItem ** item); |
| |
| GST_BASE_API |
| void gst_data_queue_flush (GstDataQueue * queue); |
| |
| GST_BASE_API |
| void gst_data_queue_set_flushing (GstDataQueue * queue, gboolean flushing); |
| |
| GST_BASE_API |
| gboolean gst_data_queue_drop_head (GstDataQueue * queue, GType type); |
| |
| GST_BASE_API |
| gboolean gst_data_queue_is_full (GstDataQueue * queue); |
| |
| GST_BASE_API |
| gboolean gst_data_queue_is_empty (GstDataQueue * queue); |
| |
| GST_BASE_API |
| void gst_data_queue_get_level (GstDataQueue * queue, GstDataQueueSize *level); |
| |
| GST_BASE_API |
| void gst_data_queue_limits_changed (GstDataQueue * queue); |
| |
| #ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC |
| G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstDataQueue, gst_object_unref) |
| #endif |
| |
| G_END_DECLS |
| |
| #endif |