2008/5/4 Tomas Carnecky <tom at dbservice.com>: > Nikolai Beier wrote: > > Perhaps Winealsa (the output driver for ALSA) needs direct hardware > > access? Or it is/was just coded that way, but does not need to be. Or > > it was never a problem? > > Wine should not need hardware access. Maybe it mistakenly did in the > past. But it should not. If it still does, then it needs to be fixed. So you know that the talk about DirectSound _needs_ hardware access, and cannot be emulated in a sensible and efficient way is wrong? Oh, it seems that Microsoft has produces an "DirectSound emulator" (meaning that the sound is send from DirectSound to a software mixer and the to the device driver) for Vista, so it should only be a question about latency to make wine get DirectSound go to a virtual ALSA interface, i.e. the ALSA device named "pulse". > > * "wereHamster" noted that the ALSA pulse plugin might set Wine in an > > endless loop. http://www.pulseaudio.org/ticket/198#comment:8 > > FYI, I'm wereHamster. I have a fix for that. I'll submit the patch after > I figure out how to use mercurial. So it is still a problem that can occur, and triggered by something else than the problem below? > > > > * Some have notices large delays (like one second), which is tracked > > back to some delay calculations in the ALSA pulse plugin. > > I haven't come across this problem. Are there bug reports that track > this issue? Only your own: http://bugs.winehq.org/show_bug.cgi?id=10910#c8 (mentioned previous in this email thread) I thought it was the same bug that your fix for pulse_dealy() should remove. We may have confused each other I hope you get the feedback on your patches that you want/need. E.g. the line delay = snd_pcm_bytes_to_frames(ti->write_index-ti->read_index) - 3000 I have not seen that c file that line belongs to, nor did I understand why 3000 was the magic number, and not random symptom treatment. Does "the thing" fail when delay is too big? If snd_pcm_bytes_to_frames() can return values below 3000, does the rest of alsa-pulse and Wine work as it should when delay gets a negative number? -- Nikolai Beier