Commit e486a924 authored by Edward Hervey's avatar Edward Hervey 🤘 Committed by Edward Hervey

queue2: Reset result flow when retrying

If we ever get a GST_FLOW_EOS from downstream, we might retry
pushing new data. But if pushing that data doesn't return a
GstFlowReturn (such as pushing events), we would end up returning
the previous GstFlowReturn (i.e. EOS).

Not properly resetting it would cause cases where queue2 would
stop pushing on the first GstEvent stored (even if there is more
data contained within).
parent 3c586dec
......@@ -2911,7 +2911,7 @@ gst_queue2_dequeue_on_eos (GstQueue2 * queue, GstQueue2ItemType * item_type)
static GstFlowReturn
gst_queue2_push_one (GstQueue2 * queue)
{
GstFlowReturn result = queue->srcresult;
GstFlowReturn result;
GstMiniObject *data;
GstQueue2ItemType item_type;
......@@ -2920,6 +2920,7 @@ gst_queue2_push_one (GstQueue2 * queue)
goto no_item;
next:
result = queue->srcresult;
STATUS (queue, queue->srcpad, "We have something dequeud");
g_atomic_int_set (&queue->downstream_may_block,
item_type == GST_QUEUE2_ITEM_TYPE_BUFFER ||
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment