Systems, methods, and apparatuses for implementing frame aggregation with screen sharing
First Claim
1. A method comprising:
- receiving, at a server, a stream of delta frames from a publishing client as part of a screen sharing session with one or more viewing clients;
establishing a FIFO buffer for each of the respective one or more viewing clients on 1;
1 basis;
queuing a copy of the stream of delta frames into each of the FIFO buffers corresponding to the one or more viewing clients, wherein the stream of delta frames are transmitted from the respective FIFO buffers to the corresponding one or more client viewers;
monitoring each of the respective FIFO buffers for each of the one or more viewing clients to determine if two or more delta frames are concurrently queued in any single one of the respective FIFO buffers at any given time;
aggregating the two or more delta frames into a single aggregated delta frame;
re-queuing the aggregated delta frame, wherein re-queuing the aggregated delta frame comprises queuing the aggregated delta frame in the respective FIFO buffer with a priority according to an original position of the two or more delta frames aggregated; and
transmitting the aggregated delta frame to the respective viewing client.
1 Assignment
0 Petitions
Accused Products
Abstract
In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses for implementing frame aggregation with screen sharing including, for example, means for receiving, at a server, a stream of delta frames from a publishing client as part of a screen sharing session with one or more viewing clients; establishing a FIFO buffer for each of the respective one or more viewing clients on 1:1 basis; queuing a copy of the stream of delta frames into each of the FIFO buffers corresponding to the one or more viewing clients, wherein the stream of delta frames are transmitted from the respective FIFO buffers to the corresponding one or more client viewers; monitoring each of the respective FIFO buffers for each of the one or more viewing clients to determine if two or more delta frames are concurrently queued in any single one of the respective FIFO buffers at any given time; aggregating the two or more delta frames into a single aggregated delta frame; re-queuing the aggregated delta frame; and transmitting the aggregated delta frame to the respective viewing client. Other related embodiments are disclosed.
133 Citations
23 Claims
-
1. A method comprising:
-
receiving, at a server, a stream of delta frames from a publishing client as part of a screen sharing session with one or more viewing clients; establishing a FIFO buffer for each of the respective one or more viewing clients on 1;
1 basis;queuing a copy of the stream of delta frames into each of the FIFO buffers corresponding to the one or more viewing clients, wherein the stream of delta frames are transmitted from the respective FIFO buffers to the corresponding one or more client viewers; monitoring each of the respective FIFO buffers for each of the one or more viewing clients to determine if two or more delta frames are concurrently queued in any single one of the respective FIFO buffers at any given time; aggregating the two or more delta frames into a single aggregated delta frame; re-queuing the aggregated delta frame, wherein re-queuing the aggregated delta frame comprises queuing the aggregated delta frame in the respective FIFO buffer with a priority according to an original position of the two or more delta frames aggregated; and transmitting the aggregated delta frame to the respective viewing client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. Non-transitory computer readable storage media having instructions stored thereon that, when executed by a processor in a server, the instructions cause the server to perform operations comprising:
-
receiving, at a server, a stream of delta frames from a publishing client as part of a screen sharing session with one or more viewing clients; establishing a FIFO buffer for each of the respective one or more viewing clients on 1;
1 basis;queuing a copy of the stream of delta frames into each of the FIFO buffers corresponding to the one or more viewing clients, wherein the stream of delta frames are transmitted from the respective FIFO buffers to the corresponding one or more client viewers; monitoring each of the respective FIFO buffers for each of the one or more viewing clients to determine if two or more delta frames are concurrently queued in any single one of the respective FIFO buffers at any given time; aggregating the two or more delta frames into a single aggregated delta frame; re-queuing the aggregated delta frame, wherein re-queuing the aggregated delta frame comprises queuing the aggregated delta frame in the respective FIFO buffer with a priority according to an original position of the two or more delta frames aggregated; and transmitting the aggregated delta frame to the respective viewing client. - View Dependent Claims (18, 19)
-
-
20. A server comprising:
-
a processor to execute a screen sharing service on behalf of a plurality of clients; a receive interface of the server to receive a stream of delta frames from a publishing client as part of a screen sharing session with one or more viewing clients; a FIFO buffer for each of the respective one or more viewing clients on 1;
1 basis;the screen sharing service to queue a copy of the stream of delta frames into each of the FIFO buffers corresponding to the one or more viewing clients, wherein the stream of delta frames are to be transmitted from the respective FIFO buffers to the corresponding one or more client viewers; a frame aggregator to monitor each of the respective FIFO buffers for each of the one or more viewing clients to determine if two or more delta frames are concurrently queued in any single one of the respective FIFO buffers at any given time; the frame aggregator to aggregate the two or more delta frames into a single aggregated delta frame; the FIFO buffer to requeue the aggregated delta frame by queuing the aggregated delta frame in the respective FIFO buffer with a priority according to an original position of the two or more delta frames aggregated; and a transmitter to transmit the aggregated delta frame to the respective viewing client. - View Dependent Claims (21, 22, 23)
-
Specification