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
With the way simulcast is implemented in webrtc.rs, on the publisher side we will receive multiple track remotes with different .rid() values, so the current architecture needs to be changed to support simulcast.
What I'm envisioning is:
There will be a single MediaTrackRouter per stream-id held by the Session<>.
In the SessionEvent::TrackPublished handler, we can find or create the router, and then call add_layer(TrackRemote). This will preserve a 1-n relationship between MediaTrackRouter and MediaTrackSubscriber.
The router's broadcast queue will wrap the rtp::packet::Packet with information (like rid, keyframe, etc) and all this analysis will be done in the MediaTrackRouter::rtp_event_loop.
With this architecture, all logic around how to handle layer switching and keyframe syncing will be done inside the MediaTrackSubscriber. We already have plumbing in place to request keyframe on layer change, etc.
The text was updated successfully, but these errors were encountered:
With the way simulcast is implemented in webrtc.rs, on the publisher side we will receive multiple track remotes with different .rid() values, so the current architecture needs to be changed to support simulcast.
What I'm envisioning is:
There will be a single MediaTrackRouter per stream-id held by the Session<>.
In the SessionEvent::TrackPublished handler, we can find or create the router, and then call add_layer(TrackRemote). This will preserve a 1-n relationship between MediaTrackRouter and MediaTrackSubscriber.
The router's broadcast queue will wrap the rtp::packet::Packet with information (like rid, keyframe, etc) and all this analysis will be done in the MediaTrackRouter::rtp_event_loop.
With this architecture, all logic around how to handle layer switching and keyframe syncing will be done inside the MediaTrackSubscriber. We already have plumbing in place to request keyframe on layer change, etc.
The text was updated successfully, but these errors were encountered: