From d78e094fd4bc112b40872de07b078455989292cc Mon Sep 17 00:00:00 2001 From: Hyunjun Ko Date: Wed, 5 Jul 2017 14:33:38 +0900 Subject: [PATCH] libs: display: x11: add gst_vaapi_display_x11_new_with_va_display() 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 | 16 ++++++++++++++++ gst-libs/gst/vaapi/gstvaapidisplay_x11.h | 3 +++ 2 files changed, 19 insertions(+) diff --git a/gst-libs/gst/vaapi/gstvaapidisplay_x11.c b/gst-libs/gst/vaapi/gstvaapidisplay_x11.c index ca7fa5c584..ee36009536 100644 --- a/gst-libs/gst/vaapi/gstvaapidisplay_x11.c +++ b/gst-libs/gst/vaapi/gstvaapidisplay_x11.c @@ -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 diff --git a/gst-libs/gst/vaapi/gstvaapidisplay_x11.h b/gst-libs/gst/vaapi/gstvaapidisplay_x11.h index 703545920b..1458ea7ad1 100644 --- a/gst-libs/gst/vaapi/gstvaapidisplay_x11.h +++ b/gst-libs/gst/vaapi/gstvaapidisplay_x11.h @@ -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);