When a remote user does a ICE restart and a source-remove followed by source-add is received for its sources, mute event on new remote track may not be fired if the old track hasn't been disposed yet.
Encoder/decoder issues were noticed with AV1 for Safari. This includes no scalability for the stream that is send, not decoded videos on the receiver side, etc. This should be disable until all issues are resolved.
fix(conference) Fix different bugs with startMuted policy. (#2777)
* fix(conference) Fix different bugs with startMuted policy.
If the user changes mute state after joining the call and before the other participats join the call, make sure those state changes are honored.
* feat(startMuted) Ignore startMuted in Jingle from focus.
Apply startMuted policy based on startMuted setting in room meta data.
Moderator settings and AV moderation settings will now be propagated to new endpoints joining the call through room meta data.
Advertise a new capability 'start-muted-room-metadata' to Jicofo for feature detection.
It appears that when the gDM flow is used we do not set properly the sourceId of the shared stream. When the user has multiple screens we use the sourceId to identify the display that is currently shared. Therefore in electron we can't identify the display that is used and we fail.
fix(codec) Always use DD when its supported by Jicofo and browser.
The bridge is now able to use DD headers for VP8 and VP9 as well so there is no need to remove it from remote desc when the call switches from AV1 to VP8/VP9.
Disables AV1 for FF since AV1 is not properly supported (it doesn't support SVC and it doesn't send temporal layers with simulcast).
Added a testing config flag so that we can easily enable it and test it.
Disables VP9 for FF since the simulcast is disabled with FF flag by default. Introduces a few fixes so that if the FF flag is enabled simulcast works. This should also help us to be ready to enable VP9 once the FF config flag for simulcast for VP9 is enabled by default.
For FF 136+ where DD extension is supported, removing DD extension from the SDP will lead to broken scalabilty (the temporal scalability information will be missing and also DD extension header wont be included).
fix(e2ee) avoid restarting media sessions more than once
After enabling E2EE for the first time, keep the media transform
inplace, but make it a no-op.
This simplifies the flow a little since it doesn't require a media
session restart.
Way back when, there were performance concerns when having a transform,
which is what prompted us to implement the restar mechanism, but a lot
has changed since and both audio and video frames don't need to jump
threads these days. We are still not enabling an empty transform at all
times out of precaution.
When joining if there was a modification of presence just before sending the presence in the same millisecond we send later a second presence. While testing we see modifications from e2ee which cause the duplicate presence.