Commit Graph

975 Commits

Author SHA1 Message Date
João Victor
2dddd161bf fix: limit grid users at the data access level 2024-05-03 09:58:27 -03:00
prlanzarin
eccb06369b fix(bbb-html5): crash on video-provider unmount
There's a race condition that may cause a client crash whenever a
video-provider's unmount procedure is run, but its signalling websocket
is undefined. The WS's callback handlers are re-assigned without
checking for the socket's availability, causing an unhandled TypeError.

The WS may be undefined in a couple of scenarios, e.g.: unmouting before
the socket was successfully set up, unmounting while a reconnect is in
place etc.

Check whether the socket exists before accessing it in video-provider's
componentWillUnmount routine.
2024-05-02 22:55:25 +00:00
João Victor
32bb2dfe2f fix: make hook to store its own state to avoid useless re-renders 2024-05-02 17:18:38 -03:00
João Victor
5a80f30711 fix: tweak video-streams typings (Part 4) 2024-05-02 11:51:14 -03:00
João Victor Nunes
98d579401b
Merge branch 'v3.0.x-release' into video-streams-typings-fix 2024-05-02 11:41:09 -03:00
Ramón Souza
f589cb8828
Merge pull request #20076 from ramonlsouza/away-mode
feat: Improved away mode
2024-05-02 11:34:32 -03:00
João Victor
73eee42c66 fix: TS errors 2024-05-02 11:32:08 -03:00
João Victor Nunes
c61b6bb7e5
Merge branch 'v3.0.x-release' into video-streams-typings-fix 2024-05-02 11:26:08 -03:00
João Victor
9495e60d6f fix: ensure user's webcams are properly terminated 2024-05-02 11:22:24 -03:00
Ramón Souza
ae10830a1a move setTrackEnabled to new service file 2024-05-02 09:24:03 -03:00
João Victor
ee9f98a1ad fix(webcam): fetch user data of webcam users only
- Do not fetch user data of users who are not in webcam.
- Except when grid layout is active. In this situation we need to know about all users.
2024-05-02 09:17:58 -03:00
Ramón Souza
82b1101df8 Merge remote-tracking branch 'upstream/v3.0.x-release' into away-mode 2024-05-02 08:45:10 -03:00
João Victor
59d84f4722 fix: wrong style file import 2024-05-01 17:05:17 -03:00
João Victor
d72ce1a24c fix: tweak video-streams typings (Part 3)
- Fix almost the entire video-provider component typyings. Leaving some errors because the component depends on a lot of code which is not in typescript yet. Any attempt to fix them may cause problems.
2024-05-01 16:49:21 -03:00
João Victor
6d70904ba9 fix: tweak video-streams typings (Part 2)
- Tweak low-level components.
2024-05-01 16:48:50 -03:00
João Victor
7297778746 fix: tweak video-streams typings (Part 1)
- Tweak high-level components.
2024-05-01 16:48:12 -03:00
Tainan Felipe
5070d26c90 Merge remote-tracking branch 'upstream/v3.0.x-release' into code-removal 2024-05-01 09:58:01 -03:00
Tainan Felipe
210eb0911c Fix: add a adapters manager to lock loading while data sync 2024-05-01 08:38:12 -03:00
Tainan Felipe
7d7acb8a80 Remove: Breakout room unused code 2024-04-30 16:14:22 -03:00
Ramón Souza
9056b0db1c remove unused code 2024-04-25 17:26:39 -03:00
Ramón Souza
7247407e7d
Merge pull request #20061 from JoVictorNunes/remove-video-streams-collection
Remove old `video-streams` Meteor subscription
2024-04-25 16:38:17 -03:00
Ramón Souza
a1c84229a6 remove userShareWebcam and userUnshareWebcam makecall 2024-04-25 15:33:23 -03:00
João Victor
e623e9d0cd Fix 2024-04-25 14:44:41 -03:00
João Victor
e8e0f5588d Fix imports 2024-04-25 13:16:29 -03:00
João Victor
93423c46e4 Ignore both typescript and eslint errors 2024-04-25 13:01:22 -03:00
Ramón Souza
af2eb1b421 disable camera effects modal in away mode 2024-04-24 17:16:21 -03:00
João Victor
1f8a95a3ff Remove video-streams subscription 2024-04-24 17:09:00 -03:00
Ramón Souza
bd2d56f1a2 mute/unmute audio and camera on away mode 2024-04-22 12:24:59 -03:00
Ramón Souza
be45fd6346
Merge pull request #20030 from ramonlsouza/fix-grid-sort
fix: grid mode webcam order
2024-04-17 16:08:13 -03:00
Ramón Souza
ac7760b41a fix grid mode webcam order 2024-04-17 09:27:10 -03:00
Ramón Souza
98531a82bb Merge remote-tracking branch 'upstream/v3.0.x-release' into issue-19958 2024-04-12 15:51:45 -03:00
Ramón Souza
e52aa27422 fix loop on grid mode when pagination is active 2024-04-11 17:44:44 -03:00
Ramón Souza
60e0578c12 fix share camera on grid mode 2024-04-10 16:04:12 -03:00
Ramón Souza
f1c8ec0c77
Merge pull request #19225 from vitormateusalmeida/16068-custom-webcam-highlight-color
Adds custom color highlight option for webcam
2024-04-10 10:36:54 -03:00
Ramón Souza
5129dfabe3 fix grid mode limit 2024-04-08 14:43:58 -03:00
Tainan Felipe
f3465827dd
Migrate meeting collection to graphql (#19853) 2024-03-26 08:57:28 -03:00
Anton Georgiev
ef300cf28e
chore: Fix typo (found by typos) (port) #19834
Co-authored-by: Stefan Weil <sw@weilnetz.de>
2024-03-18 09:58:53 -04:00
Ramón Souza
1c3881fdb8 fix unpin video 2024-03-13 09:47:57 -03:00
Tainan Felipe
d9e2808e2d Merge remote-tracking branch 'upstream/v3.0.x-release' into migrate-user-to-graphql 2024-03-12 19:24:28 -03:00
Tainan Felipe
f46019204c Change: lock policies to graphql 2024-03-12 12:22:42 -03:00
Tainan Felipe
99d2725dbd Fix: error on locking webcams 2024-03-12 10:24:37 -03:00
Tainan Felipe
a6d793bc6d Fix: video button not being disabled 2024-03-08 13:55:04 -03:00
Tainan Felipe
ff285f258a Merge remote-tracking branch 'upstream/v3.0.x-release' into migrate-user-to-graphql 2024-03-08 09:57:41 -03:00
Tainan Felipe
a5f26da361 Merge remote-tracking branch 'upstream/v3.0.x-release' into refactor-voice-user 2024-03-07 14:16:05 -03:00
André Castro
58a0efe708
Migrate auth and settings to graphQL (#19507) 2024-03-06 14:28:18 -03:00
Tainan Felipe
00e055ff6e Refactor: move voice users to graphql 2024-03-06 13:08:32 -03:00
Tainan Felipe
10bcb21502 Refactor: Remove users subscription 2024-02-23 12:01:53 -03:00
João Victor
3c39dc0b8c migrate userChangedLocalSettings 2024-01-30 10:03:11 -03:00
João Victor
deb4a17712 migrate userUnshareWebcam 2024-01-29 09:23:11 -03:00
João Victor
349535b5ce migrate userShareWebcam 2024-01-29 09:23:10 -03:00
Ramón Souza
a0626cc57f migrate toggleWebcamsOnlyForModerator action 2024-01-11 13:32:32 -03:00
Ramón Souza
83934250e0
Merge pull request #19220 from Scroody/fix-removing-user-select
Fix: Removing some inconvinient user selection from certain items
2024-01-09 13:14:09 -03:00
Ramón Souza
0a6e75a14a Merge remote-tracking branch 'upstream/v3.0.x-release' into migrate-user-actions 2023-12-06 16:32:52 -03:00
Ramón Souza
cb1d20a8ea migrate changePin meteor call 2023-12-06 16:00:46 -03:00
Ramón Souza
8349147fbb fix pin user video 2023-12-04 13:26:26 -03:00
Ramón Souza
6c7396b082 replace current user queries in service 2023-11-30 14:42:11 +01:00
Ramón Souza
5b2731275f replace isModerator checks with useCurrentUser 2023-11-30 14:24:25 +01:00
Guilherme Pereira Leme
eb7adfb994
feat(plugins): code refactor for readability (#19222)
* [plugin-sdk-refactor-organization] - rearrange of files and folders (WIP)

* [plugin-sdk-refactor-organization ] - final touches

* [plugin-sdk-refactor-organization ] - fix

* [plugin-sdk-refactor-organization ] - update SDK
2023-11-28 15:31:28 -03:00
vitoralmeida
74f8190ee1 feat(webcam): adds custom color highlight option #16068 2023-11-27 22:25:32 -03:00
André
13bdd6aed1 Fix: Removing some inconvinient user selection from certain items 2023-11-27 13:34:38 -03:00
Anton Georgiev
97faafa97c refactor: Add a toast warning you that your webcam is still streaming… 2023-11-20 13:04:30 -03:00
André
d78b2988f5 27 to 30 2023-11-10 10:51:29 -03:00
GuiLeme
93ee0f9804 [plugin-sdk-user-camera-dropdown] -changes in review 2023-09-26 10:20:21 -03:00
GuiLeme
165916b5a9 [plugin-sdk-user-camera-dropdown] - finish 2023-09-26 08:42:04 -03:00
GuiLeme
4129215741 [plugin-sdk-camera-settings] - changes in review 2023-09-25 21:50:06 -03:00
GuiLeme
4be6c1a671 changes in review 2023-09-25 21:12:55 -03:00
GuiLeme
b3ec3b9801 [plugin-sdk-user-camera-dropdown] - start 2023-09-25 15:56:17 -03:00
GuiLeme
ca1964f795 [plugin-sdk-camera-settings-dropdown] - finish 2023-09-25 11:59:12 -03:00
Ramón Souza
1b2aa1ea75 mirror/unmirror labels 2023-09-04 16:06:27 -03:00
Ramón Souza
48aa8df5a3 fix self-view label 2023-08-24 15:41:06 -03:00
Ramón Souza
eac3cc84ab display username in grid mode 2023-08-16 16:54:43 -03:00
Anton Georgiev
8cc8bfab00
Merge pull request #18387 from ramonlsouza/issue-18125
feat(bbb-html5): Grid mode pagination
2023-08-16 09:36:50 -04:00
Ramón Souza
5bf6d0489a fix empty grid users object when pagination is disabled 2023-08-14 09:52:52 -03:00
Ramón Souza
c5872e9cd3 rename grid page sizes -> grid sizes 2023-08-14 09:46:05 -03:00
Ramón Souza
0b8c493381 return gridUsers when pagination is disabled 2023-08-14 09:30:53 -03:00
Paulo Lanzarin
f3bd84e81f
refator(video): guarantee connectStreams scope is valid
The original debounce implementation (lodash) preserved the
caller's context - radash didn't, so it was failing and it wasn't noticed.

The new debounce implementation with the native function seems to preserve caller's context, but as a safety measure this commit binds the method to its appropriate scope.
2023-08-11 10:57:39 -03:00
Ramón Souza
835bbd4733 replace unaffected debounce 2023-08-09 13:26:42 -03:00
Ramón Souza
07ce5befec limit cameras page in grid mode 2023-08-08 13:05:54 -03:00
imdt
205d1d5f35 Fix: disabled self cam tied to specific cam or all 2023-08-02 17:59:19 -03:00
Ramón Souza
22605b3fbb grid mode pagination 2023-07-26 09:18:23 -03:00
Scroody
86f4e372f8 Fix: Warnings when creating a new meeting 2023-07-19 13:22:50 -03:00
Scroody
abdf85b508 Bug solving 2023-07-11 16:50:24 -03:00
Scroody
4faca42e37 Requested changes 2023-07-05 15:38:52 -03:00
Scroody
700edd19b4 Overlay over avatar 2023-07-04 10:44:24 -03:00
Ramón Souza
fc79c5b891 remove duplicated muted indicator from grid mode 2023-06-27 17:00:45 -03:00
Ramón Souza
3bac90a40c fix lint errors 2023-06-19 15:39:04 -03:00
Ramón Souza
9d3242037f sort grid mode items 2023-06-19 10:03:25 -03:00
Anton Georgiev
748c7a4a0b Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into june227 2023-06-02 09:45:34 -04:00
Ramón Souza
46849eae84 change webcam placeholder border color 2023-06-02 10:06:41 -03:00
prlanzarin
854f1e6e1b fix(video): drag-and-drop virtual background isnt applied
Drag-and-drop based virtual BG activation isn`t working since we refactored the logic to determine whether a peer is attached or not
2023-05-31 11:51:06 -03:00
prlanzarin
bf482fa373 refactor(video): remove stale iOSWarning locale declaration 2023-05-31 11:17:03 -03:00
Ramón Souza
0756d030a5
Merge pull request #17968 from Scroody/I-16114
Fix: Self cam coming back after trying to add effects or settings
2023-05-31 11:06:24 -03:00
prlanzarin
f34f8e5a9c fix(video): autoplay handling fails due to wrong mediaElement reference 2023-05-31 10:33:39 -03:00
André Castro
f2c4d55c2d
Update component.jsx 2023-05-29 15:02:29 -03:00
Anton Georgiev
20d124722a
Merge pull request #17962 from ramonlsouza/change-self-cam-label
refactor: Change enable/disable self cam label based on state
2023-05-29 09:49:52 -04:00
André Castro
51b0549e59
Update component.jsx 2023-05-26 10:19:29 -03:00
Ramón Souza
1540a9a7ec
Merge branch 'v2.7.x-release' into I-16114 2023-05-25 16:38:15 -03:00
Scroody
6e6fbe11be Fix: Self cam caoming back after trying to add effects or settings 2023-05-22 16:54:41 -03:00
Ramón Souza
810a9895f8 change enable/disable self cam label based on state 2023-05-22 09:06:39 -03:00
Ramón Souza
0040ee7028 do not display self view disabled message if camera is not being shared 2023-05-19 09:44:08 -03:00
Ramón Souza
18720e1536 Merge remote-tracking branch 'upstream/v2.7.x-release' into issue-13844 2023-05-17 15:44:39 -03:00
Ramón Souza
c64cf5ccbd
Merge pull request #17935 from Scroody/I-16114
feat: Disable self-view of webcam
2023-05-17 14:49:40 -03:00
Scroody
0fa1b9b3eb More requested changes made 2023-05-17 13:54:54 -03:00
Scroody
4a6d1258ae Requested changes made and fix of deactivating mutiple cams 2023-05-17 11:30:06 -03:00
Scroody
99885c20ed Final Adjust 2023-05-16 15:43:06 -03:00
Scroody
8272b487f3 Testing 2023-05-16 14:39:56 -03:00
Anton Georgiev
510c94cfa7 Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into may16-merge 2023-05-16 13:35:47 -04:00
prlanzarin
a693133b5a fix: remove legacy iOS UA checks that borked camera sharing in iPads
There are a couple of hardcoded UA checks targeted at iOS endpoints
introduced circa 2.2-beta. One of those pops up an "unsupported" toast
when the device joins a conference - the other blocks camera
sharing.

Those checks are outdated since we transitioned to minBrowserVersions
approach that redirects the client to an unsupported view upon join. I
also assume the checks are bugged since, in some environments, it flags
iPadOS endpoints as iOS and version-checks it to a hardcoded "12.2"
threshold (which is incompatible with iPadOS versioning). That caused
camera sharing not to work, which is a false negative.

I consider the checks to be outdated, so I removed all references to
them.
2023-05-15 13:22:52 -03:00
Anton Georgiev
4e851a7571 Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into merge-267-27 2023-05-15 11:51:17 -04:00
Ramón Souza
aca4179248 add isTalking animation 2023-05-12 11:17:04 -03:00
Ramón Souza
102063ca60 disable drop bg, pin and focus for grid items 2023-05-12 10:34:35 -03:00
Ramón Souza
1d27aaa35b fix grid on user leave 2023-05-12 09:03:54 -03:00
Anton Georgiev
1c9ba032a6
Merge pull request #17554 from AtilaU19/reconection-fixes
fix: overlapping screen end alerts and invisible cameras on reconnections
2023-05-11 17:15:12 -04:00
Ramón Souza
ffe8754733 add grid layout 2023-05-11 17:20:26 -03:00
KDSBrowne
1b51377147 fix getContentAnchorEl console error 2023-05-10 01:31:48 +00:00
Ramón Souza
af8556e026 Merge remote-tracking branch 'upstream/v2.6.x-release' into 26-27-apr24 2023-04-24 17:15:47 -03:00
AtilaU19
6cb30af4e3 fix(webcams): insivible grid correction 2023-04-13 10:36:55 -03:00
GuiLeme
5eb29e0ab5 [issue-16954] - merge upstream/v2.7.x-release 2023-04-11 11:02:00 -03:00
prlanzarin
5d214cb27d fix(video): ensure streams are always attached on reconnections
There's a scenario where remote streams won't be attached again if the
sharer experienced a Meteor/client disconnection.
The disconnection empties some necessary user data temporarily, which
causes the corresponding video-list-item to be unmounted while the peer
persists for a little longer.
If the sharer re-connects fast enough, video-list-item will re-mount but
will 1) miss the current stream state (ie stuck in loading) 2) fail to
re-attach the streams since the peer was already flagged as attached.

Ensure remote camera streams are always attached and shown by:
  - always propagating the current stream state on attachment
  - refactoring the attachment pre-requisites away from a static boolean
    to a required data + diff check (based on target and current
    attached streams)
2023-04-11 09:36:13 -03:00
Anton Georgiev
72c575b911 Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into merge-apr-6 2023-04-06 11:50:26 -04:00
Anton Georgiev
e2dc7da98a
Merge pull request #16828 from prlanzarin/u27/fix/ss-cam-reconn
fix: re-connection improvements for cameras and screen sharing
2023-04-05 16:13:01 -04:00
prlanzarin
f4b4de6f88 fix(video): prevent a client crash when cleaning up video peers
There's a very rare scenario where the client may crash if a video
publisher is released before the source stream had its inactivation
listener callback set up.

This adds a type check to the inactivation handler before trying to
clean it up.
2023-04-05 13:31:59 -03:00
prlanzarin
be6a23a003 feat: add option to force/extend gathering window in SFU components
There's an edge case in finnicky networks where ALG-like firewalls
tamper with USE-CANDIDATE STUN packets and, consequently, bork ICE-lite
connectivity establishment. The odd part is that client-side gathering
seems to complete if intermediate STUN bindings work (before the final
USE-CANDIDATE), which may cause the peer not to generate relay
candidates == connectivity fails.

This adds the `public.kurento.gatheringTimeout` option to forcefully extend
the candidate gathering window in peers that act as offerers. The
behavior is as follows: if the flag is set (ms), the peer will wait
either the gathering completed stage or, _at most_,
public.kurento.gatheringTimeout ms before proceeding with calls chained
to setLocalDescription.

This option is disabled by default and intentionally ommited from the
base settings.yml file as to not encourage its use. Don't use it unless
you know what you're doing :).
2023-04-05 13:22:38 -03:00
Ramón Souza
bcd504b749 Merge remote-tracking branch 'upstream/v2.7.x-release' into lodash-radash 2023-04-05 09:42:05 -03:00
Anton B
3a7b59c19a test: add video quality and background webcam tests 2023-03-29 11:16:47 -03:00
GuiLeme
81ae4e9ca6 [issue-16954] - Adjusting modal priorities 2023-03-29 11:08:56 -03:00
GuiLeme
9b39decec7 [issue-16954] - Fix minor issues and cleanning of the old modal structure traces 2023-03-29 11:02:14 -03:00
Anton B
4b5d4e9e2a Merge remote-tracking branch 'upstream/v2.6.x-release' into webcam-tests 2023-03-29 10:29:58 -03:00
GuiLeme
5f3296fdb1 [issue-16954] - last migrations - VideoPreview and drag and drop of background 2023-03-27 12:36:25 -03:00
GuiLeme
d4bd29ea67 [issue-16954] - Migrating userOptions and remove user modals 2023-03-23 11:56:00 -03:00
Anton Georgiev
372e17ca08 fix: check if defined before checking .role 2023-03-14 16:39:06 -04:00
prlanzarin
3bddbb96cf fix(video): signaling and reconnection edge cases
There are still a bunch of edge cases and issues with reconnection
scenarios for video:
  - Signaling socket refuses to reconnect once maxRetries expire
  - Race conditions on local stream attachment: local camera wouldn't be
    correctly rendered _if_ the attached stream existed _without_ video
    tracks yet
  - Video tracks leak on local streams when replacing them (virtual bgs)
  - Completely ignoring Meteor state when trying to reconnect cameras
  - Streams aren't proactively stopped when the signaling socket dies
  - Outbound request queues aren't isolated by stream nor are they
    flushed when a newer peer with the same ID is created
  - Server originated negotiation errors won't trigger a local peer
    cleanup - thus leaving dangling peers that take way too long to
    reconnect

This commit fixes or improves all of the aforementioned issues, +:
  - Remove unused arguments in the peer (client->SFU) 'start' request
  - Prevent crashes when trying to render video-list-items without user
    data (which might happen on re-connections)
2023-03-08 15:49:35 -03:00
prlanzarin
a83f3b675e fix(video): add proper signaling WS heartbeat, +
video-provider's current ping-pong is as good as nothing in 2.5+. We
were counting on Meteor's (and consequently the component's mount state)
before 2.5 to act as a "heartbeat" as far as the socket is concerned.
The ping-pong served only to sustain traffic for finnicky,
traffic-dependant firewall.
Since 2.5, the component's state is _kind of_ detached from Meteor's -
which means it won't unmount when Meteor disconnects. That causes the
video-provider websocket to lose its borrowed heartbeat and leads to a
bunch of reconnectiong inconsistencies, the worst of them being a stuck,
useless signaling socket that will cause cameras not to work until a
client refresh.

This commit does the following:
  - Implements actual heartbeat checks to trigger signaling socket
    reconnects when necessary, all within the scope of video-provider
  - Remove borked, eons old 'offline'/'online' event handlers: they were
    causing unnecessary camera drops AND causing video-provider to
    generate a stuck signaling socket
  - Properly catch WebSockets.send errors
2023-03-08 15:46:51 -03:00
prlanzarin
e9f0a7347c fix(video): properly render reconnecting view
The stream state change handler in video-list-item is using a component
state reference inside a DOM event callback - which means it is always
presuming `isStreamHealthy` is false (initial value). That prevents the
health state from actually transitioning when necessary (and
consequently rendering the reconnecting view in video-list item).

This commit removes the state-based transition check in the state change
handler and unifies the reconnecting view to use the username
placeholde (replacing the loading spinners).
2023-03-08 15:46:44 -03:00
Ramón Souza
d181eba1c2 replace lodash.throttle with native function 2023-03-02 10:25:08 -03:00
Ramón Souza
0a622eff32 replace lodash throttle with standalone package 2023-03-01 15:13:29 -03:00
Ramón Souza
a60d817041 replace lodash debounce 2023-03-01 10:39:04 -03:00
Ramón Souza
5c5433296b replace lodash range, partition and upperFirst 2023-02-22 13:52:18 -03:00
KDSBrowne
73cd791199 add aria label to webcam options with user name when small 2023-02-06 16:11:05 +00:00
Anton Georgiev
36b45c0824
Merge pull request #16172 from schrd/fix-issue-16171
fix: Only cache TURN Servers as long as credentials are valid and force firefox to use the turn server
2023-01-05 06:13:31 -05:00
Anton Georgiev
2d742b654c
Merge pull request #15919 from prlanzarin/u26/fix/cam-reconn-issues
fix(webcam): intermittent client crashes when sharing camera (2.6)
2022-12-23 09:12:54 -05:00
Anton Georgiev
2cc37ff375
Merge pull request #16127 from ramonlsouza/fix-sortname
fix: incorrect userlist order if name starts with a space
2022-12-22 12:46:05 -05:00
Daniel Schreiber
74f37db4fa Get rid of forceRelayOnFirefox
Firefox has a buggy ICE implementation and needs WebRTC media traffic to
be routed through a turn server to work reliably with mediasoup.

Use the information fetched by the STUN API to determine if the operator
has configured a turn server. If there is one force firefox to use it.

Closes #16164
2022-12-18 23:17:14 +01:00
Ramón Souza
0cf1d09978 add early return to video list item if user data is unavailable 2022-12-15 14:49:47 -03:00
Ramón Souza
1f2562e95c sort users by sortName 2022-12-13 15:00:13 -03:00
Ramón Souza
cdc2bc7e04
Merge pull request #15770 from JoVictorNunes/store-webcam-microphone
improvement: share audio and video setup among different sessions
2022-11-09 10:37:52 -03:00
Joao Victor
f1007fb7b6 Use the new config option from #15413 - A centralized way of defining which storage to use (Session or Local) 2022-11-03 17:57:54 -03:00
prlanzarin
0f9cc40549 fix(webcam): client crash due to undefined intl var 2022-10-27 16:25:13 +00:00
prlanzarin
341665e631 fix(webcam): client intermittently crashes when sharing camera
Under some specific scenarios, the virtual background restore code might
kick in _before_ the preloaded MediaStream is actually assigned to the
peer instance. That causes a crash because the peer attachment code
(where the vbg restore is triggered) tries to access the device ID of
said MediaStream - and it is undefined in the first place because it was
only being set in after the initial offer is generated which is an async
procedure.

This commit guarantees a preloaded stream is set before the peer is
flagged as created - so it's accessible by the attachment code.
It also checks whether there's a MediaStream available when trying to
restore VBGs to prevent undefined behaviors.
2022-10-27 16:25:06 +00:00
Ramón Souza
43cf7cfc69 adjust audio/video dropdown position 2022-10-24 14:44:33 -03:00