26.05.2014 19:03, Henrik Austad wrote:
Hi all!
This is an RFC for a new class of soundcards. I am not very familiar with how ALSA is tied together underneath the hood, so what you see here, is based on my naive understanding of ALSA. I wear asbestos underwear on a regular basis, so I prefer honesty over sugarcoating :)
Hello. All of this looks very interesting, but a bit more information is needed in order to put this in context.
First: is this supposed to work with any ethernet card? Or is some special hardware needed on the PC side? If so, which hardware?
Second: I would like to know more about the buffering model. For simplicity, let's consider playback from a PC to a remote receiver. Obviously, as the intention is to create something that looks like a regular ALSA sound card, there should be a circular buffer that holds sound samples (just like the DMA buffer on regular sound cards). There also needs to be "something" that sends samples from this buffer into the network. Is my understanding correct?
- IEEE 1722 (and 1733 for layer-3) Layer 2 Transport for audio/video. The packing is similar to what is done in Firewire. You have 8kHz frame intervals for class A, 4kHz for class B. This gives relatively few samples pr. frame. Currently we only look at Layer 2 as small peripherals (microphones, speakers) will only have to implement L2 instead of the entire IP-stack.
So, are you proposing to create a real-time kernel thread that will wake up 4000 or 8000 times per second in order to turn a few samples from the circular buffer into an Ethernet packet and send it, also advancing the "hardware pointer" in the process? Or do you have an idea how to avoid that rate of wakeups?