[mutter] screen-cast-stream: Embed the wayland output name to streams
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] screen-cast-stream: Embed the wayland output name to streams
- Date: Wed, 17 Aug 2022 08:36:54 +0000 (UTC)
commit e2d4da8562507efa334617bce405eafd65e1d15a
Author: Salman Malik <salmanmalik chromium org>
Date: Tue Aug 2 17:08:10 2022 +0000
screen-cast-stream: Embed the wayland output name to streams
If a screencast session is screencasting from multiple monitors,
it is not possible to distinguish which stream (or PipeWire stream
node id) belongs to which connected monitor (such information may be useful
to the caller e.g. caller might want to embed the stream in a window
and name it after the monitor connector, for example). This change adds
optional metadata for monitor streams to also return the wayland output
name with the stream.
Ideally, this metadata should equip the caller to get more information about
display from the following Wayland interfaces:
https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_output
https://wayland.app/protocols/xdg-output-unstable-v1
Related:
- https://github.com/flatpak/xdg-desktop-portal/pull/832
- https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/merge_requests/48
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2540>
data/dbus-interfaces/org.gnome.Mutter.ScreenCast.xml | 3 +++
src/backends/meta-screen-cast-monitor-stream.c | 5 +++++
2 files changed, 8 insertions(+)
---
diff --git a/data/dbus-interfaces/org.gnome.Mutter.ScreenCast.xml
b/data/dbus-interfaces/org.gnome.Mutter.ScreenCast.xml
index 54d2965481..345650732e 100644
--- a/data/dbus-interfaces/org.gnome.Mutter.ScreenCast.xml
+++ b/data/dbus-interfaces/org.gnome.Mutter.ScreenCast.xml
@@ -221,6 +221,9 @@
compositor coordinate space.
* "size" (ii): Size of the source of the stream in the compositor
coordinate space.
+ * "output-name" s: Xrandr name of the output in case of X11 and
+ wl_output.name in case of Wayland. Available only
+ for monitor streams.
-->
<property name="Parameters" type="a{sv}" access="read" />
diff --git a/src/backends/meta-screen-cast-monitor-stream.c b/src/backends/meta-screen-cast-monitor-stream.c
index ada9bc95f6..5d54d61685 100644
--- a/src/backends/meta-screen-cast-monitor-stream.c
+++ b/src/backends/meta-screen-cast-monitor-stream.c
@@ -168,6 +168,7 @@ meta_screen_cast_monitor_stream_set_parameters (MetaScreenCastStream *stream,
MetaScreenCastMonitorStream *monitor_stream =
META_SCREEN_CAST_MONITOR_STREAM (stream);
MetaRectangle logical_monitor_layout;
+ const char *output_name;
logical_monitor_layout =
meta_logical_monitor_get_layout (monitor_stream->logical_monitor);
@@ -182,6 +183,10 @@ meta_screen_cast_monitor_stream_set_parameters (MetaScreenCastStream *stream,
g_variant_new ("(ii)",
logical_monitor_layout.width,
logical_monitor_layout.height));
+
+ output_name = meta_monitor_get_connector (monitor_stream->monitor);
+ g_variant_builder_add (parameters_builder, "{sv}", "output-name",
+ g_variant_new ("s", output_name));
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]