Skip to content

Broadcasting to support multiple WebRTC connections #5148

@leoll2

Description

@leoll2

In Geti Tune, clients can visualize the predictions generated by the inference pipeline in real-time thanks to a WebRTC stream. On the backend side, the output frames are buffered in a queue to decouple the producer (DispatchingWorker) from the consumer (client connected to the WebRTC stream, recv).

Problems arise when there are multiple clients (i.e. multiple connections) to the same WebRTC stream: since the queue is shared, the connections compete with each other to take the frames. If you open multiple browser tabs, for example, you can notice a FPS drop due to this effect.

The solution, already implemented in Geti Prompt, is a mechanism to broadcast the same frame to multiple connections; see FrameBroadcaster for reference. We want to implement the same approach in Geti Tune.

Metadata

Metadata

Assignees

Labels

Geti Tune BackendIssues related to Geti Tune backend

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions