Date 13.9.2014 20:30, Alexander E. Patrakov wrote:
The idea of the series is to fix the two issues that I found [1] for the
I applied all your patches to alsa-lib's repo, but...
hw plugin. snd_pcm_rewindable() sometimes returned negative values that are actually negative amounts of samples and not error codes. Also, it bases its calculations on stale hardware position pointer, which is not what PulseAudio wants (alternatively, we can document the need to call snd_pcm_avail() before snd_pcm_rewindable(), but I don't like it).
The hw sync is expensive and the application might do this sync multiple times when woken up. I think that it must be clear that:
1) only snd_pcm_avail(), snd_pcm_delay(), snd_pcm_avail_delay() does the real hw sync 2) snd_pcm_avail(), snd_pcm_delay(), snd_pcm_avail_delay(), snd_pcm_rewindable() and snd_pcm_forwardable() does hw sync (and change all plugins to respect this)
I don't like the situation "be somewhere between because it's good for one purpose"...
Thanks for your work, Jaroslav
BTW: I'm starting to think about the 1.0.29 release...