It was impossible to have an u32 parameter such as
'max-buffer-size=(uint)5' because the parentheses were not properly
parsed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4941>
while (t[i]) {
// check t[i] for params
if ((params = strchr (t[i], '('))) {
- gchar *end = strchr (¶ms[1], ')');
+ // params can contain multiple '(' when using this kind of parameter: 'max-buffer-size=(uint)5'
+ guint n_par = 1, j;
+ gchar *end = NULL;
+
+ for (j = 1; params[j] != '\0'; j++) {
+ if (params[j] == '(')
+ n_par++;
+ else if (params[j] == ')') {
+ n_par--;
+ if (n_par == 0) {
+ end = ¶ms[j];
+ break;
+ }
+ }
+ }
*params = '\0';
params++;
if (end)