Commit Graph

34865 Commits

Author SHA1 Message Date
Gabriel Porfirio
15b28d52fe updating feedback message 2022-07-22 13:27:39 -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
João Victor Nunes
fe8d7fa446
Merge branch 'v2.5.x-release' into dashboard-key-fixes-Jun-03 2022-07-22 10:26:51 -03:00
Ramón Souza
7c4457bfa1
Merge pull request #15415 from JoVictorNunes/issue-15397
fix: breakout remaining time label
2022-07-22 14:23:47 +01:00
Joao Victor
dbafb610d5 fix: whiteboard access avatar icon in RTL mode 2022-07-22 10:16:57 -03:00
Ramón Souza
9c8c580db2
Merge pull request #15424 from prlanzarin/u26/fix/layout-ss-calc
fix(layout): set external-video/screen share initial states on all layouts
2022-07-22 13:12:31 +01:00
Ramón Souza
0312be4523
Merge pull request #15427 from antobinary/merge-254
chore: pull BBB 2.5.4+ into 2.6
2022-07-21 21:31:58 +01:00
Joao Victor
ce7f35b3db fix: checkbox and remove button alignment in RTL languages 2022-07-21 17:30:25 -03:00
Anton Georgiev
d7bdc324a0 chore: pull BBB 2.5.4+ into 2.6 2022-07-21 20:25:31 +00:00
Joao Victor
e59e3b68af fix: header alignment 2022-07-21 17:20:03 -03:00
KDSBrowne
e12877e7d8 fix console error 2022-07-21 20:02:43 +00:00
Anton Georgiev
fe0557f08d
Merge pull request #15426 from bigbluebutton/ci-read
test: set permissions: content: read [2.5]
2022-07-21 15:54:32 -04:00
Anton Georgiev
07ccaa88fa
test: set permissions: content: read
Suggested by @naveensrinivasan
2022-07-21 15:50:18 -04:00
Joao Victor
e3062f2da7 fix: increase exporting threshold to 1 minute 2022-07-21 16:40:52 -03:00
Joao Victor
2f623a2731 fix: better log message when setting exporting status 2022-07-21 16:39:19 -03:00
prlanzarin
8f77f4cd1f fix(layout): set external-video/screen share initial states on all layouts
Only smart layout takes screen sharing/external video states in account
when populating its initial state. The others don't, and that causes
some weird issues when switching back-and-forth between layout types due
to their input states becoming inconsistent - ie having an active screen
sharing and transitioning from Smart -> Custom would mark it as false
(due to its absence from the initial state) and pollute its state for
subsequent layouts.

This commit guarantees those features are taken into account when
populating initial input states for Focus On*/Custom layouts.
2022-07-21 18:07:49 +00:00
Paulo Lanzarin
34a3c2be49
Merge pull request #15408 from prlanzarin/u26/fix/audio-reconn-stuck
refactor(audio): log VoiceUser cleanup on User remove and centralize it
2022-07-21 15:06:41 -03:00
Ramón Souza
91704dca75
Merge pull request #15180 from Arthurk12/bbb-cc
feat: New closed captions with automatic transcription
2022-07-21 18:42:51 +01:00
Gabriel Porfirio
94cfa3c084 WIP: Adding notification to waiting users list 2022-07-21 14:07:19 -03:00
Joao Victor
854dcf5a93 fix: use Meteor bindings for both setTimeout and clearTimeout 2022-07-21 10:49:36 -03:00
João Victor Nunes
4866411726
Merge pull request #4 from gustavotrott/export-presentation
broadcast NewPresAnnFileAvailableMsg to html5
2022-07-21 08:53:00 -03:00
Gustavo Trott
59ddf3e8e3 broadcast NewPresAnnFileAvailableMsg to html5 2022-07-20 20:20:32 -03:00
KDSBrowne
9234dee077 fix viewer wb crash switching to rtl 2022-07-20 19:54:23 +00:00
Maxim Khlobystov
46aa2ccfe6 Add new 2.5 shared notes tests 2022-07-20 15:44:09 -04:00
KDSBrowne
db41932fe7 update render wb condition | add operator 2022-07-20 19:20:46 +00:00
KDSBrowne
21f2a441ee update editable whiteboard component key 2022-07-20 19:03:26 +00:00
KDSBrowne
9d8ce2215d remove key prop 2022-07-20 18:51:50 +00:00
KDSBrowne
fb63975a7e fix viewer WB crash when resizing 2022-07-20 18:50:13 +00:00
prlanzarin
6c8b097eba fix: add option to disable transcription in mobile, extend support check
Mobile endpoints are flaky with the WebSpeechAPI:
  - iOS versions that support it are borking our outbound audio when it's
    enabled
  - Android speech recognition has flaky locale detection and speech
    transcription
Additionally: the support check is not checking the WebSpeechAPI
availability properly, so older devices (eg iOS 12) are flagged as
supported even though they aren't.

This commit adds a configuration flag (public.audioCaptions.mobile) to
control transcription availability on mobile. False by default.
Also extends the setSpeechVoices support check and
hasSpeechRecognitionSupport method to prevent false positives.
2022-07-20 17:20:54 +00:00
Arthurk12
e93b9739de style(captions): adds border to toggle button 2022-07-20 17:20:53 +00:00
Arthurk12
9642d0431a chore(captions): adds a description to settings 2022-07-20 17:20:53 +00:00
Max Franke
75eef650e6 feat(audio-captions): reallocate button from mobile
Remove CC button toggle in the action bar only in mobile.
Add a new CC button toggle in settings dropdown only to mobile.
2022-07-20 17:20:53 +00:00
Arthurk12
c96b53093c feat(captions): adds locale settings
Adds two new flags to the settings file which change the way the locale
flag is used:

- forceLocale: (true/false) => If true, enforces the transcription
  language to be the locale content field and jumps the language
selector
  in audio modal.
- defaultSelectLocale: (true/false) => If true, the default selected
  value in the dropdown language selector in audio modal will be defined
  by the locale content field.

In any case, if the locale flag holds an invalid value, it defaults to
disabled.
2022-07-20 17:20:53 +00:00
Arthurk12
da9adca229 fix(captions): talking indicator icon
Prevents the speech recognition from being initialized when the closed
captions feature is disabled.
2022-07-20 17:20:52 +00:00
Pedro Beschorner Marin
d553ca65cf feat(captions): use navigator language
If not set to use the default language, try to select the navigator
language as speech default locale.
2022-07-20 17:20:52 +00:00
Pedro Beschorner Marin
116c0d9a49 fix(captions): filter duplicated languages
Avoid multiple instances of the same language at the voices data.
2022-07-20 17:20:52 +00:00
Pedro Beschorner Marin
51eeb092b3 refactor(captions): configurable languages
Move the language collection to the HTML settings file. This data defines
the available languages available for the speech API.

These language tags are used to filter SpeechSynthesis' API `getVoices`
result. Tags must use BCP 47 format.

https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisVoice/lang
2022-07-20 17:20:52 +00:00
Pedro Beschorner Marin
b52c67d7a7 feat(captions): first pass on recording
Add the main server-side adapter for using the legacy closed captions
recording process with the audio captions data.
2022-07-20 17:20:52 +00:00
Pedro Beschorner Marin
aa7f2abae2 feat(captions): talking users' floor
Associate the floor status with the talking users to improve feedback
on automated closed captions.
2022-07-20 17:20:51 +00:00
Pedro Beschorner Marin
1064aab84d style(captions): add background alpha
Add some transparency to the background color.
2022-07-20 17:20:51 +00:00
Pedro Beschorner Marin
fb48e61d6d feat(captions): add talking indicator feedback
Inform other users about who are the current talkers with the speech
recognition enabled.
2022-07-20 17:20:51 +00:00
Pedro Beschorner Marin
df184b542c feat(captions): add unsupported warning
Add a disclaimer for users on browsers that do not provide speech synthesis'
voices.
2022-07-20 17:20:51 +00:00
Pedro Beschorner Marin
307ab6ea40 feat(captions): add author avatar
Include captions' author avatar at the live feedback to improve identification.
2022-07-20 17:20:50 +00:00
Pedro Beschorner Marin
d32d47168f feat(captions): add transcript settings
Define number of lines and words per line at application.conf.
2022-07-20 17:20:50 +00:00
Pedro Beschorner Marin
d00909751a refactor(captions): change getVoices routine
In some cases, `getVoices` returns an empty array even if the browser's vendor
has full support for speech synthesis. Add a trigger call to initiate the
voices fetching process.

As drafted, `getVoices` can be an asynchronous call and monitoring it
depends on the support of a `voiceschanged` event. Although many of the
main vendors support voices, this event is not (yet) by Safari.

https://wicg.github.io/speech-api/#dom-speechsynthesis-getvoices
https://wicg.github.io/speech-api/#eventdef-speechsynthesis-voiceschanged
https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/voiceschanged_event
2022-07-20 17:20:50 +00:00
Pedro Beschorner Marin
d6dc66f57e feat(captions): language selector
Replace the checkbox with a selector up with 3 languages: en-US, es-ES and pt-BR.

Add setting option to enable by default with predetermined locale.
2022-07-20 17:20:50 +00:00
Pedro Beschorner Marin
5671bd7d3c fix(captions): check for voices
Avoid enable audio transcription if the browser's vendor does not provide
voices data.

This should prevent false positives for browsers such as Chromium and
Brave.
2022-07-20 17:20:49 +00:00
Pedro Beschorner Marin
e131925370 style(captions): font-family fallback
Add extra `sans` alternatives
2022-07-20 17:20:49 +00:00
Pedro Beschorner Marin
d688a2572f fix(captions): remove padding when no content
Avoid rendering the captions wrapper's padding when there's no data to
be displayed at the live feedback.
2022-07-20 17:20:49 +00:00
Pedro Beschorner Marin
f726cb0ad5 refactor(captions): UX improvements
Parse the audio transcript before broadcasting it's content back to the
client and the recording actor. Limiting by 8 words per line and max of
2 lines to avoid CPU intensive operations over this recurring event.

Replace Calibri font family with Verdana to improve character spacing,
add relative sizing to the text content and a background padding.
2022-07-20 17:20:49 +00:00