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 respective one or more viewing clients, wherein the respective copy of the stream of delta frames are transmitted from the respective FIFO buffers to the corresponding one or more viewing clients;
monitoring each of the respective FIFO buffers for each of the respective 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 single aggregated delta frame; and
transmitting the single aggregated delta frame to the respective one or more viewing clients.
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.
135 Citations
21 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 respective one or more viewing clients, wherein the respective copy of the stream of delta frames are transmitted from the respective FIFO buffers to the corresponding one or more viewing clients; monitoring each of the respective FIFO buffers for each of the respective 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 single aggregated delta frame; and transmitting the single aggregated delta frame to the respective one or more viewing clients. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method performed by a publishing client device, wherein the method comprises:
-
preparing delta frames for transmission to a server within a stream of delta frames from the publishing client device as part of a screen sharing session with one or more viewing clients communicably interfaced with the server; wherein the server establishes a FIFO buffer for each of the respective one or more viewing clients on 1;
1 basis to receive the stream of delta frames from the publishing client device;packaging the delta frames into media object containers by adding the delta frames as payload to the media object containers; sequencing the media object containers by tagging each of the media object containers with an assigned sequence number; transmitting, via a client transmitter of the publishing client device, the media object containers having the delta frames therein to the server within the stream of delta frames; wherein the server receives the media object containers having the delta frames therein in an order different than an original order as transmitted via the client transmitter; and wherein a sequencer of the server sequences the delta frames into the original order as transmitted via the client transmitter based on the assigned sequence number tagged to each of the media object containers by the publishing client device. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. Non-transitory computer readable storage media having instructions stored thereupon that, when executed by a processor of a publishing client device, the instructions cause the publishing client device to perform operations including:
-
preparing delta frames for transmission to a server within a stream of delta frames from the publishing client device as part of a screen sharing session with one or more viewing clients communicably interfaced with the server; wherein the server establishes a FIFO buffer for each of the respective one or more viewing clients on 1;
1 basis to receive the stream of delta frames from the publishing client device;packaging the delta frames into media object containers by adding the delta frames as payload to the media object containers; sequencing the media object containers by tagging each of the media object containers with an assigned sequence number; transmitting, via a client transmitter of the publishing client device, the media object containers having the delta frames therein to the server within the stream of delta frames; wherein the server receives the media object containers having the delta frames therein in an order different than an original order as transmitted via the client transmitter; and wherein a sequencer of the server sequences the delta frames into the original order as transmitted via the client transmitter based on the assigned sequence number tagged to each of the media object containers by the publishing client device. - View Dependent Claims (21)
-
Specification