[alsa-devel] EPIPE and underruns

Andrew Bell andrew.bell.ia at gmail.com
Mon Oct 4 23:02:07 CEST 2010


On Mon, Oct 4, 2010 at 3:45 PM, Jaroslav Kysela <perex at perex.cz> wrote:
> On Mon, 4 Oct 2010, Andrew Bell wrote:
>
>> Hi,
>>
>> Can somebody explain precisely the circumstances leading to an EPIPE
>> as the result of a pcm_snd_writei()?
>
> Simply, the driver consumed all queued samples in the ring buffer.
>
>> What buffer has been underrun that leads to this error?  Does
>> providing more data to pcn_snd_writei() help alleviate the issue?
>
> Yes, also the ring buffer size may be increased depending on the stream
> parameter setup to prevent underruns.

Is there some reason not to write all the data that you want played at
once other than snd_pcm_writei() may block?

Can you point out some code that detects this underrun condition (I've
found a bunch of candidates, but they don't obviously scream "underrun
here!".

Thanks again,

-- 
Andrew Bell
andrew.bell.ia at gmail.com


More information about the Alsa-devel mailing list