From 12661d90a3a4202c579e184b95316fedd895fa71 Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Wed, 17 Mar 2021 14:06:51 +0100 Subject: [PATCH] value: fix parsing of explicit value casts Since acdb4ce03d525a18f6c351a040b8446c7bbd98bd , parsing of the value for a property can use the pspec to determine what type a value should be casted to. However, this broke the case where the value is explicitly casted to a type (eg <(float) 0.0>). In that situation, we want to respect the casting decision, and only use the pspec to perform "implicit" casts. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/881 Part-of: --- gst/gstvalue.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gst/gstvalue.c b/gst/gstvalue.c index 607978c..66035a7 100644 --- a/gst/gstvalue.c +++ b/gst/gstvalue.c @@ -2754,9 +2754,7 @@ _priv_gst_value_parse_value (gchar * str, /* check if there's a (type_name) 'cast' */ type_name = NULL; - if (pspec) { - type = G_PARAM_SPEC_VALUE_TYPE (pspec); - } else if (*s == '(') { + if (*s == '(') { s++; while (g_ascii_isspace (*s)) s++; @@ -2782,6 +2780,8 @@ _priv_gst_value_parse_value (gchar * str, GST_WARNING ("invalid type"); return FALSE; } + } else if (pspec) { + type = G_PARAM_SPEC_VALUE_TYPE (pspec); } while (g_ascii_isspace (*s)) -- 2.7.4