Sounds great Natalia.

Two things I'd like to let you all know.

(1)  I am using a VM guest because I need the slightly older pwc driver in 
Fedora 11 which works with long exposure mods - so that is why I was trying it 
in a VM.   If you use a generic or use the hosts pwc driver, it will break 
certain things.  That's why it's important the guest driver is used for me 
anyway.

(2) I tried this with VMware Player, and you will be happen to know, even 
though the guest OS detected the pwc webcam and loaded the driver and the video 
device /dev/video0 and lsusb shows the Philips cam there, all video software 
tested reports it cannot find the video camera.    Opposite of this is KVM/Qemu 
which does all the same as described, but at least video software reports it 
finds the webcam, but no video at this time - since you all are working on 
that.      So KVM might be doing better in this regard. 

Peter

--- On Mon, 5/30/11, Natalia Portillo <clau...@claunia.com> wrote:

From: Natalia Portillo <clau...@claunia.com>
Subject: Re: [Qemu-devel] Webcams under KVM and Linux
To: "Peter Baitz" <ussenterprisencc1...@rocketmail.com>
Cc: "Andreas Färber" <andreas.faer...@web.de>, "QEMU Developers" 
<qemu-devel@nongnu.org>, "Hoffmann Gerd" <kra...@redhat.com>
Date: Monday, May 30, 2011, 12:50 PM

Exactly what my webcam does is:
Takes a frame from ANY available V4L2 device (/dev/video0), caches it, and 
sends it completely to the guest before requesting any other frame.
With this way you need your host driver loaded, but you will get never a 
blackout.
What it happens is a thing commonly known in game emulators (like for example 
ePSX) as framedrop, that is, you get a slower framerate but not blackouts.
The guest sees a common USB Video Class Device webcam with no controls (this 
can be enhanced easily), so basically you cannot change any parameter.However 
all the webcams I tested automatically managed that in the firmware with no 
intervention from any of the drivers (host or guest), changing white balance 
and brightness to the adequate values.
You can see it working without KVM 
in:http://www.youtube.com/watch?v=_Yo9TWPDXCohttp://www.youtube.com/watch?v=fzGYvjZzx6E
The webcam emulation works with TCG (without KVM), albeit slower, enough to do 
videoconference because of the following:
Using direct connection method (USB passthrough) even when the ISO xfers and 
ECHI 2.0 are completely emulated will always find the following: the host is 
faster than the guest, so the real webcam will always be streaming faster than 
the guest can process it.Frames are sent in pieces, and if the frame does not 
arrive completely from start to end on all pieces the guest will blackout, and 
continue black until it receives a complete frame.
With fast webcams, like 60 fps ones, this will happen so commonly that there 
will be no image at all.
You can easily see this in VMWare, Parallels or VirtualBox, all of them emulate 
ISO xfers and EHCI 2.0 and when using a webcam it's not really practical.
Framedrop prevents that. From the 60 frames sent in a second by the host, if 
the guest can process only 10, it will receive 10 complete frames, and see the 
webcam as a 10fps one.That's atomic.
Also my patch supports, as I already said, any V4L2 device including webcams, 
DV cameras, TV tuners from any kind of interface be it Firewire, USB, PCI, 
Serial, AGP, so on.
El 29/05/2011, a las 15:03, Peter Baitz escribió:
Hello Natalia and Andreas,

Thank you for the replies and suggestions.  I will lookup V4L.  

Natalia,

So your patch creates a generic webcam under KVM/Qemu to allow many webcams to 
work?

My only concern is the following:   I use specific Philips webcams, and one in 
particular has a long exposure modification that the PWC driver (Fedora 11 
guest on Fedora 15 host) coupled with Qastrocam-G2 (v4.9) allows the "shutter" 
to remain open through USB control of the LED.  If the guest restorts to using 
a generic webcam driver, I think this would preclude functionality that the 
native driver supports ?  

Also, can you tell me - when KVM is running my guest, should the PWC webcam 
driver be loaded and/or the /dev/video0 on the HOST (F15), versus the guest 
(F11) ?   I am confused as to which
 components are supposed to be enabled or disabled while running the guest 
webcam.   What I see is when I enable the webcam USB device in KVM, it appears 
to disable the /dev/video0 on the host an brings it up in the guest.   And the 
pwc driver loads and remains on both host and guest.  

Peter


--- On Sun, 5/29/11, Natalia Portillo <clau...@claunia.com> wrote:

From: Natalia Portillo <clau...@claunia.com>
Subject: Re: [Qemu-devel] Webcams under KVM and Linux
To: "Andreas Färber" <andreas.faer...@web.de>
Cc: "Peter Baitz" <ussenterprisencc1...@rocketmail.com>, "QEMU Developers" 
<qemu-devel@nongnu.org>
Date: Sunday, May 29, 2011, 1:53 PM

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

More concretely search for patches sent by
 me.

Even when EHCI is finished still is the problem of isochronous transfer not 
working well because of timing issues on QEMU.

My patches overcome the need for ISO transfer and EHCI controllers completely, 
as well as providing an universal device to the guest that works with every 
Windows >XP, every Linux and even Mac OS X.

El 29/05/2011, a las 14:37, Andreas Färber escribió:

> Hello,
> 
> Am 29.05.2011 um 15:01 schrieb Peter Baitz:
> 
>> 
>>> [...] You should notice that it is not just adding
>>> ISOC and USB 2.0 support, but also to prioritize the processing of isoc
>>> packets on a virtual environment, and to provide enough throughput for
>>> video streams
>> 
>> [...] Please check the qemu-devel mailing list archive, specifically 
>> regarding recent discussions about EHCI (USB 2.0). Some of those threads 
>> address isochronous
 transfer as well.
>> 
>> In the meantime, you could also try to assign a complete host controller to 
>> the guest to get a webcam working. I tried this a while ago, though the 
>> result was only moderately well working here.
> 
>> [...] I would indeed like to hear more about what the project is adding to 
>> KVM - Qemu to allow video to work with webcams
> [...]
>> I was told I could try to add a complete host controller to the guest, but 
>> am not entirely sure I understand what that means?  Looking for specifics?  
>> Is there a suggestion for doing this during install of the KVM guest, or can 
>> this be done while the guest is running, or otherwise?
> 
> Independent of the ongoing EHCI work, I remember a patch specifically for 
> webcams a while ago, try searching the archives for V4L.
> 
> Andreas

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment:
 GPGTools - http://gpgtools.org

iF4EAREIAAYFAk3iT+QACgkQv/wfOsykIRTtxQD+KCTGZhuzrZMzmYDvY5NFO0+F
QQwdE0aYVntQWpHMG5YBAJsFT5wd7/8FxOIt3aL1lwFqXtKc9y9TrrNog95gnoVh
=n0hn
-----END PGP SIGNATURE-----

Reply via email to