Open
Description
Currently the way simulcast support is implemented(for ingress) is that each send encoding on the remote side results in a distinct track being created. i.e.
const transceiver = pc.addTransceiver(track, {
direction: 'sendonly',
sendEncodings: [{
{ rid: 'l', active: true, maxBitrate: 250000 },
{ rid: 'm', active: true, maxBitrate: 750000 },
{ rid: 'h', active: true, maxBitrate: 1500000 },
},
});
// Do negotiation with webrtc-rs
Will result in on_track
firing three times webrtc-rs.
This is not in line with the specification as this is logically still a single track, not three separate tracks.
Similarly when egress support is merged we should rework that to use a single egress track with send encoding being internal.
Proposed behaviour
We should bring the behaviour in line with the specification i.e. only a single track should be created, regardless of the number of sendEncodings
the remote peer specified.