parse: do delayed set only if the target child was not found and fail otherwise
authorMichael Gruner <michael.gruner@ridgerun.com>
Thu, 18 Aug 2022 04:34:35 +0000 (22:34 -0600)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 2 Nov 2022 13:21:09 +0000 (13:21 +0000)
commit2cdfa8f419be8a21ce53f664ec6d636265a5df37
tree5d805bbace63773dea863bf19d8495504bf16615
parentded2fed3b97bf45685487ee3179deeab6b687310
parse: do delayed set only if the target child was not found and fail otherwise

When using the child proxy notation (child::property=value) it may
happen that the target child does not exist at the time of parsing
(i.e: decodebin creates the encoder according to the contents of the
stream). On this cases, we want to delay the setting of the property
to later, when new elements are added. Previous logic performed a
delayed set even if the target child was found but the property
was not found in it. This should be treated as a failure because,
unlike missing elements, properties should not appear dynamically.
By not failing, typos in property names may go unnoticed to the end
user.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2908>
subprojects/gstreamer/gst/parse/grammar.y.in