aggregator: remove duplicated code fragment
[platform/upstream/gstreamer.git] / libs / gst / base / gstaggregator.c
index f0dd552..33752e1 100644 (file)
@@ -356,6 +356,8 @@ static GstFlowReturn gst_aggregator_pad_chain_internal (GstAggregator * self,
  *
  * This method guarantees that @func will be called only once for each
  * sink pad.
+ *
+ * Returns: %FALSE if there are no sinkpads or if @func returned %FALSE
  */
 gboolean
 gst_aggregator_iterate_sinkpads (GstAggregator * self,
@@ -779,9 +781,8 @@ check_events (GstAggregator * self, GstAggregatorPad * pad, gpointer user_data)
       if (klass == NULL)
         klass = GST_AGGREGATOR_GET_CLASS (self);
 
-      GST_LOG_OBJECT (pad, "Processing %" GST_PTR_FORMAT, event);
-
       if (event) {
+        GST_LOG_OBJECT (pad, "Processing %" GST_PTR_FORMAT, event);
         gst_event_ref (event);
         ret = klass->sink_event (self, pad, event);
 
@@ -794,7 +795,7 @@ check_events (GstAggregator * self, GstAggregatorPad * pad, gpointer user_data)
       }
 
       if (query) {
-        GST_LOG_OBJECT (pad, "Processing %" GST_PTR_FORMAT, event);
+        GST_LOG_OBJECT (pad, "Processing %" GST_PTR_FORMAT, query);
         ret = klass->sink_query (self, pad, query);
 
         PAD_LOCK (pad);
@@ -811,12 +812,6 @@ check_events (GstAggregator * self, GstAggregatorPad * pad, gpointer user_data)
       PAD_BROADCAST_EVENT (pad);
       PAD_UNLOCK (pad);
     }
-    if (query) {
-      if (processed_event)
-        *processed_event = TRUE;
-      if (klass == NULL)
-        klass = GST_AGGREGATOR_GET_CLASS (self);
-    }
   } while (event != NULL);
 
   return TRUE;
@@ -1430,6 +1425,10 @@ gst_aggregator_default_sink_event (GstAggregator * self,
       PAD_LOCK (aggpad);
       GST_OBJECT_LOCK (aggpad);
       gst_event_copy_segment (event, &aggpad->segment);
+      /* We've got a new segment, tail_position is now meaningless
+       * and may interfere with the time_level calculation
+       */
+      aggpad->priv->tail_position = GST_CLOCK_TIME_NONE;
       update_time_level (aggpad, FALSE);
       GST_OBJECT_UNLOCK (aggpad);
       PAD_UNLOCK (aggpad);
@@ -2855,7 +2854,7 @@ static void
 gst_aggregator_pad_clip_buffer_unlocked (GstAggregatorPad * pad)
 {
   GstAggregator *self = NULL;
-  GstAggregatorClass *aggclass;
+  GstAggregatorClass *aggclass = NULL;
   GstBuffer *buffer = NULL;
 
   while (pad->priv->clipped_buffer == NULL &&