diff options
author | Thiago Santos <thiagossantos@gmail.com> | 2017-03-14 22:18:36 -0700 |
---|---|---|
committer | Thiago Santos <thiagossantos@gmail.com> | 2017-03-14 22:20:04 -0700 |
commit | 058bdcfe6b6ae4c1ceb8c31560d2a9bffe075e1d (patch) | |
tree | 629bd0f043fb1f29ab0f795c47eaeeeb49164b85 /plugins | |
parent | 045700e80ed3c5bb9c5af04a8dfa9d0210d05fe3 (diff) |
queue: avoid return flushing if we have a not-linked
Return the correct flow return instead of returning always flushing.
This would cause queue to convert not-linked to flushing and making
upstream elements stop.
Based on the previous patch for queue2.
https://bugzilla.gnome.org/show_bug.cgi?id=776999
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/elements/gstqueue.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/plugins/elements/gstqueue.c b/plugins/elements/gstqueue.c index e98c1f601..db02e20a5 100644 --- a/plugins/elements/gstqueue.c +++ b/plugins/elements/gstqueue.c @@ -1465,15 +1465,19 @@ no_item: } out_flushing: { - GST_CAT_LOG_OBJECT (queue_dataflow, queue, "exit because we are flushing"); - return GST_FLOW_FLUSHING; + GstFlowReturn ret = queue->srcresult; + GST_CAT_LOG_OBJECT (queue_dataflow, queue, + "exit because task paused, reason: %s", gst_flow_get_name (ret)); + return ret; } out_flushing_query: { + GstFlowReturn ret = queue->srcresult; queue->last_query = FALSE; g_cond_signal (&queue->query_handled); - GST_CAT_LOG_OBJECT (queue_dataflow, queue, "exit because we are flushing"); - return GST_FLOW_FLUSHING; + GST_CAT_LOG_OBJECT (queue_dataflow, queue, + "exit because task paused, reason: %s", gst_flow_get_name (ret)); + return ret; } } |