summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOgnyan Tonchev <ognyan@axis.com>2014-09-17 17:17:10 +0200
committerTim-Philipp Müller <tim@centricular.com>2014-09-17 17:39:10 +0100
commitcf04dc0486ea29f25993a59fbde7c8ba98a417f3 (patch)
tree0cef75a5ebb2a2390cca215d371565677e545daa
parenta528dadb9800fd3b21b60c4b3cd707e4616aed41 (diff)
typefindelement: do not leak sticky events in flush_stop
https://bugzilla.gnome.org/show_bug.cgi?id=736813
-rw-r--r--plugins/elements/gsttypefindelement.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/plugins/elements/gsttypefindelement.c b/plugins/elements/gsttypefindelement.c
index e05a0424af..e8977fd9da 100644
--- a/plugins/elements/gsttypefindelement.c
+++ b/plugins/elements/gsttypefindelement.c
@@ -649,13 +649,12 @@ gst_type_find_element_sink_event (GstPad * pad, GstObject * parent,
GST_OBJECT_LOCK (typefind);
for (l = typefind->cached_events; l; l = l->next) {
- if (!GST_EVENT_IS_STICKY (l->data) ||
- GST_EVENT_TYPE (l->data) == GST_EVENT_SEGMENT ||
- GST_EVENT_TYPE (l->data) == GST_EVENT_EOS) {
- gst_event_unref (l->data);
- } else {
+ if (GST_EVENT_IS_STICKY (l->data) &&
+ GST_EVENT_TYPE (l->data) != GST_EVENT_SEGMENT &&
+ GST_EVENT_TYPE (l->data) != GST_EVENT_EOS) {
gst_pad_store_sticky_event (typefind->src, l->data);
}
+ gst_event_unref (l->data);
}
g_list_free (typefind->cached_events);