Re: [Qemu-devel] Re: [PATCH] spice: add audio
On Wed, Nov 10, 2010 at 12:37:04PM +0100, Gerd Hoffmann wrote: On 11/10/10 11:36, Daniel P. Berrange wrote: On Wed, Nov 10, 2010 at 10:48:39AM +0100, Gerd Hoffmann wrote: The qemu vnc server has support already, and I think Daniel (added to Cc:) has some experimental patches for the gtk-vnc widget. Yes I do have patches, but I'm yet to get it to work reliably enough for anyone to use for real. eg any time there are large frambuffer updates due to, say, dragging a window around, audio will drop out. Until I can prove that it is even semi-reliable I'm not going to include the code in gtk-vnc, because I don't want to commit to supporting something that may well be fundamentally broken/unusable for live audio playback. Do you know where the dropouts come from? Not entirely, it is still rather work in progress to debug it. Part of the issues is that even QEMU + one of the standard pulseaudio/alsa/sdl audio backends doesn't seem very reliable to me, so I've not got a reliable benchmark to compare VNC audio against. Just testing with mpg123 in the guest, audio will often simply stop after a few seconds of playback to the host. I think one issue are latencies within qemu. The qemu vnc server is busy for a while when doing bulky screen updates and blocks other stuff while it runs. I've seen dropouts with vnc + bulky screen updates too. The smaller the audio buffers used by the device/guest are the more visible this effect is. When enabling the threaded vnc server this becomes alot better, did you try that? It looks like the threaded server is disabled by default, so I've not been using it thus far. I'll give it a try though. Is there a particular audio device that is considered to work 'best' ? I've been using ac97 mostly, but if your new ICH6 device is thought to be significantly better I'll try that instead. Regards, Daniel -- |: Red Hat, Engineering, London-o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org-o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
Re: [Qemu-devel] Re: [PATCH] spice: add audio
Hi, Now, if only VNC had standardized audio passthrough yet... I guess I'd have to propose... The qemu vnc server has support already, and I think Daniel (added to Cc:) has some experimental patches for the gtk-vnc widget. cheers, Gerd
Re: [Qemu-devel] Re: [PATCH] spice: add audio
On Wed, Nov 10, 2010 at 10:48:39AM +0100, Gerd Hoffmann wrote: Hi, Now, if only VNC had standardized audio passthrough yet... I guess I'd have to propose... The qemu vnc server has support already, and I think Daniel (added to Cc:) has some experimental patches for the gtk-vnc widget. Yes I do have patches, but I'm yet to get it to work reliably enough for anyone to use for real. eg any time there are large frambuffer updates due to, say, dragging a window around, audio will drop out. Until I can prove that it is even semi-reliable I'm not going to include the code in gtk-vnc, because I don't want to commit to supporting something that may well be fundamentally broken/unusable for live audio playback. Regards, Daniel -- |: Red Hat, Engineering, London-o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org-o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
Re: [Qemu-devel] Re: [PATCH] spice: add audio
On 11/10/10 12:50, Daniel P. Berrange wrote: On Wed, Nov 10, 2010 at 12:37:04PM +0100, Gerd Hoffmann wrote: Do you know where the dropouts come from? Not entirely, it is still rather work in progress to debug it. Part of the issues is that even QEMU + one of the standard pulseaudio/alsa/sdl audio backends doesn't seem very reliable to me, so I've not got a reliable benchmark to compare VNC audio against. Well, on a standard fedora install alsa ends up being routed to pulseaudio anyway. Not sure what happens with SDL, I suspect it goes via alsa to pulseaudio too. So I've bothered with pulseaudio (and spice) only in my testing. Came up with these patches for pulseaudio: http://cgit.freedesktop.org/spice/qemu/log/?h=pulse These patches make pulseaudio work alot better for me. They are waiting to be reviewed by Fengguang right now. Just testing with mpg123 in the guest, audio will often simply stop after a few seconds of playback to the host. Fedora 14 + rhythmbox works rock solid for me. Win7 + media player works too but has dropouts now and then, I think this is because win7 uses a very small dma buffer for the audio data. I don't see the sound stopping altogether. Is there a particular audio device that is considered to work 'best' ? I've been using ac97 mostly, but if your new ICH6 device is thought to be significantly better I'll try that instead. Naturally I'm testing with the new intel-hda device ;) It has some advantages, for example it just got MSI support so it doesn't has to share the IRQ line with other devices (when the guest supports it). I think there is nothing which makes a major difference compared to ac97. I don't know ac97 that well though. cheers, Gerd
[Qemu-devel] Re: [PATCH] spice: add audio
On Tue, 9 Nov 2010, Gerd Hoffmann wrote: Add support for the spice audio interface. With this patch applied audio can be forwarded over the network from/to the spice client. Both recording and playback is supported. The driver is first in the driver list, but the can_be_default flag is set only in case spice is active. So if you have the spice protocol enabled the spice audio driver is the default one, otherwise whatever comes first after spice in the list. Overriding the default using QEMU_AUDIO_DRV works in any case. [ v2: audio codestyle: add spaces before open parenthesis ] [ v2: add const to silence array ] Is this somehow testable? [..snip..] -- mailto:av1...@comtv.ru
[Qemu-devel] Re: [PATCH] spice: add audio
On Tue, 9 Nov 2010, Gerd Hoffmann wrote: On 11/09/10 17:36, malc wrote: On Tue, 9 Nov 2010, Gerd Hoffmann wrote: Add support for the spice audio interface. With this patch applied audio can be forwarded over the network from/to the spice client. Both recording and playback is supported. The driver is first in the driver list, but the can_be_default flag is set only in case spice is active. So if you have the spice protocol enabled the spice audio driver is the default one, otherwise whatever comes first after spice in the list. Overriding the default using QEMU_AUDIO_DRV works in any case. [ v2: audio codestyle: add spaces before open parenthesis ] [ v2: add const to silence array ] Is this somehow testable? /me guesses there are no pre-built spice packages for your linux system, so you have to build spice yourself. In short: * Fetch, build + install celt, version 0.5.1 is needed. * Fetch, build + install spice-protocol * Fetch, build + install spice You can download the bits from: http://www.celt-codec.org/ http://www.spice-space.org/ With this in place you should be able to build qemu with spice support (configure should detect it). The add '-spice port=$number,disable-ticketing' to your qemu command line. Start spice client (part of the spice package) this way: spicec -h localhost -p $number Note that spice doesn't work (yet) on bigendian machines, so don't try that on your ppc box. Thanks. -- mailto:av1...@comtv.ru
[Qemu-devel] Re: [PATCH] spice: add audio
On Tue, 9 Nov 2010, Gerd Hoffmann wrote: Add support for the spice audio interface. With this patch applied audio can be forwarded over the network from/to the spice client. Both recording and playback is supported. The driver is first in the driver list, but the can_be_default flag is set only in case spice is active. So if you have the spice protocol enabled the spice audio driver is the default one, otherwise whatever comes first after spice in the list. Overriding the default using QEMU_AUDIO_DRV works in any case. Applied. [..snip..] -- mailto:av1...@comtv.ru
Re: [Qemu-devel] Re: [PATCH] spice: add audio
Add support for the spice audio interface. With this patch applied audio can be forwarded over the network from/to the spice client. Both recording and playback is supported. The driver is first in the driver list, but the can_be_default flag is set only in case spice is active. So if you have the spice protocol enabled the spice audio driver is the default one, otherwise whatever comes first after spice in the list. Overriding the default using QEMU_AUDIO_DRV works in any case. Applied. Seems there is more interest than twolame :^) Now, if only VNC had standardized audio passthrough yet... I guess I'd have to propose... François.
Re: [Qemu-devel] Re: [PATCH] spice: add audio
On Tue, 9 Nov 2010, Fran?ois Revol wrote: Add support for the spice audio interface. With this patch applied audio can be forwarded over the network from/to the spice client. Both recording and playback is supported. The driver is first in the driver list, but the can_be_default flag is set only in case spice is active. So if you have the spice protocol enabled the spice audio driver is the default one, otherwise whatever comes first after spice in the list. Overriding the default using QEMU_AUDIO_DRV works in any case. Applied. Seems there is more interest than twolame :^) The main point is that this thing is unimplementable via wav driver or audio capture support (none of those deals with recording). Now, if only VNC had standardized audio passthrough yet... I guess I'd have to propose... Fran?ois. -- mailto:av1...@comtv.ru