Commit Graph

178 Commits

Author SHA1 Message Date
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
Tiago Jacobs
75c8dcd491 Merge 2.6 2022-06-29 17:38:21 -03:00
Paulo Lanzarin
d5b1bba975
Merge pull request #14981 from prlanzarin/u26-form-revealer
fix(screenshare): check packet flow to detect unhealthy streams earlier
2022-05-10 13:11:34 -03:00
prlanzarin
83e26b7f63 fix(screenshare): race condition - local stream ends while broker stars
There could be a race condition where the local getDisplayMedia stream ends
(eg via Chrome`s stop sharing toast) while the broker hasn't finished starting.
That would lead to a scenario where the broker wouldn't emit an end event,
causing screen sharing to be flagged as started with a blank/invalid stream.
2022-05-09 18:00:30 +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
b55fb32f6e move loading-screen component to common folder 2022-02-15 14:55:08 +00:00
Ramón Souza
0377854b98 move fullscreen-button component to common folder 2022-02-15 14:42:02 +00:00
Ramón Souza
246e3b3e8f move button component to common folder 2022-02-14 20:20:50 +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
Anton Georgiev
46cb753c44 Merge branch 'dev-24-0125' of github.com:ramonlsouza/bigbluebutton into merge-jan-27 2022-01-27 16:03:12 +00:00
Ramón Souza
08e13d4fe0 fix screenshare position regression 2022-01-26 16:55:01 +00: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
Max Franke
d043066a3c fix(style): custom style in video container
Now the screenshare container change color according to the style applied
2022-01-03 15:57:21 -03: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
Ramón Souza
51b5cc4f3a remove isPresenter methods from services 2021-11-23 16:40:14 +00:00
Ramón Souza
d6f160d00f screenshare component isPreenter rework; 2021-11-23 14:20:29 +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
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
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
Tainan Felipe
f5eef03f3f Improve data structure to not break on reconnections 2021-11-03 14:37:54 -03:00
Anton Georgiev
022f125e15 Merge branch 'v2.4.x-release' of github.com:bigbluebutton/bigbluebutton into merge-24-dev 2021-10-29 13:24:51 +00:00
Max Franke
664bad7d08 feat(screenshare): UX updates
Reduce the font size to 21px (1.3rem) and font weight to 600.
2021-10-27 11:51:39 -03:00
Anton Georgiev
1622425cbc Merge branch 'develop' of github.com:bigbluebutton/bigbluebutton into 2.4-into-develop 2021-10-22 19:12:58 +00:00
Ramón Souza
9e71583ec7 restore old minimize presentation button and add a flag to switch 2021-10-14 19:31:47 +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
Anton Georgiev
5202cd47ca
Merge pull request #13306 from lfzawacki/develop-minimize-all
feature: Allow external video and screenshare to be minimized just like the presentation area
2021-10-04 11:45:51 -04:00
Lucas Fialho Zawacki
d7f3924350 Enable swap layout for screenshare and external video 2021-09-27 21:03:20 +00:00
Ramon Souza
2b2792102b fix hidePresentation parameter 2021-09-27 17:13:41 -03:00
Anton Georgiev
aa2089887c Merge branch 'v2.4.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2.4 2021-09-25 14:59:22 +00:00
Anton Barboza
dce318e1ad avoid using static timeouts and fix Random Poll test 2021-09-22 13:52:27 -03:00
Ramon Souza
098826c70a rename layout functions 2021-09-10 17:48:52 -03:00
Ramon Souza
981e707612 add selector to containers, remove old layoutContext + convert base component into function 2021-09-10 14:21:04 -03:00
Ramon Souza
1bea5551ff hide screenshare when sidebar content is closed - focus on video 2021-08-31 13:21:31 -03:00