[pulseaudio-discuss] [PATCH v2] pipe-source: suspend source when no writers connected to fifo

Raman Shishniou rommer at ibuffed.com
Sat Feb 10 22:04:05 UTC 2018

On 02/11/2018 12:43 AM, Georg Chini wrote:
> On 10.02.2018 22:25, Raman Shuishniou wrote:
>> 10.02.2018 23:59, Georg Chini пишет:
>>> On 08.02.2018 17:58, Raman Shyshniou wrote:
>>>>      Make pipe-source suspended if all writers closed fifo.
>>>>      Source will be automatically unsuspended if any data will
>>>>      be written to pipe and suspended again when last writer
>>>>      closed fifo.
>>>> ---
>>>>   src/modules/module-pipe-source.c | 114 +++++++++++++++++++++++++++++++++++++--
>>>>   1 file changed, 109 insertions(+), 5 deletions(-)
>>> What is the motivation/use case for the patch? Normally, if there
>>> are no writers, the source should deliver silence like any other
>>> source without input signal.
>> pipe-source module can't generate silence if no writers connected
>> because it has no clock. Aactually incoming data has some clock, but
>> not pipe-source itself. Use the system clock to generate silence
>> is a bad idea because it may differ from incoming data clock.
> Take a look at the recent patches for pipe-sink that introduced using
> system-clock timing. I guess something similar should be possible
> for the pipe-source. Why would it be a problem, if the timing of the
> silence is slightly different from that of the writer? Different writers
> may have different timing anyway, so if one writer disconnects
> and another connects, timing may change.
> module-loopback is able to deal with sample rate changes on the
> input side and will adapt the sample rate of the output side so that
> it matches the incoming rate to keep a constant latency.

I seen the last patches for pipe-sink module. I think there is no
reason to generate silence in pipe-source module with system clock.
The source outputs will do read zeros (resample, convert) - just a
waste of cpu time.
>> For example the loopback module connected to pipe-source without
>> writers just spams messages like this:
>> [alsa-sink-USB Audio] module-loopback.c: Could not peek into queue
>> I can make autosuspend behaviour optional.
> Making it optional is a good idea in any case.

I'll make a v3 version with option to enable autosuspend behaviour

More information about the pulseaudio-discuss mailing list