<p><br>
><br>
> Should prebuf always be greater or equal than minreq ?<br>
><br>
> I face an issue on an ARM board (cortex A9, odroid with a debian install<br>
> upon it ).<br>
><br>
><br>
> That is  with a low requested buffer_size  from the application,<br>
> native-protocol fix_playback_buffer_attr up all the fields except prebuf<br>
> (as it is not -1 but a value computed from the initial buffer size)<br>
><br>
> Affected applications are alsaplayer, moc, also aplay if fiddling with<br>
> the buffer size to lower the default (after investigation I could<br>
> workaround the issue with a up  of the buffer size in its code).<br>
><br>
><br>
> Still the logs when I get underruns that are piling up, never recovered<br>
> properly  and sound is weird, it shows : prebuf=2048 minreq=17628 and<br>
> tlength=52896<br>
><br>
><br>
> in pulseaudio 5 (debian experimental, that is .0-12) :<br>
> src/pulsecore/protocol-native.c fix_playback_buffer_attr ,I now  set<br>
> prebuf to at least minreq (at the end of the function for now).<br>
><br>
> Even alsaplayer (where I was not able to set a high enough buffer, even<br>
> in code without extensive rewrite) works with this change.<br>
><br>
> Mind PULSE_LATENCY_MSEC=60 also workaround the issue, though it looks<br>
> like it only does so as it forces the prebuf to tlength (which is always<br>
> higher than minreq).<br></p>
<p><a href="http://freedesktop.org/software/pulseaudio/doxygen/structpa__buffer__attr.html">http://freedesktop.org/software/pulseaudio/doxygen/structpa__buffer__attr.html</a></p>
<p>Depends on sound card can report update position  DMA_RESIDUE_GRANULARITY_BURST or DMA_RESIDUE_GRANULARITY_SEGMENT? </p>
<p>It look like the theortical minimum value of minreq is dma brust size or period size of the sink</p>
<p>The theortical minimum value of prebuf is fifo size or two periods of the sink</p>
<p>The practical values should be much higher if pulseaudio can switch audio stream to different sink </p>