View Source WebRTC Endpoint
The WebRTC Endpoint is responsible for sending/receiving media tracks to/from a web borwser.
TrackSender is responsible for observing track activity and publishing track data to the engine.
In particular, it is responsible for sending
Membrane.RTC.Engine.Event.TrackVariantPaused events, and replying to
A browser can pause sending some encoding when e.g. it doesn't have enough bandwidth.
This fact is not communicated to the server.
VariantTracker is responsible for tracking variant activity i.e. whether it is still active.
TrackReceiver is responsible for receiving a track from the engine.
In particular, it is responsible for sending the
forwarding keyframe requests from the browser to the
TrackSender and repairing RTP packets after
switching track variants.
ConnectionAllocator is responsible for probing the connection and negotiating bandwidth with
The RTC Engine ships with two implementations of
Membrane.RTC.Engine.Endpoint.WebRTC.NoOpConnectionAllocator- always grants bandwidth requested by
Membrane.RTC.Engine.Endpoint.WebRTC.RTPConnectionAllocator- probes the connection with RTP padding packets and grants bandwidth basing on GCC estimates
You can read more in
Membrane.RTC.Engine.Endpoint.WebRTC.ConnectionAllocator module docs.