Commit Graph

116 Commits

Author SHA1 Message Date
Paulo Lanzarin
ca1a1f8cb6
Merge pull request #17980 from prlanzarin/u27/fix/screenshare-audio-output
fix(screenshare): use the same audio outputDeviceId as microphone
2023-05-31 11:37:57 -03:00
prlanzarin
4961bfdf73 fix(screenshare): client crash due to stale lodash usage 2023-05-31 11:12:21 -03:00
prlanzarin
f4a761cea4 Merge remote-tracking branch 'origin/v2.7.x-release' into u27/fix/screenshare-audio-output 2023-05-31 11:06:49 -03:00
Paulo Lanzarin
7f637d5def
Merge pull request #17981 from prlanzarin/u27/fix/screenshare-size-dispatch-exception
fix(screenshare): size dispatch fails due to wrong scope
2023-05-31 10:43:02 -03:00
prlanzarin
b40a88cf69 fix(screenshare): size dispatch fails due to wrong scope 2023-05-24 12:07:35 -03:00
prlanzarin
636ab74826 fix(screenshare): adjustments to make output device switching work 2023-05-24 11:40:32 -03:00
AtilaU19
56dba30877 fix(screenshare): audio from screenshare match with audio from microphone 2023-05-24 11:33:32 -03:00
Carlos
5ddfb8b883 fix(camera as content): merge fixes 2023-05-09 17:21:48 -03:00
Arthurk12
7697367335 feat(screenshare): make component generic
Turns the screenshare component into a generic component, so that it can be
used both for screenshare and camera as content fetures.
Also changes specific locales and icons for the camera as content feature.
2023-05-09 17:21:47 -03: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
Scroody
e27c50a487 Fix: Presentation unminimizing when exiting external video or screen share. 2023-04-19 08:25:24 -03:00
Anton Georgiev
7b864cc841
Revert "Fix: Presentation un-minimizing when exiting external video or screen sharing." 2023-04-18 17:18:46 -04:00
Scroody
5b0bc16e5c Fix: Presentation unminimizing when exiting external video or screen share. 2023-04-10 16:25:19 -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
prlanzarin
bd0dfa17cc fix(screenshare): default to not flowing is peer was lost
The media monitor responsible for triggering the reconnecting view in
the screen sharing component was maintaing the previous state (eg
flowing) in cases where the peer just failed before media stopped
flowing. That triggered an error in the bps calculations that caused the
previous state to be preserved - eg stuck in flowing while it should be
not_flowing.

These changes make it so that if there's not peer to fetch stats from,
them the bps calculations will correctly return 0 (which translates to
not_flowing).
2023-03-08 15:48:22 -03:00
Ramón Souza
a60d817041 replace lodash debounce 2023-03-01 10:39:04 -03:00
Ramón Souza
4ed09c89cf replace lodash uniqueId 2023-02-23 11:23:51 -03:00
Joao Victor
b782a7fc06 fix: screenshare volume control 2022-09-01 13:48:59 -03:00
prlanzarin
b8811bafd4 fix(layout): use actual screen share size when calculating smart layout
Smart layout (et al) presumes screen sharing will always use 100%
width of the media area. That causes cameras to always be positioned on
top, which is not always the optimal position depending on the viewport
and stream aspect ratio/resolution - so space is wasted.

This commit uses the actual screen sharing video size as provided by
HTMLVideo's videoWidth/videoHeight properties. The calculation uses the
same logic as the one used for presentation/slides, which should make it
a bit familiar.

There's also a handler for HTMLVideo's `resize` event for those browsers
that support it - which enables handling of variable-sized screen
sharing streams. That handler is debounced at 500 ms to prevent
excessive CPU use.

Extra testing is needed with the widest range possible of
browsers/environments and feature combinations.
2022-07-22 13:28:43 +00:00
prlanzarin
d350afd194 fix(screenshare): check packet flow to detect unhealthy streams earlier
Screen streams were only deemed unhealthy when the transport's ICE state
transitioned to failed. That was as good as nothing because the stream would
stay frozen with no visual UI feedback until it reconnected. Bad UX.

This commit addresses that issue via two changes:
  - A stream is deemed *potentially* unhealthy now if the transport's
    state becomes disconnected
  - If a stream is deemed potentially unhealthy, a monitor probe is
    started to check whether there is media/packet flow (every 500ms).
    If there's no packet flow, the stream is flagged is factually unhealthy and
    UI feedback about that is rendered.

It's still not as good as it could be - relying on disconnected still
leaves a couple of seconds of silence to be dealt with. For that to be
addressed the prober would have to run nonstop, but that's for later.
2022-05-09 01:59:32 +00:00
Lucas Zawacki
140e08a730 Adapt code for merge 2022-03-02 11:24:54 -03:00
Lucas Zawacki
830c44702f feature(layout): Only use one place to store presentationIsOpen 2022-02-24 15:30:53 -03:00
Ramón Souza
0377854b98 move fullscreen-button component to common folder 2022-02-15 14:42:02 +00:00
Ramón Souza
dba04834c7 Merge remote-tracking branch 'upstream/v2.4.x-release' into 2524-feb08 2022-02-09 15:52:42 +00:00
Anton Georgiev
443e5a1555
Merge pull request #14300 from ramonlsouza/issue-13990
fix: Smart layout under some circumstances not behaving as expected when sharing video or screen
2022-02-07 14:57:45 -05:00
Ramón Souza
b028e4f4aa do not use presentation size for screenshare and external video in smart layout 2022-02-07 19:29:27 +00:00
Joao Victor
5cde2aae8a Reorder if/else chain 2022-02-07 14:46:45 -03:00
Joao Victor
b43075f815 Changes toast notification for when screenshare has stopped due to data saving 2022-02-07 14:27:14 -03:00
Ramón Souza
16cd3c4ebb Merge remote-tracking branch 'upstream/v2.4.x-release' into dev-24-0125 2022-01-25 16:56:52 +00:00
Ramón Souza
6ad5ae2baa only restore presentation after screenshare ends if it is open when screenshare starts 2022-01-14 12:43:48 +00:00
Ramón Souza
f6e65f58c5 merge 2.4 into develop and resolve conflicts - partial 2022-01-12 16:40:45 +00:00
Paulo Lanzarin
775150471c
Merge pull request #13688 from Arthurk12/screenshare-volume
feat(screenshare): volume control
2021-12-14 14:06:37 -03:00
prlanzarin
fb2f2da9d9 fix(screenshare): properly handle mobile hover for volume controls 2021-12-14 16:35:52 +00:00
Anton Georgiev
797fc49633 TEMP 2021-12-09 20:37:05 +00:00
prlanzarin
e49aa1c959 refactor(screenshare): revert volume control to HTMLMediaElement, make it configurable
I have growing concerns about gain node`s effect on audio quality the way it
was implemented, so I opted to fall back to HTMLMediaElement`s volume control
for the time being until we can gauge quality impacts properly later on

Add a new configuration flag enableVolumeControl, false by default while the
feature undergoes a field trial
2021-12-08 16:24:31 +00:00
Ramón Souza
53c0c990f1 other components isPresenter rework 2021-11-23 16:43:49 +00:00
Arthurk12
96965ebeed fix(layout): unable resize side panel
Sets z-index attribute to screenshare component, only when it is in
fullscreen mode. This is the same way it is done for presentation
component.
2021-11-19 18:51:42 +00:00
Arthurk12
c2e90ede11 feat(screenshare): gain node
Splits screenshare stream into video and audio and adds gain node to audio
stream in order to permit volume control by the user. Volume is normalized
between [0, 2](muted and 2x boost).
2021-11-12 16:30:39 +00:00
Arthurk12
350b155309 feat(screenshare): add volume slider
Adds volume slider UI to screen sharing's viewer container
2021-11-11 17:38:18 +00:00
Ramón Souza
6e7f35270e convert screenshare component 2021-11-05 16:36:03 +00:00
prlanzarin
86f8e03e97 fix(screenshare): bad isPresenter transition check
Fixes #13245
2021-11-04 14:47:35 +00:00
Ramon Souza
2b2792102b fix hidePresentation parameter 2021-09-27 17:13:41 -03:00
Anton Barboza
dce318e1ad avoid using static timeouts and fix Random Poll test 2021-09-22 13:52:27 -03:00
Ramon Souza
1bea5551ff hide screenshare when sidebar content is closed - focus on video 2021-08-31 13:21:31 -03:00
Ramon Souza
84b1651302 Merge remote-tracking branch 'upstream/develop' into issue-12953 2021-08-11 16:38:13 -03:00
Ramon Souza
be4859df6d remove fullscreen state 2021-08-11 13:29:09 -03:00
Ramon Souza
53d0b8b949 exit fullscreen when component is unmounted 2021-08-11 13:19:24 -03:00
Ramon Souza
f4df88bf8d fix screenshare with hidden presentation 2021-08-09 16:12:41 -03: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