mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
waylandsink: Clear window when pipeline is stopped
When a pipeline is stopped (actually when the waylandsink element state changes from PAUSED to READY) the video surface is cleared, but the opaque black surface behind is not. Fix this by actually clearing both surfaces.
This commit is contained in:
parent
ac9c9d8efc
commit
62ac77e620
1 changed files with 10 additions and 6 deletions
|
@ -462,14 +462,18 @@ gst_wl_window_render (GstWlWindow * window, GstWlBuffer * buffer,
|
|||
gst_wl_window_set_opaque (window, info);
|
||||
}
|
||||
|
||||
if (G_LIKELY (buffer))
|
||||
if (G_LIKELY (buffer)) {
|
||||
gst_wl_buffer_attach (buffer, window->video_surface_wrapper);
|
||||
else
|
||||
wl_surface_damage (window->video_surface_wrapper, 0, 0,
|
||||
window->video_rectangle.w, window->video_rectangle.h);
|
||||
wl_surface_commit (window->video_surface_wrapper);
|
||||
} else {
|
||||
/* clear both video and parent surfaces */
|
||||
wl_surface_attach (window->video_surface_wrapper, NULL, 0, 0);
|
||||
|
||||
wl_surface_damage (window->video_surface_wrapper, 0, 0,
|
||||
window->video_rectangle.w, window->video_rectangle.h);
|
||||
wl_surface_commit (window->video_surface_wrapper);
|
||||
wl_surface_commit (window->video_surface_wrapper);
|
||||
wl_surface_attach (window->area_surface_wrapper, NULL, 0, 0);
|
||||
wl_surface_commit (window->area_surface_wrapper);
|
||||
}
|
||||
|
||||
if (G_UNLIKELY (info)) {
|
||||
/* commit also the parent (area_surface) in order to change
|
||||
|
|
Loading…
Reference in a new issue