From 91ae1c13b7150f9d88fdf0d7d1e41d2f4819b804 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 1 Oct 2025 11:11:36 +0200 Subject: [PATCH] impl-port: only use DYNAMIC_DATA when allowed Allocate buffers with the DYNAMIC_DATA flag set only when the port actually allows it. See #4918 --- src/pipewire/impl-port.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pipewire/impl-port.c b/src/pipewire/impl-port.c index 221f907cd..69725c4c3 100644 --- a/src/pipewire/impl-port.c +++ b/src/pipewire/impl-port.c @@ -1955,8 +1955,9 @@ static int negotiate_mixer_buffers(struct pw_impl_port *port, uint32_t flags, if (SPA_FLAG_IS_SET(port->mix_flags, PW_IMPL_PORT_MIX_FLAG_NEGOTIATE)) { int alloc_flags; - /* try dynamic data */ - alloc_flags = PW_BUFFERS_FLAG_DYNAMIC; + alloc_flags = 0; + if (SPA_FLAG_IS_SET(port->spa_flags, SPA_PORT_FLAG_DYNAMIC_DATA)) + alloc_flags |= PW_BUFFERS_FLAG_DYNAMIC; if (SPA_FLAG_IS_SET(node->spa_flags, SPA_NODE_FLAG_ASYNC)) alloc_flags |= PW_BUFFERS_FLAG_ASYNC;