From e6c3619521d7f9465f8ddd1131151c23a4086646 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 18 Feb 2020 13:26:15 +0100 Subject: [PATCH] jack: don't try to consume port without data Or else we handle old data. --- pipewire-jack/src/pipewire-jack.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pipewire-jack/src/pipewire-jack.c b/pipewire-jack/src/pipewire-jack.c index 16ab9d839..80663fea5 100644 --- a/pipewire-jack/src/pipewire-jack.c +++ b/pipewire-jack/src/pipewire-jack.c @@ -2930,7 +2930,9 @@ static inline void *get_buffer_input_float(struct client *c, struct port *p, jac pw_log_trace(NAME" %p: port %p mix %d.%d get buffer %d", c, p, p->id, mix->id, frames); io = mix->io; - if (io == NULL || io->buffer_id >= mix->n_buffers) + if (io == NULL || + io->status != SPA_STATUS_HAVE_DATA || + io->buffer_id >= mix->n_buffers) continue; io->status = SPA_STATUS_NEED_DATA; @@ -2964,7 +2966,9 @@ static inline void *get_buffer_input_midi(struct client *c, struct port *p, jack c, p, p->id, mix->id, frames); io = mix->io; - if (io == NULL || io->buffer_id >= mix->n_buffers) + if (io == NULL || + io->status != SPA_STATUS_HAVE_DATA || + io->buffer_id >= mix->n_buffers) continue; io->status = SPA_STATUS_NEED_DATA;