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.