alsa sink latency - how to account for startup delay

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux