[pulseaudio-discuss] [PATCH v7] pipe-source: implement autosuspend option
georg at chini.tk
Tue Feb 20 13:18:54 UTC 2018
On 20.02.2018 13:50, Raman Shishniou wrote:
> On 02/20/2018 03:16 PM, Georg Chini wrote:
>> On 20.02.2018 13:11, Georg Chini wrote:
>>> On 19.02.2018 16:01, Raman Shyshniou wrote:
>>>> Currently the pipe-source will remain running even if no
>>>> writer is connected and therefore no data is produced.
>>>> This patch adds the autosuspend=<bool> option to prevent this.
>>>> Source will stay suspended if no writer is connected.
>>>> This option is enabled by default.
>>>> + pa_memchunk_reset(&chunk);
>>>> + chunk.memblock = pa_memblock_new(u->core->mempool, u->pipe_size);
>>> Further down, you might put some data in the memchunk before the
>>> read if the previous data was not frame aligned, therefore the memblock
>>> size must be u->pipe_size + fs.
>> Looking twice, I see you subtract the index from the read size. Nevertheless I
>> guess it would be simpler to increase the memblock size by one frame.
> I prefer to keep buffer sizes to be power of 2.
> Currently pipe_size is 4096 (as determined by pulseaudio, actually 64k,
> I'll check later why). Adding one frame to the size of buffer makes it
> a little more than 4096 but much less then 8192.
What is the advantage of keeping the buffer size a power of 2?
What if you have for example a channel count that is not a power
of 2? Would it not make more sense to keep the buffers frame
aligned? Anyway, I don't mind if you want to keep it your way.
More information about the pulseaudio-discuss