[alsa-devel] [PATCH] Alsa-plugins: Pulse: Fix snd_pcm_avail returning 0 in some cases

Raymond Yau superquad.vortex2 at gmail.com
Sat May 7 05:18:29 CEST 2011


2011/4/26 Takashi Iwai <tiwai at suse.de>

> At Tue, 26 Apr 2011 10:01:23 +0200,
> David Henningsson wrote:
> >
> > On 2011-04-22 01:25, Raymond Yau wrote:
> > > 2011/4/21 David Henningsson<david.henningsson at canonical.com>
> > >
> > >> Due to a round-off error, snd_pcm_avail could in some cases
> > >> return 0 even though more data could be written to the stream.
> > >>
> > >> This was discovered by Maarten Lankhorst [1], and there is also a test
> > >> program available that triggers this error [2].
> > >>
> > >> [1]
> > >>
> https://tango.0pointer.de/pipermail/pulseaudio-discuss/2011-April/009935.html
> > >>
> > >> [2]
> > >>
> https://tango.0pointer.de/pipermail/pulseaudio-discuss/attachments/20110420/3c852d6e/attachment.c
> > >>
> > >
> > > if the test program can force under-run occur with "hw" device and
> "pulse"
> > > device with his patch in
> > >
> https://tango.0pointer.de/pipermail/pulseaudio-discuss/2011-April/009918.html
> > >
> > > Is it normal that underrun does not occur with the test program and
> your
> > > patch
> >
> > Yes; underruns are not reported to the application due to the risk of
> > the underrun being obsolete at that time. As for Maarten's patch in the
> > post you refer to,
> >
> > 1) if underruns are being reported (this is configurable), it might be a
> > good idea to call "pulse_start".
> >
> > 2) it changes underruns to being reported by default, which is what I'm
> > opposed to.
>
> Applied now.  Thanks.
>
>
> Takashi
>

With this patch and Maarten's example.c , it seem that pulse plugin return
SND_PCM_STATE_XRUN when the server is aborted


More information about the Alsa-devel mailing list