On Fri, 20 Jun 2003, [EMAIL PROTECTED] wrote:
> while(1) {
>
> r = snd_pcm_readi(pcmr, buf, BUFSIZE);
>
> if(r != BUFSIZE) printf("rec r=%d\n", r);
> checkr(r);
>
> r = snd_pcm_writei(pcmp, buf, BUFSIZE);
>
> if(r != BUFSIZE) printf("play r=%d\n", r);
> if(r == -EPIPE) {
> snd_pcm_prepare(pcmp);
> } else {
> checkr(r);
> }
>
> }
This loop is definitely wrong. I explained several times why. You cannot
do while (1) { read(); write(); } but:
/* prefill the playback buffer with the desired latency */
while (!minimal_latency_reached)
write();
start_capture();
start_playback();
/* normal loop */
while (1) {
read();
write();
}
Jaroslav
-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs
-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel