Commit Graph

145 Commits

Author SHA1 Message Date
William Liang d3fe246f61
refactor(multi-stream) refactor virtual screenshare creation and support plan-b clients (#11445)
* fix(multi-stream) update selector to find ss track by videoType or mediaType

* ref(multi-stream) move fake ss creation logic and support video type changed

* refactor(multi-stream) decouple sending and receiving multiple screenshare streams

* fix(multi-stream) fix receiver constraints with signaling and without multi-stream

* fix(mutli-stream) ensure plan b original SS thumbnail displays avatar

* fix(multi-stream) show fake SS for plan b sender

* refactor(multi-stream) poc for moving SS creation to state listener

* remove reference to fake SS creation

* fix lint errors

* rename to virtual screenshare participants

* fix minor bugs

* rename participant subscriber to specify web support only
2022-04-29 10:32:16 -04:00
Mihaela Dumitru 72111114b6
fix(breakout-rooms) reset rooms when conference is left or failed (#11447) 2022-04-28 11:34:23 +03:00
Дамян Минков bbfe7b4f32 fix: Skips clearing tracks on conference failed.
In case of conference failed as max number of occupants reached, we should skip clearing the local tracks to keep state of pre-join screen. Otherwise, on join we will join muted even though on prejoin screen it was unmuted on the initial attempt.
2022-04-15 08:48:26 -05:00
William Liang 4a375aa2a4
fix(multi-stream) update screenshare display name (#11376) 2022-04-14 13:07:17 -04:00
William Liang 0cf1b7e3d9 fix(multi-stream) fix screenshare auto pin bug 2022-04-08 12:57:39 -04:00
Calinteodor 7c523f3250
language(typescript) actionTypes.js -> actionTypes.ts (#10940)
* language(typescript) first ts component, added ts configurations, actionTypes.js are now ts files
2022-04-08 15:24:58 +03:00
William Liang ae6454c59c fix(multi-stream) only create local ss particpant with multi-stream enabled 2022-04-07 12:17:56 -04:00
William Liang 70090fd716
feat(multi-stream) Add fake participant tile for screen share.
prioritize participants with screen shares
support local screen share track
auto pin screen share
support screen share for large video
ensure fake screen share participants are sorted
fix local screen share in vertical filmstrip
fix local screen share in tile mode
use FakeScreenShareParticipant component for screen share thumbnails
ensure changes are behind feature flag and update jsdocs
fix bug where local screen share was not rendering
update receiver constraints to include SS source names
remove fake ss participant creation on track update
fix: handle screenshare muted change and track removal
refactor: update key values for sortedFakeScreenShareParticipants
address PR comments
refactor getter for screenshare tracks
rename state to sortedRemoteFakeScreenShareParticipants
2022-04-04 14:57:58 -04:00
Jaya Allamsetty 9f72c318d6
feat(multi-stream-support) Add screenshare as a second video track to the call.
* feat(multi-stream-support) Add screenshare as a second video track to the call.
This feature is behind a sendMultipleVideoStreams config.js flag. sourceNameSignaling flag also needs to enabled. Sending multiple tracks is currently supported only on endpoints running in unified plan mode. However, clients with source-name signaling enabled and running in plan-b can still receive multiple streams .

* squash: check if there is an existing track before adding camera/desktop

* squash: enable multi-stream only on unified plan endpoints.
2022-03-15 13:24:49 -04:00
William Liang 05dc018671
feat(multi-stream-support) Replace participant connection status logic with track streaming status (#10934) 2022-02-23 07:30:10 -06:00
Дамян Минков 348414cc84 fix: Fixes muted state for moderators when login (secure-domain). 2021-12-23 13:47:25 -06:00
William Liang 5461bb52c8
feat: Update video receiver constraints to use source names (#10527)
* feat: Use source name based receiver constraints

* add sourceNameSignaling feature flag to config

* move source name specific variables into if block

* ensure sourceName is defined in constraints

* use source name for selectedSources

* use selector to find video track by participant id

* add selector to encapsulate logic to get track source name

* refactor getTrackSourceNameByMediaTypeAndParticipant selector

* rename variable

* move flags config into Feature Flags section

* do not set constraints for local large video

* rename prioritizedSources to onStageSources

* fix flow error

* refactor visibleRemoteTrackSourceNames to a constant

* use selector to get feature flags

* rename selector function

* fix flow error

* add selector for sourceNameSignaling feature flag
2021-12-16 11:49:36 -06:00
Saúl Ibarra Corretgé 9279586e8c fix(tracks) fix disposing of local tracks
Don't just clear the storage for them, local tracks must be disposed, in order
for RN capturer to be freed for example.
2021-12-10 15:49:44 +01:00
Дамян Минков ae5c364333 fix(breakout-rooms) cleanup local tracks when a conference is left. 2021-12-09 12:13:59 -06:00
Jaya Allamsetty 700c7c523d
feat(tracks) Clean up the track if a source addition is rejected. (#10562)
* feat(tracks) Clean up the track if a source addition is rejected.
When jicofo rejects a source-add because of sendder limits, dispose and remove the local track from the conference.

* chore(deps) update LJM to latest.
2021-12-09 07:48:55 -06:00
Saúl Ibarra Corretgé c48aa44af3 fix(breakout-rooms) cleanup remote tracks when a conference is left 2021-12-08 16:52:38 -06:00
Saúl Ibarra Corretgé c5920bb8a5 fix(lint) fix all eslint warnings 2021-11-26 10:18:31 +01:00
Tudor D. Pop a618697e34
feat(notifications) revisit timeouts and make them configurable 2021-11-24 12:05:27 +01:00
Saúl Ibarra Corretgé 162a67fe8b chore(lint) tame the (uppdated) linter 2021-11-09 09:43:55 +01:00
Robert Pintilii a97b700712
fix(tracks) Use duration from JitsiTrack (#10304) 2021-11-08 10:55:28 +02:00
robertpin 76fc5a0806 fix(av-moderation) Stop screensharing on video mute on native
When the moderator stops the video for the participant stop screensharing (removes the track doesn't just mute it)
2021-10-29 09:21:47 +03:00
robertpin 92c6324ff3 fix(screenshare) Add timestamp to desktop track
Send screenshare duration to analytics
2021-10-21 12:44:09 +03:00
robertpin 001ae54a7c feat(screenshot-capture) Updated screensharing screenshot capture
Changed screen capture to non effect. Effects are used to alter the stream, this feature does not need to alter the stream, it just needs access to it

Changed image diff library. Previous library diff’ed the whole image, the new one has en early return threshold

Use ImageCaptureAPI to take the screenshot. Added polyfill for it and polyfill for createImageBitmap

Added analytics
2021-10-05 10:25:27 +02:00
robertpin 57083c174f fix(av-moderation) Stop screensharing and video on moderation start
When video moderation starts, stop screensharing and ignore if video was on when sharing started
2021-09-27 10:17:12 +03:00
Saúl Ibarra Corretgé 35e363577c fix(ios) create audio track early
In iOS 15 we observe that not creating the audio track early may result in not
getting audio after unmuting for the first time.

Creating the audio track early means the first unmute doesn't need to add the
track to the conference, resulting in a much faster operation.

Note that creating the track early doesn't mean we will start unmuted, the track
will be muted.
2021-09-24 12:52:54 +02:00
robertpin 41c38427c1 Fix stop everyone's video
Stop everyone's video now also stops screensharing for the moderator that did the action, not just video
2021-09-23 10:40:01 +03:00
robertpin ab366b9d94
fix(av-moderation) Advanced moderation improvements (#9935)
* Update moderation in effect notifications

Only display one notification for each media type. Display notification for keyboard shortcuts as well

* Update muted remotely notification

Display name of moderator in the notification

* Fix indentation on moderation menu

* Update text for video moderation

* Added moderator label in participant pane

* Update microphone icon in participant list

For participants that speak, or are noisy, but aren't dominant speaker, the icon in the participant list will look the same as the dominant speaker icon but will not change their position in the list

* Added sound for asked to unmute notification

* Code review changes

* Code review changes

Use simple var instead of function for audio media state

* Move constants to constants file

* Moved constants from notifications to av-moderation
2021-09-15 11:28:44 +03:00
robertpin 1dc8bfa631
feat(av-moderation) Updated Advanced moderation (#9875)
Co-authored-by: Vlad Piersec <vlad.piersec@8x8.com>
2021-09-10 14:05:16 +03:00
hmuresan 6f41ef75d7 fix(notifications) Fix hiding audio/video lost notification 2021-08-05 16:36:13 +03:00
Hristo Terezov 0bdc7d42c5
feat: Participants optimisations (#9515)
* fix(participants): Change from array to Map

* fix(unload): optimise

* feat: Introduces new states for e2ee feature.

Stores everyoneSupportsE2EE and everyoneEnabledE2EE to minimize looping through participants list.

squash: Uses participants map and go over the elements only once.

* feat: Optimizes isEveryoneModerator to do less frequent checks in all participants.

* fix: Drops deep equal from participants pane and uses the map.

* fix(SharedVideo): isVideoPlaying

* fix(participants): Optimise isEveryoneModerator

* fix(e2e): Optimise everyoneEnabledE2EE

* fix: JS errors.

* ref(participants): remove getParticipants

* fix(participants): Prepare for PR.

* fix: Changes participants pane to be component.

The functional component was always rendered:
`prev props: {} !== {} :next props`.

* feat: Optimization to skip participants list on pane closed.

* fix: The participants list shows and the local participant.

* fix: Fix wrong action name for av-moderation.

* fix: Minimizes the number of render calls of av moderation notification.

* fix: Fix iterating over remote participants.

* fix: Fixes lint error.

* fix: Reflects participant updates for av-moderation.

* fix(ParticipantPane): to work with IDs.

* fix(av-moderation): on PARTCIPANT_UPDATE

* fix(ParticipantPane): close delay.

* fix: address code review comments

* fix(API): mute-everyone

* fix: bugs

* fix(Thumbnail): on mobile.

* fix(ParticipantPane): Close context menu on click.

* fix: Handles few error when local participant is undefined.

* feat: Hides AV moderation if not supported.

* fix: Show mute all video.

* fix: Fixes updating participant for av moderation.

Co-authored-by: damencho <damencho@jitsi.org>
2021-07-09 15:36:19 +03:00
Andrei Gavrilescu da7358d564
feat(audio-screen-share): improved ux flow (#9411)
* add button state / helper dialog

* new audio screen share flow

* change error message

* address a couple of merge conflicts

* fix lint

* address code review

* address code review

* restrict audio screen share on mobile browsers
2021-07-07 11:07:30 +03:00
Дамян Минков 64ae9c7953
feat: UI part for A/V moderation. (#9195)
* feat: Initial UI part for A/V moderation.

Based on https://github.com/jitsi/jitsi-meet/pull/7779

Co-authored-by: Gabriel Imre <gabriel.lucaci@8x8.com>

* feat: Hides context menu in p2p or only moderators in the meeting.

* feat: Show notifications on enable/disable.

* feat(moderation): Add buttons to participant list & notifications

* fix(moderation): Fix raised hand participant leaving

* feat(moderation): Add support for video moderation

* feat(moderation): Add mute all video to context menu

* feat(moderation): Redo participants list 'More menu'

* fix: Fixes clearing av_moderation table.

* fix: Start moderation context menu

* fix(moderation): Show notification if unapproved participant tries to start CS

Co-authored-by: Gabriel Imre <gabriel.lucaci@8x8.com>
Co-authored-by: Vlad Piersec <vlad.piersec@8x8.com>
2021-06-23 14:23:44 +03:00
hmuresan b998d80ee3 fix (external-api): fix notify video mute changed when presenting
- small refactor to trigger `notifyVideoMutedStatusChanged` correctly when participant is presenting
2021-05-04 18:23:32 +03:00
Alex Bumbu cf37d34923 fix(ios) fix leaving the meeting when screen-sharing 2021-04-28 13:33:11 +02:00
Gabriel Imre d014a52ab3
feat(participants-pane) implement participants pane 2021-04-21 15:48:05 +02:00
Andrei Gavrilescu 6d3d65da03
feat(screenshare): Audio only screenshare (#8922)
* audio only screen share implementation

* clean up

* handle stop screen share from chrome window

* update icon
2021-04-12 10:37:39 +03:00
Mihai-Andrei Uscat 1ad40de487
feat(external_api): Add command for toggling camera on mobile web 2021-03-25 13:48:49 +02:00
Hristo Terezov f50872285d ref(Filmstrip): Use Thumbnail component. 2021-03-18 09:37:55 -05:00
Mihai-Andrei Uscat aef0287605
feat(ToggleCamera): Implement for web. 2021-03-17 10:44:18 +02:00
Saúl Ibarra Corretgé 22b6d32174 feat(build,virtual-background) don't use an external bundle for the effect
The majority of the code is in the WASM file and models, this is just a few KB.
It's so little, in fact, that the performance hint for the main bundle didn't
have to be adjusted.
2021-03-12 23:00:50 +01:00
tudordan7 194d357005 feat(virtual-backgrounds) add virtual background support 2021-03-12 15:05:20 +01:00
Saúl Ibarra Corretgé d93a402cc2 fix(rn,tracks) fix not showing alert when permission is not granted
The error object changed its shape through time, adapt to the change.
2021-03-05 12:59:13 +01:00
Tudor-Ovidiu Avram f50fd7b7bd fix(gum) add event handling for SLOW_GET_USER_MEDIA
Show an overlay with a spinner when slow gUM is fired
2021-02-23 13:51:24 +02:00
Pawel Domas e0aab11f98 fix: TypeError: Cannot read property 'isAudioTrack' of undefined
When there's no jitsiTrack set on the base/tracks entry it means
a track is being created (get user media is in progress).
2021-02-17 09:25:09 -06:00
Hristo Terezov a6c6cd6c56 fix: Add GUM timeout & improve device permissions 2021-02-08 15:53:38 -06:00
hmuresan 4dda508708 feat(external_api) add command and event listener for CS 2021-01-12 17:23:40 +02:00
Дамян Минков 97f47998ba
feat: Exposes a method for checking is remote track received and played/testing. (#8186)
* feat: Exposes a method for checking is remote track received and played.

Used for some tests in torture.

* squash: Drop not matching string.

Duplicate translation key with not matching content.

* squash: Moves torture specific functions to features/base/testing.

Listens for media events from the video tag of the large video and stores them in redux.

* squash: Fix comments.

* feat: Listens for media events from the video tag of the remote videos and stores them in redux.

* squash: Fix undefined videoTrack if between switches.
2020-12-08 08:01:16 -06:00
Titus-Andrei Moldovan 9a35026d6a feat(android) add screen-sharing support
Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>
Co-authored-by: zycwind <391321232@qq.com>
2020-11-04 14:45:16 +01:00
Hristo Terezov 35b5f6df06 s/isLocalVideoTrackMuted/isLocalCameraTrackMuted/ 2020-10-26 14:03:40 -05:00
Hristo Terezov ca2343c31a ref(StatusIndicators): Use video muted from redux. 2020-10-26 11:03:31 -05:00