Re: EPIPE and underruns

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 4 Oct 2010, Andrew Bell wrote:

On Mon, Oct 4, 2010 at 3:45 PM, Jaroslav Kysela <perex@xxxxxxxx> 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!".

snd_pcm_update_state() in pcm_lib.c (driver) the 'if (avail >= runtime->stop_threshold)' condition.

					Jaroslav

-----
Jaroslav Kysela <perex@xxxxxxxx>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux