stream: prepare output before signaling ready

Just prepare the output on the port and signal ready. When the graph
completes we will be signaled again to recycle the buffer and
prepare more output if we can.

Improve the bookkeeping a little when activating nodes.

Fix race with moving nodes between drivers.
This commit is contained in:
Wim Taymans 2019-03-07 23:01:32 +01:00
parent 94ce6d528c
commit 1d3ce5a9d9
5 changed files with 112 additions and 74 deletions

View file

@ -835,8 +835,10 @@ static int impl_node_process(struct spa_node *node)
struct spa_io_position *q = impl->this.node->driver_node->rt.position;
int status, trigger;
if (impl->driver)
if (impl->driver) {
impl->client_node->node->rt.target.signal(impl->client_node->node->rt.target.data);
return SPA_STATUS_OK;
}
if (!impl->active)
return SPA_STATUS_HAVE_BUFFER;