[alsa-devel] [PATCH - JACK PCM plugin] jack: Use boundary as hw_ptr wrap around

Takashi Iwai tiwai at suse.de
Tue Feb 13 06:40:26 CET 2018


On Wed, 24 Jan 2018 12:49:05 +0100,
<twischer at de.adit-jv.com> wrote:
> 
> From: Timo Wischer <twischer at de.adit-jv.com>
> 
> instead of using buffer_size as wrap around.

No, the ioplug backend has to report the position from 0 to
buffer_size.

> This is required to detect Xruns.

The XRUN can be reported back from the backend just by returning an
error from pointer callback.

> It is also required to allow the JACK thread
> to processes the whole ALSA audio buffer at once
> without calling snd_pcm_avail_update() in between.
> 
> For example when the hw_ptr will be updated with
> hw_ptr += buffer_size
> and it is using the buffer_size as wrap around
> hw_ptr %= buffer_size
> would result in the same value as before the add operation.
> 
> Due to that the user application would not recognize
> that the complete audio buffer was copied.

This has nothing to do with the reported position.  If this happens,
it simply means an XRUN.  You should report the error instead.


thanks,

Takashi


More information about the Alsa-devel mailing list