hwcontext_vaapi: Set message callbacks on internally-created devices
authorMark Thompson <sw@jkqxz.net>
Sun, 8 Oct 2017 15:54:37 +0000 (16:54 +0100)
committerMark Thompson <sw@jkqxz.net>
Sun, 8 Oct 2017 23:11:53 +0000 (00:11 +0100)
The message callbacks are library-safe in libva2, so we can now use
them.

libavutil/hwcontext_vaapi.c

index 2977878..b2f2e37 100644 (file)
@@ -1094,6 +1094,22 @@ static void vaapi_device_free(AVHWDeviceContext *ctx)
     av_freep(&priv);
 }
 
+#if CONFIG_VAAPI_1
+static void vaapi_device_log_error(void *context, const char *message)
+{
+    AVHWDeviceContext *ctx = context;
+
+    av_log(ctx, AV_LOG_ERROR, "libva: %s", message);
+}
+
+static void vaapi_device_log_info(void *context, const char *message)
+{
+    AVHWDeviceContext *ctx = context;
+
+    av_log(ctx, AV_LOG_VERBOSE, "libva: %s", message);
+}
+#endif
+
 static int vaapi_device_connect(AVHWDeviceContext *ctx,
                                 VADisplay display)
 {
@@ -1101,6 +1117,11 @@ static int vaapi_device_connect(AVHWDeviceContext *ctx,
     int major, minor;
     VAStatus vas;
 
+#if CONFIG_VAAPI_1
+    vaSetErrorCallback(display, &vaapi_device_log_error, ctx);
+    vaSetInfoCallback (display, &vaapi_device_log_info,  ctx);
+#endif
+
     hwctx->display = display;
 
     vas = vaInitialize(display, &major, &minor);