From 7f293614881b051447c46529290b0db51e05b9ef Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Wed, 9 Jun 2021 02:35:00 +1000 Subject: parse: Don't do delayed property setting for top-level properties. If a property is supplied to gst-launch-1.0 to set on a property that implements GstChildProxy, it would always accept any property name and try to set it later. This means that (for example) decodebin will accept and not complain about property names that can never exist like: gst-launch-1.0 videotestsrc ! decodebin NON-EXISTING_PROPERTY=adsfdasf ! fakesink Instead, only try to do deferred property setting for property names that contain the :: separator that indicates it's a setting on a child that might appear later. Part-of: --- gst/parse/grammar.y.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gst/parse/grammar.y.in b/gst/parse/grammar.y.in index bc23ea0b94..d4ac581584 100644 --- a/gst/parse/grammar.y.in +++ b/gst/parse/grammar.y.in @@ -398,7 +398,7 @@ static void gst_parse_element_set (gchar *value, GstElement *element, graph_t *g } gst_parse_unescape (pos); - if (GST_IS_CHILD_PROXY (element)) { + if (GST_IS_CHILD_PROXY (element) && strstr (value, "::") != NULL) { if (!gst_child_proxy_lookup (GST_CHILD_PROXY (element), value, &target, &pspec)) { /* do a delayed set */ gst_parse_add_delayed_set (element, value, pos); -- cgit v1.2.3