waylandsink: make sure self->window is not NULL before using it

self->window is created with the first frame, so it is not available when
properties are set during construction of the element.
Skip calling gst_wl_window_ensure_fullscreen() in this case.

The window is already constructed with the current configured fullscreen state,
nothing else in needed here.

Without this, running e.g. 'gst-launch-1.0 -v videotestsrc ! waylandsink
fullscreen=true' will result in:

GStreamer-Wayland-CRITICAL **: 14:11:19.921: gst_wl_window_ensure_fullscreen: assertion 'self' failed

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>
This commit is contained in:
Michael Olbrich 2025-06-25 16:17:58 +02:00 committed by GStreamer Marge Bot
parent f86fb556df
commit 96b800f82a

View File

@ -223,10 +223,12 @@ gst_wayland_sink_set_fullscreen (GstWaylandSink * self, gboolean fullscreen)
if (fullscreen == self->fullscreen)
return;
g_mutex_lock (&self->render_lock);
self->fullscreen = fullscreen;
gst_wl_window_ensure_fullscreen (self->window, fullscreen);
g_mutex_unlock (&self->render_lock);
if (self->window) {
g_mutex_lock (&self->render_lock);
gst_wl_window_ensure_fullscreen (self->window, fullscreen);
g_mutex_unlock (&self->render_lock);
}
}
static void