Riccardo Magliocchetti ha scritto:
Raymond Yau ha scritto:
2010/1/6 Riccardo Magliocchetti riccardo.magliocchetti@gmail.com
Hi Pierre,
pl bossart ha scritto:
You haven't specified the buffer/period size in the hw params. See alsa-lib/test/pcm.c
- Pierre
They fail when opening default device so I had to remove them, work fine when opening plughw:0,0 though.
On Mon, Jan 4, 2010 at 11:39 AM, Riccardo Magliocchetti riccardo.magliocchetti@gmail.com wrote:
[the same message is waiting in moderator queue, sorry if you receive it
two times]
Hello,
i'm trying to capture audio data from the microphone, but i'm not able
to
read any frames. The frames are always 0 and delay is fixed to 2730. I've tried calling snd_pcm_avail_delay, snd_pcm_avail_update but does not make a
difference.
The soundcard is driven by snd_hda_intel. The code is more or less the same as Paul Davis' tutorial on using the alsa api.
Even 4096 bytes is x86 DMA page size , seem to be a good choice for those PCI sound cards, however you cannot assume all sound cards/plugins support this buffer size
If you did not set period_size, buffer_size or periods (period_time, buffer_time or periods) , you should call snd_pcm_hw_params_get_buffer_size() and snd_pcm_hw_params_get_period_size() after snd_pcm_hw_params()
Thank you both Pierre and Raymond, using the get functions after snd_pcm_hw_params() is working, now i have some concurrency issues to resolve before i can say everything is working properly.
The init works fine but snd_pcm_avail() always returns 0, full code is here http://pastebin.com/f687bf37a
thanks, riccardo