You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Joshua Garner edited this page Dec 28, 2016
·
7 revisions
The screen share protocol in Ulterius works by looking for differences in individual frames of the desktop (think P-frames). These changes are then sent to the client as patches which are then stitched into the canvas.
Screen capture data is packed into the following binary format:
-----Body-----
Guid (byte[16])
Bounds X (int32)
Bounds Y (int32)
Bounds Top (int32)
Bounds Bottom (int32)
Bounds Left (int32)
Bounds Right (int32)
Jpeg Patch (byte[<remaining>])
----------
For example, the web client uses this parse function (using the jDataView library):
When starting an Ulterius screen share stream these patches are sent to the client in real time.
You can also request a patch consisting of the entire screen (I-frame) by using the fullframe endpoint. The full frame response comes in a JSON format instead of binary:
declareinterfaceFrameData{screenBounds: {top: number,bottom: number,left: number,right: number,x: number,y: number,height: number,isEmpty: boolean,},frameData: number[]//byte array; the actual image}