summaryrefslogtreecommitdiff
path: root/gst-libs/gst/vaapi
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2020-06-11 08:32:05 +0200
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-06-17 14:56:18 +0000
commit4b2f7a188d2fd4353585e00de35a943c5394601a (patch)
tree48f8b549664f39fa71fc3752626ac40658253c6f /gst-libs/gst/vaapi
parent72c4a161c09eef669b8f493790a4c991b6c46e8e (diff)
libs: wayland: display: only handle the first output
Right now, all outputs are handled. The means that the registry object for all but the last are leaked. As a result the sizes are not used correctly. With two outputs, at first the mode and physical size of the second output are used. If the first output changes the mode, then the physical size of the second output is used in combination with the resolution of the first output. The resulting pixel aspect ratio is incorrect. There seems to be no way to determine on which output the window is shown, so just use the first one to get consistent results. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
Diffstat (limited to 'gst-libs/gst/vaapi')
-rw-r--r--gst-libs/gst/vaapi/gstvaapidisplay_wayland.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gst-libs/gst/vaapi/gstvaapidisplay_wayland.c b/gst-libs/gst/vaapi/gstvaapidisplay_wayland.c
index 660c99ec..8803c294 100644
--- a/gst-libs/gst/vaapi/gstvaapidisplay_wayland.c
+++ b/gst-libs/gst/vaapi/gstvaapidisplay_wayland.c
@@ -122,8 +122,10 @@ registry_handle_global (void *data,
wl_registry_bind (registry, id, &xdg_wm_base_interface, 1);
xdg_wm_base_add_listener (priv->xdg_wm_base, &xdg_wm_base_listener, priv);
} else if (strcmp (interface, "wl_output") == 0) {
- priv->output = wl_registry_bind (registry, id, &wl_output_interface, 1);
- wl_output_add_listener (priv->output, &output_listener, priv);
+ if (!priv->output) {
+ priv->output = wl_registry_bind (registry, id, &wl_output_interface, 1);
+ wl_output_add_listener (priv->output, &output_listener, priv);
+ }
}
}