fix(rn,JingleSessionPC) remove aggressive layer suspension in RN
It's possible we get sender constraint messages while operations to
change the direction in the JVB session are in progress so we currently
have no predictable way to properly suspend video without races.
Since this will be solved when we move to transceivers, this is a
compromise we are making.
feat(multi-stream-support) Add track streaming status (#1855)
* feat(multi-stream-support) Add TrackStreamingStatus class
update JitsiRemoteTrack to init and dispose TrackStreamingStatus
stop emitting LASTN_ENDPOINT_CHANGED event when source name signaling is enabled
convert TrackStreamingStatus class to typescript
* rename methods and use TrackStreamingStatus enum
* update jdocs for JitsiConferenceEvents.FORWARDED_SOURCES_CHANGED
feat: Adds a property to JitsiParticipant is hidden from recorder. (#1889)
* feat: Adds a property to JitsiParticipant is hidden from recorder.
When hiddenFromRecorder is enable in config we check the presence for the flag (the jwt identity part).
* squash: Fixes comments.
fix(qualitycontrol) SenderVideoConstraintsV2 changed to SenderSourceConstraints.
The colibri class name for the source name sender constraints changed from SenderVideoConstraintsV2 to SenderSourceConstraints.
The new format is {colibriClass: 'SenderSourceConstraints', sourceName: 'b6746083-v0', maxHeight: 180}
feat(multi-stream-support) Adjust presence and videoType bridge message. (#1887)
* feat(multi-stream-support) Adjust presence and videoType message.
Adjust the sourceInfo for all the available local tracks. Do not add handlers for videoType changes on the peer since the videoType doesn't change when multiple stream support is enabled.
* fix(presence) Send the presence in old format for backwards compat.
Send the presence messages in both the old and new format when source name signaling is enabled and sending multiple streams is disabled.
* fix(JitsiConference) Send the videoType bridge msg after mute/unmute op is complete.
* ref(multi-stream-support) Throw if a track is being replaced with a track of different videoType.
This is not supported in the multi sender enabled mode.
* Address review comments.
feat(multi-stream-support) Configure the senders based on SenderVideoConstraintsV2.
The encodings for local video tracks are confiugured based on the SenderVideoConstraintsV2 constraints received from the bridge. The constraints are sourceName based. Also ignore enableLayerSuspension flag since it has been deprecated and layer suspension has been enabled by default. Also having it off makes screensharing on Chrome in unified plan not work as expected.
feat(multi-stream-support) Add the support for multiple local video streams.
* feat(multi-stream-support) Add the support for multiple local video streams.
This feature is behind 'sendMultipleVideoStreams' config.js flag and is currently supported only on clients running in Unified plan mode.
* squash: Use the track index from source name to find the matching transceiver on unmute.
Messaging methods in lobby room
getLocalId to get the local lobby room id from jid
setMessageListener to listen for messages in lobby room
Reviewed-by: Fecri Kaan Ulubey <f.kaan93@gmail.com>
ref(lobby chat) refactor lobby chat api to conform to other existing lib-jitsi-meet apis
feat(multi-stream-support) Handle SDP munging for multiple local/remote streams per ep. (#1868)
* feat(multi-stream-support) Handle SDP munging for multiple local/remote streams/ep.
A new SDPSimulcast class is added for handling SDP munging for local and remote descriptions to handle multiple streams for both local and remote endpoints. This new class will be used only for unified plan implentation. The sdp-simucast npm package will be used for plan-b and deprecated later when all the clients switch to unified plan.
* fix(build) fix building with TS code
Use the Babel preset for the webpack bundle since Babel 7 already
understands TS and ts-loader uses tsc instead, which we configure
differently.
* squash: Add unit test and address review comments.
Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>
fix(JingleSessionPC) Do not force track removal at pc level on user leave.
When a user leaves, the ssrcs associated with the ep are removed from the remote description and a renegotiation is forced. The browser then fires 'removetrack' event on the associated MediaStream when sRD is called with ssrcs removed. The remote track is then disposed of in the event handler. Therefore, there is no need to delete the tracks at the TPC level before renegotiation. This also prevents the 'Removed track not found for stream' events from showing up in the browser console log.
Emitting declarations generated these errors:
~~~~
modules/transcription/audioRecorder.js:3:1 - error TS9005: Declaration emit for this file requires using private name 'TrackRecorder'. An explicit type annotation may unblock declaration emit.
3 const RecordingResult = require('./recordingResult');
~~~~~
modules/transcription/recordingResult.js:13:1 - error TS9005: Declaration emit for this file requires using private name 'RecordingResult'. An explicit type annotation may unblock declaration emit.
13 const RecordingResult = function(blob, name, startTime, wordArray) {
~~~~~
modules/transcription/transcriber.js:1:1 - error TS9006: Declaration emit for this file requires using private name 'SphinxService' from module '"/Users/saghul/work/jitsi/lib-jitsi-meet/modules/transcription/transcriptionServices/SphinxTranscriptionService"'. An explicit type annotation may unblock declaration emit.
1 const AudioRecorder = require('./audioRecorder');
~~~~~
modules/transcription/word.js:7:1 - error TS9005: Declaration emit for this file requires using private name 'Word'. An explicit type annotation may unblock declaration emit.
7 const Word = function(word, begin, end) {
~~~~~
Found 4 errors.
~~~~
ref(JingleSession) Recycle m-lines by rejecting them on source removal.
* ref(JingleSession) Recycle m-lines by rejecting them on source removal.
By rejecting the m-lines on source removal (setting the port to 0 on the associated m-line), m-lines can be recycled for new sources instead of appending new ones.
* chore(deps) update sdp-interop@latest.
ref(TPC) Remove an unnecessary toUnified sdp conversion.
sLD is called immediately after createOffer/createAnswer, therefore the desc provided by createOffer/createAnswer can be directly passed to sLD without the need for converting it to unified plan format. This also fixes a warning seen on the browser console that says 'The description does not look like plan-b'.