[alsa-devel] [RFC] AVB - network-based soundcards in ALSA

Clemens Ladisch clemens at ladisch.de
Tue May 27 15:47:40 CEST 2014


Henrik Austad wrote:
> [...]
> As to moving samples from the buffer onto the network, one approach would
> be to wrap a set of samples and place it into a ready frame with headers
> and bits set and leave it in a buffer for the network layer to pick up.
>
> The exact method here is not clear to me yet, I need to experiment, and
> probably send something off to the networking guys. But before I do that,
> I'd like to have a reasonable sane idea of how ALSA should handle this.

ALSA expects that the sound card hardware fetches samples whenever it
needs them.

For USB and FireWire, there is a short queue of packets; the driver
appends new packets whenever a bunch of older packets has been completed
(as reported by an interrupt).

(This queue is separate from the ALSA ring buffer, which is then never
accessed directly by hardware.)

> The process of evening out the rate of samples is what traffic shaping and
> stream reservation will help you do (or enforce, ymmv), to some extent at
> least. The credit based shaper algorithm is designed to force bursty
> traffic into a steady stream.

In the case of USB and FireWire, the hardware already knows to send
isochronous packets at a rate of 8 kHz.

A 'normal' NIC wouldn't be able to do this.  Are there NICs that have
a separate queue for isochronous packets?  Or how else can this be
handled?


Regards,
Clemens


More information about the Alsa-devel mailing list