Commit Graph

425 Commits

Author SHA1 Message Date
Anton Georgiev
3003897bfe
Merge pull request #10336 from prlanzarin/upstream-2.2-vpeg-pagination
video-provider: add missing PropType, remove render socketOpen check
2020-08-27 09:17:04 -04:00
prlanzarin
395de41f60 video-provider: add missing proptype
Also trim down prop assignment in render
2020-08-27 02:20:09 +00:00
prlanzarin
191654814a video-provider: remove socket open state condition for rendering video-list
That check doesnt make sense anymore. Removing it makes the video list load faster and webcam sharing seem more responsive
2020-08-27 02:19:55 +00:00
Anton Georgiev
4476df6f09
Merge pull request #10318 from prlanzarin/upstream-2.2-vpeg-pagination
video-provider: prioritise presenter in pagination ordering, restore pre-.22 full mesh ordering
2020-08-24 17:14:43 -04:00
Anton Georgiev
b8959be312
Merge pull request #10304 from pedrobmarin/individual-video-record-control
Add individual video record control
2020-08-24 16:58:16 -04:00
prlanzarin
f3674335a4 video-provider: prioritise presenter in pagination ordering
Also restore the old full mesh, pre-.22 ordering where outbound streams were put first
2020-08-24 19:55:29 +00:00
Anton Georgiev
89319787f8
Merge pull request #10317 from prlanzarin/upstream-2.2-vpeg-pagination
video-provider: fix dynamic profile accounting when using pagination
2020-08-24 15:14:00 -04:00
prlanzarin
e7323ee6a5 video-provider: fix dynamic profile accounting when using pagination 2020-08-24 18:30:24 +00:00
Anton Georgiev
59ab8e215d
Merge pull request #10315 from prlanzarin/upstream-2.2-vpeg-pagination
video-provider: fix pagination edge case
2020-08-24 10:42:07 -04:00
prlanzarin
2e6627b820 video-provider: fix pagination edge case where pages would be calculated as NaN 2020-08-24 14:35:28 +00:00
Pedro Beschorner Marin
8b54c01898 Add hack to avoid recording viewers video stream
If, at the time the video is shared, the user has a viewer role and
meta_hack-record-viewer-video is false this user won't have this video
stream recorded.
2020-08-22 21:00:31 -03:00
Pedro Beschorner Marin
95bc7cd59e Add individual video record control
This adds bbb_record_video userdata that, when is set to false, signals
bbb-webrtc-sfu to avoid generating the stream recording assets for a
particular user.

By default, bbb_record_video is true.
2020-08-21 19:10:25 -03:00
Anton Georgiev
4fb301c48b
Merge pull request #10293 from prlanzarin/upstream-2.2-vpeg-pagination
video-provider: first tackle at video pagination
2020-08-20 15:24:57 -04:00
prlanzarin
0b29b5a812 video-provider: enrich pagination enabled checks 2020-08-20 17:26:32 +00:00
prlanzarin
a98c476239 video-provider: remove page change lock in favor of a debounced approach 2020-08-20 15:43:02 +00:00
prlanzarin
5f72cecf4f video-provider: fix mirrorOwnWebcam behaviour (regression from #10208) 2020-08-20 01:12:56 +00:00
prlanzarin
bc4ce58251 video-provider: make pagination circular 2020-08-19 22:27:47 +00:00
prlanzarin
0e02b6a6f8 video-provider: remove nonsensical play abort warning log 2020-08-19 13:56:53 +00:00
prlanzarin
2d436977cb video-provider: add pagination page change timer to prevent spamming 2020-08-19 13:56:22 +00:00
prlanzarin
28e826118a video-provider: first version of video pagination 2020-08-18 17:00:47 +00:00
prlanzarin
c524abf05b video-provider: normalize hidden cameraProfiles constraints
Also add some inlined docs to settings.yml
2020-08-11 14:51:50 +00:00
Anton Georgiev
247861f549
Merge pull request #10213 from prlanzarin/upstream-2.2-vpeg-dynprof
video-provider: dynamic video profiles (aka automatic bitrate/frame rate throttling)
2020-08-07 13:20:56 -04:00
CristianSilvaGrosseli
378a355316 fix displaced audio icon. 2020-08-05 17:05:47 +00:00
CristianSilvaGrosseli
da2e947cf4 added ellipsis property to video user name. 2020-08-05 17:05:23 +00:00
prlanzarin
d18fa5d758 video-provider: fix safari overflow issue and properly fill height with placeholder
kudos @pedrobmarin
2020-08-05 17:02:59 +00:00
prlanzarin
67194618b8 video-provider: revert videoListItem max-height change
I did it to force the placeholder to fill the grid, but it turns out it botches Safari and I dont know how to fix it yet
2020-08-05 17:02:54 +00:00
prlanzarin
147e7b2105 video-provider: further cleanup to stylesheet 2020-08-05 17:02:23 +00:00
prlanzarin
dc194eafdf screenshare: move loading spinner css to media and restore it 2020-08-05 17:02:08 +00:00
prlanzarin
dd32a669dc video-provider: revert formatting changes from commit 0ca68b4 2020-08-05 17:01:45 +00:00
prlanzarin
03a51611a2 video-provider: UI/style updates
- No more border radius in video containers, fullscreen buttons or user info span

Reduced the spacing between cameras to 1px

Replaced the loading spinners with a black background and the user name at the center

- Changed the color of the talking indicator to be the primary color with 0.7 opacity

Make the user name in the video container have opacity 1

Fix: make the webcam containers be 4:3 even while loading
2020-08-05 17:01:15 +00:00
prlanzarin
1d52b158f8 video-provider: fix safari resolution change on applyConstraints, only reapply bitrate when needed 2020-08-05 16:56:18 +00:00
prlanzarin
642de5076a video-provider: first, simplified version of dynamic camera profile control 2020-08-05 16:55:41 +00:00
Pedro Beschorner Marin
7b3505acff Enumerating devices after video preview gUM 2020-08-05 15:06:44 +00:00
Pedro Beschorner Marin
40908a51a8 Postponing get from user settings 2020-08-05 14:56:20 +00:00
prlanzarin
fab6d96769 video-provider: reimplement PR #9407
Some weird merged regressed #9407 when merging 2.2 in 2.3, and backporting the VP from 2.3 to 2.2 reintroduced the issue, so I reimplemented it
2020-08-05 14:35:08 +00:00
Pedro Beschorner Marin
b74bd0283e Fix webcamsOnlyForModerator 2020-08-05 14:32:51 +00:00
prlanzarin
dac3259c48 Merge remote-tracking branch 'pedrobmarin/bbb-multiple-webcams' into upstream-2.2-vpeg-base 2020-08-05 14:20:58 +00:00
prlanzarin
0f8b27d2d8 video-provider: make camera timeouts configurable
Also add missing settings.yml val for wsConnectionTimeout
2020-07-09 17:53:24 +00:00
prlanzarin
72a67bdd63 video-provider: make reconn websocket connectionTimeout configurable
Keep the default value (current) in settings.yml
2020-07-09 17:50:04 +00:00
mw781
2da9028c0b Extract constant for convenience 2020-06-15 21:51:46 +01:00
mw781
f4dc8d9d69 Fix critical issue with video-preview arguments
After the code to mirror the video-preview component was added
I noticed that I improperly used the userId property of an undefined
argument as the video-preview does not have a user as a prop. This
commit decouples the logic to verify if the webcam should be mirrored
and whether the webcam belongs to that user. In the latter, we verify
if the user parameter exists and use it in a conditional, otherwise
we simply return true (applies with the video preview component),
where there is only one video stream.
2020-06-15 21:49:00 +01:00
mw781
bf68d2c76f Refactor code and implement mirroring for video-preview 2020-06-14 20:13:47 +01:00
mw781
fceac6dbc5 Import user settings 2020-06-12 23:49:07 +01:00
mw781
17350a57fe Implement own video mirroring 2020-06-12 23:39:41 +01:00
prlanzarin
2cba85e866 html5: refactor STUN/TURN fetch, add fallback STUN, fix deadlock in audio join
Refactored STUN/TURN fetch to be done only once, when successful, per session and cache it in mem to avoid too many reqs. Current way is a bit dumb, this should increase reliability a bit more. The caching is configurable so folks who want to use very short lived TURN credentials can disable it

Add a fallback STUN config option to be used when the default STUN/TURN fetch fails

Clean the safari/no candidate generation pre flight check from 3rd party STUNs

Fix deadlock in audio join when STUN/TURN fetch failed
2020-05-21 04:35:17 +00:00
KDSBrowne
741455aeba remove hideUserList() from video-provider service 2020-05-06 15:14:07 +00:00
KDSBrowne
e82e0f5be9 fix see views in user list lock affecting webcams 2020-05-02 16:50:40 +00:00
Anton Georgiev
dbc997cc85 explicitly import lodash so we can use _ functions 2020-02-26 10:43:24 -05:00
prlanzarin
10b4a60a57 Fix race condition in video-provider that may cause peers to fail
The peer object was being fetched only once in the ICE candidate callback, and it would fetch a placeholder empty object (sometimes) which would be kept in the callback closure till the end of the peer lifecycle. With that, the didSDPAnswered state variable which released the outbound ICE queue wouldnt be correctly read and the queue would never be flushed
2020-01-31 19:32:57 +00:00
Pedro Beschorner Marin
9b450ae1d9 Check Safari before listening for ondevicechange 2019-12-20 17:21:40 -03:00