From: Stefan Sauer Date: Sun, 15 Oct 2017 18:46:09 +0000 (+0200) Subject: aggregator: code cleanup for event and query func X-Git-Tag: 1.16.2~574^2~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fb3c9f380852cdb487f11f4f9ad6c299647b0e69;p=platform%2Fupstream%2Fgstreamer.git aggregator: code cleanup for event and query func Only look up klass for non serialized events/queries. For events remove superfluous assignment for the return value in the flushing case. --- diff --git a/libs/gst/base/gstaggregator.c b/libs/gst/base/gstaggregator.c index 538c7e9..1b2a43a 100644 --- a/libs/gst/base/gstaggregator.c +++ b/libs/gst/base/gstaggregator.c @@ -2602,7 +2602,6 @@ gst_aggregator_pad_query_func (GstPad * pad, GstObject * parent, { GstAggregator *self = GST_AGGREGATOR (parent); GstAggregatorPad *aggpad = GST_AGGREGATOR_PAD (pad); - GstAggregatorClass *klass = GST_AGGREGATOR_GET_CLASS (parent); if (GST_QUERY_IS_SERIALIZED (query)) { GstStructure *s; @@ -2638,9 +2637,11 @@ gst_aggregator_pad_query_func (GstPad * pad, GstObject * parent, PAD_UNLOCK (aggpad); return ret; - } + } else { + GstAggregatorClass *klass = GST_AGGREGATOR_GET_CLASS (parent); - return klass->sink_query (self, aggpad, query); + return klass->sink_query (self, aggpad, query); + } flushing: GST_DEBUG_OBJECT (aggpad, "Pad is %s, dropping query", @@ -2661,17 +2662,14 @@ gst_aggregator_pad_event_func (GstPad * pad, GstObject * parent, GstFlowReturn ret = GST_FLOW_OK; GstAggregator *self = GST_AGGREGATOR (parent); GstAggregatorPad *aggpad = GST_AGGREGATOR_PAD (pad); - GstAggregatorClass *klass = GST_AGGREGATOR_GET_CLASS (parent); if (GST_EVENT_IS_SERIALIZED (event) && GST_EVENT_TYPE (event) != GST_EVENT_FLUSH_STOP) { SRC_LOCK (self); PAD_LOCK (aggpad); - if (aggpad->priv->flow_return != GST_FLOW_OK) { - ret = aggpad->priv->flow_return; + if (aggpad->priv->flow_return != GST_FLOW_OK) goto flushing; - } if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) { GST_OBJECT_LOCK (aggpad); @@ -2687,6 +2685,8 @@ gst_aggregator_pad_event_func (GstPad * pad, GstObject * parent, PAD_UNLOCK (aggpad); SRC_UNLOCK (self); } else { + GstAggregatorClass *klass = GST_AGGREGATOR_GET_CLASS (parent); + if (!klass->sink_event (self, aggpad, event)) { /* Copied from GstPad to convert boolean to a GstFlowReturn in * the event handling func */ @@ -2705,7 +2705,7 @@ flushing: gst_pad_store_sticky_event (pad, event); gst_event_unref (event); - return ret; + return aggpad->priv->flow_return; } static gboolean