* Alsa "short read"
@ 2008-11-20 11:35 Pierre Vanhoucke
0 siblings, 0 replies; only message in thread
From: Pierre Vanhoucke @ 2008-11-20 11:35 UTC (permalink / raw)
To: alsa-devel
Hi all,
Is there anybody out there who can help me to answer the following
questions:
I have converted an application called Linrad
( http://www.nitehawk.com/sm5bsz/linuxdsp/linrad.htm ) from OSS to ALSA.
Linrad is a remarkable DSP application used worldwide by many
radio-hams.
I am facing hereby a problem with a "short read" :
An ALSA device is opened in blocking mode:
*********************************************
err=snd_pcm_open(&rx_ad_handle,
rx_sndin_plughw_pcm_name,
SND_PCM_STREAM_CAPTURE,
0);
*********************************************
When I subsequently read the device with following statement I sometimes
get a "short read":
********************************************
err=snd_pcm_readi(rx_ad_handle,rxin_isho, rxad.block_frames);
if((unsigned int)err != rxad.block_frames)
{
if(err == -EPIPE) // EPIPE, try recovery
{
err= snd_pcm_recover(rx_ad_handle, err, 0);
if(err < 0)lirerr(1108); // recovery failed
}
else
{
if(err < 0)
{
lirerr(1113); // catch all
}
else
{
lirerr(1116); // short read
}
}
}
}
**************************************************
Here are my questions:
1. How is it possible to get a "short read" in blocking mode ?
I would think that in blocking mode the control is only returned after
the read is completed.
2. What are the possible causes for a "short read" ?
3. What can be done to avoid a "short read" ?
4. How am I supposed to recover from a "short read"?
Best regards,
Pierre Vanhoucke/ ON5GN
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-11-20 11:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-20 11:35 Alsa "short read" Pierre Vanhoucke
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.