Commit Graph

90 Commits

Author SHA1 Message Date
Lucas
af2a24eef4
feat(screenshare): Option to show disabled screenshare button for non presenters (#21082)
* feat(screenshare): Option to show disabled screenshare button for non presenters

* Update bigbluebutton-html5/imports/ui/components/screenshare/service.js

---------

Co-authored-by: Ramón Souza <contato@ramonsouza.com>
2024-09-23 09:51:18 -03:00
Tainan Felipe
4d6f4b3ded
Refactor: Make bundle using webpack (#20811)
* Refactor: Make bundle using webpack

* Fix: restore after install codes and a few settings

* Fix: build script folder permission

* Refactor: Remove support to async import on audio bridges

* Upgrade npm using nvm

* Avoid questions on npm ci execution

* Let npm ci install dev dependencies (as we need the build tools here)

* Fix: enconding

* Fix: old lock files

* Remove: bbb-config dependency to bbb-html5 service, bbb-html5 isn't a service anymore

* Fix: TS errors

* Fix: eslint

* Fix: chat styles

* npm install with "lockfileVersion": 3 (newer npm)

* build: allow nodejs 22

* node 22; drop meteor from CI and bbb-conf

* TEMP: use bbb-install without mongo but with node 22 and newer image

* build: relax nodejs condition to not trip 22.6

* build: ensure dir /usr/share/bigbluebutton/nginx exists

* init sites-available/bbb; drop disable-transparent-

* nginx complaining of missing file and ;

* TMP: print status of services

* WIP: tweak nginx location to debug

* Fix: webcam widgets alignments

* akka-apps -- update location of settings.yml

* build: add locales path for nginx

* docs and config changes for removal of meteor

* Fix: build encoding and locales enpoint folder path

* build: set wss url for media

* Add: Enable minimizer and modify to Terser

* Fix: TS errors

---------

Co-authored-by: Tiago Jacobs <tiago.jacobs@gmail.com>
Co-authored-by: Anton Georgiev <anto.georgiev@gmail.com>
Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
2024-08-09 13:58:44 -04:00
André Möller
faa83eb890 Merge remote-tracking branch 'upstream/v3.0.x-release' into adding-loading-state-to-buttons 2024-08-05 14:55:58 -03:00
Ramón Souza
d3406a2e93
refactor: remove instanceId from client (#20850) 2024-08-02 14:10:39 -04:00
André Möller
f18d201de2 Client: Adding loading status to buttons 2024-07-30 15:53:49 -03:00
João Victor
dac101523f Fix infinit loop 2024-06-14 15:40:40 -03:00
João Victor
b00f49ab9b Remove screenshare adapter consumption 2024-06-14 11:35:23 -03:00
João Victor
b76edc6640 refactor: remove withTracker from screenshare button container 2024-06-13 09:45:28 -03:00
João Victor
09f7d98974 refactor: remove withTracker from screenshare container 2024-06-13 08:59:11 -03:00
João Victor
83acc1fe9a Merge branch 'v3.0.x-release' into remove-screenshare-tracker 2024-05-29 17:01:12 -03:00
Ramón Souza
7514066fc3
fix: Client can't load in certain cases (#20336)
* move settings

* remove meteor cache files
2024-05-29 09:26:11 -04:00
João Victor
ddfc83e8c7 Merge branch 'v3.0.x-release' into remove-screenshare-tracker 2024-05-28 10:50:15 -03:00
João Victor
ffa861e384 refactor(screenshare): remove Tracker.Dependency 2024-05-24 11:44:36 -03:00
João Victor
fd253d6c2d refactor(settings): remove both Meteor's Tracker.Dependency and all uses in old format 2024-05-17 17:33:52 -03:00
Guilherme Leme
dc1d831ea2 [fix-sahred-notes-not-unmounting] - centralize shared notes pin rendering logic 2024-04-19 11:08:13 -03:00
André Castro
58a0efe708
Migrate auth and settings to graphQL (#19507) 2024-03-06 14:28:18 -03:00
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
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
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
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
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
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
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
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
Ramón Souza
f6e65f58c5 merge 2.4 into develop and resolve conflicts - partial 2022-01-12 16:40:45 +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
51b5cc4f3a remove isPresenter methods from services 2021-11-23 16:40:14 +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
Tainan Felipe
f5eef03f3f Improve data structure to not break on reconnections 2021-11-03 14:37:54 -03:00
Tainan Felipe
1de8e0779d Add server side reactivity to publications 2021-10-13 15:00:52 -03: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
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
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
prlanzarin
1e199097b4 screenshare: check if the user is still presenter after gDM resolves
If the presenter gets changed while the user kept the getDisplayMedia browser picker open, accepting the getDisplayMedia prompt might get the previous presenter´s client-side state inconsistent as if they were sharing. The screen sharing is a no-op though

This adds a check after gDM resolves to see whether the user is still the presenter; if they aren`t, just clean up the gDM stream and make it a full no op
2021-03-24 18:41:14 +00:00
Anton Georgiev
e673fb2cf4
Merge pull request #11630 from prlanzarin/u23-sculptor
listenonly,video-provider,screenshare: remove ICE gathering pre-flight check
2021-03-12 12:58:43 -05:00
prlanzarin
ab17b10c38 listenonly,video-provider,screenshare: remove ICE gathering pre-flight check 2021-03-12 02:51:45 +00:00