The session's client, or a getter for it (a reconnect replaces the client). Any
IVideoFrameSink works; a BaseRealtimeClient is one.
Produces the frames.
Source identity, MIME type and the deprecated rate cap.
Whether the video bridge is currently actively pumping frames.
The id this bridge's source is registered under.
Calls handler each time the arbiter starts sending this source to the model after it was not: another source
that held the model's only stream stopped or was set aside, or this source was switched back on. The source's
first registration does not count. A frame offered while the source was not sent never reached the model, so an
owner that sends frames only when its picture changes sends its current picture here.
The handler is kept across a re-registration (a reconnect's new client) and called until removed.
Called synchronously from the arbiter's change event; it should not throw.
A function that removes the handler.
Pushes an event-driven frame (e.g. screencast push from RemoteBrowser or stroke completion). Registers the source on first use, so a purely event-driven channel never needs Start.
The base64-encoded image frame.
true if the frame was sent; false if dropped (throttled, not the source the model is
viewing, turned off, track unestablished, or driver lacks video support).
Registers this bridge's source with the session's arbiter now, without starting any poll — so the source is LISTED (and can be switched on or off) before it has pushed a frame. A source that is switched off never pushes one, so without this it could never be switched back on.
true if registered; false when there is no client or no inbound video track (nothing to register with).
Turns this source on or off at the arbiter (a no-op before the first registration other than remembering the choice). A disabled source is not a candidate and forwards nothing.
Whether the model may see this source.
Whether the arbiter tells the model. Pass false when the caller sends its own note.
Starts the periodic frame pump if the session has an established inbound video track.
true if video streaming was started; false if the model does not support
inbound video (or track was not established), falling back to tool-only behaviour.
Stops the bridge: clears the poll timer and removes this source from the arbiter. Activation handlers stay, and are called again if the source registers again.
Shared bridge connecting a visual channel surface to the session's inbound video track, by way of the session's VideoSourceArbiter.