[alsa-devel] hw_ptr accuracy with intel8x0 -> PulseAudio issue
tiwai at suse.de
Wed Dec 9 14:46:03 CET 2009
At Wed, 9 Dec 2009 19:55:15 +0800,
Raymond Yau wrote:
> 2009/12/8 Takashi Iwai <tiwai at suse.de>
> > At Sat, 5 Dec 2009 10:17:07 +0800,
> > Raymond Yau wrote:
> > >
> > > 2009/12/4 pl bossart <bossart.nospam at gmail.com>
> > >
> > > > >> 17. hwptr 24351 buffer 16384 appl 24332, avail=16403
> > > > >
> > > > > appl pointer is behind hwprtr ( underrun ) , need timestamp to find
> > out
> > > > > whether PA is unable to write audio data in time since
> > > >
> > > > I commented out the portion of the code that increases the watermark
> > and
> > > > clamped the number of available samples to the buffer size, and it
> > works
> > > > just fine, no audio
> > > > underflows.
> > > >
> > >
> > > Do you mean that the underrun is related the the portion of code that
> > > increase the watermark (i.e It is a pulseaudio bug instead of driver bug
> > )
> > > ?
> > Or, we can try simply to change to periods_min = 2 whether this fixes
> > the PA issues.
> > periods_min = 1 is anyway fairly fragile. With that setup, apps are
> > supposed (implicitly) to wake up frequently enough to get pointers in
> > sync. This is because you can't trust whether the IRQ wake up is
> > really fast enough. There are machines that aren't.
> > thanks,
> > Takashi
> The intel8x0 driver has code to handle one period per buffer ,
Yes, but it doesn't work so reliably.
That's why I asked for testing periods_min = 2.
> Is the feature "one period per buffer" designed for dmix ?
> The system timer may be running faster or slower than the sound card
> on differnt machine
> PA only adjust the watermark/sleeping time in one direction only
More information about the Alsa-devel