Commit 087bf30c authored by Gwenole Beauchesne's avatar Gwenole Beauchesne

wayland: fix display sharing.

When the Wayland display is shared, we still have to create our own local
shell and compositor objects, since they are not propagated from the cache.
Likewise, we also need to determine the display size or vaapisink would
fail to account for the display aspect ratio, and will try to create a 0x0
window.
parent 0ed1735d
......@@ -285,12 +285,11 @@ gst_vaapi_display_wayland_open_display(GstVaapiDisplay * display)
GstVaapiDisplayWaylandPrivate * const priv =
GST_VAAPI_DISPLAY_WAYLAND(display)->priv;
if (!priv->create_display)
return priv->wl_display != NULL;
priv->wl_display = wl_display_connect(get_display_name(display));
if (!priv->wl_display)
return FALSE;
if (priv->create_display) {
priv->wl_display = wl_display_connect(get_display_name(display));
if (!priv->wl_display)
return FALSE;
}
wl_display_set_user_data(priv->wl_display, priv);
priv->registry = wl_display_get_registry(priv->wl_display);
......@@ -298,6 +297,14 @@ gst_vaapi_display_wayland_open_display(GstVaapiDisplay * display)
priv->event_fd = wl_display_get_fd(priv->wl_display);
wl_display_roundtrip(priv->wl_display);
if (!priv->width || !priv->height) {
wl_display_roundtrip(priv->wl_display);
if (!priv->width || !priv->height) {
GST_ERROR("failed to determine the display size");
return FALSE;
}
}
if (!priv->compositor) {
GST_ERROR("failed to bind compositor interface");
return FALSE;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment