Commit Graph

12491 Commits

Author SHA1 Message Date
Daniel Petri Rocha
6ac3040d4a Fix multiple pres. export; include PresId in NewPresAnnFileAvailable msg. 2022-07-26 15:19:23 +02:00
GuiLeme
f0c95c4fe5 [apply-toast-shared-notes] Checkpoint - moving responsability of monitoring the upload to the service 2022-07-26 09:25:36 -03:00
Ramón Souza
4f39e419ac
Merge pull request #15421 from gabriellpr/waiting-list-feedback
fix: Adding notification to waiting users list
2022-07-26 09:06:20 -03:00
Joao Victor
07434d238c refactor: toast notification rework 2022-07-25 18:56:26 -03:00
Ramón Souza
c6f4056677 fix chat resizing in RTL 2022-07-25 16:53:19 -03:00
Joao Victor
5c6c28cdd2 Fix conflicts 2022-07-25 15:14:27 -03:00
Ramón Souza
01ba2a27f5
Merge pull request #15332 from JoVictorNunes/virtual-backgrounds-skeleton-preview
improvement(virtual background): loading skeleton, custom backgrounds in video preview modal
2022-07-25 13:34:22 -03:00
Ramón Souza
890ca5c4a0
Merge pull request #15429 from prlanzarin/u26/fix/screenshare-layout-dimensions
fix(layout): use actual screen share size when calculating smart layout
2022-07-25 13:02:00 -03:00
Joao Victor
24e78a1864 fix: 1 minute threshold for each slide 2022-07-25 10:33:23 -03:00
Joao Victor
e32eeec9a2 improvement: query selector 2022-07-25 09:35:08 -03:00
Joao Victor
9f0999f623 fix: rename exported presentation default filename 2022-07-25 09:19:39 -03:00
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
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
GuiLeme
82e0204cfa [apply-toast-shared-notes] - Savepoint refactor toast 2022-07-22 10:06:32 -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
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
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
GuiLeme
dbb2681b28 WIP - started refactoring service 2022-07-21 15:56:44 -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
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
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
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
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
Pedro Beschorner Marin
75969ec93c feat(captions): audio captions app
Add a server-side app for the audio captions feature and record proto-events
for this data.

As it is, only behaves as a pass-through module. The idea is to include all
the business intelligence in this app.
2022-07-20 17:20:48 +00:00
Pedro Beschorner Marin
0bc730b3e3 refactor(captions): improve recovery
Use the user's talking state to trigger a speech API recovery after long
periods of silence.
2022-07-20 17:20:48 +00:00
Pedro Beschorner Marin
944edf2ccf feat(captions): web speech prototype
Hardcoded pt-BR prototype for closed captions generated by the browser's
WebSpeech API.
2022-07-20 17:20:48 +00:00
Ramón Souza
c3dd17f913
Merge pull request #15406 from KDSBrowne/v2.6.x-fix-fs-cursor
Cursor Position Update For Video Focus Layout
2022-07-20 17:10:30 +01:00
Joao Victor
a1ed921039 fix: breakout remaining time label 2022-07-20 12:22:46 -03:00
prlanzarin
d23189d1ed refactor(audio): log VoiceUser cleanup on User remove and centralize it
There's a VoiceUser cleanup procedure bound to the User's cleanup
routine in Meteor's server-side. That cleanup is _silent_ and does not
use a dedicated modifier from voice-user et al, which is not
straightforward and might waste a few minutes of understanding what's
happening when debugging audio collections.

This commit centralizes that cleanup in a new clearVoiceUser modifier in
voice-user as well as logs when it works.
2022-07-20 12:13:37 +00:00
Joao Victor
cff1c087a8 feat: front-end support for exporting presentations with annotations 2022-07-19 16:36:00 -03:00
KDSBrowne
100bfcfb86 update fullscreen element check 2022-07-19 10:51:59 +00:00
KDSBrowne
ed55d58b01 handle cursor positions for video focus 2022-07-19 03:37:47 +00:00
KDSBrowne
47303757de handle cursor position for fullscreen presentation 2022-07-19 01:23:10 +00:00
Ramón Souza
73c4bebe9b
Merge pull request #15248 from JoVictorNunes/issue-15240
fix: missing translations for some labels on L. A. Dashboard
2022-07-18 21:19:45 +01:00
Ramón Souza
f083bb9a20
Merge pull request #15273 from JoVictorNunes/issue-15272
fix: apply presentation 'isCurrent' changes to local state
2022-07-18 21:19:20 +01:00
Ramón Souza
2fd65dfc1c
Merge pull request #15099 from schrd/fix-issue-14982
Fix: only show breakout room in user list when user is in breakout room
2022-07-18 21:17:17 +01:00
Localization Server
35ca527d94 chore: Pulled the latest 2.5 HTML5 locales from Transifex 2022-07-18 15:38:01 -03:00
Localization Server
1539f402c7 chore: Pulled the latest 2.6 HTML5 locales from Transifex 2022-07-18 16:58:19 +00:00
Anton B
944e0b2981 test: add audio tests 2022-07-15 17:54:16 -03:00
Joao Victor
0ac69cba0a fix: comparison to render custom buttons 2022-07-15 17:16:33 -03:00
Joao Victor
34aaf07fed Merge branch v2.6.x-release into virtual-backgrounds-skeleton-preview 2022-07-15 17:14:16 -03:00
Paulo Lanzarin
a156db25e4
Merge pull request #15358 from frankemax/fix-audio-infinite-joining
fix(audio): prevent race condition when joining audio
2022-07-15 15:24:14 -03:00
Paulo Lanzarin
383fe89653
Merge pull request #15364 from prlanzarin/u26/refactor/kutils-kboom
refactor: remove kurento-utils-js
2022-07-15 14:53:10 -03:00
prlanzarin
d06ae5ce40 fix: add default gUM factory to new peer wrapper
For scenarios such as preview-less camera sharing, old echo test
2022-07-15 17:07:15 +00:00
Anton Georgiev
f2e25768c7
Merge pull request #15390 from ramonlsouza/merge25-26-jul14
chore: Merge v2.5.3 into v2.6
2022-07-15 11:43:17 -04:00
Ramon Souza
83d9feb9c0 fix missing import in audio controls 2022-07-15 11:41:11 -03:00
prlanzarin
cd9b8ccef4 fix: handle Firefox stream cleanup edge case (peer.js)
Firefox doesn't fire the ended evt/onended callback for live
 MediaStreamTrack(s). We rely on that event.

 Manually emit the ended event which works with the onended callback
 when a track is stopped
2022-07-15 14:25:37 +00:00
Ramon Souza
d08ff18add Merge remote-tracking branch 'upstream/v2.6.x-release' into merge25-26-jul14 2022-07-15 11:12:25 -03:00
Ramon Souza
db5ac1428a Merge tag 'v2.5.3' into merge25-26-jul14 2022-07-15 11:08:02 -03:00
prlanzarin
72c0b23b9d refactor: remove kurento-utils from compatibility
Phased out.
2022-07-15 14:00:12 +00:00
prlanzarin
45049cbd65 refactor: swap kurento-utils for new peer wrapper in screen sharing and audio 2022-07-15 14:00:12 +00:00
prlanzarin
6a4ceac61f refactor(webcam): swap kurento-utils for the new peer wrapper 2022-07-15 14:00:12 +00:00
prlanzarin
7281475271 feat: add new peer wrapper to phase out kurento-utils
kurento-utils is unmaintained. It's served us well, but its age
shows.  We need to transition to something else if we want to
have better  maintainability and include simulcast, multistream, ...

This introduces a simplified/leaner wrapper kit that's almost
API-compatible with what we use right now - so widespread changes
are minimal). It's easier to maintain/read/transition from. This
can be read as an intermediate step to transitioning to
something definitive (ie mediasoup-client).
2022-07-15 13:51:03 +00:00
Ramón Souza
267a6f5c9c
Merge pull request #15203 from ramonlsouza/improve-ghost-button-border
style: improve ghost buttons border in low density display
2022-07-15 12:06:59 +01:00
Ramón Souza
da848e990a
Merge pull request #15320 from gabriellpr/dark-light-buttons
Styling light and dark buttons
2022-07-13 21:03:46 +01:00
gabriellpr
1c2f9e9cd9
Update styles.js 2022-07-13 16:35:02 -03:00
Paulo Lanzarin
3e8ccd370d
Merge pull request #15375 from prlanzarin/u26/fix/local-echo-gUM-block
fix(audio): block audio join while gUM isn't resolved (local echo)
2022-07-13 15:57:02 -03:00
gabriellpr
49f12c43af
Merge branch 'v2.6.x-release' into dark-light-buttons 2022-07-13 15:36:31 -03:00
prlanzarin
27896e74e6 fix(audio): block audio join while gUM isn't resolved (local echo)
The new local echo view doesn't block the "Join audio" button while
awaiting for getUserMedia permission to be granted/denied. That may
cause unexpected behavior when unattentive users just click "Join audio"
without granting or denying gUM.

This commit accounts for gUM resolution when deciding whether to block
the "Join audio" button. It also includes an extra "isConnecting" check
to it to avoid spam-clicking issues.
2022-07-13 14:35:37 +00:00
Ramón Souza
04386dfcd5
Merge pull request #15212 from gabriellpr/styling-buttons
style: Revised styles for our secondary buttons
2022-07-13 15:22:49 +01:00
Ramón Souza
a0f80e0efb
Merge pull request #15353 from gabriellpr/contrast-record-indicator
Improving contrast on recording indicator
2022-07-13 15:20:36 +01:00
prlanzarin
7b76d2e88f fix: change local echo Stop hearing locale to Stop audio feedback 2022-07-13 13:59:49 +00:00
Anton Georgiev
1393e4a7de
Merge pull request #15352 from germanocaumo/tldraw-z-f
fix(tldraw): initial/viewer zoom fixes + presToolbar height
2022-07-13 09:42:36 -04:00
Anton Georgiev
70c084bfdb
Merge pull request #15300 from JoVictorNunes/fix-focus-loss-Jun-30
fix: disable Tldraw autofocus
2022-07-13 09:39:06 -04:00
Paulo Lanzarin
64af188f1b
Merge pull request #15371 from prlanzarin/u26/fix/webcam-oninactive
fix(webcam): handle stream inactivation/gUM revocations
2022-07-13 10:37:36 -03:00
Anton Georgiev
20762cfac6
Merge pull request #15310 from germanocaumo/tldraw-production-fix
fix(tldraw): fix shapes not persisting in production +
2022-07-13 09:36:44 -04:00
prlanzarin
029c957b22 fix(webcam): handle stream inactivation/gUM revocations
The 'inactive' event is fired whenever the stream gets inactive (ie it
cannot be used anymore), and there are scenarios where that is
unexpected behavior and must be handled accordingly.
The main example of that is when gUM permissions are revoked by the user
via the browser's permission management panel.
Since MediaStream/Track inactive events aren't being handled in such
scenarios, what actually happens is that the camera just freezes without
further indication why.

This commit handles those scenarios in both video-preview and
video-provider by:
  - 1) correctly stopping the camera (provider)
  - 2) surfacing a toast (provider) or error indication (preview)
2022-07-12 22:03:01 +00:00
prlanzarin
e93440e15a refactor(webcam): fix linter errors in BBBVideoStream 2022-07-12 17:50:16 +00:00
Daniel Petri Rocha
5f98290413 Add presentationWithAnnotationDownload, exportPresentationWithAnnotation to disabledFeatures 2022-07-12 18:58:56 +02:00