queue: don't ignore event return value
authorWim Taymans <wtaymans@redhat.com>
Wed, 11 Dec 2013 13:42:34 +0000 (14:42 +0100)
committerWim Taymans <wtaymans@redhat.com>
Wed, 11 Dec 2013 13:52:25 +0000 (14:52 +0100)
Pass the event return value upstream.
Remove strange goto construct.

plugins/elements/gstqueue.c
plugins/elements/gstqueue2.c

index 0e61a87..e284570 100644 (file)
@@ -758,16 +758,16 @@ no_item:
 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);
@@ -783,13 +783,11 @@ gst_queue_handle_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
        * 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);
@@ -801,8 +799,7 @@ gst_queue_handle_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
       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 */
@@ -824,12 +821,11 @@ gst_queue_handle_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
         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:
index 2452385..f675a45 100644 (file)
@@ -2186,6 +2186,7 @@ static gboolean
 gst_queue2_handle_sink_event (GstPad * pad, GstObject * parent,
     GstEvent * event)
 {
+  gboolean ret = TRUE;
   GstQueue2 *queue;
 
   queue = GST_QUEUE2 (parent);
@@ -2196,7 +2197,7 @@ gst_queue2_handle_sink_event (GstPad * pad, GstObject * 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);
@@ -2224,7 +2225,7 @@ gst_queue2_handle_sink_event (GstPad * pad, GstObject * parent,
 
         gst_event_unref (event);
       }
-      goto done;
+      break;
     }
     case GST_EVENT_FLUSH_STOP:
     {
@@ -2232,7 +2233,7 @@ gst_queue2_handle_sink_event (GstPad * pad, GstObject * parent,
 
       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);
@@ -2257,7 +2258,7 @@ gst_queue2_handle_sink_event (GstPad * pad, GstObject * parent,
 
         gst_event_unref (event);
       }
-      goto done;
+      break;
     }
     default:
       if (GST_EVENT_IS_SERIALIZED (event)) {
@@ -2270,12 +2271,11 @@ gst_queue2_handle_sink_event (GstPad * pad, GstObject * parent,
         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: