[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