static gboolean
gst_queue_handle_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
{
+ gboolean ret = TRUE;
GstQueue *queue;
queue = GST_QUEUE (parent);
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_FLUSH_START:
- {
STATUS (queue, pad, "received flush start event");
/* forward event */
- gst_pad_push_event (queue->srcpad, event);
+ ret = gst_pad_push_event (queue->srcpad, event);
/* now unblock the chain function */
GST_QUEUE_MUTEX_LOCK (queue);
* flush_start downstream. */
gst_pad_pause_task (queue->srcpad);
GST_CAT_LOG_OBJECT (queue_dataflow, queue, "loop stopped");
- goto done;
- }
+ break;
case GST_EVENT_FLUSH_STOP:
- {
STATUS (queue, pad, "received flush stop event");
/* forward event */
- gst_pad_push_event (queue->srcpad, event);
+ ret = gst_pad_push_event (queue->srcpad, event);
GST_QUEUE_MUTEX_LOCK (queue);
gst_queue_locked_flush (queue, FALSE);
GST_QUEUE_MUTEX_UNLOCK (queue);
STATUS (queue, pad, "after flush");
- goto done;
- }
+ break;
default:
if (GST_EVENT_IS_SERIALIZED (event)) {
/* serialized events go in the queue */
GST_QUEUE_MUTEX_UNLOCK (queue);
} else {
/* non-serialized events are forwarded downstream immediately */
- gst_pad_push_event (queue->srcpad, event);
+ ret = gst_pad_push_event (queue->srcpad, event);
}
break;
}
-done:
- return TRUE;
+ return ret;
/* ERRORS */
out_eos:
gst_queue2_handle_sink_event (GstPad * pad, GstObject * parent,
GstEvent * event)
{
+ gboolean ret = TRUE;
GstQueue2 *queue;
queue = GST_QUEUE2 (parent);
GST_CAT_LOG_OBJECT (queue_dataflow, queue, "received flush start event");
if (GST_PAD_MODE (queue->srcpad) == GST_PAD_MODE_PUSH) {
/* forward event */
- gst_pad_push_event (queue->srcpad, event);
+ ret = gst_pad_push_event (queue->srcpad, event);
/* now unblock the chain function */
GST_QUEUE2_MUTEX_LOCK (queue);
gst_event_unref (event);
}
- goto done;
+ break;
}
case GST_EVENT_FLUSH_STOP:
{
if (GST_PAD_MODE (queue->srcpad) == GST_PAD_MODE_PUSH) {
/* forward event */
- gst_pad_push_event (queue->srcpad, event);
+ ret = gst_pad_push_event (queue->srcpad, event);
GST_QUEUE2_MUTEX_LOCK (queue);
gst_queue2_locked_flush (queue, FALSE);
gst_event_unref (event);
}
- goto done;
+ break;
}
default:
if (GST_EVENT_IS_SERIALIZED (event)) {
GST_QUEUE2_MUTEX_UNLOCK (queue);
} else {
/* non-serialized events are passed upstream. */
- gst_pad_push_event (queue->srcpad, event);
+ ret = gst_pad_push_event (queue->srcpad, event);
}
break;
}
-done:
- return TRUE;
+ return ret;
/* ERRORS */
out_flushing: