ladspa: fix unbounded integer properties
authorTim-Philipp Müller <tim@centricular.com>
Wed, 5 Feb 2020 16:03:06 +0000 (16:03 +0000)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 6 Feb 2020 10:15:12 +0000 (10:15 +0000)
Use a double instead of a plain float for intermediary
property values, so we have enough bits to store INT_MAX
and it doesn't get rounded and wrapped to -1 when cast
back to a 32-bit integer.

Fixes criticals like

  g_param_spec_int: assertion 'default_value >= minimum && default_value <= maximum' failed

when loading LADSPA plugins from the Linux Studio Plugins
Project (http://lsp-plug.in) in GStreamer.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1194

ext/ladspa/gstladspautils.c

index d55db6f..f1de000 100644 (file)
@@ -346,7 +346,7 @@ gst_ladspa_object_class_get_param_spec (GstLADSPAClass * ladspa_class,
   GParamSpec *ret;
   gchar *name;
   gint hintdesc, perms;
-  gfloat lower, upper, def;
+  gdouble lower, upper, def;
 
   name =
       gst_ladspa_object_class_get_param_name (ladspa_class, object_class,