From d8d35241fe63b28b3c4eccce6981e475161acb26 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 29 Jul 2019 10:05:20 +0100 Subject: [PATCH] validate: fix build with older GLib versions g_enum_to_string() is only available in newer ones. Add compatibility workaround for the time being to decouple this from the decision whether to bump the GLib requirement and what to bump it to. https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/199 Fixes #45 --- validate/gst/validate/gst-validate-scenario.c | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/validate/gst/validate/gst-validate-scenario.c b/validate/gst/validate/gst-validate-scenario.c index e0d0940..412c0e6 100644 --- a/validate/gst/validate/gst-validate-scenario.c +++ b/validate/gst/validate/gst-validate-scenario.c @@ -187,6 +187,35 @@ typedef struct KeyFileGroupName #define NOT_KF_AFTER_FORCE_KF_EVT_TOLERANCE 1 +#if !GLIB_CHECK_VERSION(2,54,0) +#define g_enum_to_string gst_validate_g_enum_to_string +static gchar * +gst_validate_g_enum_to_string (GType g_enum_type, gint value) +{ + gchar *result; + GEnumClass *enum_class; + GEnumValue *enum_value; + + g_return_val_if_fail (G_TYPE_IS_ENUM (g_enum_type), NULL); + + enum_class = g_type_class_ref (g_enum_type); + + /* Already warned */ + if (enum_class == NULL) + return g_strdup_printf ("%d", value); + + enum_value = g_enum_get_value (enum_class, value); + + if (enum_value == NULL) + result = g_strdup_printf ("%d", value); + else + result = g_strdup (enum_value->value_name); + + g_type_class_unref (enum_class); + return result; +} +#endif + static GstValidateInterceptionReturn gst_validate_scenario_intercept_report (GstValidateReporter * reporter, GstValidateReport * report) -- 2.7.4