Commit Graph

106 Commits

Author SHA1 Message Date
Gabriel Borlea 0c021868b5
feat(face-landmarks): integrate human library
It replaces face-api.

* feat(face-landmarks): integrate human library

* feat(face-landmarks): rewrite worker in typescript

* fix(face-landmarks): allow worker bundle size up to 2 mib

* fix: remove unwanted comment

* code review
2022-05-06 14:41:08 +02:00
Saúl Ibarra Corretgé 9dd44fc48e feat(local-recordings) drop old "local recordings" implementation
It's about to become very confusing, since we are going to add actual
local recordings with video.

This feature was never fully finalizeed since it required manual
processing of the files, as they were not uploaded anywhere.

In addition, unless one opens the local audio device without any audio
processing first, any tracks opened later will have audio proceessing
turned on, something not desirable for the scenario this feature was
designed for in the first place: podcasts.

This feature will likely come back as a JaaS demo / MVP where the local
recording is made outside of the Jitsi Meet iframe.
2022-05-03 14:40:12 +02:00
Calinteodor 7c523f3250
language(typescript) actionTypes.js -> actionTypes.ts (#10940)
* language(typescript) first ts component, added ts configurations, actionTypes.js are now ts files
2022-04-08 15:24:58 +03:00
Avram Tudor 42703fed47
ref(face-landmarks) refactor namings (#11307)
* ref(face-landmarks) refactor namings

* code review
2022-04-06 12:10:31 +03:00
Avram Tudor 2c165d4313
feat(face-landmarks) merge face expressions and face centering (#11283)
* feat(face-landmarks) merge face expressions and face centering

* code review

* code review

* code review
2022-04-04 16:09:14 +03:00
Tudor-Ovidiu Avram d718d9d8fb feat(face-centering) implement centering of faces in a video
Config options:

faceCoordinatesSharing.enabled
faceCoordinatesSharig.threshold
faceCoordinatesSharing.captureInterval
2022-03-04 18:13:36 -06:00
Gabriel Borlea 8ccd7e92e0
chore: update face-api (#10912)
* chore: update face-api

* fix: remove caret from face-api dependecy and update models
2022-02-07 11:42:48 +02:00
Saúl Ibarra Corretgé f2a1a2cca9 chore(deps) webpack-dev-server@4.7.3 2022-01-21 10:40:57 +01:00
Gabriel Borlea 61684b1071
feat(facial-expressions): add the facial expression feature and display them in speakerstats (#10006)
* Initial implementation; Happy flow

* Maybe revert this

* Functional prototype

* feat(facial-expressions): get stream when changing background effect and use presenter effect with camera

* add(facial-expressions): array that stores the expressions durin the meeting

* refactor(facial-expressions): capture imagebitmap from stream with imagecapture api

* add(speaker-stats): expression label

* fix(facial-expression): expression store

* revert: expression leabel on speaker stats

* add(facial-expressions): broadcast of expression when it changes

* feat: facial expression handling on prosody

* fix(facial-expressions): get the right track when opening and closing camera

* add(speaker-stats): facial expression column

* fix(facial-expressions): allow to start facial recognition only after joining conference

* fix(mod_speakerstats_component): storing last emotion in speaker stats component and sending it

* chore(facial-expressions): change detection from 2000ms to 1000ms

* add(facial-expressions): send expression to server when there is only one participant

* feat(facial-expressions): store expresions as a timeline

* feat(mod_speakerstats_component): store facial expresions as a timeline

* fix(facial-expressions): stop facial recognition only when muting video track

* fix(facial-expressions): presenter mode get right track to detect face

* add: polyfils for image capture for firefox and safari

* refactor(facial-expressions): store expressions by counting them in a map

* chore(facial-expressions): remove manually assigning the backend for tenserflowjs

* feat(facial-expressions): move face-api from main thread to web worker

* fix(facial-expressions): make feature work on firefox and safari

* feat(facial-expressions): camera time tracker

* feat(facial-expressions): camera time tracker in prosody

* add(facial-expressions): expressions time as TimeElapsed object in speaker stats

* fix(facial-expresions): lower the frequency of detection when tf uses cpu backend

* add(facial-expressions): duration to the expression and send it with durantion when it is done

* fix(facial-expressions): prosody speaker stats covert fro string to number and bool values set by xmpp

* refactor(facial-expressions): change expressions labels from text to emoji

* refactor(facial-expressions): remove camera time tracker

* add(facial-expressions): detection time interval

* chore(facial-expressions): add docs and minor refactor of the code

* refactor(facial-expressions): put timeout in worker and remove set interval in main thread

* feat(facial-expressions): disable feature in the config

* add(facial-expressions): tooltips of labels in speaker stats

* refactor(facial-expressions): send facial expressions function and remove some unused functions and console logs

* refactor(facial-expressions): rename action type when a change is done to the track by the virtual backgrounds to be used in facial expressions middleware

* chore(facial-expressions): order imports and format some code

* fix(facial-expressions): rebase issues with newer master

* fix(facial-expressions): package-lock.json

* fix(facial-expression): add commented default value of disableFacialRecognition flag and short description

* fix(facial-expressions): change disableFacialRecognition to enableFacialRecognition flag in config

* fix: resources load-test package-lock.json

* fix(facial-expressions): set and get facial expressions only if facial recognition enabled

* add: facial recognition resources folder in .eslintignore

* chore: package-lock update

* fix: package-lock.json

* fix(facial-expressions): gpu memory leak in the web worker

* fix(facial-expressions): set cpu time interval for detection to 6000ms

* chore(speaker-stats): fix indentation

* chore(facial-expressions): remove empty lines between comments and type declarations

* fix(facial-expressions): remove camera timetracker

* fix(facial-expressions): remove facialRecognitionAllowed flag

* fix(facial-expressions): remove sending interval time to worker

* refactor(facial-expression): middleware

* fix(facial-expression): end tensor scope after setting backend

* fix(facial-expressions): sending info back to worker only on facial expression message

* fix: lint errors

* refactor(facial-expressions): bundle web worker using webpack

* fix: deploy-facial-expressions command in makefile

* chore: fix load test package-lock.json and package.json

* chore: sync package-lock.json

Co-authored-by: Mihai-Andrei Uscat <mihai.uscat@8x8.com>
2021-11-17 16:33:03 +02:00
Saúl Ibarra Corretgé 0aba61d5c6 chore(Deps) update Babel and eslint to their latest versions 2021-11-09 09:43:55 +01:00
Vlad Piersec 9ab16a0a5c chore(webpack): Fix source maps on hot reloading 2021-11-01 11:01:52 +02:00
Werner Fleischer a0aff63dde fix(webpack): ignore optional canvas dependency in resemblejs
Skipping node-canvas dependency in resemblejs as it [fails in certain environments](https://github.com/rsmbl/Resemble.js#nodejs).
The reference states

> If you are using Resemble.js for in-browser analysis only, you can skip the node-canvas dependency.
2021-10-18 17:08:41 +02:00
Vlad Piersec d1a69689bc chore(webpack): Don't show warnings on dev server overlay 2021-10-08 11:06:55 +03:00
Saúl Ibarra Corretgé a313f5cde2 feat(build) migrate to Webpack 5 2021-10-07 20:22:44 +02:00
Saúl Ibarra Corretgé 720d19ba95 chore(deps) update js-utils
In preparation for Webpack 5.
2021-10-07 20:22:44 +02:00
Steffen Kolmer e9675453e1
feat: Make Jitsi WCAG 2.1 compliant (#8921)
* Make Jitsi WCAG 2.1 compliant

* Fixed password form keypress handling

* Added keypress handler to name form

* Removed unneccessary dom query

* Fixed mouse hove style

* Removed obsolete css rules

* accessibilty background feature

* Merge remote-tracking branch 'upstream/master' into nic/fix/merge-conflicts

* fix error

* add german translation

* Fixed merge issue

* Add id prop back to device selection

* Fixed lockfile

Co-authored-by: AHMAD KADRI <52747422+ahmadkadri@users.noreply.github.com>
2021-06-10 07:48:44 -05:00
Calinteodor 07eb19b98a
feat(rn,ui) introduce react-native-paper 2021-05-11 10:01:45 +02:00
Saúl Ibarra Corretgé ea8ed8aa84 fix(dev) make sure each bundle analysis report gets its own file 2021-05-07 15:37:41 +02:00
Saúl Ibarra Corretgé a5ddc896e2 fix(dev) disable performance hints when doing bundle analysis 2021-05-07 15:37:41 +02:00
hmuresan 7d1c8da827 fix(aot): fix aot buttons size
- fix aot not being debug-able locally in jitsi-meet-electron app
2021-04-20 15:32:29 +03:00
Saúl Ibarra Corretgé 30d0aabaca feat(build,rnnoise) don't use an external bundle for the effect
The majority of the code is in the WASM file, the JS is just 9KB.
It's so little, in fact, that the performance hint for the main bundle didn't
have to be adjusted.
2021-03-12 23:00:50 +01:00
Saúl Ibarra Corretgé 22b6d32174 feat(build,virtual-background) don't use an external bundle for the effect
The majority of the code is in the WASM file and models, this is just a few KB.
It's so little, in fact, that the performance hint for the main bundle didn't
have to be adjusted.
2021-03-12 23:00:50 +01:00
tudordan7 194d357005 feat(virtual-backgrounds) add virtual background support 2021-03-12 15:05:20 +01:00
るしふぁ eeb5abbbe8
fix: date util localization (#8723)
* Update dateUtil.js

* version up moment

* exclude unnecessary languages in Moment.js from webpack

* add Occitan of Moment.js

* Fixed auto-formatting

* add require missing by mistake
2021-03-04 08:20:27 -06:00
Hristo Terezov 7dc899ace1 ref(DeviceSelectionPopup): remove. 2021-02-08 15:53:38 -06:00
Saúl Ibarra Corretgé c56afde00c feat(dev) bind to 0.0.0.0 on the dev server by default 2021-02-05 11:15:20 +01:00
Steffen Kolmer ef7d425859 feat(ui) update AtlasKit components 2021-01-26 16:47:55 +01:00
Erik Demaine 58d38ca714
fix(build) fix webpack-dev-server on Windows
Allow path separator of \ in addition to / in jQuery's path name.
2020-11-10 11:01:00 +01:00
Saúl Ibarra Corretgé f6e2bd1249 fix(build) increase external_api bundle size
We are off my 1KB oh well.
2020-10-09 12:34:56 +02:00
Mihai Uscat 5e2ee3bdcd fix: Show focus indicator only when navigating via keyboard 2020-10-08 10:41:26 +02:00
Saúl Ibarra Corretgé 69b7301b9d fix(build) reduce bundle size by about 700K
app.bundle.js before: 3851549 after: 4506493.

The culprit for the bloat was Olm. It feature-detects the environment in order
to pick a suitable random byte generator, and alas Webpack includes the None
crypto pollyfill. This is due to the existence of the "node" block in our
Webpack configuration file.

The solution is to provide empty modules to make bundling work, as we did
already for the fs module, since we know they are not used at runtime.
2020-09-22 10:59:55 +02:00
Saúl Ibarra Corretgé 7cafa205ee e2ee: stage 2
Adapt to E2EE changes in lib-jitsi-meet. Notably:

---
    e2ee: introduce per-participant randomly generated keys

    This the second stage in our E2EE journey.

    Instead of using a single pre-shared passphrase for deriving the key used for
    E2EE, we now establish a secure E2EE communication channel amongst peers.

    This channel is implemented using libolm, using XMPP groupchat or JVB channels
    as the transport.

    Once the secure E2EE channel has been established each participant will generate
    a random 32 byte key and exchange it over this channel.

    Keys are rotated (well, just re-created at the moment) when a participant joins
    or leaves.
---
2020-09-10 16:06:25 +02:00
Mihai Uscat 9cf7199c0e feat(close3): Move readyToClose flow to the close page 2020-08-18 17:31:10 +03:00
Saúl Ibarra Corretgé b91d6b97a9 deps: jitsi/js-utils@1.0.0 2020-07-10 10:38:49 +02:00
Saúl Ibarra Corretgé 6e679f952f redux: refactor loading of middlewares and reducers
Up until now we relied on implicit loading of middlewares and reducers, through
having imports in each feature's index.js.

This leads to many complex import cycles which result in (sometimes) hard to fix
bugs in addition to (often) breaking mobile because a web-only feature gets
imported on mobile too, thanks to the implicit loading.

This PR changes that to make the process explicit. Both middlewares and reducers
are imported in a single place, the app entrypoint. They have been divided into
3 categories: any, web and native, which represent each of the platforms
  respectively.

Ideally no feature should have an index.js exporting actions, action types and
components, but that's a larger ordeal, so this is just the first step in
getting there. In order to both set example and avoid large cycles the app
feature has been refactored to not have an idex.js itself.
2020-06-16 11:24:15 +02:00
Saúl Ibarra Corretgé 7646618e5a rnnoise: simplify initialization 2020-06-16 10:49:33 +02:00
khajaamin 26f7951894
Marathi language (#6615)
* Lang folder removed from proxy server and now using from local dev dir

* Added Marathi 100% langulage transalation
2020-06-08 12:33:40 -05:00
Saúl Ibarra Corretgé d4d1d0aa70 dev: add plugin for circular dependency detection
Example run: https://gist.github.com/saghul/e5e12edc108bdedbcbe65a3d7528235f
2020-05-29 10:37:09 +02:00
Felix C. Stegerman 55051cc203
dev: don't proxy /lang/ 2020-05-19 11:58:21 +02:00
Bettenbuk Zoltan c08638da51 feat: insecure room name warning 2020-05-18 17:59:07 +02:00
ludovicm67 bdd129b9a2 feat(analytics): include MatomoHandler by default 2020-05-06 15:32:49 +02:00
ludovicm67 4c635a2a63 feat(analytics): add Matomo support 2020-05-06 15:32:49 +02:00
paweldomas 6c3a5793b4 fix(webpack.config.js): specify Host header in the webpack proxy pass
Without changing the 'Host' header, a standalone instance we use for
jitsi dev work will generate:

config.websocket = 'wss://localhost:8080/xmpp-websocket'

This was fine with BOSH, but a Websocket will not connect.

With this change it will be(based on the default devServerProxyTarget):

config.websocket = 'wss://alpha.jitsi.net/xmpp-websocket'
2020-01-28 09:55:54 -06:00
Andrei Gavrilescu b125bff7c7 refactor / enable VAD talk while muted 2019-12-06 11:37:08 +00:00
Andrei Gavrilescu c1d261445e Initial commit 2019-12-06 11:37:08 +00:00
Bettenbuk Zoltan 0fff1c3534 ref: serve makefile libs locally 2019-10-09 11:56:06 +02:00
Andrei Gavrilescu 761ac6a730 feat: integrate rnnoise based service for voice activity (VAD) detection 2019-10-04 12:55:18 +02:00
Bettenbuk Zoltan 382ec011eb ref: reduce device popup bundle size 2019-09-13 17:25:32 +02:00
Bettenbuk Zoltan 8a3ddd8596 feat: SVG icons 2019-09-13 14:07:53 +02:00
Saúl Ibarra Corretgé 40a1af5302 dev: use alpha as the default proxy target 2019-09-13 11:51:22 +02:00