On 02.05.2012, at 20:17, Jan Kiszka wrote: > On 2012-04-25 09:34, Gerd Hoffmann wrote: >> On 04/25/12 13:03, Jan Kiszka wrote: >>> Hi Gerd, >>> >>> I had problems with Windows LiveMeeting expecting a microphone as >>> input. But the HDA model only exposes a line-in port. The following hack >>> works for me, but I bet there is a cleaner solution. Any suggestions? >> >> Good to know this works. /me has patches ready to go, was just waiting >> for testing feedback ... >> >> Pushed to git://git.kraxel.org/qemu audio.1 >> >> They do essentially the same, except that they leave the existing >> hda-duplex code as-is and add a new hda-micro codec instead which >> advertises the input as micro to the guest. > > Yep, would work fine - if the issue below allowed me to use it. > >> >>> BTW, sound output quality of a Win7 guest on my Linux hosts sucks while >>> it's fine for a Linux guest. I vaguely recall that Windows requests a >>> too small DAC buffer, is that true? Is there anything one can do about >>> this? >> >> Yes. The buffer is ~ one page and can hold 20 ms of sound data, so >> considering buffer flipping intel-hda has to shuffle data every 10ms, >> and the windows guest needs to be scheduled too so it can re-fill the >> other half of the buffer. Which obviously makes sound playback *very* >> sensitive to latencies anywhere in the qemu. >> >> What you can do about it? Dunno whenever windows allows to tweak the >> buffer size somehow. When I looked deeper at that a while back the >> biggest latency issues in qemu used to be qxl, ide/qcow2 and vnc. qcow2 >> should be fixed now with the switch to coroutines and full async i/o. >> Likewise qxl, although this depends on recent guest drivers. For vnc >> enabling the threaded vnc server helps alot (without it moving around >> windows leads to sound dropouts). > > I found another workaround: audio hw passthrough. Works nicely. And this > indicates that there should be still some room for improvement in the > device model so that Windows chooses a proper ring buffer size, no?
Why? For hw passthrough, mmio doesn't go through qemu anymore, right? :) Alex