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

Raman Shishniou rommer at ibuffed.com
Wed Feb 14 09:24:54 UTC 2018

On 02/13/2018 06:41 PM, Georg Chini wrote:
> On 13.02.2018 11:27, Raman Shishniou wrote:
>> On 02/13/2018 11:58 AM, Georg Chini wrote:
>>> On 12.02.2018 17:23, Tanu Kaskinen wrote:
>>>> On Sat, 2018-02-10 at 23:08 +0100, Georg Chini wrote:
>>>>> On 10.02.2018 23:04, Raman Shishniou wrote:
>>>>>> 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.
>>>>> I see your point. The reason for generating silence would
>>>>> be to have consistent behavior for all sources. I'll ask Tanu
>>>>> for his opinion.
>>>> My opinion: it would be nice to generate silence by default if someone
>>>> is willing to implement that, but suspending is better than the current
>>>> behaviour, if the current behaviour is to have the source state as
>>>> RUNNING while not producing any data.
>>> Raman, are you willing to implement generating silence? This
>>> could also cover the case where a writer stays connected but
>>> does not provide any data.
>>> If not, I will proceed reviewing your patch.
>> Ok. I'll implement silence generator, but I want to leave an autosuspend option.
> Fine for me to keep the autosuspend option. I guess the "silence generator"
> will then be another patch on top of this patch?

No. I make a new patch with both silence generator and autosuspend options.

More information about the pulseaudio-discuss mailing list