Skip to content

Latest commit

 

History

History
49 lines (32 loc) · 2.54 KB

Webcam.md

File metadata and controls

49 lines (32 loc) · 2.54 KB

Webcam Webcam

For usage related information, see webcam feature.

Implementations

The prefix for all packets and capabilities is webcam.

Component Link
client xpra.client.subsystem.webcam
client connection xpra.server.source.webcam
server xpra.server.subsystem.webcam

Capabilities

The client exposes a single webcam boolean capability.
The server exposes the following attributes using the webcam capability prefix:

  • enabled boolean
  • encodings list of strings - encodings supported: only png or jpeg are guaranteed to be supported
  • devices integer - the number of virtual video devices available

Network Packets

Packet Type Arguments Direction
webcam-start device_id, width, height client to server
webcam-ack unused, frame_no, width, height server to client
webcam-frame device_id, frame_no, encoding, width, height, data client to server
webcam-stop device_no

device_id, frame_no, width and height are always integers, encoding is a string.

The device_id must be smaller than the number of virtual video devices.

Flow

  • client requests webcam-start
  • the server responds with a webcam-ack for frame_no 0, the width and height may be different from the one requested
  • the client can then send a webcam-frame for frame_no 1
  • the server responds with a webcam-ack for each frame it receives
  • the client must wait for the webcam-ack before sending the next frame
  • whenever the client decides to stop forwarding the webcam, it must send a webcam-stop packet

If any of these steps fail, a webcam-stop packet must be sent to the peer.