[alsa-devel] Which project to choose?
Raymond Yau
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[24553]: alsa-util.c: appl_ptr : 735801008
> >>>> localhost pulseaudio[24553]: 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
> appl_ptr
> >>> 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.
>
> Jaroslav
>
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,
};
ENS1371.pcm.rear.0 {
@args [ CARD ]
@args.CARD {
type string
}
type hooks
slave.pcm {
type hw
card $CARD
device 1
}
hooks.0 {
type ctl_elems
hook_args [
{
interface MIXER
name "AC97 2ch->4ch Copy Switch"
lock true
preserve true
value 0
}
]
}
http://git.alsa-project.org/?p=alsa-lib.git;a=blobdiff;f=src/conf/cards/ENS1371.conf;h=5c0de7d44ba5cc3f6761ba5a7c3250467a65a8e5;hp=a9499dae963090bdb408620659ac98989bb8bc3d;hb=a8a71d5781e7cc53bf9ff9ce75d2b93883297bea;hpb=50212fde09291eeffc7e48082d7bf4b7d713a80b
More information about the Alsa-devel
mailing list