[alsa-devel] device underruns

Takashi Iwai tiwai at suse.de
Mon Apr 27 12:36:42 CEST 2009


At Mon, 27 Apr 2009 12:18:05 +0200,
Daniel Mack wrote:
> 
> On Mon, Apr 27, 2009 at 12:12:14PM +0200, Takashi Iwai wrote:
> > > > The ALSA PCM core just relies upon two things from the lowlevel driver:
> > > > 
> > > > 1. The lowlevel driver calls snd_pcm_period_elapsed() at each time
> > > >    when the set-up period size has been processed by the hardware.
> > > > 2. The pointer callback reports the sane position as the current
> > > >    position; not below the previous position and not above the next
> > > >    period boundary.
> > > > 
> > > > Especially pulseaudio is very sensitive about these two things,
> > > > because it always asks the driver the current position.  Thus, if your
> > > > driver doesn't fulfill the above conditions, it won't work properly.
> > > 
> > > Oh well. Stupid me. I think I fixed it, and wonder why it didn't break
> > > more things. Could you apply the patch below?
> > 
> > If you provide a proper changelog and your sign-off ;)
> 
> Oops :)
> 
> 
> >From d50433f1047b85b150737c2f2588763ead2096ce Mon Sep 17 00:00:00 2001
> From: Daniel Mack <daniel at caiaq.de>
> Date: Mon, 27 Apr 2009 12:14:23 +0200
> Subject: [PATCH] ALSA: snd-usb-caiaq: fix reported elapsed periods
> 
> Reset the internal period position counter upon stream startup. This
> fixes initial aplay underruns and problems related to latency picky
> applications such as pulseaudio.
> 
> Bumped the version number to 1.3.14.
> 
> Signed-off-by: Daniel Mack <daniel at caiaq.de>

Thanks, applied now.


Takashi


More information about the Alsa-devel mailing list