IP Library Granted Patent US 12,591,449
Granted Patent B2
US 12,591,449 · App. 18/669,909 · Granted Mar 31, 2026

Merging streams for call enhancement in virtual desktop infrastructure

Inventors: Xingzhi Luo (Sunnyvale, CA); Daoquan Ye (Hangzhou, CN)
Assignee: Zoom Communications, Inc.
G06F9/45558G06F9/45545H04L65/65G06F2009/4557G06F2009/45595
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,591,449
App. No.
18/669,909
Granted
Mar 31, 2026
Kind
B2
Abstract

Calls run through a virtual desktop infrastructure server are enhanced by opening a media channel between a personal computing device and a media server for a call initiated using a virtual desktop infrastructure server. A first stream of media data for the call is merged with a second stream of media data for the call in a single virtual channel of the protocol using a first packet queue to store packets of the first stream and a second packet queue to store packets of the second stream as the packets await transmission. A first packet of media data of the first stream is pushed into the first packet queue. A fill level of the first packet queue is compared to a first congest threshold associated with the first packet queue. Responsive to the fill level exceeding the first congest threshold, a congestion mitigation measure is invoked.

Claims (56)

1 . A method comprising:

opening, by a client device, a channel for a call initiated using a virtual desktop infrastructure server;

merging, at the client device, a first stream for the call with a second stream for the call in a single virtual channel using a first packet queue to store packets of the first stream and a second packet queue to store packets of the second stream, wherein the first packet queue is associated with a first congest threshold, and wherein the single virtual channel is part of a protocol for exchanging data for virtual desktop applications and the first stream and the second stream include at least two different types of media data including audio data, video data, control data, or share data;

determining a fill level of the first packet queue exceeds the first congest threshold; and

responsive to determining the fill level of the first packet queue exceeds the first congest threshold, invoking, by the client device, a congestion mitigation measure that selectively reduces a transmission rate of the first stream or the second stream into the single virtual channel based on a priority level of a respective stream.

2 . The method of claim 1 , wherein the congestion mitigation measure comprises:

reducing an encoder data rate for the first stream.

3 . The method of claim 1 , wherein the congestion mitigation measure comprises:

reducing an encoder data rate for a second stream.

4 . The method of claim 1 , wherein the congestion mitigation measure comprises:

transmitting a congestion indication message to a media server.

5 . The method of claim 1 , comprising:

transferring data for the call, including media data and call control data, in the single virtual channel of the protocol.

6 . The method of claim 1 , comprising:

pushing a first packet of media data of the first stream into the first packet queue.

7 . The method of claim 1 , comprising:

pushing a second packet of media data of the second stream into the second packet queue associated with a second congest threshold;

determining a fill level of the second packet queue exceeds the second congest threshold; and

responsive to determining the fill level of the second packet queue exceeds the second congest threshold, invoking, by the client device, the congestion mitigation measure.

8 . The method of claim 1 , comprising:

selecting amongst a set of packet queues, including the first packet queue and the second packet queue, based on priorities of packet queues in the set of packet queues; and

transmitting a packet from the selected packet queue in the single virtual channel.

9 . A personal computing device, comprising:

a network interface,

a processor, and

a memory, wherein the memory stores instructions executable by the processor to:

open, by a client device, a channel for a call initiated using a virtual desktop infrastructure server;

merge, at the client device, a first stream for the call with a second stream for the call in a single virtual channel using a first packet queue to store packets of the first stream and a second packet queue to store packets of the second stream, wherein the first packet queue is associated with a first congest threshold, and wherein the single virtual channel is part of a protocol for exchanging data for virtual desktop applications and the first stream and the second stream include at least two different types of media data including audio data, video data, control data, or share data;

determine a fill level of the first packet queue exceeds the first congest threshold; and

responsive to determining the fill level of the first packet queue exceeds the first congest threshold, invoke, by the client device, a congestion mitigation measure that selectively reduces a transmission rate of the first stream or the second stream into the single virtual channel based on a priority level of a respective stream.

10 . The personal computing device of claim 9 , wherein the congestion mitigation measure comprises reducing an encoder data rate for the first stream.

11 . The personal computing device of claim 9 , wherein the congestion mitigation measure comprises reducing an encoder data rate for the second stream.

12 . The personal computing device of claim 9 , wherein the congestion mitigation measure comprises transmitting a congestion indication message to a media server.

13 . The personal computing device of claim 9 , wherein the memory stores instructions executable by the processor to:

transfer data for the call, including media data and call control data, in the single virtual channel of the protocol.

14 . The personal computing device of claim 9 , comprising:

pushing a first packet of media data of the first stream into the first packet queue.

15 . The personal computing device of claim 9 , wherein the memory stores instructions executable by the processor to:

push a second packet of media data of the second stream into the second packet queue;

determine a fill level of the second packet queue exceeds a second congest threshold; and

responsive to determining the fill level of the second packet queue exceeds the second congest threshold, invoke, by the client device, the congestion mitigation measure.

16 . The personal computing device of claim 9 , wherein the memory stores instructions executable by the processor to:

select amongst a set of packet queues, including the first packet queue and the second packet queue, based on priorities of packet queues in the set of packet queues; and

transmit a packet from the selected packet queue in the single virtual channel.

17 . A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:

opening, by a client device, a channel for a call initiated using a virtual desktop infrastructure server;

merging, at the client device, a first stream for the call with a second stream for the call in a single virtual channel using a first packet queue to store packets of the first stream and a second packet queue to store packets of the second stream, wherein the first packet queue is associated with a first congest threshold, and wherein the single virtual channel is part of a protocol for exchanging data for virtual desktop applications and the first stream and the second stream include at least two different types of media data including audio data, video data, control data, or share data;

determining a fill level of the first packet queue exceeds the first congest threshold; and

responsive to determining the fill level of the first packet queue exceeds the first congest threshold, invoking, by the client device, a congestion mitigation measure that selectively reduces a transmission rate of the first stream or the second stream into the single virtual channel based on a priority level of a respective stream.

18 . The non-transitory computer-readable storage medium of claim 17 , comprising transferring data for the call, including media data and call control data, in the single virtual channel of the protocol.

19 . The non-transitory computer-readable storage medium of claim 17 , comprising:

pushing a first packet of media data of the first stream into the first packet queue.

20 . The non-transitory computer-readable storage medium of claim 17 , comprising:

pushing a second packet of media data of the second stream into the second packet queue associated with a second congest threshold;

determining a fill level of the second packet queue exceeds the second congest threshold; and

responsive to determining the fill level of the second packet queue exceeds the second congest threshold, invoking, by the client device, the congestion mitigation measure.

Assignments (2)
CHANGE OF NAME Recorded Jan 7, 2025
From: ZOOM VIDEO COMMUNICATIONS, INC.
To: ZOOM COMMUNICATIONS, INC.
Reel/Frame 069839/0593 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2024
From: LUO, XINGZHI; YE, DAOQUAN
To: ZOOM VIDEO COMMUNICATIONS, INC.
Reel/Frame 067693/0676 →