Irfan Shaikh wrote:
I am getting many under-run in my audio capture and playback application.
- My CAPTURE buffer is of 1024 * 8 (Period size * no of periods), PLAYBACK buffer is of (512 * 16)
- I try to read 8 K frames each time and write returned frames to playback device.
If you wait until the capture buffer is full, it's likely that you get over/underruns at this moment. You have to do the processing in smaller chunks.
Typically, in loops like this, the normal state is that the capture buffer is almost empty, and the playback buffer almost full. You read one period from the capture buffer (waiting for it if necessary), process it, and write it to the playback buffer. You need at least two period per buffer so that one can be captured/played while the other one is being processed, and maybe more periods as safety against delays.
B) Can i use snd_pcm_prepare() twice in two consecutive lines
Yes (if the driver isn't buggy).
Regards, Clemens
SASKEN BUSINESS DISCLAIMER: ...
EVEN MORE IMPORTANT DISCLAIMER: This e-mail contains public information intended for any subscriber of this mailing list and for anybody else who bothers to read it; it will be copied, disclosed and distributed to the public. If you think you are not the intended recipient, please commit suicide immediately. These terms apply also to any e-mails quoted in, referenced from, or answering this e-mail, and supersede any disclaimers in those e-mails. Additionally, disclaimers in those e-mails will incur legal processing fees of $42 per line; you have agreed to this by reading this disclaimer.