Commit Graph

16592 Commits

Author SHA1 Message Date
90766f95a3 conversation: fix bug related to use of shut down swarm manager
The SwarmManager class uses the 'isShutdown_' variable to keep track of
whether it has been shut down or not. This variable needs to be reset to
false if we want to restart using a SwarmManager after it was shut down,
which we sometimes do when bootstrapping a conversation.

This patch fixes a failure in
ConversationRequestTest::testBanContactRestartAccount that was
introduced by commit eb4213d3a1.
GitLab: #1002

Change-Id: If5d295cbae4edd9e2292d7464e2eb2939b05eedb
2024-06-07 09:05:43 -04:00
04daac1034 contrib: fix shasum for freetype
Change-Id: I978d8e69351d5a302064e8524cab32ebd639a81e
2024-06-06 16:11:38 -04:00
e9826ae4c4 cmake: add support for nodejs
Change-Id: Ia6e13fd3bd27077dac41b210a8dfac8d78ae6d2c
2024-06-06 15:09:29 -04:00
544f35eb0d macos: link with Compression framework
Change-Id: I2f1e5fdaf7d24d6109c10447cf9a03b94148a6e0
2024-06-06 13:45:49 -05:00
9da8262c27 nodejs: fix binding
Change-Id: I11ee1d203c5a163eee323ba93636ae8800311b27
2024-06-06 13:15:56 -04:00
59b5d0a28c yaml-cpp: link to cmake module
Change-Id: I3fd92f387e8bc21a1d3109be9b5b5c90341b414d
2024-06-06 09:19:21 -05:00
dc66c7cbd2 macos: link with coreaudio
Change-Id: I830db186b4ff90a0ebdeeee3bf6ead34a56fdb2f
2024-06-05 16:28:46 -04:00
1ea9802c41 contrib: bump libvpx to 1.14.1
Change-Id: Ifbad55251f6f56e23b13365caa596023afce69e7
2024-06-04 14:02:21 -04:00
f985f8641b speex: include speexdsp_types.h instead of speex_config_types.h
speex_config_types.h is not present if only speexdsp is installed

Change-Id: I08798648ffbbfa1e84138b21b12e32c75b47e45f
2024-06-04 13:22:46 -04:00
b0e223ff3c misc: add an API to set the client app's resource directory path
This approach allows client apps that install ringtones (and any other resources) in custom locations to specify that directory at runtime. This will take precedence over the build time data directory supplied for platforms which install to a fixed path.

https: //git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1619
Change-Id: I81616f79196e645a5ad677d6956be6a2ffcd976a
2024-06-04 09:57:32 -04:00
f35794ef29 ffmpeg: add missing includes to pipewiregrab patch
The formats.h and video.h header files are needed by the patch but were
not explicitly included. They are implicitly included via internal.h
in FFmpeg 6.0.1 (the version we currently use in the daemon), but not in
later versions (6.1+). (Thanks to Maxim Cournoyer for bringing this
problem to my attention.)

Change-Id: I99f35fa351f6aeca2091a6ee7c267acec0cb08bb
2024-06-03 11:45:34 -04:00
4541a34411 fileID field updates persisted
Change-Id: Ib29e6c9ec04c697206684a5cc4d7e626c3ab1a54
2024-05-31 16:12:44 -04:00
d2ef8a2a18 Contribs: Add Freetype to contrib/src
Change-Id: Id69f8e7d1a7c17d47a44b6fbcdd70b5cd3626d5f
2024-05-31 15:02:22 -04:00
d452fc7e16 misc: cleanup old warnings
Change-Id: Ie88da3b0210f3988900fd4fad6b13c5689f9a4eb
2024-05-31 14:38:42 -04:00
239d136788 jamiaccount: check if uri is valid before adding contact
Else, if a client calls addContact with an invalid uri, it will
create a conversation with an invalid contact and the client will
be in a bugguy state.

git.jami.net/savoirfairelinux/jami-client-android/-/issues/1681
Change-Id: Id6227c45c279c78aac0a191b6ae688ebe0d3d1c4
2024-05-31 10:24:12 -05:00
90c9ae390e cmake: add coverage option
This allow to get coverage reports from ctest.
e.g.
    $ ctest -R typers -T test -T coverage

Change-Id: Ic7d1bf5d7d641f1e581e4855bbc923ee5d8994b5
2024-05-31 10:12:48 -04:00
cab0ba62a8 cmake: fix build with JAMI_VIDEO=OFF
Change-Id: I55a6c72a0abe0cdc55639064157884f383e25e7b
2024-05-31 09:37:51 -04:00
3037fc90d6 build/cmake: remove am file
Change-Id: I554a802f59ab42a7445facc8137fc85980a69495
2024-05-30 16:21:48 -04:00
5d4acd317e build/cmake: add support for GNU/Linux audio layers
Change-Id: I5be4e160f6b6b594fdc26f3861151b56bd9c9bdf
2024-05-30 14:32:18 -04:00
44ed2652c0 contrib: bump libvpx to 1.14.0
GitLab: #999
Change-Id: I1ad65b85146938f5c1f03b882a7a1564c80e2616
2024-05-30 13:54:12 -04:00
9098dfa624 tests: fix build on GCC 13.2 (Ubuntu 24.04)
Change-Id: I80fb049e0c4e70005c844deed1cf35ed868a2293
2024-05-30 10:25:52 -04:00
2219411000 conversation: avoid const char* comparaison
Change-Id: I26469369be06a7c30f851e868c2a64ea98737c69
2024-05-29 16:40:58 -04:00
d9d9d08d04 conversation_module: support editMessage on file transfer
This allow users to delete files. Moreover, change edited type and
use edited commit type instead.

GitLab: #796
git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1287
Change-Id: Ida04c15cf1570de2f7707ce547be9f4a5e638245
2024-05-27 14:39:25 -05:00
eb4213d3a1 swarm_manager: avoid deadlock in shutdown
shutdown can cause the needSocketCb_ to pass a null socket. In this
case we can directly return instead of locking

GitLab: #995
Change-Id: I8ad744e494ea0bd3fe15f221a09feeb44e9aec83
2024-05-27 09:54:36 -04:00
fd2f281544 conversation_module: avoid deadlock on member change
Conversation::pull lock writeMtx_ while announcing new commits.
If a member changes occurs, this can lock conv->mtx and
other operations can wait on writeMtx_ too.

GitLab: #994
Change-Id: I605ba6d4acb7b25a591be86bf37e9d549eeba8c0
2024-05-24 10:03:40 -04:00
d6cb4930d3 conference: fix tests and conference hangup
API changed for ut_conference.
For ut_conversation_call, because the host is not a dummy call,
we must change the hangup in manager.cpp and fix sink creation
for host while attaching.

Change-Id: Icfc296949438e92f7b9b986ed6aa3b463ec2334e
2024-05-24 09:44:21 -04:00
3e63d8d321 autotools: avoid to fail due to missing README file
"Makefile.am: error: required file './README' not found"

Change-Id: I8729ea1f38bb14893e5cce6ed3f76065e825efb8
2024-05-22 10:37:26 -04:00
f1a7ff4db7 natpmp: avoid building shared library, executables
Change-Id: I7a58d02e324f6c3579f3348187c03c03e78279c5
2024-05-22 10:00:16 -04:00
3dc8883c6f conversation_module: add a fallback if the clone fails
This fix testAddAcceptOfflineThenConnects without reverting
7463a8a266
The idea is in case of a sporadic clone failure (peer offline but
present, socket broken while cloning, etc), we schedule a new
clone operation later.

GitLab: #991
Change-Id: Ifacd6bfe383902bff6cb818e41ff8f5ddd0f6917
2024-05-22 08:55:25 -04:00
3357b8fb3f conversationrepository: use from certstore before trying to pin
And avoid to pin empty uri. This avoid incorrect getCommit() in
some cases

Change-Id: I2b3485c02ca3d262fe51d037f6c5145766e03bc6
2024-05-21 11:53:41 -04:00
314d3df0cd jamiaccount: avoid deadlock on shutdown
If the multiplexed socket is shutdown, this will lock the socket
then convModule and other threads can do the reverse causing a
deadlock

Fix ut_conversation_call sporadic deadlocks

GitLab: #991
Change-Id: I5639b9189b7365cf24abeebf4bb80a89ab3b73ff
2024-05-17 12:48:52 -04:00
e2107772fd misc: bump dhtnet
This fix various deadlock and leaks

GitLab: #991
Change-Id: Ibdb6ceabe593f3609e860c71dd3b1a7ff76c6385
2024-05-17 12:16:34 -04:00
aa24a6db83 misc: fix audio for host
GitLab: #958
Change-Id: I3cea583b1ac9a3e43db288f2d37eca9823e94d65
2024-05-17 12:15:40 -04:00
12f0bf8f55 conference: use mediaList when host joins conference
GitLab: #958
Change-Id: I6519378c5a48d46defd56294eb8a0ee104b5bcd4
2024-05-17 12:15:40 -04:00
724231700b conference: minor cleanup
Change-Id: I1efc8596305825154632fec92a66c7c08f003c70
2024-05-17 12:15:40 -04:00
54200eb122 swarm-call: do not bind on audio layer if detached
+ Unbind call from default layer and let the conference manages
the binding to the default ringbufferpool
+ Avoid to bind on receive, upper layers must bind the audio

GitLab: #959
Change-Id: I639e34281668c4d49ff695fa3e38a1896f567f07
2024-05-17 12:15:40 -04:00
b0fdb4b77d call-swarm: start detached by default
This avoid complex setup

GitLab: #958
Change-Id: Ia142bc8582f41b5db82d3b9a8043fcac874c65a8
2024-05-17 12:15:40 -04:00
089a220626 conference: rename Participant into SubCall and merge bind/attach
GitLab: #958
Change-Id: I91036c9f1e20ee19e3896eb8e0110aa36a9d0602
2024-05-17 12:15:40 -04:00
a404577a9e call-swarm: avoid dummy call to create a conference
Now a conference can start without any call (this avoid to attach
a call without peer to create a conference).

Path is now clearer for a call creation:
+ If we receive a call, we attach it to the conference
+ Else we do not create any call and just attach the host.

Next step is to be able to attach a host in audio only without weird
tricks and group addParticipant/bindParticipant

GitLab: #953
Change-Id: I13785a5525e041c37fb62c0c9f355e9371f1e4ad
2024-05-17 12:14:16 -04:00
f2d8c57fc7 call-swarm: fix host attachment for audio-calls
Also, start to fix audio binding (this will be a full patch, but
at least do not attach host)

GitLab: #959
Change-Id: I0aeb9121e2880a5afb4b1ca1a30710d1b60a2e7e
2024-05-17 12:12:59 -04:00
5b7acc3a28 string utils: inline to_int
Change-Id: I82425bd8beb77dae3f399aa0e79818e3029ae80b
2024-05-17 11:25:40 -04:00
2f17f73147 ConversationModule: reduce lock contention
Change-Id: I1c39d1b45645841deb505de2a732c62d30525c20
2024-05-15 14:00:44 -04:00
41988cf437 contact list: remove noisy log
Change-Id: I606c8d0dbdd15d1110f1a0699ddbcba377ab1cf2
2024-05-15 14:00:44 -04:00
65624e1e28 jamiaccount: do not pass dummy device
deviceId.toString() will be "00000000000..." if empty, causing
weird message to appears.

GitLab: #991
Change-Id: Ic61a2ece6d0ae3d8b93722a4a3d7b700052865f3
2024-05-15 13:54:32 -04:00
b4e03d768e misc: fix build warning about initializer list
Change-Id: I0c61aa6a067afbf2afda46b1d2fae630254bf116
2024-05-15 13:54:28 -04:00
9d9b77f12f cmake: consolidate audio flags
Change-Id: Ibeacb76fe3aeb8cef0b6997564ff7408e615b496
2024-05-15 08:00:33 -04:00
69102c7adb jamiaccount: send pending messages to new detected devices
This fix ut_conversationMembersEvents::testAddOfflineMemberThenConnects

GitLab: #991
Change-Id: I16ad336f131a2e633b5d90364ef9f52bf3355511
2024-05-10 10:32:31 -04:00
2f4991fa2e jamiaccount: newCharReader needs to be deleted
Else, memory is leaked

Change-Id: Icf370c1e77cefb6f2dc85de7d6e7b1c93f243096
2024-05-10 10:32:01 -04:00
61fd56d31b observer.h: template-id not allowed for constructor in C++20
Change-Id: I553d36090e4d18cab10b96ae8c3a1dc9110adec8
2024-05-10 09:49:56 -04:00
07d673d0c7 conversationRepository: fix build with libgit 1.8.0
Change-Id: Ieede07472435b7f8ae0b19a0ec2afad94e195fee
2024-05-10 09:49:56 -04:00