jack: only set io in NEED_DATA after complete

Don't set the port io to NEED_DATA in prepare_output because this
might be called when we get the data from an input port that is linked
to out output port.

See #3514
This commit is contained in:
Wim Taymans 2023-10-19 12:26:50 +02:00
parent 13f52f4297
commit 6ef8d31f55

View file

@ -1527,7 +1527,6 @@ static void prepare_output(struct port *p, uint32_t frames)
if (SPA_LIKELY(mix->io != NULL))
*mix->io = p->io;
}
p->io.status = SPA_STATUS_NEED_DATA;
}
static void complete_process(struct client *c, uint32_t frames)
@ -1543,6 +1542,7 @@ static void complete_process(struct client *c, uint32_t frames)
if (!p->valid)
continue;
prepare_output(p, frames);
p->io.status = SPA_STATUS_NEED_DATA;
}
pw_array_for_each(item, &c->ports[SPA_DIRECTION_INPUT].items) {
if (pw_map_item_is_free(item))