libs: utils: libva 1.0 changed the logging
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Tue, 11 Jul 2017 15:29:13 +0000 (17:29 +0200)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Mon, 31 Jul 2017 16:17:06 +0000 (18:17 +0200)
The logging mechanism in libva has changed it's functions
signatures. This patch updates that for libva versions >= 1.0

https://bugzilla.gnome.org/show_bug.cgi?id=784398

gst-libs/gst/vaapi/gstvaapiutils.c

index 0ed1efe..c24bed7 100644 (file)
 #define STRCASE(x)      case x: return STRINGIFY(x)
 
 #if VA_CHECK_VERSION (0,40,0)
-static void
-gst_vaapi_log (const char *message)
+static gchar *
+strip_msg (const char *message)
 {
   gchar *msg;
 
   msg = g_strdup (message);
   if (!msg)
+    return NULL;
+  return g_strstrip (msg);
+}
+
+#if VA_CHECK_VERSION (1,0,0)
+static void
+gst_vaapi_err (void *data, const char *message)
+{
+  gchar *msg;
+
+  msg = strip_msg (message);
+  if (!msg)
+    return;
+  GST_ERROR ("%s", msg);
+  g_free (msg);
+}
+#endif
+
+static void
+gst_vaapi_log (
+#if VA_CHECK_VERSION (1,0,0)
+    void *data,
+#endif
+    const char *message)
+{
+  gchar *msg;
+
+  msg = strip_msg (message);
+  if (!msg)
     return;
-  g_strchomp (msg);
   GST_INFO ("%s", msg);
   g_free (msg);
 }
@@ -66,7 +94,10 @@ vaapi_initialize (VADisplay dpy)
   gint major_version, minor_version;
   VAStatus status;
 
-#if VA_CHECK_VERSION (0,40,0)
+#if VA_CHECK_VERSION (1,0,0)
+  vaSetErrorCallback (dpy, gst_vaapi_err, NULL);
+  vaSetInfoCallback (dpy, gst_vaapi_log, NULL);
+#elif VA_CHECK_VERSION (0,40,0)
   vaSetInfoCallback (gst_vaapi_log);
 #endif