[alsa-devel] Buffer management in ALSA
Hi All,
Can anyone throw some light on the buffer management part in the ALSA framework? How and where it is implemented? And what is expected from the driver, which is hooking its code to the framework?
Thanks in advance, Anuj Aggarwal
On Wed, 19 Mar 2008 08:36:06 +0530 "Aggarwal, Anuj" anuj.aggarwal@ti.com wrote:
Hi All,
Can anyone throw some light on the buffer management part in the ALSA framework? How and where it is implemented? And what is expected from the driver, which is hooking its code to the framework?
Since each card has different requirements the driver has to manage its buffers. Usually the driver has just to set up the buffer and the scatter-gather list and then ALSA accesses it with no other support from the driver. The buffer is supposed di be a "ring", ie. when the card reaches the end of the buffer, it restarts automatically from the beginning. If the cards needs the CPU to copy or process the data (e.g. it doesn't support DMA), then the driver has to provide a callback function which will be called at the end of each period.
-- Giuliano.
participants (2)
-
Aggarwal, Anuj
-
Giuliano Pochini