[alsa-devel] paravirtualized alsa kernel driver for XEN

Stefano Panella stefano.panella at citrix.com
Mon Mar 19 18:15:21 CET 2012


I am Stefano Panella, I am new to the list and I would like to take the 
opportunity to ask some questions since I am trying to write a 
paravirtualized alsa driver for XEN.

If all goes well I would also like to upstream it on linux.

I have been reading the documentation on "Writing an ALSA Driver" and I 
am still not completely clear on the meaning of the "pointer" callback 
in the pcm operations.

The description say:

"This callback is called when the PCM middle layer inquires the current 
hardware position on the buffer."

My question are:

1) In case of a playback stream, is the pointer referring to wich sample 
is currently playing on the DAC or to which is it the last frame read by 
the HW from the alsa memory buffer?

2) What does the pointer mean in case of a capture stream? Is it the 
position of the current frame on the ADC or is the latest frame written 
into the alsa buffer?

3) in case it is the frame on the DAC/ADC, what happens if the callback 
does not return the real DAC/ADC frame position but an approximate 
value, let say rounded to 64 frames only?

4) is there any test I could run to check I have implemented correctly 
the "pointer" callback? Or any application which would need very high 
"pointer" precision like frame precision?

Thanks very much in advance,


More information about the Alsa-devel mailing list