From b71f47448cd5c443738e7984205e48eff41713da Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 7 Dec 2021 12:17:30 +0100 Subject: [PATCH] jack: always invoke buffer callback Always pause processing until the main loop has processed the buffer change callback. This makes it less likely for clients in the same process to use a new buffersize before the other client has received the callback. In carla, one client is receiving the buffer size callback and the other clients are expexted to be paused until the callback for the client is completed. --- pipewire-jack/src/pipewire-jack.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pipewire-jack/src/pipewire-jack.c b/pipewire-jack/src/pipewire-jack.c index 53fd4f7b3..2f19a15fa 100644 --- a/pipewire-jack/src/pipewire-jack.c +++ b/pipewire-jack/src/pipewire-jack.c @@ -1228,12 +1228,8 @@ static inline int check_buffer_frames(struct client *c, struct spa_io_position * if (SPA_UNLIKELY(buffer_frames != c->buffer_frames)) { pw_log_info("%p: bufferframes old:%d new:%d cb:%p", c, c->buffer_frames, buffer_frames, c->bufsize_callback); - if (c->bufsize_callback != NULL || c->latency_callback != NULL) { - pw_loop_invoke(c->context.l, do_buffer_frames, 0, - &buffer_frames, sizeof(buffer_frames), false, c); - } else { - c->buffer_frames = buffer_frames; - } + pw_loop_invoke(c->context.l, do_buffer_frames, 0, + &buffer_frames, sizeof(buffer_frames), false, c); } return c->buffer_frames == buffer_frames; }