Moves caching of selected endpoint out of data channel.
This currently fixes problem for participants joining in a room with other participants and trying to send initial value of selected local participant will throw an error. And fixes a potential problem if the UI can select participants before their video is available, before session initiated, can make local state with jvb inconsistent. Also if we want to have multiple selected endpoints or pinned participants and this is done before session-initiate caching should be done before creating data channel (currently selecting multiple is not possible).
Since React Native doesn't have HTML elements, depend on HTML element
properties and don't necessarily depend on them being properties on
actual HTML elements but rather assume plain JavaScript objects.
Rename "stream" to "track" in RTC context plus fixes
Rename variables with "stream" in name which refer to JitsiTrack.
Rename TRACK ADDED/REMOVED events.
Try to reduce direct access to remoteTracks object.
Log warning message when track is overwritten.
Returns Promise from mute/unmute and ignores requests while mute/unmuting is in progress. Moves mute/unmute methods to JitsiLocalTrack as said in API docs.
Fixes reporting local resolution when simulcast is enabled. Removes storing localSSRCs in JingleSessionPC and use the available ssrcs from the local tracks.
Leaves ssrcOwners for local use in JingleSessionPC, uses remote streams from RTC for ssrc mapping to resources. For local video/audio stream ssrc to resource we use JingleSessionPC.localStreamsSSRC.