Commit Graph

115 Commits

Author SHA1 Message Date
Robert Pintilii 00221b7482
ref: Convert some reducers to TS (#12002) 2022-08-10 12:56:24 +03:00
apetrus20 52ce9a86ed
feat(large-video/web) Add screen share placeholder (#11971)
* feat(large-video/web) new ScreenSharePlaceholder component
2022-08-05 12:11:09 +03:00
Jaya Allamsetty 1397b9ac80
fix(multi-stream) RN Add listeners for track streaming status updates on large-video.
* fix(multi-stream) RN Add listeners for track streaming status updates on large-video.
Fixes an issue where video on large-video is not being rendered when there is no filmstrip, i.e., there is only 1 remote participant in the call with source-name signaling enabled. Also do not show the screensharing indicator on the camera thumbnail when a virtual SS tile is created for the local screenshare.

* squash: add a comment
2022-06-01 16:13:27 -04:00
Calinteodor f3f9cd3d05
feat(dynamic-branding) add initial mobile SDK customization
* feat(dynamic-branding) sdk customization

* feat(dynamic-branding) unsetDynamicBranding when we disconnect

* feat(dynamic-branding) added branding colors to conference

* feat(dynamic-branding) extracted logger to its own file

* feat(dynamic-branding) reverted style change

* feat(dynamic-branding) unset branding if connection failed

* feat(dynamic-branding) removed index.js, updated imports, added ImageBackground component

* feat(dynamic-branding) created logger feature object

* feat(dynamic-branding) moved brandingStyles to mapStateToProps, used SvGUri

* feat(dynamic-branding) created BrandingImageBackground component, fixed styles

* feat(dynamic-branding) moved BrandingImageBackground to dynamic-branding feature

* feat(dynamic-branding) fixed linter

* feat(dynamic-branding) added style comment
2022-05-23 17:02:14 +02:00
Robert Pintilii 97b958e9ea Fix import and naming 2022-04-21 09:01:51 -05:00
Robert Pintilii f9d1003527 Fixes 2022-04-21 09:01:51 -05:00
robertpin 0abefa87aa ref(stage-filmstrip) Refactor as new layout
Fixes screensharing selection issues. Now when there’s a screen share we just use the old VERTICAL_FILMSTRIP_VIEW layout
Add THUMBAIL_TYPE to determine how to display thumbnails
2022-04-21 09:01:51 -05: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
Jaya Allamsetty 6e0f53293e fix(large-video) Show the pinned participant on large-video when stage filmstrip is disabled.
Fixes an issue where a non-screenshare participant cannot be pinned on stage with filmstrip on stage feature disabled.
2022-03-31 16:10:59 -04:00
Robert Pintilii c4db12cbd6
feat(stage) Add stage filmstrip (multiple participants on stage) (#11145)
See multiple participants on stage
Pin and unpin to stage
Automatic selection of participants to be displayed on the stage filmstrip based on dominant speaker changes
Make Filmstrip a reusable component. Used by MainFilmstrip (old functionality) and the new StageFilmstrip
Rename DominantSpeakerName to StageParticipantNameLabel
Active border now showed only for the dominant speaker (no longer for the pinned participant)
Hide video from the vertical filmstrip for the participants on stage
Update video constraints
Updated pinned indicator
2022-03-29 11:45:09 +03:00
Robert Pintilii 2863b05f37
fix(dominant-label) Fix dominant speaker stage view label (#11071)
Move label to LargeVideo so that's it's centred in the view instead of the whole screen
Move vertical filmstrip max width calculation to a function and use it to set the large video width
2022-03-04 15:10:57 +02:00
Robert Pintilii 2dda749b1f
feat(filmstrip) Make filmstrip user resizable (#10884)
Make conference info and toolbar appear on top of the filmstrip
After a breakpoint, filmstrip pushes over the stage view instead of appearing on top
On user resize make tiles wider; after a breakpoint show grid view in the filmstrip
On filmstrip visibility toggle animate stage view resize
Added config for filmstrip with disableResizableFilmstrip
2022-02-24 14:20:37 +02:00
Saúl Ibarra Corretgé d9f71ee238 fix(etherpad) fix Etherpad closing when dominant speaker changes
Fixes: https://github.com/jitsi/jitsi-meet/issues/8109
2021-12-01 16:08:38 +01:00
Saúl Ibarra Corretgé 162a67fe8b chore(lint) tame the (uppdated) linter 2021-11-09 09:43:55 +01:00
Vlad Piersec 9ef71e3b15 (fix): Change wrong function description 2021-10-06 09:58:49 +03:00
Vlad Piersec f879ecfc70 feat(large-video): Switch to tile view on large video double tap 2021-10-06 09:58:49 +03:00
Vlad Piersec f9cc813e91 feat(dynamic-branding): Add branding option for virtual backgrounds 2021-09-27 12:59:17 +03:00
Mihai-Andrei Uscat 7263829763 feat(DominantSpeakerName): Implement 2021-07-21 09:05:47 +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
Hristo Terezov 2d319d18c3 feat: request video only for visible thumbnails. 2021-06-23 16:57:26 -05:00
Steffen Kolmer e9675453e1
feat: Make Jitsi WCAG 2.1 compliant (#8921)
* Make Jitsi WCAG 2.1 compliant

* Fixed password form keypress handling

* Added keypress handler to name form

* Removed unneccessary dom query

* Fixed mouse hove style

* Removed obsolete css rules

* accessibilty background feature

* Merge remote-tracking branch 'upstream/master' into nic/fix/merge-conflicts

* fix error

* add german translation

* Fixed merge issue

* Add id prop back to device selection

* Fixed lockfile

Co-authored-by: AHMAD KADRI <52747422+ahmadkadri@users.noreply.github.com>
2021-06-10 07:48:44 -05:00
damencho 37e7919fd1 fix: Fixes import warnings. 2021-06-07 11:56:46 -05:00
Tudor-Ovidiu Avram 4e4ff0f60f feat(share-video) Add capability for sharing any direct link video 2021-05-20 13:00:54 +03:00
Jaya Allamsetty 91197bc69f
fix(quality-control): Send the new receiver constraints on state changes.
The client now listens for changes to lastN, selectedEndpoints and maxReceiverVideoQuality in redux to trigger sending  bridge message in the new format. This fixes an issue where the stage view <-> tile view changes prompt two receiver constraints messages to be sent, first with the maxHeight update and then with the selected endpoints update.
2021-05-10 16:06:19 -04:00
Vlad Piersec b135e2a06a feat(Labels): Redesign labels on mobile & web 2021-04-08 11:57:15 +02:00
Jaya Allamsetty 4621fad832
fix(large-video): Always pin screenshare to large-video if it exists.
Set higher preference for screenshare over dominant speaker when trying to elect a participant for large-video. This prevents the dominant speaker from taking over the stage when a user toggles tile view on and off while a screenshare is in progress.
2021-03-26 09:14:03 -04:00
hmuresan f7c0d4f1fe feat(background alpha) Set background transparency 2021-03-23 16:16:56 +02:00
luz paz d3680bbebd fix(misc) follow-up typos
Found via `codespell -q 3 -S ./lang`
2021-03-22 10:41:41 +01:00
Mihai-Andrei Uscat a22d054b10
feat(InviteMore): Relocate invite prompt for mobile friendliness. 2021-03-18 14:09:22 +02:00
Titus-Andrei Moldovan af8072d9d2 chore(mobile) changes the name for screenShares to remoteScreenShares to better reflect it's content 2021-01-29 12:45:53 +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
Jaya Allamsetty d6ab0a72a1 fix(lastN): select screenshare endpoint always when auto pinning.
When trying to auto pin screenshare, always select the endpoint even though it happens to be the large video participant in redux. The auto pin screenshare logic kicks in after the track is added.  If the screenshare endpoint is not among the forwarded endpoints from the bridge, it needs to be selected again.
2020-11-20 10:29:12 -05:00
Saúl Ibarra Corretgé 4211db0893 fix(rn, screen-sharing) don't render own screen-share in large view 2020-11-04 14:45:16 +01:00
Jaya Allamsetty 4b429112f2 fix(iFrame): capturScreenshot - check if the remote participant has a track attached.
Participants that join video muted do not have video tracks attached. Fixes https://github.com/jitsi/jitsi-meet/issues/7942.
2020-10-22 17:22:54 -04:00
Jaya Allamsetty 09124ad7e9 fix(iframe): Use largeVideo video element for screenshot.
Get the existing HTMLVideoElement for large video instead of creating a new video element for capturing the screenshot.
This should prevent the video player from getting displayed on mobile Safari.
2020-09-23 10:35:36 -04:00
Jaya Allamsetty 794713b930
fix(iFrame): Make resizeLargeVideo only available on web 2020-09-21 19:54:45 -04:00
Jaya Allamsetty 1d5decc14f
feat(iFrame): Add a method for capturing screenshot of the large video (#7717) 2020-09-18 11:53:27 -04:00
Jaya Allamsetty bbb4fbd5f8 feat(iFrame): Add a method for resizing large video container from iFrame 2020-09-17 23:41:19 -04:00
Jaya Allamsetty b6792db65f feat(external_api): Add cmd for selecting a user to be displayed in large video 2020-09-14 19:39:19 -04:00
Дамян Минков 651d713206
feat: Allows jvb to control DTLS/SRTP protection profile. (#7626)
* feat: Allows jvb to control DTLS/SRTP protection profile.

* test: Adds dominant speaker change print for large in testing mode.
2020-09-09 16:14:53 -05:00
Mihai Uscat 5f5468995f feat(chat): Make chat push content to the side in large view 2020-07-17 10:04:56 +03:00
Saúl Ibarra Corretgé 6e679f952f redux: refactor loading of middlewares and reducers
Up until now we relied on implicit loading of middlewares and reducers, through
having imports in each feature's index.js.

This leads to many complex import cycles which result in (sometimes) hard to fix
bugs in addition to (often) breaking mobile because a web-only feature gets
imported on mobile too, thanks to the implicit loading.

This PR changes that to make the process explicit. Both middlewares and reducers
are imported in a single place, the app entrypoint. They have been divided into
3 categories: any, web and native, which represent each of the platforms
  respectively.

Ideally no feature should have an index.js exporting actions, action types and
components, but that's a larger ordeal, so this is just the first step in
getting there. In order to both set example and avoid large cycles the app
feature has been refactored to not have an idex.js itself.
2020-06-16 11:24:15 +02:00
Vlad Piersec 8758c222c6 feat(branding): Add ability to customize logo & background 2020-06-10 14:58:27 +02:00
Saúl Ibarra Corretgé d740752522 rn,responsive-ui: refactor dimensions detection
Use a dimensions detecting root component. The Dimensions module does not
measure the app's view size, but the Window, which may not be the same, for
example on iOS when PiP is used.

Also refactor the aspect ratio wrap component since it can be taken directly
from the store.

Last, remove the use of DimensionsDetector on LargeVideo and TileView since they
occupy the full-screen anyway.

Fixes PiP mode on iOS.
2020-06-02 16:54:28 +02:00
Bettenbuk Zoltan 0598e7369b ref: eslint-config-jitsi@1.0.3 2020-05-20 17:14:29 +02:00
Jaya Allamsetty b7eda8df7a fix(safari): set playsInline attribute to true on the video element
The playsInline attribute needs to be set to true for video to be rendered on Safari on iOS
2020-04-14 12:28:09 -04:00
Hristo Terezov eea87be801 fix(electron7):memory leak when the page is hidden
It happens when you are drawing into hidden canvas.
2020-03-03 09:28:23 +00:00
Hristo Terezov 809ac42e4c fix(largeVideo-bg):render canvas only when visible 2020-03-03 09:28:23 +00:00
paweldomas 01e36e1c56 ref: remove connectivity issues indication for remote participants
It's been considered too disruptive and will often misfire especially
if there are issues with the data channels.
2020-02-06 07:54:09 -06:00
Paweł Domas 97e8a6c3f3
Remove UI for local connectivity issues (#5016)
* ref(web): removes video blur when ICE is disconnected.

Removes the blur effect from the large video and stops showing
the network connectivity issues message when ICE disconnects.

The feature has been considered too disruptive and there's a plan to
have it replaced with a more subtle indication.

* remove RECONNECTING key from main.json
2020-02-04 08:25:13 +01:00