| gstdataqueue.h | gstdataqueue.h | |||
|---|---|---|---|---|
| skipping to change at line 56 | skipping to change at line 56 | |||
| * @size: the size in bytes of the miniobject. | * @size: the size in bytes of the miniobject. | |||
| * @duration: the duration in #GstClockTime of the miniobject. Can not be | * @duration: the duration in #GstClockTime of the miniobject. Can not be | |||
| * #GST_CLOCK_TIME_NONE. | * #GST_CLOCK_TIME_NONE. | |||
| * @visible: #TRUE if @object should be considered as a visible object. | * @visible: #TRUE if @object should be considered as a visible object. | |||
| * @destroy: The #GDestroyNotify function to use to free the #GstDataQueueI tem. | * @destroy: The #GDestroyNotify function to use to free the #GstDataQueueI tem. | |||
| * This function should also drop the reference to @object the owner of the | * This function should also drop the reference to @object the owner of the | |||
| * #GstDataQueueItem is assumed to hold. | * #GstDataQueueItem is assumed to hold. | |||
| * | * | |||
| * Structure used by #GstDataQueue. You can supply a different structure, a s | * Structure used by #GstDataQueue. You can supply a different structure, a s | |||
| * long as the top of the structure is identical to this structure. | * long as the top of the structure is identical to this structure. | |||
| * | ||||
| * Since: 0.10.11 | ||||
| */ | */ | |||
| struct _GstDataQueueItem | struct _GstDataQueueItem | |||
| { | { | |||
| GstMiniObject *object; | GstMiniObject *object; | |||
| guint size; | guint size; | |||
| guint64 duration; | guint64 duration; | |||
| gboolean visible; | gboolean visible; | |||
| /* user supplied destroy function */ | /* user supplied destroy function */ | |||
| GDestroyNotify destroy; | GDestroyNotify destroy; | |||
| }; | }; | |||
| /** | /** | |||
| * GstDataQueueSize: | * GstDataQueueSize: | |||
| * @visible: number of buffers | * @visible: number of buffers | |||
| * @bytes: number of bytes | * @bytes: number of bytes | |||
| * @time: amount of time | * @time: amount of time | |||
| * | * | |||
| * Structure describing the size of a queue. | * Structure describing the size of a queue. | |||
| * | ||||
| * Since: 0.10.11 | ||||
| */ | */ | |||
| struct _GstDataQueueSize | struct _GstDataQueueSize | |||
| { | { | |||
| guint visible; | guint visible; | |||
| guint bytes; | guint bytes; | |||
| guint64 time; | guint64 time; | |||
| }; | }; | |||
| /** | /** | |||
| * GstDataQueueCheckFullFunction: | * GstDataQueueCheckFullFunction: | |||
| * @queue: a #GstDataQueue. | * @queue: a #GstDataQueue. | |||
| * @visible: The number of visible items currently in the queue. | * @visible: The number of visible items currently in the queue. | |||
| * @bytes: The amount of bytes currently in the queue. | * @bytes: The amount of bytes currently in the queue. | |||
| * @time: The accumulated duration of the items currently in the queue. | * @time: The accumulated duration of the items currently in the queue. | |||
| * @checkdata: The #gpointer registered when the #GstDataQueue was created. | * @checkdata: The #gpointer registered when the #GstDataQueue was created. | |||
| * | * | |||
| * The prototype of the function used to inform the queue that it should be | * The prototype of the function used to inform the queue that it should be | |||
| * considered as full. | * considered as full. | |||
| * | * | |||
| * Returns: #TRUE if the queue should be considered full. | * Returns: #TRUE if the queue should be considered full. | |||
| * | ||||
| * Since: 0.10.11 | ||||
| */ | */ | |||
| typedef gboolean (*GstDataQueueCheckFullFunction) (GstDataQueue * queue, | typedef gboolean (*GstDataQueueCheckFullFunction) (GstDataQueue * queue, | |||
| guint visible, guint bytes, guint64 time, gpointer checkdata); | guint visible, guint bytes, guint64 time, gpointer checkdata); | |||
| typedef void (*GstDataQueueFullCallback) (GstDataQueue * queue, gpointer ch | ||||
| eckdata); | ||||
| typedef void (*GstDataQueueEmptyCallback) (GstDataQueue * queue, gpointer c | ||||
| heckdata); | ||||
| /** | /** | |||
| * GstDataQueue: | * GstDataQueue: | |||
| * @object: the parent structure | ||||
| * | * | |||
| * Opaque #GstDataQueue structure. | * Opaque #GstDataQueue structure. | |||
| * | ||||
| * Since: 0.10.11 | ||||
| */ | */ | |||
| struct _GstDataQueue | struct _GstDataQueue | |||
| { | { | |||
| GObject object; | GObject object; | |||
| /*< private > */ | /*< private >*/ | |||
| /* the queue of data we're keeping our grubby hands on */ | /* the queue of data we're keeping our grubby hands on */ | |||
| GQueue *queue; | GQueue *queue; | |||
| GstDataQueueSize cur_level; /* size of the queue */ | GstDataQueueSize cur_level; /* size of the queue */ | |||
| GstDataQueueCheckFullFunction checkfull; /* Callback to check if the queue is full */ | GstDataQueueCheckFullFunction checkfull; /* Callback to check if the queue is full */ | |||
| gpointer *checkdata; | gpointer *checkdata; | |||
| GMutex *qlock; /* lock for queue (vs object lock) */ | GMutex *qlock; /* lock for queue (vs object lock) */ | |||
| GCond *item_add; /* signals buffers now available for readin g */ | GCond *item_add; /* signals buffers now available for readin g */ | |||
| GCond *item_del; /* signals space now available for writing */ | GCond *item_del; /* signals space now available for writing */ | |||
| gboolean flushing; /* indicates whether conditions where signa lled because | gboolean flushing; /* indicates whether conditions where signa lled because | |||
| * of external flushing */ | * of external flushing */ | |||
| GstDataQueueFullCallback fullcallback; | ||||
| GstDataQueueEmptyCallback emptycallback; | ||||
| gpointer _gst_reserved[GST_PADDING]; | union { | |||
| struct { | ||||
| gboolean waiting_add; | ||||
| gboolean waiting_del; | ||||
| } ABI; | ||||
| gpointer _gst_reserved[GST_PADDING - 2]; | ||||
| } abidata; | ||||
| }; | }; | |||
| struct _GstDataQueueClass | struct _GstDataQueueClass | |||
| { | { | |||
| GObjectClass parent_class; | GObjectClass parent_class; | |||
| /* signals */ | /* signals */ | |||
| void (*empty) (GstDataQueue * queue); | void (*empty) (GstDataQueue * queue); | |||
| void (*full) (GstDataQueue * queue); | void (*full) (GstDataQueue * queue); | |||
| gpointer _gst_reserved[GST_PADDING]; | gpointer _gst_reserved[GST_PADDING]; | |||
| }; | }; | |||
| GType gst_data_queue_get_type (void); | GType gst_data_queue_get_type (void); | |||
| GstDataQueue * gst_data_queue_new (GstDataQueueCheckFullFunction checkfull, | GstDataQueue * gst_data_queue_new (GstDataQueueCheckFullFunction checkfull, | |||
| gpointer checkdata); | gpointer checkdata); | |||
| GstDataQueue * gst_data_queue_new_full (GstDataQueueCheckFullFunction | ||||
| checkfull, | ||||
| GstDataQueueFullCallback fullc | ||||
| allback, | ||||
| GstDataQueueEmptyCallback empt | ||||
| ycallback, | ||||
| gpointer checkdata); | ||||
| gboolean gst_data_queue_push (GstDataQueue * queue, GstData QueueItem * item); | gboolean gst_data_queue_push (GstDataQueue * queue, GstData QueueItem * item); | |||
| gboolean gst_data_queue_pop (GstDataQueue * queue, GstData QueueItem ** item); | gboolean gst_data_queue_pop (GstDataQueue * queue, GstData QueueItem ** item); | |||
| void gst_data_queue_flush (GstDataQueue * queue); | void gst_data_queue_flush (GstDataQueue * queue); | |||
| void gst_data_queue_set_flushing (GstDataQueue * queue, gboolea n flushing); | void gst_data_queue_set_flushing (GstDataQueue * queue, gboolea n flushing); | |||
| gboolean gst_data_queue_drop_head (GstDataQueue * queue, GType t ype); | gboolean gst_data_queue_drop_head (GstDataQueue * queue, GType t ype); | |||
| gboolean gst_data_queue_is_full (GstDataQueue * queue); | gboolean gst_data_queue_is_full (GstDataQueue * queue); | |||
| gboolean gst_data_queue_is_empty (GstDataQueue * queue); | gboolean gst_data_queue_is_empty (GstDataQueue * queue); | |||
| End of changes. 10 change blocks. | ||||
| 2 lines changed or deleted | 32 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||