Commit Graph

213 Commits

Author SHA1 Message Date
Ramón Souza
9e5d678df4 fix stop external video on screenshare 2024-01-19 15:47:10 -03:00
Ramón Souza
2f67417b4b migrate stopWatchingExternalVideo action 2024-01-19 15:40:27 -03:00
Ramón Souza
e8a7837ffc fix screenshare for presenter 2023-12-01 12:12:45 +01:00
Ramón Souza
dde3aa92bd replace UsersContext with useCurrentUser 2023-11-30 12:08:16 +01:00
prlanzarin
c5b6110b94 fix: correctly dereference present camera streams in FF
The original BBBVideoStream termination handlers are being overwritten
by screen sharing's service when "Present camera" is started, which
causes the stream not to be dereferenced in the VIDEO_STREAM_STORAGE
map when the camera presentation stops. This breaks subsequent
camera/present camera attempts for the affected deviceId.

The second issue with is that Chrome isn't assigning the
termination handlers for the screen sharing subsystem - which causes
device/permission ejections to be silent.

This extends screen sharing's trackStreamTermination routine to preserve
whatever previous termination handlers were assigned if the stream was
provided beforehand by an external caller - which should fix both of the
aforementioned issues.
2023-08-24 13:42:28 -03:00
Ramón Souza
835bbd4733 replace unaffected debounce 2023-08-09 13:26:42 -03:00
Anton Georgiev
cd9f93be44 Merge remote-tracking branch 'bbb/v2.6.x-release' into merge-july12 2023-07-12 15:59:46 -04:00
Ramón Souza
1b06b30167 preserve pinned notes after screenshare 2023-07-04 13:14:09 -03:00
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
a03064aa41 fix(camera as content): stop ongoing screenshare
Camera as content and screenshare are 2 features that are mutually exclusive
because they share the same space in the UI. This commit adds the behavior
that when one this features is started, the other one is closed if it is
running.
2023-05-09 17:21:48 -03:00
Arthurk12
d0c460f9c0 fix(camera as content): device sharing
Prevents the same camera device from being shared twice(webcam and "camera
as content"). The camera device shared using the camera as content feature
is tracked locally and then taken into account in the video-preview modal.
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
Arthurk12
e902f2ee27 feat(screenshare): add contentType field
This commit adds a contentType field in the back-end components of the
screenshare feature in order to accomodate the new 'camera as content'
feature.
2023-05-09 17:21:47 -03:00
Arthurk12
33c9abd874 requested changes 2023-05-09 17:21:47 -03:00
Carlos
8f8bfc8903 feat(camera as content): port to BBB
Enables the presenter to share a camera in the presentation area.
The shared camera automatically uses a pre-defined, fixed and hidden camera.
Profile defined in the settings.yml file.
It is currently using the screenshare's backend.
2023-05-09 17:21:46 -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
41c187d93e Merge remote-tracking branch 'upstream/v2.6.x-release' into lodash-radash 2023-03-01 15:19:12 -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
GuiLeme
9fb2c32384 [issue-16734] - refactor hidePresentation to hidePresentationOnJoin 2023-02-17 14:59:39 -03:00
Gustavo Trott
50010ea528
Merge pull request #15894 from JoVictorNunes/shared-notes-on-media 2022-11-10 11:44:28 -03:00
Tiago Daniel Jacobs
07f4ba1dce Fix screenshare in BigBlueButton-tablet app 2022-11-08 22:50:16 -03:00
Joao Victor
4c6050521b feat: pin/unpin shared notes on media area (HTML5 portion) 2022-10-24 10:11:28 -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
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