Virtual media device
First Claim
Patent Images
1. A system, comprising:
- a peripheral device configured to communicate with a computing device over a wireless network; and
a computing device comprising instructions executable to operate;
a user mode application program configured to communicate with a kernel mode driver and also configured to run in a user mode;
a port configured to receive media data via internet protocol from the peripheral device over the wireless network;
a communication stack configured to receive communications from the port, the communication stack comprising a kernel mode portion in communication with the port and also comprising a user mode portion;
a user mode listener service configured to run in the user mode, the user mode listener service in communication with the port through the communication stack to receive the media data from the port; and
a kernel mode virtual media device in communication with the user mode listener service and the user mode application program and configured to run in a kernel mode and to capture the media data from the user mode listener service via a virtual bus, and output the media data to the user mode application program, the kernel mode virtual media device having one or more of a virtual video driver and a virtual audio driver to provide media streaming functionality from the peripheral device to the application program,wherein the virtual media device is configured to selectively set the port to a locked mode in which applications other than the user mode listener service cannot change port settings, and the virtual media device is configured to selectively set the port to a normal mode in which other applications can change port settings.
2 Assignments
0 Petitions
Accused Products
Abstract
A system, device, and method for virtually connecting a media device to a computing device are disclosed. One embodiment comprises a method to operate a virtual media device in a computing device, wherein the virtual media device that is controlled by a remote media device. In this manner, a computing device may stream media data to and from the remote media device.
-
Citations
19 Claims
-
1. A system, comprising:
-
a peripheral device configured to communicate with a computing device over a wireless network; and a computing device comprising instructions executable to operate; a user mode application program configured to communicate with a kernel mode driver and also configured to run in a user mode; a port configured to receive media data via internet protocol from the peripheral device over the wireless network; a communication stack configured to receive communications from the port, the communication stack comprising a kernel mode portion in communication with the port and also comprising a user mode portion; a user mode listener service configured to run in the user mode, the user mode listener service in communication with the port through the communication stack to receive the media data from the port; and a kernel mode virtual media device in communication with the user mode listener service and the user mode application program and configured to run in a kernel mode and to capture the media data from the user mode listener service via a virtual bus, and output the media data to the user mode application program, the kernel mode virtual media device having one or more of a virtual video driver and a virtual audio driver to provide media streaming functionality from the peripheral device to the application program, wherein the virtual media device is configured to selectively set the port to a locked mode in which applications other than the user mode listener service cannot change port settings, and the virtual media device is configured to selectively set the port to a normal mode in which other applications can change port settings. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. In a computing device, a method for receiving data from a wireless web-camera, the method comprising:
-
receiving media data in real-time transport protocol packets at a port in a computing device from the wireless web-camera over a wireless network, where the media data received is not visible to a user mode application running on the computing device that is configured to receive data from a kernel mode driver; forwarding the media data from the port to a kernel mode portion of a communication stack; forwarding the media data from the kernel mode portion of the communication stack to a user mode portion of the communication stack and then to a user mode listener service running in a user mode of the computing device; storing the media data via the user mode listener service to memory; capturing the media data via a virtual bus from the memory with a kernel mode virtual media device running in a kernel mode of the computing device, the virtual bus including a command bus, a video bus, and an audio bus; outputting the media data as a virtual media stream from the kernel mode virtual media device to the user mode application, the outputting including providing media streaming functionality from the wireless web-camera to the user mode application program via one or more of a kernel mode virtual video driver and a kernel mode virtual audio driver at the kernel mode virtual media device without converting the media data or the virtual media stream to a universal serial bus protocol; and while receiving the media data, setting and operating the port in a locked mode that only allows the listener service to change port settings, wherein, when the port is set to the locked mode, the user mode listener service is operable to receive media data from the port via the kernel mode portion of the communication stack and output commands via the kernel mode portion of the communication stack and the port to the web-camera to control settings of the web-camera, and other programs cannot change port settings, and after receiving the media data, setting and operating the port in a normal mode in which other programs can change port settings. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A computer-readable memory comprising instructions executable by a computing device to communicate with a remotely connected web-camera by:
-
receiving media data in real-time transport protocol packets at a port in a computing device from the remotely connected web-camera over a wireless network, where the media data is not visible to a user mode instant messaging application running on the computing device; forwarding the media data from the port to a kernel mode portion of a communication stack; forwarding the media data from the kernel mode portion of the communication stack to a user portion of the communication stack and then to a user mode listener service configured to run in a user mode of the computing device; storing the media data via the user mode listener service to memory; capturing the media data via a virtual bus from the memory with a kernel mode virtual media device configured to run in a kernel mode of the computing device, the virtual bus including a command bus, a video bus, and an audio bus; outputting the media data as a virtual media stream from the kernel mode virtual media device to the user mode instant messaging application, the outputting including providing media streaming functionality from the remotely connected web-camera to the user mode instant messaging application via one or more of a kernel mode virtual video driver and a kernel mode virtual audio driver at the kernel mode virtual media device; receiving one or more of a command, audio data, and video data from the user mode instant messaging application at the kernel mode virtual media device; passing the one or more of the command, the audio data, and the video data from the kernel mode virtual media device to the user mode listener service via the virtual bus; passing the one or more of the command, the audio data, and the video data from the user mode listener service to the communication stack; and outputting the one or more of the command, the audio data, and the video data to the remotely connected web-camera; and setting and operating the port in a locked mode in which the user mode listener service can change port settings but other applications cannot change port settings, and a normal mode in which other applications can change port settings.
-
Specification