summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@gnome.org>2014-07-10 13:18:21 +0200
committerThibault Saunier <tsaunier@gnome.org>2014-07-16 17:52:35 +0200
commit619237c0d0dce7425cc3e5b9e34ee22219dcdd02 (patch)
tree8022f42bf7afd0997bad52ed45c18e932d87512f
parentd9385687fb95ec0f96208f3f20f6d268d5b30e2c (diff)
downloadgstreamer-plugins-bad-619237c0d0dce7425cc3e5b9e34ee22219dcdd02.tar.gz
aggregator: Flush sinkpads when stopping
All values are meaningless in that case, so we should make sure that we clean everything
-rw-r--r--gst-libs/gst/base/gstaggregator.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gst-libs/gst/base/gstaggregator.c b/gst-libs/gst/base/gstaggregator.c
index c2d00adde..7eab8063a 100644
--- a/gst-libs/gst/base/gstaggregator.c
+++ b/gst-libs/gst/base/gstaggregator.c
@@ -691,10 +691,21 @@ eat:
}
static gboolean
+_flush_pad (GstAggregator * self, GstAggregatorPad * pad, gpointer unused_udata)
+{
+ _aggpad_flush (pad, self);
+
+ return TRUE;
+}
+
+static gboolean
_stop (GstAggregator * agg)
{
_reset_flow_values (agg);
+ gst_aggregator_iterate_sinkpads (agg,
+ (GstAggregatorPadForeachFunc) _flush_pad, NULL);
+
return TRUE;
}