summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorThiago Santos <thiagossantos@gmail.com>2017-03-14 22:18:36 -0700
committerThiago Santos <thiagossantos@gmail.com>2017-03-14 22:20:04 -0700
commit058bdcfe6b6ae4c1ceb8c31560d2a9bffe075e1d (patch)
tree629bd0f043fb1f29ab0f795c47eaeeeb49164b85 /plugins
parent045700e80ed3c5bb9c5af04a8dfa9d0210d05fe3 (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.c12
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;
}
}