Re: safe support for rewind in ALSA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2010/2/11 Jaroslav Kysela <perex@xxxxxxxx>

> On Thu, 11 Feb 2010, Clemens Ladisch wrote:
>
> >> Do you mean that PA only wake up once when configure sound card to use
> two
> >> periods per buffer ?
> >
> > When using two periods per buffer, ALSA tries to wake up PA two times.
> > However, PA ignores the sound card's interrupts and is woken up by its
> > own timer.
>
> PA can drive the wake-ups using avail_min sw parameter. If this value is
> high enough, no userspace wake up is called, only interrupt is processed
> and internal ring buffer pointers in the driver are updated.
>
>                                        Jaroslav
>

Even using a high resolution timer , the application still cannot achieve
latency better than the configured period size

For USB case , the driver cannot give accurate hw pointer position , hw
pointer increase in steps for the current implementation, (i.e. the graph is
a stepping fuction if you plot the position of hardware pointer against time
elasped ) .

This mean that the wake up time cannot be calculated using as number of
sample/rate since the fuction is not linear especially when using max buffer
size , min period --> max period size is much greater than the watermark

The glitch is most likely underrun,

Refer to

http://thread.gmane.org/gmane.linux.alsa.devel/60371/focus=60535

The delay value cannot be used for buffer filling, of course (also in
standard - no-XRUN case - avail functions should be used).
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux