From ba0f40e45cffae8be0feeca08ea95c22812ea493 Mon Sep 17 00:00:00 2001 From: columbarius Date: Wed, 23 Jun 2021 01:40:42 +0200 Subject: [PATCH] screencast: disable instance sharing PipeWire currently will not renegotiate the used format of a stream when a new client connects. This causes clients to get stuck when they are incompatible with the format negotiated for the existing stream. This will be problematic when some clients support dmabuf transport while others won't. Thus we disable it until a solution is found. --- src/screencast/screencast.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/screencast/screencast.c b/src/screencast/screencast.c index 08a920c..b382156 100644 --- a/src/screencast/screencast.c +++ b/src/screencast/screencast.c @@ -112,6 +112,8 @@ bool setup_outputs(struct xdpw_screencast_context *ctx, struct xdpw_session *ses return false; } + // Disable screencast sharing to avoid sharing between dmabuf and shm capable clients + /* struct xdpw_screencast_instance *cast, *tmp_c; wl_list_for_each_reverse_safe(cast, tmp_c, &ctx->screencast_instances, link) { logprint(INFO, "xdpw: existing screencast instance: %d %s cursor", @@ -132,6 +134,7 @@ bool setup_outputs(struct xdpw_screencast_context *ctx, struct xdpw_session *ses cast, cast->refcount); } } + */ if (!sess->screencast_instance) { sess->screencast_instance = calloc(1, sizeof(struct xdpw_screencast_instance));