From 89082272f8331c15ae7be7dce18a2683f50cf704 Mon Sep 17 00:00:00 2001 From: Seungha Yang Date: Tue, 7 Mar 2017 08:21:48 +0900 Subject: [PATCH] inputselector: Always proxy position/duration query active-pad switch causes reconfigure event with lock taken, and upstream element might query the current position or duration before returning the reconfigure event. Meanwhile, gst_input_selector_get_linked_pad() is used to get srcpad inside of default query handle, and it takes also lock. Since inputselector is still locked by active-pad switch, and so the query cannot be handled further. https://bugzilla.gnome.org/show_bug.cgi?id=775445 --- plugins/elements/gstinputselector.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c index d842c29795..f3f95e6833 100644 --- a/plugins/elements/gstinputselector.c +++ b/plugins/elements/gstinputselector.c @@ -664,7 +664,10 @@ gst_selector_pad_query (GstPad * pad, GstObject * parent, GstQuery * query) switch (GST_QUERY_TYPE (query)) { case GST_QUERY_CAPS: - /* always proxy caps query, regardless of active pad or not */ + case GST_QUERY_POSITION: + case GST_QUERY_DURATION: + /* always proxy caps/position/duration query, regardless of active pad or not + * See https://bugzilla.gnome.org/show_bug.cgi?id=775445 */ res = gst_pad_peer_query (self->srcpad, query); break; case GST_QUERY_ALLOCATION:{