pipewire/0001-jack-make-sure-we-can-always-find-our-own-ports.patch
Antonio Larrosa e4f628e84d Accepting request 1105883 from home:alarrosa:branches:multimedia:libs
- Update to version 0.3.78:
  * Highlights
    - An old regression was fixed with where some nodes would not
      run.
    - A regression was fixed where removed events would not be
      shown in some cases. This would result in duplicate entries
      in audio clients.
    - Fix an off-by-one in the vban audio receiver. Tweak the rate
      adaption a little.
    - ACP will now set a UCM verb before probing the pro-audio
      devices.
    - More bugfixes and improvements.
  * PipeWire
    - An old regression was fixed with where some nodes would not
      run. (#3405)
    - Suspend was improved a little to avoid races when the session
      manager would suspend right when a driver was starting.
  * Modules
    - module-rtp-sap does not use the deprecated inet_aton anymore.
    - Fix an off-by-one in the vban audio receiver. Tweak the rate
      adaption a little. (#3380)
  * SPA
    - ACP will now set a UCM verb before probing the pro-audio
      devices. (#3407)
    - The mandatory flag will be set now on the video modifiers.
    - EVL was updated to Xenomai4 r46 and xbuf creation was
      improved.
    - An option was added to force colors in the log even when
      logging to !tty.
    - The return type of spa_pod_builder_control() was fixed.

OBS-URL: https://build.opensuse.org/request/show/1105883
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=150
2023-08-25 09:41:45 +00:00

43 lines
1.3 KiB
Diff

From c41c812325ca1b0db1efc2fc06a3c90355be59d9 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Thu, 24 Aug 2023 19:28:57 +0200
Subject: [PATCH] jack: make sure we can always find our own ports
find_port_by_name() is used to find our own ports before they become
visible so make sure we can always find them.
Fixes #3485
---
pipewire-jack/src/pipewire-jack.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/pipewire-jack/src/pipewire-jack.c b/pipewire-jack/src/pipewire-jack.c
index b93422bd3..ff5b6881d 100644
--- a/pipewire-jack/src/pipewire-jack.c
+++ b/pipewire-jack/src/pipewire-jack.c
@@ -719,12 +719,20 @@ static bool is_port_default(struct client *c, struct object *o)
return false;
}
+static inline bool client_port_visible(struct client *c, struct object *o)
+{
+ if (o->port.port != NULL && o->port.port->client == c)
+ return true;
+ return o->visible;
+}
+
static struct object *find_port_by_name(struct client *c, const char *name)
{
struct object *o;
spa_list_for_each(o, &c->context.objects, link) {
- if (o->type != INTERFACE_Port || o->removed || !o->visible)
+ if (o->type != INTERFACE_Port || o->removed ||
+ (!client_port_visible(c, o)))
continue;
if (spa_streq(o->port.name, name) ||
spa_streq(o->port.alias1, name) ||
--
GitLab