From: Thiago Santos Date: Sun, 22 Jan 2017 14:26:56 +0000 (-0300) Subject: queue2: avoid return flushing if we have a not-linked X-Git-Tag: 1.12.0~62 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=045700e80ed3c5bb9c5af04a8dfa9d0210d05fe3;p=platform%2Fupstream%2Fgstreamer.git queue2: avoid return flushing if we have a not-linked Return the correct flow return instead of returning always flushing. This would cause queue2 to convert not-linked to flushing and making upstream elements stop. https://bugzilla.gnome.org/show_bug.cgi?id=776999 --- diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c index 51db828..8d92838 100644 --- a/plugins/elements/gstqueue2.c +++ b/plugins/elements/gstqueue2.c @@ -2580,7 +2580,7 @@ gst_queue2_handle_sink_event (GstPad * pad, GstObject * parent, GST_QUEUE2_MUTEX_UNLOCK (queue); gst_queue2_post_buffering (queue); } else { - /* non-serialized events are passed upstream. */ + /* non-serialized events are passed downstream. */ ret = gst_pad_push_event (queue->srcpad, event); } break; @@ -2592,10 +2592,12 @@ gst_queue2_handle_sink_event (GstPad * pad, GstObject * parent, /* ERRORS */ out_flushing: { - GST_DEBUG_OBJECT (queue, "refusing event, we are flushing"); + GstFlowReturn ret = queue->sinkresult; + GST_DEBUG_OBJECT (queue, "refusing event, we are %s", + gst_flow_get_name (ret)); GST_QUEUE2_MUTEX_UNLOCK (queue); gst_event_unref (event); - return GST_FLOW_FLUSHING; + return ret; } out_eos: { @@ -2671,7 +2673,8 @@ gst_queue2_handle_sink_query (GstPad * pad, GstObject * parent, /* ERRORS */ out_flushing: { - GST_DEBUG_OBJECT (queue, "refusing query, we are flushing"); + GST_DEBUG_OBJECT (queue, "refusing query, we are %s", + gst_flow_get_name (queue->sinkresult)); GST_QUEUE2_MUTEX_UNLOCK (queue); return FALSE; } @@ -2994,8 +2997,9 @@ no_item: } out_flushing: { - 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 we are %s", + gst_flow_get_name (queue->srcresult)); + return queue->srcresult; } } @@ -3424,7 +3428,7 @@ out_flushing: { ret = queue->srcresult; - GST_DEBUG_OBJECT (queue, "we are flushing"); + GST_DEBUG_OBJECT (queue, "we are %s", gst_flow_get_name (ret)); GST_QUEUE2_MUTEX_UNLOCK (queue); return ret; }