Commit Graph

678 Commits

Author SHA1 Message Date
Arthurk12
5dce39f8bf fix(webcam): unresponsive camera button on mobile
Makes clicking the camera button always open the video preview modal
when a camera is already shared on a mobile endpoint even when
skip_video_preview is true.
This allows mobile users to change virtual backgrounds.
2022-01-13 17:54:57 +00:00
Arthurk12
9c571dcc82 fix(webcam): unresponsive webcam selector button
Video preview modal opens when user clicks on the webcam selector
button/chevron even if the client is set to skip video preview
(userdata-bbb_skip_video_preview=true).
2022-01-12 19:25:35 +00:00
Ramón Souza
f6e65f58c5 merge 2.4 into develop and resolve conflicts - partial 2022-01-12 16:40:45 +00:00
Anton Georgiev
0ea6b4151e
Merge pull request #13880 from frankemax/username-long-video-item
fix(video): webcam video username dropdown
2022-01-07 15:55:51 -05:00
prlanzarin
3720ca722b fix(webcams): fix client crash on camera user ejection
Added extra proptypes validation to video-list-item

Made sure to add extra ?. checks to voiceUsers as well because... who knows?

Removed unused user role prop from video-list-item
2021-12-23 11:52:25 -03:00
Max Franke
7e2a3c3bca feat(webcams): client side implementation of webcam pin 2021-12-21 16:58:39 -03:00
prlanzarin
0ac4148f80 fix(webcams): keep base peer object in component, fix viewers randomly failing
The base peer object reference was moved from the component to service for _reasons_

That caused an issue where the component lifecycle would mess up that
centralized reference dictionary on certain conditions. That could cause viewing
sessions to fail intermittently

This reverts the location of the base dictionary reference back to
video-provider/component
2021-12-16 12:13:20 -03:00
Anton Georgiev
c6852987bc
Merge pull request #13869 from prlanzarin/u24-ill-harmonics
feat(webcams): exclude voice floor holder from camera quality limiter
2021-12-15 13:36:48 -05:00
Ramón Souza
d1c516fef6 resolve html5 conflicts 2021-12-10 21:07:35 +00:00
prlanzarin
ca7fdee11e fix(webcams): bad reference to enableWebcamSelectorButton 2021-12-09 21:50:38 +00:00
Anton Georgiev
797fc49633 TEMP 2021-12-09 20:37:05 +00:00
Max Franke
166dac09a3 fix(video): webcam video username dropdown
Fix a problem that username in video container isn't wrapped if it's too long.
Fix a problem that can cause the audio indicator to disappear.
Fix some problems with the overflow property.
Refactor in css for the talking indicator be more centralized
2021-12-09 14:25:16 -03:00
prlanzarin
67ec798758 feat(webcams): preserve floor holder's original camera profile 2021-12-08 22:53:16 +00:00
Ramón Souza
d11c6b69f8 use prefixed fullscreen event for safari 2021-12-06 12:18:23 +00:00
Anton Georgiev
def60fbcbc
Merge pull request #13818 from prlanzarin/u24-lift-wsb
feat(webcam): add a way to re-open video preview without multiple cameras
2021-12-02 17:26:23 -05:00
prlanzarin
fa64708e87 fix: tackle fallout from lifting a handful of dislocated changes 2021-12-02 18:57:25 +00:00
prlanzarin
da6ab02122 chore: add forceRelayOnFirefox option (false by default)
- forceRelayOnFirefox: whether TURN/relay usage should be forced to work
around Firefox's lack of support for regular nomination when dealing with
ICE-litee peers (e.g.: mediasoup).
  * See: https://bugzilla.mozilla.org/show_bug.cgi?id=1034964
- iOS endpoints are ignored from the trigger because _all_ iOS browsers
  are either native WebKit or WKWebView based (so they shouldn't be affected)
2021-11-30 20:31:12 +00:00
Max Franke
32aa4349b0 feat(video): remove video button warning
Changes the EmojiButton implementation on videoButton to not be a descendant
of <button>, avoiding the warning.
2021-11-26 13:43:07 +00:00
prlanzarin
fc01544d87 fix(webcams): disable webcam selector and always open video-preview in mobile envs 2021-11-26 13:19:20 +00:00
prlanzarin
23c49902a0 fix(webcams): always unshare cameras if video selector is active 2021-11-26 13:14:40 +00:00
Mario Jr
54bda21287 chore(video): change default setting to enable webcam's button selector
Renamed this setting and added some docs about it
Complements #979
2021-11-26 13:12:07 +00:00
Max Franke
310add10ed feat(webcam): add a little button to webcam button
Add the <ButtonEmoji/> to the webcam button. Now it
is possible to change the webcam settings and change
your settings without having to turn off sharing.
Modifies the <ButtonEmoji/> component so that it can
receive an onClick per props.
It is possible to disable this feat in the settings.yml
2021-11-26 12:53:11 +00:00
Anton Georgiev
5162b4c403
Merge pull request #13679 from JoVictorNunes/issue-13241
fix: virtual background not kept when switching from breakout to main room
2021-11-19 15:11:21 -05:00
prlanzarin
13eb9fe702 refactor(webcams): re-use lock check from video-provider in video-preview 2021-11-19 18:23:17 +00:00
João Victor
6524f70941 support for storing multiple virtual backgrounds 2021-11-19 08:10:24 -03:00
Anton Georgiev
542db847ff
Merge pull request #13574 from Tainan404/smooth-reconnection-25
Improve data structure to not break on reconnections
2021-11-17 15:55:21 -05:00
Ramón Souza
4207502db1 remove unused imports/exports 2021-11-17 12:26:26 +00:00
Joao Victor
77c32a6391 fix: virtual background not kept when switching from breakout to main room 2021-11-11 11:33:55 -03:00
Ramón Souza
c2f1ec7456 Merge remote-tracking branch 'upstream/develop' into styled-components-8 2021-11-08 14:00:20 +00:00
Ramón Souza
d4f2f7319b convert menu component and instances 2021-11-05 19:59:01 +00:00
Tainan Felipe
f5eef03f3f Improve data structure to not break on reconnections 2021-11-03 14:37:54 -03:00
Ramón Souza
b989fa1840 convert video-list component 2021-11-03 14:34:03 +00:00
Ramón Souza
53575aaf98 convert video-provider video-list component 2021-11-03 13:44:34 +00:00
Ramón Souza
eefa3e6492 convert video-provider video-button component 2021-11-03 13:06:18 +00:00
Ramón Souza
0091134326 convert video-provider many-users-notify component 2021-11-03 12:58:13 +00:00
Anton Georgiev
24d672a832 Merge branch 'v2.4.x-release' of github.com:bigbluebutton/bigbluebutton into merge-24-dev 2021-10-14 15:13:17 +00:00
Tainan Felipe
1de8e0779d Add server side reactivity to publications 2021-10-13 15:00:52 -03:00
prlanzarin
1cb412529d feat(webrtc): add EXPERIMENTAL option to disable ICE candidate signaling
ICE lite servers (eg mediasoup) dont need candidates signaled out-of-band; neither does KMS in certain scenarios

Disable their signaling saves us some ticks in bbb-webrtc-sfu and some bandwidth all around
2021-09-24 17:24:06 +00:00
Anton Georgiev
ab845b3078 Merge branch 'v2.4.x-release' of github.com:bigbluebutton/bigbluebutton into merge-24-rc-1-into-dev 2021-09-22 15:28:13 +00:00
Vitor Mateus De Almeida
0aab062c2d add margin on L/R buttons in RTL languages 2021-09-15 16:07:52 -03:00
Vitor Mateus De Almeida
c47cf21ba2 place both buttons at the bottom of the video dock when cameras are vertically positioned 2021-09-15 09:13:17 -03:00
KDSBrowne
be3bd85bca add group role | aria-label to virtual bg list | cam dropdown activate via keyboard 2021-09-14 01:50:24 +00:00
Ramon Souza
098826c70a rename layout functions 2021-09-10 17:48:52 -03:00
Ramon Souza
1854911080 add use-context-selector to containers - partial 2021-09-09 17:49:15 -03:00
Anton Georgiev
b0fc38ef42
Merge pull request #13131 from prlanzarin/u24-tapowerline
fix(webcams): check for component state after peer creation
2021-09-02 10:15:18 -04:00
prlanzarin
a7d549d1e3 fix(webcams): check for component state after peer creation
There could be a race condition where a peer creation (async) would resolve after the provider was unmounted

That would lead to a state inconsistency which could generate all sorts of cryptic problems
2021-09-01 19:13:22 +00:00
Anton Georgiev
47865cf2a2
Merge pull request #13125 from ramonlsouza/remove-unused-state
refactor: remove unused state properties
2021-09-01 14:28:17 -04:00
Ramon Souza
15939addf7 restore camera unfocus label 2021-09-01 14:08:51 -03:00
Ramon Souza
5679710e7d restore video-provider state and add comment about why it is needed 2021-09-01 09:23:39 -03:00
Ramon Souza
084d80f23e remove unused state properties 2021-09-01 08:48:46 -03:00
prlanzarin
58a8e99195 feat: add media server configuration via metadata
Applies to video, listen only and screen sharing

New metadata values: media-server-video, media-server-listenonly, media-server-screenshare; parameter is a String
2021-08-31 00:39:45 +00:00
prlanzarin
c741cea715 feat(video): add media server adapter config for cameras in bbb-html5
Allows configuring, via bbb-html5, which media server adapter will be used by cameras; server wide
2021-08-31 00:30:06 +00:00
Anton Georgiev
4ecb24b4fa Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-aug30 2021-08-30 18:11:16 +00:00
Anton Georgiev
e6eebfaa81
Merge pull request #12983 from prlanzarin/u24-fantas
refactor(webcams, screenshare, listen-only): let the server generate subscriber offers
2021-08-24 16:37:44 -04:00
Ramon Souza
4c381a5805 remove unused imports/variables 2021-08-24 13:24:48 -03:00
Mario Jr
00e01c1872 add screenshare's peer information to video stats in connection status modal
Added support for getStats in screenshare's service. This works similar
to the getStats for video provider, and the information retrieved from
screenshare is added to the video information for cameras.
2021-08-23 12:36:01 -03:00
Mario Jr
148704cdec fix docs for getStats in audio and video services 2021-08-23 11:07:12 -03:00
Ramon Souza
5ed9639601 remove focus state if camera is unshared 2021-08-19 14:31:02 -03:00
Mario Jr
631e8fce4b Get stats for video connection
We now retrieve update information about active video peers, and calculates
download and upload rates. These rates are the sum of data transfered in
all video peers.
Screenshare stats is not being added to the sum, yet.
2021-08-13 17:24:44 -03:00
Anton Georgiev
773e8385af
Merge pull request #12970 from KDSBrowne/bbb-remaining-menus
Update Dropdowns To Menus
2021-08-12 14:38:04 -04:00
Ramon Souza
84b1651302 Merge remote-tracking branch 'upstream/develop' into issue-12953 2021-08-11 16:38:13 -03:00
Ramon Souza
53d0b8b949 exit fullscreen when component is unmounted 2021-08-11 13:19:24 -03:00
Ramon Souza
2b9d5b2d5d recalculate cameras grid when the number of streams changes 2021-08-11 10:25:20 -03:00
KDSBrowne
d9f9a94a7a Merge branch 'develop' of https://github.com/bigbluebutton/bigbluebutton into bbb-remaining-menus 2021-08-11 02:44:51 +00:00
KDSBrowne
3663290397 update public chat / video list item dropdown to menu 2021-08-11 02:44:34 +00:00
prlanzarin
74c6f1b6f8 refactor(webcams): let the server generate subscriber offers
Let the server generate subscriber offers so that it becomes easier for us to
do payload type normalization between publishers and subscribers

Also split peer creation for pubs and subs into separate methods for clarity
2021-08-10 17:31:45 +00:00
Vitor Mateus De Almeida
145ca61d40 linting some files 2021-08-09 11:24:02 -03:00
Vitor Mateus De Almeida
1b18977eac rename all NewLayout.. to Layout.. 2021-08-05 08:03:24 -03:00
Vitor Mateus De Almeida
09082734c9 remove old media, webcam draggable and panel components 2021-08-05 04:26:03 -03:00
Vitor Mateus De Almeida
abf089ae73 remove layout manager legacy 2021-08-05 01:22:07 -03:00
Anton Georgiev
6fc47676b3
Merge pull request #12867 from ramonlsouza/hidden-webcam-pagination
fix: pagination buttons appearing when camera dock is hidden
2021-07-30 15:38:22 -04:00
Ramon Souza
8c038f1187 do not display pagination when camera dock is hidden 2021-07-29 16:09:34 -03:00
Ramon Souza
41a8bc48bf Merge remote-tracking branch 'upstream/develop' into webcam-margin-new-lm 2021-07-29 09:36:07 -03:00
Anton Georgiev
9671c32f97
Merge pull request #12846 from ramonlsouza/rtl-new-layouts
fix: RTL issues - new layouts
2021-07-29 08:26:56 -04:00
Ramon Souza
103922b010 fix smart layout margin 2021-07-28 17:13:45 -03:00
prlanzarin
b190f74009 refactor(virtual-backgrounds): remove camera effect toggle (video-list) 2021-07-28 13:37:40 +00:00
Ramon Souza
07a2db6265 Merge remote-tracking branch 'upstream/develop' into rtl-new-layouts 2021-07-27 16:25:15 -03:00
Ramon Souza
8c95520aee fix fullscreen camera position 2021-07-27 09:02:00 -03:00
Ramon Souza
ee56199607 fix fullscreen camera legacy layout 2021-07-27 08:17:26 -03:00
Anton Georgiev
a37843d2a7 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge238-into-24 2021-07-23 17:09:18 +00:00
prlanzarin
8b48de561b fix(webcams): avoid leaving dangling HTMLMediaElements in paused state
Should fix an issue with the recent Chrome 92 intervention that limits
the number of concurrent WebMediaPlayers (an inner element of
HTMLMediaElements) to 75/40.

Webcam video elements were being left dangling in paused state despite
the elements themselves being cleaned up from the component. That
generated a skewed accounting of WebMediaPlayers in the session.
2021-07-23 02:24:47 +00:00
prlanzarin
9071ba8bc4 refactor(virtual-backgrounds): re-organize virtual background code
Changes (maybe not a complete list):
  - Disable virtualbgs by default
  - Move the virtualbg selector in video-preview to the side below the
profile selection
  - Restore old video-preview sizes
  - Add a wrapper class for MediaStreams (BBBVideoStream)
  - Centralize virtualbg services and business logic code into BBBVideoStream
  - Refactor and centralize virtualbg constant fetching
  - Refactor and centralize virtualbg config fetching
  - Organize virtualbg type definitions
  - Remove added states in video-provider to prevent further bloat
  - Remove added states in video-preview to prevent further bloat
  - Lock virtual bg switching while video-preview itself is locked
  - Add proper virtualbg error surfacing via toasts
  - Refactor iOS availability detection to use centralized UA checker
  - Avoid calling gUM when toggling virtualbgs on/off
  - Make virtualbg video-list-item action a toggle instead of a
state-aware action
  - Make virtualbg switching work in video-preview for cameras that are
already shared. Especially useful when there are multiple source
cameras, and will be important in the near future
  - Add Derivative Work notices in files that are partially copied from
jitsi-meet
  - Simplify track replacing in video-provider
  - Split video-preview UI code for virtualbgs into a separate functional component
2021-07-22 18:53:42 +00:00
Bartu Bazna
9f791a8892 Squashed virtual background commits 2021-07-21 20:00:19 +00:00
Anton Georgiev
472c9a6107 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into 237-into-develop 2021-07-20 15:21:21 +00:00
Vitor Mateus De Almeida
f0145e001e Add resizable and draggable in cameras dock
Remove settings and change resizable context data

Add resizable draggable drop areas in cameras dock
2021-07-13 04:25:03 -03:00
Anton Georgiev
36595c7375
Merge pull request #12729 from ramonlsouza/fullscreen-camera
feat: fullscreen cameras and screenshare in new Layout Manager
2021-07-12 14:33:35 -04:00
prlanzarin
15bd0b6087 fix(webcams): add error feedback when media is ejected by the server
Closes #12732
2021-07-08 15:10:22 +00:00
Ramon Souza
a281aeb11d fix unlocked viewer webcam 2021-07-07 14:00:47 -03:00
Ramon Souza
21eea858c1 code format 2021-07-06 11:17:00 -03:00
Ramon Souza
8bf637129b fullscreen camera 2021-07-06 11:05:15 -03:00
Pedro Beschorner Marin
6264caccd9
Merge pull request #12700 from prlanzarin/u24-gum-store
Webcams: reduce number of gUM calls, refactor in video-preview, fix #9053
2021-07-05 14:13:36 -03:00
Anton Georgiev
4bcf7c467d
Merge pull request #12674 from ramonlsouza/rm-unused-code
refactor: remove unused variables
2021-07-02 14:33:20 -04:00
prlanzarin
0453e9e842 fix(webcams): reduce number of gUM calls
Shave off the number of calls in video-preview and video-provider by
using a stream storage

We don´t call an upfront gUM in video-preview anymore to lift the
fingerprinting barrier on device labels and IDs. Flow has been reversed:
upfront enumerate, load first preview, then check if previous
enumeration was obfuscated.

Add a stream storage in video-preview`s service to avoid re-fetching
them in video-providerj

Remove some unneeded video-preview container props

Improve some of video-preview`s error locales
2021-07-02 16:13:31 +00:00
Ramon Souza
d8e19dbd9f remove unused variables 2021-06-28 08:20:49 -03:00
Vitor Mateus De Almeida
3599577463 Fix camera calcs
Fix camera calcs 2
2021-06-25 17:57:19 -03:00
Vitor Mateus De Almeida
3a281adab5 Remove background and commented code
Revert linting
2021-06-22 14:04:56 -03:00
Vitor Mateus De Almeida
6469b68d45 Add webcams component on new Layout Manager 2021-06-21 17:16:59 -03:00
Pedro Beschorner Marin
068b82b1fa refactor(connection status): remove legacy monitor
Remove parts of a previous connection monitor.

To add some context (as far as my memory goes) to the multiple connection
monitor features the product has, `stats` (currently named `connection status`)
was introduced at the Flash client back in ~2016. @fcecagno and I did it
as a BigBlueButton's Summit activity. Our work was squashed into a single
commit in 92554f8b3e :).

I'm not sure about the whole story behind `network information` (the late
connection monitor added to the HTML5 client) but I assume it should work
as a collector for a bunch of different connectivity monitors. I remember
when it was introduced but I don't know why it wasn't adopted. My best guess
would be because of some performance issues the `user list` had back then.

To follow on why `connection status` replaced `network information` at the
HTML5 client, when I did the `multiple webcams` feature I had to refactor
a big chunk of the `video provider` (#8374). Something that wasn't really
helping there was the adaptation of `stats` that was made to show local
feedback for each webcam connection. Although this feature wasn't being
used anymore, `network information` did rely on that to build up data. With
this monitor gone I assumed it was my responsibility to provide an alternative
so I promoted Mconf's port of the Flash `stats` monitor to BigBlueButton's
HTML5 client (#8579).

Well, that's my perspective on how things went for those features. If
anyone would like to correct me on something or add something else on
that history I would appreciate to know.
2021-06-13 14:02:46 -03:00
Anton Georgiev
78385ab3ea
Merge pull request #12569 from pedrobmarin/f-v-ds
feat(video): data savings
2021-06-12 16:59:38 -04:00
Arthur
78047eb68e feat(video): data savings
Enable video sharing when data savings is activated.
2021-06-12 14:16:32 -03:00