[pulseaudio-discuss] alsa sink latency - how to account for startup delay

Georg Chini georg at chini.tk
Wed Apr 13 15:22:48 UTC 2016


On 13.04.2016 17:06, Raymond Yau wrote:
>
>
> >
> >> do loopback module assume sink is not running when it start source 
> capture?
> >>
> > Sink and source are started independently. Source data is discarded 
> until the sink-input has
> > called pop() the first time.
>
> But you cannot skip more than 9ms source data since you need 1ms( or  
> 25ms fragment time when not using timer schedule mode) to capture
>
> If you are using usb as source and hda as sink, hda fifo trigger dma 
> transfer whenever the fifo fill level is less than fifo threshold, you 
> need to fill 256 bytes at first write to avoid fifo underrun
>
>
Yes, if the source takes too long to start up, there will be an an underrun.
But as I said, I fill the memblockq with silence to the full requested
end-to-end latency before starting source or sink. This is usually 
sufficient
to avoid underruns at startup.
Additionally the new loopback code contains an underrun protection,
if the configured end-to-end latency is too small. After 3 underruns it
will increase the target latency by 5 ms until no underruns occur.



More information about the pulseaudio-discuss mailing list