[pulseaudio-discuss] should prebuf always be greater than minreq ?

David Henningsson david.henningsson at canonical.com
Thu Oct 16 03:04:19 PDT 2014


On 2014-10-08 05:07, Alban Browaeys wrote:
> Should prebuf always be greater or equal than minreq ?
>
> I face an issue on an ARM board (cortex A9, odroid with a debian install
> upon it ).
>
>
> That is  with a low requested buffer_size  from the application,
> native-protocol fix_playback_buffer_attr up all the fields except prebuf
> (as it is not -1 but a value computed from the initial buffer size)
>
> Affected applications are alsaplayer, moc, also aplay if fiddling with
> the buffer size to lower the default (after investigation I could
> workaround the issue with a up  of the buffer size in its code).
>
>
> Still the logs when I get underruns that are piling up, never recovered
> properly  and sound is weird, it shows : prebuf=2048 minreq=17628 and
> tlength=52896

If you have a very low prebuf, you're likely to get an underrun in the 
beginning, because the sink would very quickly eat the first few 
prebuf-ed samples and then underrun.

After the underrun, you feed it with very few new samples (because you 
have so low prebuf), so the underrun happens again. And again. And again.

So this looks like a case of just "too low prebuf". It does not seem to 
have anything to do with minreq.

But potentially, minreq affects the period size of the buffer, and on 
some cards this also affects DMA transfer sizes and pointer updates. So 
it's not impossible that on some hardware (e g that would feed the 
hardware one period at a time), having prebuf < minreq is a bad idea. 
But I don't think this holds across all hardware, especially tsched mode 
should be able to cope with small prebufs, as long as the prebuf is big 
enough not to underrun before the application supplies more data.

// David


More information about the pulseaudio-discuss mailing list