From bf5d40434d2496065610771886e3af201f59de45 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 21 Apr 2021 11:43:07 +0200 Subject: [PATCH] impl-link: don't clear ouput buffers in all cases When we can't set the allocated buffers on the input port, don't clear the buffers because they might be in use by the output port. Fixes #1078 --- src/pipewire/impl-link.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pipewire/impl-link.c b/src/pipewire/impl-link.c index f426d69a4..f19e75f01 100644 --- a/src/pipewire/impl-link.c +++ b/src/pipewire/impl-link.c @@ -461,7 +461,7 @@ static int do_allocation(struct pw_impl_link *this) output->buffers.n_buffers)) < 0) { error = spa_aprintf("error use output buffers: %d (%s)", res, spa_strerror(res)); - goto error; + goto error_clear; } if (SPA_RESULT_IS_ASYNC(res)) { res = spa_node_sync(output->node->node, res), @@ -494,8 +494,9 @@ static int do_allocation(struct pw_impl_link *this) } return 0; -error: +error_clear: pw_buffers_clear(&output->buffers); +error: link_update_state(this, PW_LINK_STATE_ERROR, res, error); return res; }