Ticket #10343 (new enhancement)
Provide emulated hardware devices for video camera, scanners and video capture
|Reported by:||vensasa||Owned by:|
|Version:||VirtualBox 4.1.8||Keywords:||video capture card, video camera, web cam, scanner, emulated device|
Virtualbox should add a virtual emulated device that a guest OS can use inside the VM to access video input and output devices and imaging devices such as scanners and video cameras, and capture cards, virtualbox would use the application API of the host OSs to access the hardware through the Host OS driver, the application API for accessing the hardware drivers used by the host OS as the backend for emulated devices provided to the guest OS.
This is already what virtualbox does for sound cards, video cards, and network interfaces.
This in many cases is better than attempting to use the USB pass through. USB pass through does not work well when multiple OSs including many VMs need to share the device. Very rarely does pass through work right. It is just asking for trouble to occur to have many different drivers trying to directly cntrol the device.
This is why it is best to only have one driver directly talk to the device, the Host OS driver, and then provide emulated devices inside the VMs that use the Host OS driver as a backend. The guest Os then only needs to load the driver for the device that virtualbox emulates. Virtualbox should choose to emulate a brand and model of each type of hardware that is particularly common and widely supported by many OSs.
What I suggest is have virtualbox emulate some hardware devices, like a scanner, USB web cam and a happauge video capture card. The emulation would then use the Host OSs application driver APIs as a backend and provide a virtual device in the VM for every real device accessible via the application driver APIs. Guest OSs would load the driver for the scanner, video capture card and camera device that would talk to the emulated hardware device.
This would provide much smoother operation than the horrid and buggy USB pass through. This is already done with video cards, network adapters and so on.