Virtual USB Bus for Shared Webcam Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional virtualization systems exclusively allocate USB video cameras to Guest OSs, preventing simultaneous access by Host and other Guest OSs, and require special drivers for each OS, making it inconvenient and resource-intensive, especially for applications like Skype.
Innovation Solution
Implementing a virtual USB bus and a virtual driver within the Host system that allows multiple Guest OSs and the Host to access a standard USB video camera without switching, using a Virtual Machine Monitor (VMM) to communicate with a Host-side library, enabling shared access and processing of video streams.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a USB video camera is exclusively allocated to a Guest OS in a conventional virtualization system, then the camera can be used by that Guest OS without driver conflicts, but the Host system and other Guest OSs cannot access the camera simultaneously
Solution Approach 1:
The patent implements a universal Host-side camera driver that enables a single physical camera to be accessed by multiple Guest OSs and the Host system simultaneously through virtualization. The driver creates virtual camera devices that appear to each Guest OS as native USB cameras, eliminating the need for separate drivers in each Guest OS while maintaining simultaneous accessibility for multiple users and applications.
2Reliability
If a USB video camera is dedicated to a single VM, then the VM can use the camera without interference, but the Host system loses access to the camera interface
Solution Approach 1:
The patent segments the camera resource access by creating virtual camera devices for each Guest OS while maintaining a unified Host-side driver. The virtual USB bus architecture divides camera access into separate virtual channels, allowing each Guest OS to have dedicated camera access within its virtual environment while the Host system retains control and can allocate resources dynamically to multiple users simultaneously.
Solution Approach 2:
The Host-side camera driver acts as an intermediary between the physical camera and multiple Guest OSs. It receives camera access requests from multiple sources, manages resource allocation, and provides stable camera functionality to each requester simultaneously, ensuring reliability while enabling versatile resource sharing.
3Adaptability or versatility
If special boot-up drivers are installed for each Guest OS to use the camera, then each Guest OS can access the camera, but the system requires additional resources and installation overhead
Solution Approach 1:
The universal Host-side driver eliminates the need for separate boot-up drivers in each Guest OS. A single driver installation on the Host system provides camera functionality to multiple Guest OSs simultaneously, reducing installation overhead and resource requirements while maintaining full camera access capability for each Guest OS.
Data Source
AI summary
A system, method and computer program product for implementing a video camera that is accessible by different Virtual Machine GOSs and the Host system. A standard USB video camera is build into a Host system. A VM running a Guest OS is launched on the Host system. The Guest OS has virtual driver for the Host video camera. The virtual driver is connected to a virtual USB bus, which communicates with a special Host library over a Virtual Machine Monitor (VMM). A special Host side VM application acquires and processes video data from a standard Host system video processing API that communicates directly with a Host-side virtual camera driver. Video frames are provided via the Host-side VM application to the virtual USB bus and to the virtual driver. Host applications or other VMs can acquire video streams from the Host USB camera simultaneously.


