From 0c50ccac8707248fb3cf7173198080fa82868426 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 2 Dec 2022 09:46:05 +0100 Subject: [PATCH] jack: only process valid ports In the data-loop we can check the valid flag safely to check if ports are valid for processing. See #2863 --- pipewire-jack/src/pipewire-jack.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pipewire-jack/src/pipewire-jack.c b/pipewire-jack/src/pipewire-jack.c index 98eede7de..a2ddd60ba 100644 --- a/pipewire-jack/src/pipewire-jack.c +++ b/pipewire-jack/src/pipewire-jack.c @@ -1144,6 +1144,8 @@ static void complete_process(struct client *c, uint32_t frames) if (pw_map_item_is_free(item)) continue; p = item->data; + if (!p->valid) + continue; spa_list_for_each(mix, &p->mix, port_link) { if (SPA_LIKELY(mix->io != NULL)) mix->io->status = SPA_STATUS_NEED_DATA; @@ -1153,6 +1155,8 @@ static void complete_process(struct client *c, uint32_t frames) if (pw_map_item_is_free(item)) continue; p = item->data; + if (!p->valid) + continue; prepare_output(p, frames); p->io.status = SPA_STATUS_NEED_DATA; }