Systems, methods, and apparatuses for accepting late joiners with screen sharing
First Claim
1. A method comprising:
- transmitting, with a video distribution hub, a key frame to one or more viewing clients, the key frame defining a screen of a publishing client in its entirety at a beginning of a screen sharing session with one or more viewing clients, wherein the screen includes one or more active windows to provide dynamically changing content;
maintaining, with the video distribution hub, at least one current key frame comprising the key frame updated, with a frame aggregator, utilizing one or more delta frames that specify changes to the key frame;
iteratively processing, with the video distribution hub, each of a plurality of delta frames specifying changes to the one or more active windows, wherein the iterative processing comprises;
(i) receiving each delta frame via a receive interface of the video distribution hub,(ii) updating an aggregated current key frame with the delta frame received with the frame aggregator, and(iii) sending the delta frame to the one or more viewing clients via one or more transmit interfaces of the video distribution hub;
sending the current key frame to a late joiner viewing client via the one or more transmit interfaces, where in the late joiner viewing client joins the screen sharing session after the beginning of the screen sharing session; and
sending subsequently received delta frames to the one or more viewing clients and to the late joiner viewing client via the one or more transmit interfaces.
1 Assignment
0 Petitions
Accused Products
Abstract
In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses for accepting late joiners with screen sharing including, for example, means for receiving, at a server, a key frame from a publishing client sharing its screen, the key frame defining the screen of the publishing client in its entirety at the beginning of a screen sharing session with one or more viewing clients; transmitting the key frame to the one or more viewing clients; iteratively processing each of a plurality of delta frames from the publishing client specifying changes to the screen of the publishing client, wherein the iterative processing includes: (i) receiving each delta frame, (ii) updating an aggregated current key frame with the delta frame received, and (iii) sending the delta frame to the one or more viewing clients. Such means further include: accepting a late joiner viewing client for the screen sharing session; sending the aggregated current key frame to the late joiner viewing client; and sending subsequently received delta frames to the one or more viewing clients and to the late joiner viewing client. Other related embodiments are disclosed.
124 Citations
18 Claims
-
1. A method comprising:
-
transmitting, with a video distribution hub, a key frame to one or more viewing clients, the key frame defining a screen of a publishing client in its entirety at a beginning of a screen sharing session with one or more viewing clients, wherein the screen includes one or more active windows to provide dynamically changing content; maintaining, with the video distribution hub, at least one current key frame comprising the key frame updated, with a frame aggregator, utilizing one or more delta frames that specify changes to the key frame; iteratively processing, with the video distribution hub, each of a plurality of delta frames specifying changes to the one or more active windows, wherein the iterative processing comprises; (i) receiving each delta frame via a receive interface of the video distribution hub, (ii) updating an aggregated current key frame with the delta frame received with the frame aggregator, and (iii) sending the delta frame to the one or more viewing clients via one or more transmit interfaces of the video distribution hub; sending the current key frame to a late joiner viewing client via the one or more transmit interfaces, where in the late joiner viewing client joins the screen sharing session after the beginning of the screen sharing session; and sending subsequently received delta frames to the one or more viewing clients and to the late joiner viewing client via the one or more transmit interfaces. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, are configurable to cause the one or more processors to:
-
transmit, with a video distribution hub, a key frame to one or more viewing clients, the key frame defining a screen of a publishing client in its entirety at a beginning of a screen sharing session with one or more viewing clients, wherein the screen includes one or more active windows to provide dynamically changing content; maintain, with the video distribution hub, at least one current key frame comprising the key frame updated, with a frame aggregator, utilizing one or more delta frames that specify changes to the key frame; iteratively process, with the video distribution hub, each of a plurality of delta frames specifying changes to the one or more active windows, wherein the iterative processing comprises; (i) receiving each delta frame via a receive interface of the video distribution hub, (ii) updating an aggregated current key frame with the delta frame received with the frame aggregator, and (iii) sending the delta frame to the one or more viewing clients via one or more transmit interfaces of the video distribution hub; send the current key frame to a late joiner viewing client via the one or more transmit interfaces, where in the late joiner viewing client joins the screen sharing session after the beginning of the screen sharing session; and send subsequently received delta frames to the one or more viewing clients and to the late joiner viewing client via the one or more transmit interfaces. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
a physical memory device; one or more processors coupled with the physical memory device, the one or more processors configurable to transmit, with a video distribution hub, a key frame to one or more viewing clients, the key frame defining a screen of a publishing client in its entirety at a beginning of a screen sharing session with one or more viewing clients, wherein the screen includes one or more active windows to provide dynamically changing content; maintain, with the video distribution hub, at least one current key frame comprising the key frame updated, with a frame aggregator, utilizing one or more delta frames that specify changes to the key frame; iteratively process, with the video distribution hub, each of a plurality of delta frames specifying changes to the one or more active windows, wherein the iterative processing comprises; (i) receiving each delta frame via a receive interface of the video distribution hub, (ii) updating an aggregated current key frame with the delta frame received with the frame aggregator, and (iii) sending the delta frame to the one or more viewing clients via one or more transmit interfaces of the video distribution hub; send the current key frame to a late joiner viewing client via the one or more transmit interfaces, where in the late joiner viewing client joins the screen sharing session after the beginning of the screen sharing session; and send subsequently received delta frames to the one or more viewing clients and to the late joiner viewing client via the one or more transmit interfaces. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification