Commit Graph

15792 Commits

Author SHA1 Message Date
f6a7ab13b7 misc: fix onnx upstream reference
Change-Id: Ib857693a75dfa0f91e9deffd2a475ab97e27bd2b
2022-08-26 09:50:36 -04:00
871942b52c audiolayer: do not round sample_rate
Rounding the sample rate adds artifacts to the sent audio stream.

Change-Id: If82017c3cb69cb065ecfbdc5bfa96f2891874c25
2022-08-26 07:53:14 -04:00
5962210088 conversation: fix ConversationSyncFinished
This patch increase fetched conversation number earlier,
so ConversationSyncFinished would not be emitted in case when
second call to fetchNewCommits happened before receiving callback
from onNeedSocket_.

Change-Id: I72263768426fcce671029fd165323ce89e49e91b
2022-08-25 11:07:54 -04:00
53f60a1aa4 trace: add audio tracing and plotting script
Change-Id: Ie5c8fe1d9cc4e5a38a623a1cd4755c00ad4f4904
2022-08-24 13:18:57 -04:00
cb3d3c3c85 swarm: avoid duplicated conversation after a ban
Several improvements are included with this patch:

1. confirmed is resetted when account is removed, this allow to
send a request when conversation is added back and reset the
whole matrix, avoiding duplicates
2. Banned can be due to harrasement. In this case, keeping the
conversation like the old behavior (pre-swarm) is better, to keep
proofs. Also re-adding back a contact is immediate if it was a
mistake as the conversation is kept back.

https://git.jami.net/savoirfairelinux/jami-project/-/issues/1449

Change-Id: I13da8ce9bd431b91ce7b7d455dae561358c62f10
2022-08-24 10:46:22 -04:00
1f77dce51a removeContact: actually close all channels not only SIP
Removing a contact was not actually closing all connections, causing
the remote contact to be able to call even if it was banned if there
was more than two channels opened.
Rewrite closeConnectionsWith as it was unused to use it to close
connections with the banned contact.

https://git.jami.net/savoirfairelinux/jami-project/-/issues/1449

Change-Id: I147f437370a553f0682b0cea060720a6c473f8a2
2022-08-24 09:34:36 -04:00
4fb85d505c misc: remove hacky underlyingICE()
upper layer should not need to interact with the IceTransport
directly and only uses the API of the socket endpoint.

Change-Id: Iea65b03b37e87e9a7ab542ba88be5a2c6790ae98
GitLab: #703
2022-08-24 09:11:04 -04:00
5a3768f31a ice_transport: avoid dirty underlyingIce()
Let the IceTransport layer stopped it's current read if destroyed
(as it uses a peerChannel, this channel should be cancelled to
let upper layer stop correctly all operations).
Call the shutdown callback whenever the ICE is really destroyed
(so caller must not re-use the ICE pointer).
Finally, remove some dirty underlyingIce() accesses in peer_connection

Change-Id: Icca73d9af273297a558121ffddc991ac6617ece2
GitLab: #703
2022-08-24 09:10:42 -04:00
800e2293d8 sync_module: split SyncMsg and use max pkt size
This is a first version. This avoid "insufficent bytes"' errors due
to the pack with a max size of 8k (which can be the case)
In a future version, the SyncMsg will be splitted in partial data
to only use the necessary size and could take any wanted size.

Change-Id: Ic4b86a8ac8c3c49063e5650fefbb1f969b458db6
2022-08-19 10:03:51 -04:00
ef6e677891 contrib: switch libressl repo source
This patch updates libressl repo source, since according
to https://github.com/libressl-portable/openbsd/issues/128,
releases from libressl-portable could be regenerated.

Change-Id: If050a282341ccec76eb85ab78d44e10508b22f9d
2022-08-17 13:48:02 -04:00
2f6f35cf04 video device: recheck the video properties
We could recheck for the video device capabilities whenever the
devices list is requested. This can avoid having a virtualcamera,
like OBS, with mismatching information from what is available on the system.

GitLab: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/747

Change-Id: I012cfb71e12c8e9965b9d112e3ff0488c7cb285c
2022-08-17 08:57:20 -04:00
5df9251e20 video_encoder: fix fps in windows
Virtual camera with non conventional fps where not working
properly due to a mismatch between the framerate rational in
daemon and AVRational in ffmpeg.

GitLab: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/478

Change-Id: Ida3a575be1dedae0e581257e38bf7469154a6ef5
2022-08-17 09:52:38 -03:00
626b563867 tests: re-enable conversation's tests
Change-Id: I3eaa39c81fe816e3149ae8599fb8e95f84e18bc0
2022-08-16 09:16:33 -04:00
a032cb1d8d fix: audio jittering
Use the bigger sample_rate to avoid loosing data in the audio
processing.

GitLab: #741

Change-Id: I8f96923ee9f67767d4f2d4c73785a88925c5f031
2022-08-15 09:41:14 -04:00
c41e22f779 contrib: bump opendht
+ Fix timeout on OCSP requests
+ Fix addresses when switching between two interfaces (proxy_client)

Change-Id: Id6b65e665bc8e150bdefa040fc49bd21f666d352
2022-08-15 09:19:18 -04:00
d4ee3d52b9 conversation: emit ConversationSyncFinished when all fetches done
Change-Id: If2c5e86a160998ddc25e095bba1de3add89f37e0
2022-08-12 10:11:26 -04:00
521107ed5a swarm: do not send message displayed notification if unneeded
Change-Id: Iafc78c75cc935bd7b91f39cbd43159f1a7eeaa02
2022-08-11 12:38:52 -04:00
5d3412e1d0 meson: make a Speex audio processor a feature
Change-Id: I6542e049809ab2526fa652986a4078f3a9969733
2022-08-11 11:34:34 +03:00
8105fa0d3b audioprocessing: fix cmake
+ Adds some missing references to the recently added files.
+ Removes the include of 'speex_config_types.h' on native Windows.

TODO: Refactor the cmake to be in one file. Way too complicated for
nothing. Also, "source_group" is probably not used by most devs.

Change-Id: I020caf40544d2a7502c70d96fec99b08278ac2ff
2022-08-10 12:38:57 -04:00
aa9a39e26d audio: integrate audio processor preferences
* add check for PulseAudio system echo cancel module
* audio processor preferences can currently only be changed in dring.yml
  * not yet integrated into daemon/client signaling system

Gitlab: #692
Change-Id: I57af6e844acbbfdb5a78d95a87a98873757c506d
2022-08-09 14:09:13 -04:00
869c3fe9bd audio: send voice activity
* send over SIP if not in conference
* send via ConfInfo for conferences
* multiple streams not yet supported

Change-Id: Ie43c43dd860f5ceed138eafef81359799961ead9
2022-08-09 14:09:13 -04:00
6ff875cb59 audio: add voice activity detection
* rename EchoCanceller to AudioProcessor
* enable echo cancellation and voice activity detection
* add minimum active duration and trigger time to voice activation

Gitlab: #741
Change-Id: I98662462c17539fca1d042482e97fdb3eff86130
2022-08-09 14:09:13 -04:00
7e74098cbe swarm: announce all messages updated when merging
This will facilitate the work of the client in order to order messages
as linearized parents for all commits until the merge base can be
updated.

Change-Id: I95266174d58913fbfb2ca665da18b08475aa9c93
2022-08-08 14:26:59 -04:00
3bc5888fe2 connectionmanager: announce non ready channel on shutdown
This is useful for the conversation_module if any channel is pending
while shutting down, as the previous fetch status was not updated.
More generally, every connectDevice() should call the associated
callback.

Add a unit test to replicate this scenario.

Change-Id: I72f2975dc15dd4bac3f55c2f899ebb1ae5a7a7f3
2022-08-08 14:09:28 -04:00
03ed11b92c messageengine: allow user to replace a sending message
As we only need one git notification, we can just refresh the
last sending token to avoid to populate the cache with lot of
notifications that will be unused.

Change-Id: Icb8252c8a4b4068e0bd8475a8cc70d77224858da
2022-08-08 13:31:53 -04:00
99564afb6a ConversationRepository: use fmt in fetch
Change-Id: I2cb56b8320a2a0f8fa8cdef0c163bf4f662bdf0d
2022-08-08 11:36:39 -04:00
ac79223764 ConversationRepository: consume vcard info
Change-Id: I7c2e6b95fad95049565f9298e2690c3ef8b0b5d1
2022-08-08 11:36:31 -04:00
c99fd0f906 ConversationRepository: use string_view for checkVote
Change-Id: I1df11887d2c1e9a3e18333e7eb42c297d5ef14f5
2022-08-08 11:36:26 -04:00
25353e0c0e Conversation: refactor pull
Change-Id: If659bfb7f1140fed5159b193f9e6757ab8f8b103
2022-08-08 11:36:26 -04:00
06f2a0ae13 ice_transport: revert last change
Change-Id: Ie810524fa960832154be0319d1c4e2383e87eb90
2022-08-06 09:03:19 -04:00
f68be61aab connectionmanager: call callbacks when account is disabled
If an account is disabled during the initialization of the ICE,
the callacks must be called to correctly clean conversation_module.
This was not correctly done as we only check the onShutdown() after
that the TLSSocketEndpoint is initialized.
It was a problem when the account was disabled, because in
connectDeviceStartIce() isDestroying_ was true at this point, so
we didn't erase the pending callback.

Change-Id: I21cdd30057d9879b6d6fef189fc43bf916d4c310
2022-08-05 20:31:10 -04:00
e679f436a9 logger: cleanup
Change-Id: I58028cad9b28b694ed271ebd1e9ebad7cd72f9fa
2022-08-05 18:57:34 -04:00
14221db375 video: fix conference cropping
* fixes black bar on the left of conference videos

Change-Id: Ie3725ad144035529288e0a97353a977abffb1133
2022-08-05 17:19:24 -04:00
6be3b469f2 connectionmanager: remove unwanted re-schedule on IO pool
Change-Id: Ic2f1cf4151e55f5f6a1fc18c857c90143656ad35
2022-08-05 13:43:38 -04:00
120eb26bcc misc: bump pjproject to 2.12
Change-Id: Ic8576fbb9633d768cdb6ac5e895e954ee460aa05
2022-08-05 12:35:29 -04:00
68bb1e8323 logger: use fmt/std.h or fmt/ostream.h depending on availability
Change-Id: I3a1c6b59083426ceb28c8fb2fe4b3c2d7866e491
2022-08-05 11:43:17 -04:00
878def4c76 ringtones: customRingtone can be an absolute or relative path
Change-Id: I434255ea4caf66c630927bdfea572c49e7e1c658
GitLab: #748
2022-08-05 10:19:40 -04:00
13e9fe9a18 Revert "fmt: bump default version check"
This reverts commit 80abd8b77c.

Reason for revert: should now work with {fmt} 6

Change-Id: I9e7f287a8fb79e33d343eadbceb84c4290629699
2022-08-04 17:27:51 -04:00
d831a64146 logger: Only include <fmt/std.h> on Windows
Change-Id: I561e60a14a363bb8a1658eb7f740bd67a85c2d99
2022-08-04 17:25:54 -04:00
200d63456e logger: check all format strings at compile-time
Change-Id: Ib8fcedb805085add521d27eaef521b2c7faecea8
2022-08-04 15:34:04 -04:00
19f666f0df nodejs: fix binding
Change-Id: I6d7fe3f7593764bbb99570ba02b987943ba35a18
2022-08-04 15:11:51 -04:00
2088e38425 readme: fix project name
Project name is Jami

Change-Id: I844d2933c49249806b89c2530194e468935ad3cf
2022-08-04 15:11:51 -04:00
8dee8e2d29 logger: Resize arguments buffer to avoid junk
Also, extend padding of function name to 24 characters.

Change-Id: I98b39048152fc65bd9c04112393e47e481498170
2022-08-04 13:14:17 -04:00
1ea9cb1f6b ios: ignore point-to-point network
On a lot of iOS devices, a lot of weird IPv6 candidates seems to
be added from generally unused interfaces (tun0->2, ipsec_0-9, pdp_ip1->4)
Those interfaces seems to be up and running but instead a classic
link-local address (fe80:: like on macOS), some un-assigned ipv6
seems to be generated (2605:8d80:: or  2001:56f::) and seems un-documented.

Except ignoring point to point network for now, I don't see any good
solution. And this problem seems to only appears on iOS (macOS got tun0->2
but with a correct link local address).

Change-Id: I7724150ea2fdd93fbccac83cfa0c0c691452e820
2022-08-04 12:58:03 -04:00
80abd8b77c fmt: bump default version check
Change-Id: I5f427f924fc34f7f5218de815ba4077e61b45ea5
2022-08-03 12:12:41 -04:00
a17a44c4f7 Conversation: refactor pull
Change-Id: I9560cb0bd8bfab5a07039e93d4db8827906982ef
2022-08-03 08:33:36 -04:00
c7be4ea421 ConversationRepository: use std::string_view for changedFiles
Change-Id: I3638c05a8bccad9326fb74dff0c0cc4acbaf1e65
2022-08-03 08:33:36 -04:00
be67fed6fb ConversationRepository: use std::string_view for verifyCertificate
Change-Id: Ic7a89119c5db5023e91529402377bdc591afdf3a
2022-08-03 08:33:36 -04:00
0358e7091b fix: erase exit function when unload plugin
Unloading a plugin without erasing the exit function might cause Jami
to crash when closing.

Change-Id: I63d5c481036c4718507396f76df3f132e543c48c
2022-08-03 07:01:01 -04:00
e74fa6247d misc: fix ut_conversationRequest
bad CPPUNIT_ASSERT and timing issue

Change-Id: I16267d00325ebc1875cb4a92f73eaefb50614f99
2022-08-02 18:23:16 -04:00