IP Library Granted Patent US 12,210,794
Granted Patent B2
US 12,210,794 · App. 17/943,197 · Granted Jan 28, 2025

Multimedia redirection in collaborative sessions on virtual desktops

Inventors: Xing Wei (Beijing, CN); Bo Liu (Beijing, CN); Dongyu Zhao (Beijing, CN); Huanhuan Zhang (Beijing, CN); Hongsheng Li (Beijing, CN)
Assignee: Omnissa, LLC
G06F3/1454G06F9/452H04L67/141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,210,794
App. No.
17/943,197
Granted
Jan 28, 2025
Kind
B2
Abstract

A system is described for redirecting multimedia in a collaborative session on a virtual desktop. The virtual desktop session can be established, and collaborator virtual desktop clients can be connected in a collaborative session where each collaborator can view the desktop GUI in their respective virtual desktop client. A request can be received to play media in a media player in the virtual desktop. The media stream can be intercepted in the virtual desktop before it is rendered in the media player and conveyed to each collaborator's client over a separate virtual channel established between the virtual desktop and each collaborator. The data stream can then be rendered in a client media player by each collaborator's client.

Claims (79)

1. A method for multimedia redirection in a collaborative session on a virtual desktop, comprising:

launching the virtual desktop and initiating the collaborative session on the virtual desktop, wherein a plurality of virtual desktop clients are connected to a virtual desktop agent via a plurality of main channels, respectively, the virtual desktop agent operating in the virtual desktop that conveys a graphical user interface (GUI) of the virtual desktop to the plurality of virtual desktop clients via the plurality of main channels, and receives client-side inputs into the virtual desktop via the plurality of main channels;

establishing a plurality of side virtual channels, separate from the plurality of main channels, between the plurality of virtual desktop clients and the virtual desktop agent, respectively, at least one of the side virtual channels being marked as a main user virtual channel by the virtual desktop agent and at least one of the side virtual channels being marked as a shadow user virtual channel by the virtual desktop agent;

receiving a request in the virtual desktop to play a media stream in a media player in the virtual desktop;

intercepting the media stream in the virtual desktop without the media stream being rendered on the virtual desktop;

multicasting the intercepted media stream together with metadata information that includes a window size and volume settings corresponding to the intercepted media stream to the plurality of virtual desktop clients connected to the virtual desktop in the collaborative session via the established plurality of side virtual channels, respectively;

receiving a first control command for the media player in the virtual desktop from a first requesting virtual desktop client in the plurality of virtual desktop clients via a first one of the side virtual channels;

determining, by the virtual desktop agent, that the first requesting virtual desktop client is designated as being enabled to produce control commands for the media player;

in response to determining that the first requesting virtual desktop client is designated as being enabled to produce control commands for the media player, effectuating the first control command for the media player;

receiving a second control command for the media player in the virtual desktop from a second requesting virtual desktop client in the plurality of virtual desktop clients via a second one of the side virtual channels;

determining, by the virtual desktop agent, that the second requesting virtual desktop client is designated as not being enabled to produce control commands for the media player; and

in response to determining that the second requesting virtual desktop client is designated as not being enabled to produce control commands for the media player, blocking or ignoring the second control command by the virtual desktop agent.

2. The method of claim 1 , further comprising, by each of the plurality of virtual desktop clients:

receiving the conveyed media stream; and

rendering the received media stream in the virtual desktop client in a client media player.

3. The method of claim 2 , further comprising adjusting, by each of the plurality of virtual desktop clients, a window size of the client media player based on the received metadata information when rendering the media stream.

4. The method of claim 1 , further comprising:

detecting that a new virtual desktop client connected to the virtual desktop in the collaborative session; and

establishing a new side virtual channel between the new virtual desktop client and the virtual desktop agent for conveying the media stream to the new virtual desktop client, the new side virtual channel being marked as a shadow user virtual channel.

5. The method of claim 1 , wherein

the first requesting virtual desktop client is determined to be designated as being enabled to produce control commands for the media player in response to determining that a user of the first requesting virtual desktop client is an owner of the virtual desktop, and

the second requesting virtual desktop client is determined to be designated as being not enabled to produce control commands for the media player in response to determining that a user of the second requesting virtual desktop client is not an owner of the virtual desktop.

6. The method of claim 1 , wherein

the first requesting virtual desktop client is determined to be designated as being enabled to produce control commands for the media player in response to determining that the first one of the side virtual channels is the main user virtual channel, and

the second requesting virtual desktop client is determined to be designated as not being enabled to produce control commands for the media player in response to determining that the second one of the side virtual channels is the shadow user virtual channel.

7. A computing device for multimedia redirection in a collaborative session on a virtual desktop, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the computing device to perform the steps of:

launching the virtual desktop and initiating the collaborative session on the virtual desktop, wherein a plurality of virtual desktop clients are connected to a virtual desktop agent via a plurality of main channels, respectively, the virtual desktop agent operating in the virtual desktop that conveys a graphical user interface (GUI) of the virtual desktop to the plurality of virtual desktop clients via the plurality of main channels, and receives client-side inputs into the virtual desktop via the plurality of main channels;

establishing a plurality of side virtual channels, separate from the plurality of main channels, between the plurality of virtual desktop clients and the virtual desktop agent, respectively, at least one of the side virtual channels being marked as a main user virtual channel by the virtual desktop agent and at least one of the side virtual channels being marked as a shadow user virtual channel by the virtual desktop agent;

receiving a request in the virtual desktop to play a media stream in a media player in the virtual desktop;

intercepting the media stream in the virtual desktop without the media stream being rendered on the virtual desktop; and

multicasting the intercepted media stream together with metadata information that includes a window size and volume settings corresponding to the intercepted media stream to the plurality of virtual desktop clients connected to the virtual desktop in the collaborative session via the established plurality of side virtual channels, respectively;

receiving a first control command for the media player in the virtual desktop from a first requesting virtual desktop client in the plurality of virtual desktop clients via a first one of the side virtual channels;

determining, by the virtual desktop agent, that the first requesting virtual desktop client is designated as being enabled to produce control commands for the media player;

in response to determining that the first requesting virtual desktop client is designated as being enabled to produce control commands for the media player, effectuating the first control command for the media player;

receiving a second control command for the media player in the virtual desktop from a second requesting virtual desktop client in the plurality of virtual desktop clients via a second one of the side virtual channels;

determining, by the virtual desktop agent, that the second requesting virtual desktop client is designated as not being enabled to produce control commands for the media player; and

in response to determining that the second requesting virtual desktop client is designated as not being enabled to produce control commands for the media player, blocking or ignoring the second control command by the virtual desktop agent.

8. The computing device of claim 7 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to instruct each of the plurality of virtual desktop clients to perform the steps of:

receiving the conveyed media stream; and

rendering the received media stream in the virtual desktop client in a client media player.

9. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to instruct each of the plurality of virtual desktop clients to perform the steps of:

adjusting a window size of the client media player based on the received metadata information when rendering the media stream.

10. The computing device of claim 7 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

detecting that a new virtual desktop client connected to the virtual desktop in the collaborative session; and

establishing a new side virtual channel between the new virtual desktop client and the virtual desktop agent for conveying the media stream to the new virtual desktop client, the new side virtual channel being marked as a shadow user virtual channel.

11. The computing device of claim 7 , wherein

the first requesting virtual desktop client is determined to be designated as being enabled to produce control commands for the media player in response to determining that a user of the first requesting virtual desktop client is an owner of the virtual desktop, and

the second requesting virtual desktop client is determined to be designated as being not enabled to produce control commands for the media player in response to determining that a user of the second requesting virtual desktop client is not an owner of the virtual desktop.

12. The computing device of claim 7 , wherein

the first requesting virtual desktop client is determined to be designated as being enabled to produce control commands for the media player in response to determining that the first one of the side virtual channels is the main user virtual channel, and

the second requesting virtual desktop client is determined to be designated as not being enabled to produce control commands for the media player in response to determining that the second one of the side virtual channels is the shadow user virtual channel.

13. A non-transitory computer readable storage medium for multimedia redirection in a collaborative session on a virtual desktop, comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:

launching the virtual desktop and initiating the collaborative session on the virtual desktop, wherein a plurality of virtual desktop clients are connected to a virtual desktop agent via a plurality of main channels, respectively, the virtual desktop agent operating in the virtual desktop that conveys a graphical user interface (GUI) of the virtual desktop to the plurality of virtual desktop clients via the plurality of main channels, and receives client-side inputs into the virtual desktop via the plurality of main channels;

establishing a plurality of side virtual channels, separate from the plurality of main channels, between the plurality of virtual desktop clients and the virtual desktop agent, respectively, at least one of the side virtual channels being marked as a main user virtual channel by the virtual desktop agent and at least one of the side virtual channels being marked as a shadow user virtual channel by the virtual desktop agent;

receiving a request in the virtual desktop to play a media stream in a media player in the virtual desktop;

intercepting the media stream in the virtual desktop without the media stream being rendered on the virtual desktop;

multicasting the intercepted media stream together with metadata information that includes a window size and volume settings corresponding to the intercepted media stream to the plurality of virtual desktop clients connected to the virtual desktop in the collaborative session via the established plurality of side virtual channels, respectively;

receiving a first control command for the media player in the virtual desktop from a first requesting virtual desktop client in the plurality of virtual desktop clients via a first one of the side virtual channels;

determining, by the virtual desktop agent, that the first requesting virtual desktop client is designated as being enabled to produce control commands for the media player;

in response to determining that the first requesting virtual desktop client is designated as being enabled to produce control commands for the media player, effectuating the first control command for the media player;

receiving a second control command for the media player in the virtual desktop from a second requesting virtual desktop client in the plurality of virtual desktop clients via a second one of the side virtual channels;

determining, by the virtual desktop agent, that the second requesting virtual desktop client is designated as not being enabled to produce control commands for the media player; and

in response to determining that the second requesting virtual desktop client is designated as not being enabled to produce control commands for the media player, blocking or ignoring the second control command by the virtual desktop agent.

14. The non-transitory computer readable storage medium of claim 13 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of, by each of the plurality of virtual desktop clients:

receiving the conveyed media stream; and

rendering the received media stream in the virtual desktop client in a client media player.

15. The non-transitory computer readable storage medium of claim 14 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

adjusting, by each of the plurality of virtual desktop clients, a window size of the client media player based on the received metadata information when rendering the media stream.

16. The non-transitory computer readable storage medium of claim 13 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

detecting that a new virtual desktop client connected to the virtual desktop in the collaborative session; and

establishing a new side virtual channel between the new virtual desktop client and the virtual desktop agent for conveying the media stream to the new virtual desktop client, the new side virtual channel being marked as a shadow user virtual channel.

17. The non-transitory computer readable storage medium of claim 13 , wherein

the first requesting virtual desktop client is determined to be designated as being enabled to produce control commands for the media player in response to determining that a user of the first requesting virtual desktop client is an owner of the virtual desktop, and

the second requesting virtual desktop client is determined to be designated as being not enabled to produce control commands for the media player in response to determining that a user of the second requesting virtual desktop client is not an owner of the virtual desktop.

18. The non-transitory computer readable storage medium of claim 13 , wherein

the first requesting virtual desktop client is determined to be designated as being enabled to produce control commands for the media player in response to determining that the first one of the side virtual channels is the main user virtual channel, and

the second requesting virtual desktop client is determined to be designated as not being enabled to produce control commands for the media player in response to determining that the second one of the side virtual channels is the shadow user virtual channel.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 25, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067239/0402 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2022
From: WEI, XING; LIU, BO; ZHAO, DONGYU; ZHANG, HUANHUAN; LI, HONGSHENG
To: VMWARE INC
Reel/Frame 061067/0170 →
Priority Claims (1)
WO PCT/CN2022/105678 · Jul 14, 2022 · international
Continuity (1)
Related Publication 20240020081A1 · Jan 18, 2024
References Cited (9)
US 11012485B1 · Hinnant · 2021 [cited by examiner]
US 11785063B2 · Janakiraman · 2023 [cited by examiner]
US 20110197132A1 · Escoda · 2011 [cited by examiner]
US 20130222523A1 · Shanmukhadas · 2013 [cited by examiner]
US 20170048282A1 · Dharmaji · 2017 [cited by examiner]
US 20170123649A1 · Clavel · 2017 [cited by examiner]
US 20180309806A1 · Huynh · 2018 [cited by examiner]
US 20180349283A1 · Bhatia · 2018 [cited by examiner]
US 20190238599A1 · Ingale · 2019 [cited by examiner]