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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/772>
This commit is contained in:
parent
44bdad58f6
commit
12661d90a3
@ -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))
|
||||
|
Loading…
x
Reference in New Issue
Block a user