mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-10 03:19:40 +00:00
libs: display: egl: avoid two vaDisplay instantiates
GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11 or Wayland. Nonetheless it created another vaDisplay for it, instead of using the wrapped one. This patch enables the reuse of the wrapped vaDisplay avoiding instantiating two. https://bugzilla.gnome.org/show_bug.cgi?id=782212
This commit is contained in:
parent
494ac4e3a8
commit
66e4593c33
1 changed files with 7 additions and 0 deletions
|
@ -189,6 +189,8 @@ gst_vaapi_display_egl_get_display_info (GstVaapiDisplay * base_display,
|
|||
GstVaapiDisplayClass *const klass =
|
||||
GST_VAAPI_DISPLAY_GET_CLASS (display->display);
|
||||
|
||||
info->va_display = GST_VAAPI_DISPLAY_VADISPLAY (display->display);
|
||||
|
||||
if (klass->get_display && !klass->get_display (display->display, info))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
|
@ -279,6 +281,11 @@ gst_vaapi_display_egl_finalize (GObject * object)
|
|||
|
||||
if (dpy->texture_map)
|
||||
gst_object_unref (dpy->texture_map);
|
||||
|
||||
/* HACK to avoid to call twice vaTerminate() since this and the
|
||||
* proxied display share the same vaDisplay */
|
||||
GST_VAAPI_DISPLAY_VADISPLAY (object) = NULL;
|
||||
|
||||
G_OBJECT_CLASS (gst_vaapi_display_egl_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue