libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
authorHyunjun Ko <zzoon@igalia.com>
Wed, 5 Jul 2017 05:33:38 +0000 (14:33 +0900)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Tue, 18 Jul 2017 16:50:39 +0000 (18:50 +0200)
Implements new API function so that users could create GstVaapiDisplay
with their own VADisplay within a native display as backend.

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

gst-libs/gst/vaapi/gstvaapidisplay_x11.c
gst-libs/gst/vaapi/gstvaapidisplay_x11.h

index ca7fa5c..ee36009 100644 (file)
@@ -373,6 +373,22 @@ gst_vaapi_display_x11_new_with_display (Display * x11_display)
       GST_VAAPI_DISPLAY_INIT_FROM_NATIVE_DISPLAY, x11_display);
 }
 
+GstVaapiDisplay *
+gst_vaapi_display_x11_new_with_va_display (VADisplay va_display,
+    Display * x11_display)
+{
+  GstVaapiDisplayInfo info = {
+    .va_display = va_display,
+    .native_display = x11_display,
+    .display_type = GST_VAAPI_DISPLAY_TYPE_X11,
+  };
+
+  g_return_val_if_fail (x11_display, NULL);
+
+  return gst_vaapi_display_new (g_object_new (GST_TYPE_VAAPI_DISPLAY_X11, NULL),
+      GST_VAAPI_DISPLAY_INIT_FROM_VA_DISPLAY, &info);
+}
+
 /**
  * gst_vaapi_display_x11_get_display:
  * @display: a #GstVaapiDisplayX11
index 7035459..1458ea7 100644 (file)
@@ -42,6 +42,9 @@ gst_vaapi_display_x11_new (const gchar * display_name);
 GstVaapiDisplay *
 gst_vaapi_display_x11_new_with_display (Display * x11_display);
 
+GstVaapiDisplay *
+gst_vaapi_display_x11_new_with_va_display (VADisplay va_display, Display * x11_display);
+
 Display *
 gst_vaapi_display_x11_get_display (GstVaapiDisplayX11 * display);