From 1e2bc681712d62081f49e8e74723a596d1578a34 Mon Sep 17 00:00:00 2001 From: Robert Mader Date: Mon, 13 Dec 2021 12:00:10 +0100 Subject: [PATCH] waylandsink: Use G_MAXINT32 for opaque regions `gst_wl_window_set_opaque` does not get called on window resizes, potentially leaving opaque regions too small. According to the spec opaque regions can be bigger than the surface size - parts that fall outside of the surface will get ignored. Thus we can can simply use `G_MAXINT32` and be sure that the whole surfaces will always be covered. Part-of: --- subprojects/gst-plugins-bad/ext/wayland/wlwindow.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/subprojects/gst-plugins-bad/ext/wayland/wlwindow.c b/subprojects/gst-plugins-bad/ext/wayland/wlwindow.c index 66a05be976..961acd175e 100644 --- a/subprojects/gst-plugins-bad/ext/wayland/wlwindow.c +++ b/subprojects/gst-plugins-bad/ext/wayland/wlwindow.c @@ -433,16 +433,14 @@ gst_wl_window_set_opaque (GstWlWindow * window, const GstVideoInfo * info) /* Set area opaque */ region = wl_compositor_create_region (window->display->compositor); - wl_region_add (region, 0, 0, window->render_rectangle.w, - window->render_rectangle.h); + wl_region_add (region, 0, 0, G_MAXINT32, G_MAXINT32); wl_surface_set_opaque_region (window->area_surface, region); wl_region_destroy (region); if (!GST_VIDEO_INFO_HAS_ALPHA (info)) { /* Set video opaque */ region = wl_compositor_create_region (window->display->compositor); - wl_region_add (region, 0, 0, window->render_rectangle.w, - window->render_rectangle.h); + wl_region_add (region, 0, 0, G_MAXINT32, G_MAXINT32); wl_surface_set_opaque_region (window->video_surface, region); wl_region_destroy (region); }