[LAD] Ring buffers again

Paul Davis paul at linuxaudiosystems.com
Thu May 22 21:03:52 UTC 2014


On Thu, May 22, 2014 at 4:46 PM, Will Godfrey
<willgodfrey at musically.me.uk>wrote:

>
> As well as the jack ring buffer, I've looked at several others now, and
> their
> example code. The most significant thing that seems to be different about
> them
> (from a usage point of view) is the way they handle overflows. However, if
> the
> buffer size is defined as an exact multiple of the data type/structure and
> only
> complete structures are pushed or popped, would I be right in thinking
> that you
> would only need to check on an all/none basis?
>
> Have I missed something that could cause a partial data transfer?
>

the jack ring buffers are byte-oriented, so you do have to be careful.
however, if both the reader and writer only ever increment their respective
pointer/index in multiples of the same basic byte count, then you should be
OK.

if you use a C++ template ring buffer, then you necessarily cannot get
partial transfers.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxaudio.org/pipermail/linux-audio-dev/attachments/20140522/a0adc246/attachment.html>


More information about the Linux-audio-dev mailing list