From 09186844c42ae6dd44cfc599084a4abfc6051a8a Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 27 Feb 2020 13:39:59 +0100 Subject: [PATCH] port: don't try to negotiate 0 buffers Don't try to negotiate buffers when we are clearing the buffers. --- src/pipewire/impl-port.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/pipewire/impl-port.c b/src/pipewire/impl-port.c index dbafc5cf5..0046a5aa2 100644 --- a/src/pipewire/impl-port.c +++ b/src/pipewire/impl-port.c @@ -1208,17 +1208,19 @@ static int negotiate_mixer_buffers(struct pw_impl_port *port, uint32_t flags, pw_buffers_clear(&port->mix_buffers); - if ((res = pw_buffers_negotiate(node->context, alloc_flags, - port->mix, 0, - node->node, port->port_id, - &port->mix_buffers)) < 0) { - pw_log_warn(NAME" %p: can't negotiate buffers: %s", - port, spa_strerror(res)); - return res; + if (n_buffers > 0) { + if ((res = pw_buffers_negotiate(node->context, alloc_flags, + port->mix, 0, + node->node, port->port_id, + &port->mix_buffers)) < 0) { + pw_log_warn(NAME" %p: can't negotiate buffers: %s", + port, spa_strerror(res)); + return res; + } + buffers = port->mix_buffers.buffers; + n_buffers = port->mix_buffers.n_buffers; + flags = 0; } - buffers = port->mix_buffers.buffers; - n_buffers = port->mix_buffers.n_buffers; - flags = 0; } pw_log_debug(NAME" %p: %d.%d use buffers on node: %p",