[alsa-devel] basic question on .pointer function
tiwai at suse.de
Tue May 13 15:44:28 CEST 2008
At Fri, 9 May 2008 23:51:17 +0530,
Harsha priya gupta wrote:
> Thanks a lot for this pointer. A quick question;
> For the .pointer function, it says " This callback is called when the PCM
> middle layer inquires the current hardware position on the buffer."
> Does the word "PCM middle layer" mean that the MMF like Helix / Gstreamer is
> continuously querying for hardware position on the buffer? Or does the player
> keep querying?
The PCM middle layer is the common PCM routines implemented in the
ALSA driver. The pointer callback can be called from this PCM middle
layer in a couple of ways:
1. called at update of period, typically via an IRQ handler
2. called at status update, e.g. snd_pcm_status()
> I also see that this function gets called quiet a number of times. Is there a
> way to reduce these calls? My guess is that to reduce the number of calls to
> .pointer, MMF or player needs to be modified. Am I thinking right?
If the position inquiry on your hardware is too heavy, your pointer
callback may return the last period position. The pointer callback
must assure that the given position is in the current period. But,
its accuracy isn't (so far) guaranteed.
Of course, this will give apps less information, and some apps won't
work fluently. But, it's what you want.
> On Fri, May 9, 2008 at 4:26 PM, Takashi Iwai <tiwai at suse.de> wrote:
> At Wed, 7 May 2008 09:10:00 +0530,
> Harsha priya gupta wrote:
> > Hi,
> > It would be really helpful if someone can help me understand why do we
> > to implement .pointer and what does it need to do? I am facing an issue
> > write a driver in this .pointer function. Please help
> > Also if someone can point me to a document where all the playback_ops are
> > defined, it would be really helpful
> Did you check the page below?
More information about the Alsa-devel