[pulseaudio-discuss] Trouble with Recording App
Jim Duda
jim at duda.tzo.com
Sun Jun 21 10:45:57 PDT 2009
I'm using pulseaudio version 0.9.15 in system mode.
I have one recording application which refuses to work properly with pulseaudio.
This same application has worked with previous versions of pulseaudio.
If I connect the app directly to alsa, or, use pasuspender, the application
works just how I expect it to.
I suspect there is something wrong with my main read loop in the application.
I must be doing something which pulseaudio doesn't like.
Can anyone please review my main read loop? Do you see any isssues?
FWIW, I never see any "snd_pcm_readi failed messages in stderr.
int32 ad_read(ad_rec_t * handle, int16 * buf, int32 max)
{
int32 length;
snd_pcm_prepare(handle->dspH);
for (;;) {
length = snd_pcm_readi(handle->dspH, buf, max);
// read success
if (length >= 0) {
break;
}
// no data available
if (length == -EAGAIN) {
length = 0;
break;
}
fprintf(stderr, "snd_pcm_readi failed! %d %d %s\n", length, EAGAIN, snd_strerror(length));
/* Failure, try to recover */
if ((length = snd_pcm_recover( handle->dspH, length, 1)) < 0) {
fprintf(stderr, "snd_pcm_recover failed! %s\n", snd_strerror(length));
length = AD_ERR_GEN;
break;
}
/* Recovered, let's try another read */
}
return length;
}
What else can I look for?
Thanks,
Jim
More information about the pulseaudio-discuss
mailing list