summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorHyunjun Ko <zzoon@igalia.com>2020-06-19 09:21:16 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2020-07-31 14:02:33 +0200
commita362d99e9e3bb705f4c4fd1e1e3aa869d86ec342 (patch)
tree8cca97e276cde6f8d59057acb832a839f33d162d /gst
parenta5f37a21ec4c56e0237793c51f441c1de1c0bf08 (diff)
downloadgstreamer-vaapi-a362d99e9e3bb705f4c4fd1e1e3aa869d86ec342.tar.gz
libs: window: implements gst_vaapi_window_set_render_rectangle
Implements new vmethod gst_vaapi_window_set_render_rectangle, which is doing set the information of the rendered rectangle set by user. This is necessary on wayland at least to get exact information of external surface. And vaapisink calls this when gst_video_overlay_set_render_rectangle is called. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
Diffstat (limited to 'gst')
-rw-r--r--gst/vaapi/gstvaapisink.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c
index c1f56bf0..2d7824e9 100644
--- a/gst/vaapi/gstvaapisink.c
+++ b/gst/vaapi/gstvaapisink.c
@@ -633,6 +633,12 @@ gst_vaapisink_video_overlay_set_render_rectangle (GstVideoOverlay * overlay,
display_rect->width = width;
display_rect->height = height;
+ if (gst_vaapisink_ensure_render_rect (sink, width, height) && sink->window) {
+ gst_vaapi_window_set_render_rectangle (sink->window, x, y, width, height);
+ gst_vaapi_window_set_size (sink->window, width, height);
+ gst_vaapisink_reconfigure_window (sink);
+ }
+
GST_DEBUG ("render rect (%d,%d):%ux%u",
display_rect->x, display_rect->y,
display_rect->width, display_rect->height);