On Thu, 17.07.08 11:56, Takashi Iwai (tiwai@suse.de) wrote:
And snd_pcm_rewind() might return a value that is higher than was passed in, which as far as I understood should never happen:
http://mailman.alsa-project.org/pipermail/alsa-devel/2008-April/007308.html
These two issues might be caused by the same error.
Takashi, Jaroslav, how can I bribe you into fixing this? I'd love to release my new PulseAudio version soon which heavily relies on snd_pcm_rewind(), but unfortunately the most important driver (hda with softvol) makes the most problems with it. :-(
As mentioned earlier, the softvol itself is a simple plain plugin and it has no code to do forward/rewind in itself. Thus, if a bug is present in softvol, it must be in the generic plugin code -- or there can be a missing piece that the generic code doesn't cover. I'm not sure yet, as I didn't write that code.
The second problem, the bigger return size, looks like a thinko in the code. Try the patch below.
I just posted three patches that fix those issues for me. Please have a look. They do basically what your patch does as well, plus fixing the return issue.
The patches are trivial, look correct to me and fix the issues.
Please merge,
Lennart