[alsa-devel] dmix without mmap support in soundcard driver

Robin Getz rgetz at blackfin.uclinux.org
Fri Jan 11 19:53:31 CET 2008


On Fri 11 Jan 2008 10:01, Joachim Foerster pondered:
> > My only question is - if you allow a mmaped intermediate buffer, how
> > does the  driver notice when ALSA writes into this buffer?
> 
> It's the ack() callback. ALSA writes/reads something into/from the
> intermediate buffer and calls the driver's ack() callback - if there is
> any. In the ack() callback the driver should call one of the
> snd_pcm_indirect_*_transfer() functions. There, the difference between
> current and last seen appl_ptr gives the "new position" of the PCM Layer
> in your intermediate buffer (where it will write/read next time).

OK - thanks.

From just thinking about it - won't this will cause problems for things that 
need to understand where the audio device is in the PCM stream (like AEC, and 
lip-sync)? Since now everything from userspace is in reference to the 
position in the intermediate buffer - rather than what is actually coming out 
the DACs?


More information about the Alsa-devel mailing list