From: Tim-Philipp Müller Date: Mon, 29 Jul 2019 09:05:20 +0000 (+0100) Subject: validate: fix build with older GLib versions X-Git-Tag: 1.19.3~491^2~264 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d8d35241fe63b28b3c4eccce6981e475161acb26;p=platform%2Fupstream%2Fgstreamer.git 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 --- 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)