[alsa-devel] Monitoring ALSA's write pointer (appl_ptr)?
Hello List,
My first post, so excuse any ignorance.
Is there a definitive/safe way to monitor ALSA's write pointer in the dma_area? It seems like the ack callback and the appl_ptr is the correct way, but I was told by another developer that appl_ptr doesn't work in all cases.
As a future optimization for my hardware, I may want to tell ALSA to use a specific area of physical memory for it's dma_area, what is the best way to do that?
Thanks,
Brian
At Mon, 3 Nov 2008 23:40:28 -0500, brian-welch@cox.net wrote:
Hello List,
My first post, so excuse any ignorance.
Is there a definitive/safe way to monitor ALSA's write pointer in the dma_area? It seems like the ack callback and the appl_ptr is the correct way, but I was told by another developer that appl_ptr doesn't work in all cases.
As a future optimization for my hardware, I may want to tell ALSA to use a specific area of physical memory for it's dma_area, what is the best way to do that?
A good question. The ack callback is called only when the explicit read/write method is used. When mmap access is used, it won't be called.
One hack would be to check appl_ptr in the pointer callback. This callback is called in snd_pcm_hwsync(), too. So, if you watch the appl_ptr change as frequently as possible, it'd be a good place for that.
Takashi
Is there a definitive/safe way to monitor ALSA's write pointer in the dma_area? It seems like the ack callback and the appl_ptr is the correct way, but I was told by another developer that appl_ptr doesn't work in all cases.
As a future optimization for my hardware, I may want to tell ALSA to use a specific area of physical memory for it's dma_area, what is the best way to do that?
A good question. The ack callback is called only when the explicit read/write method is used. When mmap access is used, it won't be called.
One hack would be to check appl_ptr in the pointer callback. This callback is called in snd_pcm_hwsync(), too. So, if you watch the appl_ptr change as frequently as possible, it'd be a good place for that.
Takashi
Thanks. I'll try reading appl_ptr from within the pointer callback.
Brian
participants (3)
-
Brian Welch
-
brian-welch@cox.net
-
Takashi Iwai