From 4e2eb93f043e72cbdbfae67689fd9af84fcdfde4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 28 Jul 2015 12:16:12 +0300 Subject: [PATCH] capsfilter: When switching caps change modes, forget all previous caps --- plugins/elements/gstcapsfilter.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/elements/gstcapsfilter.c b/plugins/elements/gstcapsfilter.c index 0035c4737f..f86f729118 100644 --- a/plugins/elements/gstcapsfilter.c +++ b/plugins/elements/gstcapsfilter.c @@ -213,9 +213,21 @@ gst_capsfilter_set_property (GObject * object, guint prop_id, gst_base_transform_reconfigure_sink (GST_BASE_TRANSFORM (object)); break; } - case PROP_CAPS_CHANGE_MODE: + case PROP_CAPS_CHANGE_MODE:{ + GstCapsFilterCapsChangeMode old_change_mode; + + GST_OBJECT_LOCK (capsfilter); + old_change_mode = capsfilter->caps_change_mode; capsfilter->caps_change_mode = g_value_get_enum (value); + + if (capsfilter->caps_change_mode != old_change_mode) { + g_list_free_full (capsfilter->previous_caps, + (GDestroyNotify) gst_caps_unref); + capsfilter->previous_caps = NULL; + } + GST_OBJECT_UNLOCK (capsfilter); break; + } default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break;