[gst-cvs] gstreamer: multiqueue: Flush the data queue if downstream return WRONG_STATE too

Sebastian Dröge slomo at kemper.freedesktop.org
Fri Aug 27 10:02:49 PDT 2010


Module: gstreamer
Branch: master
Commit: 8035f13bbf5a87e1c3b392044927ed6c5bd25f1b
URL:    http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=8035f13bbf5a87e1c3b392044927ed6c5bd25f1b

Author: Sebastian Dröge <sebastian.droege at collabora.co.uk>
Date:   Fri Aug 27 16:49:14 2010 +0200

multiqueue: Flush the data queue if downstream return WRONG_STATE too

---

 plugins/elements/gstmultiqueue.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c
index d9bbba9..be653fb 100644
--- a/plugins/elements/gstmultiqueue.c
+++ b/plugins/elements/gstmultiqueue.c
@@ -1122,11 +1122,11 @@ out_flushing:
 
     /* upstream needs to see fatal result ASAP to shut things down,
      * but might be stuck in one of our other full queues;
-     * so empty this one and trigger dynamic queue growth */
-    if (sq->srcresult <= GST_FLOW_UNEXPECTED) {
-      gst_data_queue_flush (sq->queue);
-      single_queue_underrun_cb (sq->queue, sq);
-    }
+     * so empty this one and trigger dynamic queue growth. At
+     * this point the srcresult is not OK, NOT_LINKED
+     * or UNEXPECTED, i.e. a real failure */
+    gst_data_queue_flush (sq->queue);
+    single_queue_underrun_cb (sq->queue, sq);
     gst_data_queue_set_flushing (sq->queue, TRUE);
     gst_pad_pause_task (sq->srcpad);
     GST_CAT_LOG_OBJECT (multi_queue_debug, mq,





More information about the Gstreamer-commits mailing list