Skip to content

Commit

Permalink
gl/wayland: provide a dummy global_remove function
Browse files Browse the repository at this point in the history
Even if we don't care about any global objects being removed, wayland
will still error if globals are removed without a corresponding listener
set up for them.  e.g. wl_output hotplugging

Discovered by: Matthias Clasen

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1079>
  • Loading branch information
ystreet committed Mar 22, 2021
1 parent 0444cf8 commit eb06907
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.c
Expand Up @@ -494,7 +494,8 @@ registry_handle_global (void *data, struct wl_registry *registry,
GstGLWindowWaylandEGL *window_wayland = data;

GST_TRACE_OBJECT (window_wayland, "registry_handle_global with registry %p, "
"interface %s, version %u", registry, interface, version);
"name %" G_GUINT32_FORMAT ", interface %s, version %u", registry, name,
interface, version);

if (g_strcmp0 (interface, "wl_compositor") == 0) {
window_wayland->display.compositor =
Expand All @@ -518,8 +519,20 @@ registry_handle_global (void *data, struct wl_registry *registry,
}
}

static void
registry_handle_global_remove (void *data, struct wl_registry *registry,
uint32_t name)
{
GstGLWindowWaylandEGL *window_wayland = data;

/* TODO: deal with any registry objects that may be removed */
GST_TRACE_OBJECT (window_wayland, "wl_registry %p global_remove %"
G_GUINT32_FORMAT, registry, name);
}

static const struct wl_registry_listener registry_listener = {
registry_handle_global
registry_handle_global,
registry_handle_global_remove,
};

static gboolean
Expand Down

0 comments on commit eb06907

Please sign in to comment.