Line no 194 : localTracks[i].stop(); to dispose(); (#750)
localTracks[i].stop();
As localTracks doesn't have stop function , coz of this line getting error and user was not able to left the room or unload
So changed it to :
localTracks[i].dispose();
The general idea is that, when we update/upgrade react-native in
jitsi-meet, it bumps flow-bin's version and we want to be consistent
across jitsi-meet & lib-jitsi-meet.
feat(recording): frontend logic can support live streaming and recording (#741)
* feat(recording): frontend logic can support live streaming and recording
Instead of either live streaming or recording, now both can live together.
The changes to facilitate such include the following:
- Remove the old recording.js module which allowed one recording at a time.
- Remove events for live stream url changes as the url is now part of a
sesssion and not fired independently.
- Availability of sipgw and recording are gone. Instead sessions have a
failure reason. For sipgw sessions, store that failure and emit it to
listeners.
- Create a new recordingManager singleton that can start/stop sessions
and handle updating known state of those sessions. Known state is
emitted through one event.
- Create a JibriSession model to encapsulate state of a session.
* update comments, use map to store sessions
* always pass in focusmucjid
* try to fix jibrisession docs and remove default null
feat: Exposes sending JSON payload through XMPP. (#723)
* feat: Exposes sending JSON payload through XMPP.
Incudes only the payload when firing events for JSON trannsported
through XMPP.
* squash: Addresses feedback.
* squash: Addresses more feedback.
fix(screensharing): set error type for cancelling extension install
When cancelling the prompt to install the extension, instead of
treating it as a generic error treat is as the cancel extension
error. This allows existing logic to trigger that will not show
an error message on cancel.
feat(recording): show the YouTube live stream URL (#736)
* feat(recording): show the YouTube live stream URL
- Pass you_tube_broadcast_id to Jibri so it can create a
YouTube link for the live stream.
- Emit the liveStreamViewURL (the YouTube link) when it
is received from the participant doing the recording.
* set member.liveStreamViewURL only when truthy
Will emit CONNECTION_ESTABLISHED event to fill up the gap where the lib
users are not able to tell whether or not the connection has been
established if there were no interrupted/restored events emitted.
Enables RTPStatsCollector for react-native. The getStats method was
supported long time ago, but the stats produced by the RTPStatsCollector
were not consumed. Now they are needed for the automated testing on RN.
Switches camera id to mandatory when using old gum flow. (#731)
* Switches camera id to mandatory when using old gum flow.
When it fails we retry with different resolutions, and if that doesn't work we remove device id and let gum to decide which device to use.
* Fixes comments.
* refactor packet2JSON to not use jquery
also added unit tests for it and switched to use chrome-headless instead
of phantomjs
* update package-lock
* squash: undo sha512 to sha1 conversion in package-lock
fix(edge): get p2p working up to ice failure (#720)
* fix(edge): get p2p working up to ice failure
Edge does not support trickle ice. In an attempt to work around
such, and get p2p working, some other work was needed to even
get to the point of ice failure. This is that some other work.
* squash: fix typos, no intermediary map
* squash: remove extra line break
Implements the promised based getStats. Enables them for Safari and FF.
Adds stats and audio levels for Safari. Enables the new getStats API for Firefox, that will get rid of the following warning:
'non-maplike pc.getStats access is deprecated, and will be removed in the near future! See http://w3c.github.io/webrtc-pc/#getstats-example for usage.'
Revert "add debug logging for connection quality calculation" (#714)
This reverts commit 1c2c63e656.
The logging was initially added to help debug an issue with
connection quality showing lower than expected. The usefulness
of the logging has diminished and is noisy for browsers that
do not automatically filter console.debug, like Edge.
* fix(SS): Set min and max frame rate to 5
* fix(SS): Set min and max frame rate for the new GUM flow.
* feat(ss_framerate): Add config option for min/max frame rate.
* doc(RTCUtils): Fix params format.
* fix(SS_framerate): Don't pass undefined constraints.
* fix(SS_constraints): Handle chromeMediaSourceId === undefined.
ref(gum): try to reduce complexity of obtainAudioAndVideoPermissions (#707)
* ref(gum): try to reduce complexity of obtainAudioAndVideoPermissions
Even though I walk through the valley of the shadow of death
I will fear no evil... Reduce indenting and repeated calls to
getting desktop streams by creating a promise chain.
* squash: use arrow func
* squash: move constructor support to helper
* squash: put ff into mediastream constructor check
* squash: ff support media stream constructor
MDN states its been supported since 44. ESR is currently
52.
* squash: rename dsoptions, constant defaults
* squash: move comment about missing tracks error handling
* squash: wrap getUserMediaWithConstraints in promise
* squash: split up av funcs
* squash: hey, some tests...are better than no tests?
fix(connection-quality): set min percentage when exceeding a bitrate threshold (#708)
* fix(connection-quality): set min percentage when exceeding a bitrate threshold
In some cases a high bitrate does not equate to a high quality
percentage, because the target itself might be quite high, such
as the case for 1080. In those cases, give credit for the bitrate
being high.
* squash: impl 2, use a max bitrate