pipe-tunnel: rework the source

Let the source write into a ringbuffer when there is data available.

We then read from the ringbuffer when scheduled and use a dll to keep
the delay constant. We can later make this a driver and use the rate
correction to tweak the timeouts instead of resampling.

See #3478
This commit is contained in:
Wim Taymans 2023-08-30 18:41:19 +02:00
parent bc15d0c766
commit 9f66c42d1f
2 changed files with 179 additions and 34 deletions

View file

@ -150,6 +150,11 @@ static int module_pipe_source_prepare(struct module * const module)
pw_properties_set(stream_props, PW_KEY_NODE_NAME,
"fifo_input");
// if ((str = pw_properties_get(stream_props, PW_KEY_NODE_DRIVER)) == NULL)
// pw_properties_set(stream_props, PW_KEY_NODE_DRIVER, "true");
// if ((str = pw_properties_get(stream_props, PW_KEY_PRIORITY_DRIVER)) == NULL)
// pw_properties_set(stream_props, PW_KEY_PRIORITY_DRIVER, "50000");
d->module = module;
d->stream_props = stream_props;
d->global_props = global_props;