<p><br>
> ><br>
> > What do mean when you say default-fragments *<br>
> > default-fragment-size-msec?<br>
> ><br>
><br>
> I suppose PulseAudio uses a ring of `default-fragments` buffers, with a<br>
> length of `default-fragment-size-msec` each. For example, for 4<br>
> fragments of 25 ms,</p>
<p>The commented  values in daemon.conf are not default fragmemts nor default-fragment-size-msec</p>
<p>when rate is 48000Hz there are 1200 frames in 25ms</p>
<p>But 25 ms is not a valid fragments size msec when rate is 44100Hz since there are 1102.5 frames</p>
<p><a href="https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/include/linux/dmaengine.h">https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/include/linux/dmaengine.h</a></p>
<p>* @DMA_RESIDUE_GRANULARITY_BURST: Residue is updated after each transferred burst. This is typically only supported if the hardware has a progress register of some sort (E.g. a register with the current read/write address<br>
or a register with the amount of bursts/beats/bytes that have been transferred or still need to be transferred).</p>
<p>Not all sound cards can report dma residue which provide accurate position up to dma brust size, hwptr increment by dma brust size</p>
<p>As pulseaudio select 200ms buffer and two periods, it cannot provide latency lower than 100 ms when driver cannot report dma residur ad  hwptr only increment by one period at one period time interval</p>
<p>It should reject any latency request lower than buffer/period time of  the default sink cannot provide these low latency or warn user to select a lower fragment time when default sink have  SNDRV_PCM_INFO_BATCH<br>
</p>