diff options
author | Jan Schmidt <jan@centricular.com> | 2021-06-08 19:35:00 +0300 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2021-06-21 10:32:27 +0300 |
commit | 7f293614881b051447c46529290b0db51e05b9ef (patch) | |
tree | 13a6c7382016631b91432abf33abef45e58169de | |
parent | 5230cab38d22b861fec54174c9285fb4c2f10cef (diff) |
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/832>
-rw-r--r-- | gst/parse/grammar.y.in | 2 |
1 files changed, 1 insertions, 1 deletions
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); |