mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 14:56:36 +00:00
06639dd727
Previously, in order to change the surface size we had to let the pipeline redraw it, which at first also involved re-negotiating caps, etc, so a synchronization with the pipeline was absolutely necessary. At the moment, we are using wl_viewport, which separates the surface size from the buffer size and it also allows us to commit a surface resize without attaching a new buffer, so it is enough to just do: gst_wayland_video_pause_rendering(): wl_subsurface_set_sync() gst_video_overlay_set_render_rectangle(): wl_subsurface_set_position() wl_viewport_set_destination() wl_surface_damage() wl_surface_commit() ... commit the parent surface ... gst_wayland_video_resume_rendering(): wl_subsurface_set_desync() This is enough to synchronize a surface resize and the pipeline can continue drawing independently. Now of course, the names pause/resume_rendering are bad. I will rename them in another commit. |
||
---|---|---|
.. | ||
.gitignore | ||
gstwaylandsink.c | ||
gstwaylandsink.h | ||
Makefile.am | ||
scaler.xml | ||
waylandpool.c | ||
waylandpool.h | ||
wldisplay.c | ||
wldisplay.h | ||
wlvideoformat.c | ||
wlvideoformat.h | ||
wlwindow.c | ||
wlwindow.h |