At Wed, 25 Feb 2009 12:10:24 +0100 (CET), Jaroslav Kysela wrote:
On Wed, 25 Feb 2009, Takashi Iwai wrote:
At Wed, 25 Feb 2009 11:57:32 +0100 (CET), Jaroslav Kysela wrote:
On Wed, 25 Feb 2009, Takashi Iwai wrote:
Anyway, the definitions of delay and avail in a free-wheel mode are ambiguous and rather confusing indeed...
I don't agree. We manage appl_ptr also in no-XRUN check mode for ALSA apps, so the negative values makes sense and applications can quickly skip missed samples (snd_pcm_forward).
Well, if we follow the definition of snd_pcm_delay(), applptr - delay doesn't always point to the position to write for the next. (Right now it works so, though).
Sure, but negative value indicates how many samples is application behind the output from hardware. The delay value cannot be used for buffer filling, of course (also in standard - no-XRUN case - avail functions should be used).
The problem I foresee is that a hardware with pre-fetch style doesn't work reliably with forwarding based on the delay value. The free-wheel support on such a hardware is anyway tricky, so it's not only about avail and delay, though.
Takashi