Commit Graph

528 Commits

Author SHA1 Message Date
Mario Jr
631e8fce4b Get stats for video connection
We now retrieve update information about active video peers, and calculates
download and upload rates. These rates are the sum of data transfered in
all video peers.
Screenshare stats is not being added to the sum, yet.
2021-08-13 17:24:44 -03:00
prlanzarin
8b48de561b fix(webcams): avoid leaving dangling HTMLMediaElements in paused state
Should fix an issue with the recent Chrome 92 intervention that limits
the number of concurrent WebMediaPlayers (an inner element of
HTMLMediaElements) to 75/40.

Webcam video elements were being left dangling in paused state despite
the elements themselves being cleaned up from the component. That
generated a skewed accounting of WebMediaPlayers in the session.
2021-07-23 02:24:47 +00:00
Ramon Souza
a281aeb11d fix unlocked viewer webcam 2021-07-07 14:00:47 -03:00
prlanzarin
61cb8457d6 fix(video): check if encodings array is empty before trying to apply bitrate 2021-05-12 19:42:07 +00:00
prlanzarin
d707048c56 fix(video): remove unused floorStream variable 2021-05-12 19:26:26 +00:00
prlanzarin
1686225748 fix(video): check if pagination is in effect before choosing sort 2021-05-04 16:34:02 +00:00
Ramon Souza
75b9261f6f remove unused imports/variables 2021-04-22 13:17:20 -03:00
prlanzarin
001ab9554c video: added voice activity stream sorting, made stream sorting extensible
Video streams can be sorted by voice floor activity in the client according to FreeSWITCH´s floor events. The feature works together with pagination, essentially giving an Last-N like experience while not disrupting too much

Made video stream sorting extensible in a way. The sorting modes for pagination and unbounded can be configured in settings.yml and new sorting modes can be added to the stream sorting util under video-provider. Inline docs explain how to do that

Changed how the stream ID attribute from video-streams collection was passed to downstream components; we had an array map that was executed every change just to map stream to cameraId, which is bizarre. So I changed the cameraId usage in downstream components to be conformat with the collection attributes and shaved off the map where it wasnt needed

Add better selectors to video-list-item container´s VoiceUser fetch
2021-04-12 19:06:07 +00:00
Ramon Souza
369aa50836 fix mobile video dropdown 2021-04-01 11:28:20 -03:00
Ramon Souza
05a0d5afbf move browser info to helper + remove unused libs 2021-04-01 08:14:24 -03:00
Ramon Souza
9218262e0a all device info moved to helper 2021-03-31 14:13:36 -03:00
Anton Georgiev
85a84f7cbf
Revert "Change browser detection library from browser-detect to bowser" 2021-03-30 13:16:10 -04:00
Anton Georgiev
027658ac5c
Merge pull request #11806 from ramonlsouza/mobile-detect
Change browser detection library from browser-detect to bowser
2021-03-30 12:28:13 -04:00
Ramon Souza
3fa193005b change browser detection lib to bowser 2021-03-30 09:53:47 -03:00
Ramon Souza
40632c2211 adding comments on magic numbers 2021-03-29 14:09:26 -03:00
Ramon Souza
d97ffa954c fix mobile video dropdown size 2021-03-29 13:46:50 -03:00
Ramon Souza
4a761f923f adding comment about canConnect 2021-03-26 17:43:19 -03:00
Ramon Souza
5fe5705ac0 auto-reconnect webcam after leaving breakout room 2021-03-26 16:54:58 -03:00
Ramon Souza
050844c275 fix client crash when user is sharing video 2021-03-19 14:26:06 -03:00
Anton Georgiev
51c7ea4ff3
Merge pull request #11678 from ramonlsouza/active-mic-webcam-icon
Show unmuted microphone in video
2021-03-17 15:34:00 -04:00
Ramon Souza
1b8d6a0fab show unmuted microphone in video 2021-03-17 16:26:31 -03:00
prlanzarin
0a0a4b4915 video-provider: add dynamic video page sizes based on number of users
New config called paginationThreshold defines classes of page sizes that depend on the number of participants of a meeting

The rationale is pretty much the same as the cameraQualityThresholds, but the thresholds are users here and the ceilings are the page sizes
2021-03-16 20:15:13 +00:00
prlanzarin
ab17b10c38 listenonly,video-provider,screenshare: remove ICE gathering pre-flight check 2021-03-12 02:51:45 +00:00
Anton Georgiev
a165d3a7e3
Merge pull request #11606 from prlanzarin/u22-sadl1
video-provider: add video pagination UI toggle (was #10970)
2021-03-11 16:05:33 -05:00
prlanzarin
db15d1b280 video-provider: fix setReconnectionTimeout race condition that caused webcams to drop
Problem: setReconnectionTimeout was being called in the first candidate generation to set the negotiation/reconnection timeout up. That caused some browsers or specific scenarios (mainly envs without STUN) to establish the negotiation (playStart) before generating any useful out-of-band candidates (relay). That would cause the timeout to be set AFTER it is supposed to be cleared due to success (playStart), making the webcam drop after a while

So I moved the setReconnectionTimeout call to a safer spot: right after the first negotiation requisition goes out to bbb-webrtc-sfu
2021-03-10 20:09:55 +00:00
prlanzarin
6418d0f556 video-provider: more logging improvements, clean up playStart restart timers reset 2021-03-10 20:09:00 +00:00
prlanzarin
f85b5dfa5b video-provider: quick logging cleanup
Reduce logging volume and payload size, perf
2021-03-10 20:08:40 +00:00
prlanzarin
ee142501ab video-provider: fix inbound/recvonly video reconnection 2021-03-10 20:08:29 +00:00
Pedro Beschorner Marin
c120dc2859 Avoid dispatching fallback error toast message
There's some scenarios that video errors triggers multiple toast notifications
that don't have any mapped defined message feedback so they all drop to the default
permission error. This leaves the impression that something is broken at the toast
container.

Since those messages don't bring up much information about the problem we can avoid sending
them until we don't have a more informative one to notify the user.
2021-03-10 19:47:25 +00:00
prlanzarin
cf8b5e422f video-provider: add pagination settings toggle 2021-03-10 18:44:23 +00:00
Ramon Souza
9738f42432 add debounce to join video button 2021-02-10 10:44:45 -03:00
Ramon Souza
78b61103da fix video preview blink when skip preview = true 2021-02-05 14:30:58 -03:00
Ramon Souza
b1cb4435ee introduce userdata-bbb_skip_video_preview_on_first_join parameter 2021-02-04 15:05:48 -03:00
Anton Georgiev
09e6ba8dfd Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into merge-Jan30 2021-01-29 20:58:05 +00:00
Ramon Souza
6c1856c0a4 fix active webcam icon 2021-01-29 14:23:50 -03:00
Anton Georgiev
aae4d1567d
Merge pull request #11232 from prlanzarin/u22-lv521012021
video-provider: fix inconsistent client state when a webcam being shared times out
2021-01-27 11:29:16 -05:00
Anton Georgiev
e2f821d780
Merge pull request #11229 from prlanzarin/u22-revert10912
video-provider: Revert "Improve 16x9 Support"
2021-01-26 16:51:03 -05:00
prlanzarin
c57941dbdb video-provider: make video-list-item actions dropdown keys unique
When multiple actions were bolted in the dropdown (mirror, focus), keys were getting duplicated with cameraId. Make them unique based on the action`s name
2021-01-26 12:32:27 -03:00
prlanzarin
32e7ddeaf7 Revert "Improve 16x9 Support"
This reverts commit b8fc94c722.
2021-01-26 12:03:11 -03:00
prlanzarin
c37c3d0c7b video-provider: fix inconsistent client state when a webcam being shared timed out (1020)
Recent fix to the stop all cameras behaviour exposed a bug where the local camera connecting state wasnt being cleared up when a camera timed out before being successfully shared
2021-01-26 11:49:39 -03:00
Anton Georgiev
0ba3aa713a
Merge pull request #10912 from lkiesow/16x9
Improve 16x9 Support
2021-01-18 16:05:01 -05:00
Pedro Beschorner Marin
cc9b552e2a Fix stream stop for multiple webcams
Video provider's service for local stream control was wrongly setting the disconnected
state when a multiple webcam user tried to stop a single cam. The `stopVideo` method
was inconsistent when called multiple times for the same `cameraId`.

Included a better testing scope for event dispatching and disconnected state handling.
2021-01-12 13:24:40 -03:00
Anton Georgiev
d9629113cb fix undefined css class button in video-button 2021-01-06 19:13:48 +00:00
Anton Georgiev
244a239810 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into 2020-12-01-merge 2020-12-01 20:02:50 +00:00
Lars Kiesow
74efe8735b
Allow mirroring individual webcams
BigBlueButton already allows mirroring the users own webcam as a global
setting set by administrators. Users have no way of choosing this on
their own.

This patch turns this functionality into a user setting for all webcams.
Every camera menu now gets a “mirror” entry.

The global setting is still used as a default value, keeping the current
behavior as it is to not confuse users.
2020-11-29 20:54:01 +01:00
Lars Kiesow
b8fc94c722
Improve 16x9 Support
This is a very simple patch improving the support for 16x9 cameras.

In mixed mode – if 4x3 and 16x9 cameras are present – everything looks
like it did before but if only 16x9 (or wider) cameras are present,
BigBlueButton will drop the letter boxes and show a 16x9 video
container.
2020-11-27 01:28:21 +01:00
Joao Siebel
be8421db3c Merge remote-tracking branch 'upstream/develop' into connection-manager 2020-10-21 13:57:17 -03:00
Anton Georgiev
0c7ead1916 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into oct16-merge 2020-10-21 14:48:02 +00:00
Joao Siebel
dadca62741 Merge remote-tracking branch 'upstream/develop' into connection-manager 2020-10-13 10:49:12 -03:00
KDSBrowne
feea250c0b fix share webcam btn label for screen reader 2020-10-06 13:46:21 +00:00