[alsa-devel] Which project to choose?
superquad.vortex2 at gmail.com
Fri Jul 16 03:30:49 CEST 2010
2010/7/15 Jaroslav Kysela <perex at perex.cz>
> On Wed, 14 Jul 2010, David Henningsson wrote:
> > 2010-07-14 17:25, Jaroslav Kysela skrev:
> >> On Wed, 14 Jul 2010, David Henningsson wrote:
> >>> 2010-07-14 13:13, Raymond Yau skrev:
> >>>> localhost pulseaudio: alsa-util.c: appl_ptr : 735801008
> >>>> localhost pulseaudio: alsa-util.c: hw_ptr : 735846184
> >>>> This is underrun as you can see appl_ptr is behing hw_ptr
> >>> Ehm, isn't that a ring buffer? I e, there is nothing wrong with
> >>> being less than hw_ptr.
> >> For playback, if appl_ptr is less than hw_ptr, it's underrun situation
> >> (application didn't feed samples in time to the driver's ring buffer).
> >> Note that pointers in ALSA are in range 0..boundary not
> >> 0..ring_buffer_size (boundary is near LONG_MAX value) - it's design to
> >> detect such situations (underrun, overrun).
> > Okay, thanks for the clarification. But LONG_MAX (as in 2^31) would
> > still wrap around every thirteen hours (at 44100 Hz), so are we having
> > bugs, such as e g failure to detect underruns, at those occasions?
> >From values above, it looks like a standard underrun (samples didn't
> arrive in time to the ring buffer). Just check the real system time
> between I/O operations and you'll see if it's issue in the ALSA driver or
> a task scheduling problem.
If "AC97 2ch->4ch Copy Switch" is specific to ens1373 , this mean ens1373
will need to has it own ENS1371.conf
static struct snd_kcontrol_new snd_ens1373_rear __devinitdata =
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "AC97 2ch->4ch Copy Switch",
.info = snd_es1373_rear_info,
.get = snd_es1373_rear_get,
.put = snd_es1373_rear_put,
@args [ CARD ]
name "AC97 2ch->4ch Copy Switch"
More information about the Alsa-devel