-
Notifications
You must be signed in to change notification settings - Fork 462
Description
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.