jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2024-03-08T13:26:13Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/970Video camera stream is black when hardware acceleration is enabled2024-03-08T13:26:13ZPaul Le Guen de KerneizonVideo camera stream is black when hardware acceleration is enabled## How to report a bug
## One bug = one bug report
If you have multiple issues, please file separate bug reports. It will be much easier to track bugs that way.
## Avoid duplicates
Search for similar problem - update existing issue i...## How to report a bug
## One bug = one bug report
If you have multiple issues, please file separate bug reports. It will be much easier to track bugs that way.
## Avoid duplicates
Search for similar problem - update existing issue instead of creating new one.
## Bug report form
## Describe your environment
Please specify the following:
- OS: Ubuntu 22.04.4 LTS
- Jami version: 202402141827
- What build you are using: jami.net
## Steps to reproduce
1. Enable hardware acceleration in parameters with 960x540 resolution
2. Start a video call
- Actual result: My video camera stream is black on the Jami screen of other contacts in the meeting. However, I can see myself on my Jami screen. Must disable hardware acceleration to solve the problem or change the video resolution to 1280x720
- Expected result: Other people can see my camera video stream instead of a black screen.
## Additional information
- With Jami enable with `--debug`, this log appeared:
```
[1709890977.592|52761|accel.cpp :298 ] Failed to push frame to GPU: Invalid argument
[1709890977.593|52761|media_encoder.cpp :438 ] Fail to get frame
[1709890977.593|52761|video_sender.cpp :87 ] encoding failed
```
- The issue appears whatever camera I use
- My laptop is a Lenovo P14S with AMD GPU and same hardware
- We achieve to reproduce the same bug with Fedora 39
On contact side:
![Screenshot_from_2024-03-08_11-29-49](/uploads/f93d51095c449899708f64255c9f4850/Screenshot_from_2024-03-08_11-29-49.png)
On my side:
![Screenshot_from_2024-03-08_11-29-48](/uploads/f5672232032c2ce2a9671ebf44825c2e/Screenshot_from_2024-03-08_11-29-48.png)
For retrieving logs, cf [this page](https://git.jami.net/savoirfairelinux/ring-project/wikis/tutorials/Bug-report-guide#logs).https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/959Call-Swarm/Rdv: wrong audio is attached2024-03-28T00:05:08ZSébastien BlinCall-Swarm/Rdv: wrong audio is attached# Scenario
+ In a call swarm (alice is the host), bob calls
+ Alice is detached, but audio is playing
# Expected
Alice should not ear anything, Bob should not ear alice# Scenario
+ In a call swarm (alice is the host), bob calls
+ Alice is detached, but audio is playing
# Expected
Alice should not ear anything, Bob should not ear alicehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/958Call-swarm: Joining in audio make the host join2024-03-25T18:36:16ZSébastien BlinCall-swarm: Joining in audio make the host join# Scenario
* Alice, Bob in a swarm
* Alice is default host
* Bob joins in audio
# Expected
Alice doesn't join the call
# Current
Alice is attached# Scenario
* Alice, Bob in a swarm
* Alice is default host
* Bob joins in audio
# Expected
Alice doesn't join the call
# Current
Alice is attachedSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/957Call-swarm: join in audio fails2024-02-26T20:30:19ZSébastien BlinCall-swarm: join in audio fails# Scenario
* Alice, Bob, Carla in a swarm
* Alice is default host
* Bob call in audio
* Carla calls (audio or video)
# Expected result
Carla should ear Bob
# Current result
No sound# Scenario
* Alice, Bob, Carla in a swarm
* Alice is default host
* Bob call in audio
* Carla calls (audio or video)
# Expected result
Carla should ear Bob
# Current result
No soundhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/953Call Swarm: full pass2024-03-28T00:05:08ZSébastien BlinCall Swarm: full pass# TODO
+ Check performance
+ Check call ending announcement
+ Check support on all platforms
+ Fallback
+ ask for hosts
+ audio binding
+ test with 8 devices
+ Performance# TODO
+ Check performance
+ Check call ending announcement
+ Check support on all platforms
+ Fallback
+ ask for hosts
+ audio binding
+ test with 8 devices
+ PerformanceSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/909Record: flickering video if inputs have different fps2023-10-20T11:12:08ZAline Gondim SantosRecord: flickering video if inputs have different fpsHow to reproduce: share a file that is 60fps and have another stream with 30 fps
With https://review.jami.net/c/jami-daemon/+/26036 the fps are fixed to 30, but we should support the bigger one.How to reproduce: share a file that is 60fps and have another stream with 30 fps
With https://review.jami.net/c/jami-daemon/+/26036 the fps are fixed to 30, but we should support the bigger one.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/872[SIP-Account] (Audio-)Call recording doesn't work2024-01-26T17:09:13ZElys[SIP-Account] (Audio-)Call recording doesn't workusing Jami (Beta): 202401121257 on Windows
- Make a call (SIM-call -\> SIP-Account (Jami))
- Now record the call
- After the call you view the recordings: However if you want to listen to the audio recording - even if the file should ha...using Jami (Beta): 202401121257 on Windows
- Make a call (SIM-call -\> SIP-Account (Jami))
- Now record the call
- After the call you view the recordings: However if you want to listen to the audio recording - even if the file should have a duration of 20 seconds - every music player can only "play" the file 0:00 seconds.
Note:
- NO Issues if I recorded a Jami call (Jami account 1 (Android) -\> Jami account 2(Windows 10)) - and it does NOT matter if I record an audio call or a video call
EDIT: Not sure if SIP-video call recording works (with / without sound) or combined with Jami accounts.
Maybe if you or other peers enable / disable your/their camera and/or enable/disable your/their own microphones during the call you also get recording issues? https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/872#note_44414https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/829Homogeneize features in video-conferences and 1:1 calls2024-03-04T18:51:02ZovariHomogeneize features in video-conferences and 1:1 calls(sblin):
+ Add voice-activity, multi-stream, raiseHand and other features for video-conferences in 1:1 calls
---
Original post:
Leon: Linux Mint 20.3 Cinnamon jami-client-qt deb edition from jami.net<br>
Pat: iPad jami 3.28 from app...(sblin):
+ Add voice-activity, multi-stream, raiseHand and other features for video-conferences in 1:1 calls
---
Original post:
Leon: Linux Mint 20.3 Cinnamon jami-client-qt deb edition from jami.net<br>
Pat: iPad jami 3.28 from apple store<br>
Merv: macOS jami 2.10 from apple store
Leon, Pat and Merv all delete each other and afterwards add each other as a contact. This is to make each conversion a Swarm as advised in [Taranis, a major release of Jami](https://jami.net/taranis-a-major-release-of-jami/).
1. Leon makes an audio call with Pat (no raise/lower hand button)
1. Leon adds Merv to audio call so there is a 3-way audio conversation (still no raise/lower hand button)
1. Enable video and the raise/lower hand button appears for Leon and Pat; however there is no raise/lower hand button for Merv and Merv can not see when Leon or Pat raise their hand.
Thank youSébastien BlinSébastien Blin2024-03-04https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/828Multiple host video is broken2023-03-28T14:54:49ZSébastien BlinMultiple host video is broken# Scenario
+ Alice got a conference with Bob and Carla
+ Carla adds David to the conference (Alice and Carla are now a host)
# Current result
+ Video & maximize is broken
# Expected
We should be able to maximize and see the 4 videos# Scenario
+ Alice got a conference with Bob and Carla
+ Carla adds David to the conference (Alice and Carla are now a host)
# Current result
+ Video & maximize is broken
# Expected
We should be able to maximize and see the 4 videoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/827Segv when stopping screen-sharing in a video conference2023-04-14T15:06:21ZSébastien BlinSegv when stopping screen-sharing in a video conference# Scenario
+ Call a rdv
+ Start screen sharing
+ Stop screen sharing
# Bug 1
+ Crash from sender
```
(gdb) bt
#0 0x00007fffe84c63f4 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () at /lib64/libstdc++.so.6
#1 0x00007fff...# Scenario
+ Call a rdv
+ Start screen sharing
+ Stop screen sharing
# Bug 1
+ Crash from sender
```
(gdb) bt
#0 0x00007fffe84c63f4 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () at /lib64/libstdc++.so.6
#1 0x00007fffe90f4ce3 in std::_Rb_tree_const_iterator<jami::Observable<std::shared_ptr<libjami::MediaFrame> >*>::operator++() (this=0x7fffffff6c98) at /usr/include/c++/12/bits/stl_tree.h:368
#2 0x00007fffe90f3f7c in jami::MediaRecorder::StreamObserver::~StreamObserver() (this=0x7ffec8cb8660, __in_chrg=<optimized out>) at media/media_recorder.cpp:74
#3 0x00007fffe90f3ffc in jami::MediaRecorder::StreamObserver::~StreamObserver() (this=0x7ffec8cb8660, __in_chrg=<optimized out>) at media/media_recorder.cpp:77
#4 0x00007fffe90f67f0 in std::default_delete<jami::MediaRecorder::StreamObserver>::operator()(jami::MediaRecorder::StreamObserver*) const (this=0x7ffec8cbbf30, __ptr=0x7ffec8cb8660) at /usr/include/c++/12/bits/unique_ptr.h:95
#5 0x00007fffe90f5584 in std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> >::~unique_ptr() (this=0x7ffec8cbbf30, __in_chrg=<optimized out>)
at /usr/include/c++/12/bits/unique_ptr.h:396
#6 0x00007fffe90f98f2 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >::~pair() (this=0x7ffec8cbbf10, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/stl_pair.h:185
#7 0x00007fffe90f991e in std::__new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >*) (this=0x5410250, __p=0x7ffec8cbbf10) at /usr/include/c++/12/bits/new_allocator.h:181
#8 0x00007fffe90f938f in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >*) (__a=..., __p=0x7ffec8cbbf10) at /usr/include/c++/12/bits/alloc_traits.h:535
#9 0x00007fffe90f8b7d in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >*) (this=0x5410250, __p=0x7ffec8cbbef0)
at /usr/include/c++/12/bits/stl_tree.h:623
#10 0x00007fffe90f771d in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >*) (this=0x5410250, __p=0x7ffec8cbbef0)
at /usr/include/c++/12/bits/stl_tree.h:631
#11 0x00007fffe90f805c in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >)
(this=0x5410250, __position={first = "v:remote", second = std::unique_ptr<jami::MediaRecorder::StreamObserver> = {get() = 0x7ffec8cb8660}}) at /usr/include/c++/12/bits/stl_tree.h:2495
#12 0x00007fffe90f6aab in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >)
(this=0x5410250, __position={first = "v:remote", second = std::unique_ptr<jami::MediaRecorder::StreamObserver> = {get() = 0x7ffec8cb8660}}) at /usr/include/c++/12/bits/stl_tree.h:1209
#13 0x00007fffe90f57a7 in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >) (this=0x5410250, __position={first = "v:remote", second = std::unique_ptr<jami::MediaRecorder::StreamObserver> = {get() = 0x7ffec8cb8660}})
at /usr/include/c++/12/bits/stl_map.h:1086
#14 0x00007fffe90ee5e1 in jami::MediaRecorder::removeStream(jami::MediaStream const&) (this=0x54101a0, ms=...) at media/media_recorder.cpp:294
#15 0x00007fffe917c30b in jami::video::VideoRtpSession::deinitRecorder() (this=0xa2b12e0) at ./media/video/video_rtp_session.cpp:779
#16 0x00007fffe917844e in jami::video::VideoRtpSession::~VideoRtpSession() (this=0xa2b12e0, __in_chrg=<optimized out>) at ./media/video/video_rtp_session.cpp:80
#17 0x00007fffe9219a18 in std::_Destroy<jami::video::VideoRtpSession>(jami::video::VideoRtpSession*) (__pointer=0xa2b12e0) at /usr/include/c++/12/bits/stl_construct.h:151
#18 0x00007fffe92199bc in std::allocator_traits<std::allocator<void> >::destroy<jami::video::VideoRtpSession>(std::allocator<void>&, jami::video::VideoRtpSession*) (__p=0xa2b12e0) at /usr/include/c++/12/bits/alloc_traits.h:648
#19 0x00007fffe9219715 in std::_Sp_counted_ptr_inplace<jami::video::VideoRtpSession, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() (this=0xa2b12d0) at /usr/include/c++/12/bits/shared_ptr_base.h:613
#20 0x00007fffe8ca8f87 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (this=0xa2b12d0) at /usr/include/c++/12/bits/shared_ptr_base.h:346
#21 0x00007fffe8cac3e5 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() (this=0x88f1b38, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr_base.h:1071
--Type <RET> for more, q to quit, c to continue without paging--
#22 0x00007fffe91be4b2 in std::__shared_ptr<jami::RtpSession, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (this=0x88f1b30, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr_base.h:1524
#23 0x00007fffe91c3f4c in std::shared_ptr<jami::RtpSession>::~shared_ptr() (this=0x88f1b30, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr.h:175
#24 0x00007fffe920e3d6 in jami::SIPCall::RtpStream::~RtpStream() (this=0x88f1b30, __in_chrg=<optimized out>) at ./sip/sipcall.h:88
#25 0x00007fffe9216931 in std::_Destroy<jami::SIPCall::RtpStream>(jami::SIPCall::RtpStream*) (__pointer=0x88f1b30) at /usr/include/c++/12/bits/stl_construct.h:151
#26 0x00007fffe921597c in std::_Destroy_aux<false>::__destroy<jami::SIPCall::RtpStream*>(jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream*) (__first=0x88f1b30, __last=0x88f1b70) at /usr/include/c++/12/bits/stl_construct.h:163
#27 0x00007fffe9213d02 in std::_Destroy<jami::SIPCall::RtpStream*>(jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream*) (__first=0x88f1b30, __last=0x88f1b70) at /usr/include/c++/12/bits/stl_construct.h:196
#28 0x00007fffe9211533 in std::_Destroy<jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream>(jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream*, std::allocator<jami::SIPCall::RtpStream>&) (__first=0x88f1b30, __last=0x88f1b70)
at /usr/include/c++/12/bits/alloc_traits.h:850
#29 0x00007fffe92122d1 in std::vector<jami::SIPCall::RtpStream, std::allocator<jami::SIPCall::RtpStream> >::_M_erase_at_end(jami::SIPCall::RtpStream*) (this=0x5612378, __pos=0x88f1b30) at /usr/include/c++/12/bits/stl_vector.h:1932
#30 0x00007fffe920fc31 in std::vector<jami::SIPCall::RtpStream, std::allocator<jami::SIPCall::RtpStream> >::resize(unsigned long) (this=0x5612378, __new_size=2) at /usr/include/c++/12/bits/stl_vector.h:1013
#31 0x00007fffe91fca76 in jami::SIPCall::updateAllMediaStreams(std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> > const&, bool)
(this=0x5611fa0, mediaAttrList=std::vector of length 2, capacity 2 = {...}, isRemote=false) at ./sip/sipcall.cpp:2446
#32 0x00007fffe91fd4fc in jami::SIPCall::requestMediaChange(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&) (this=0x5611fa0, mediaList=std::vector of length 2, capacity 2 = {...}) at ./sip/sipcall.cpp:2591
#33 0x00007fffe8dad0e8 in libjami::requestMediaChange(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&) (accountId="8205d13d4d847ca4", callId="5271111606844474", mediaList=std::vector of length 2, capacity 2 = {...}) at client/callmanager.cpp:77
#34 0x000000000055f78f in CallManagerInterface::requestMediaChange(QString const&, QString const&, QList<QMap<QString, QString> > const&) (accountId=..., callId=..., mediaList=<optimized out>, this=<optimized out>)
at /home/amarok/Projects/jami/client-qt/src/libclient/dbus/../qtwrapper/callmanager_wrap.h:426
#35 0x0000000000569a12 in lrc::api::CallModel::removeMedia(QString const&, QString const&, QString const&, bool) (this=this@entry=0x247e070, callId=..., mediaType=..., type=..., muteCamera=muteCamera@entry=false)
at /home/amarok/Projects/jami/client-qt/src/libclient/callmodel.cpp:658
#36 0x00000000004bda4a in AvAdapter::stopSharing(QString const&) (this=<optimized out>, source=<optimized out>) at /home/amarok/Projects/jami/client-qt/src/app/avadapter.cpp:299
#37 0x0000000000469bc0 in AvAdapter::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0x24fc8e0, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=25, _a=_a@entry=0x7fffffff7d48)
at /home/amarok/Projects/jami/client-qt/build/jami_autogen/ISMKEKEPX5/moc_avadapter.cpp:268
#38 0x0000000000472c60 in AvAdapter::qt_metacall(QMetaObject::Call, int, void**) (this=0x24fc8e0, _c=QMetaObject::InvokeMetaMethod, _id=25, _a=0x7fffffff7d48)
at /home/amarok/Projects/jami/client-qt/build/jami_autogen/ISMKEKEPX5/moc_avadapter.cpp:395
#39 0x00007fffec538fc3 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#40 0x00007fffec42404c in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#41 0x00007fffec42506d in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#42 0x00007fffec478bbc in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#43 0x00007fffec47ebbf in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#44 0x00007fffec3d5fda in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#45 0x00007fffec3d61b1 in QV4::Function::call(QV4::Value const*, void**, QMetaType const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#46 0x00007fffec500933 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#47 0x00007fffec4b9587 in QQmlBoundSignalExpression::evaluate(void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#48 0x00007fffec4ba028 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#49 0x00007fffec52468a in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#50 0x00007fffea9c1074 in void doActivate<false>(QObject*, int, void**) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#51 0x00007fffec5c91f6 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#52 0x00007fffec538fc3 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#53 0x00007fffec422b31 in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#54 0x00007fffec42506d in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#55 0x00007fffec478bbc in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#56 0x00007fffec47ebbf in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#57 0x00007fffec3d5fda in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#58 0x00007fffec3d61b1 in QV4::Function::call(QV4::Value const*, void**, QMetaType const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#59 0x00007fffec500933 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#60 0x00007fffec4b9587 in QQmlBoundSignalExpression::evaluate(void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#61 0x00007fffec4ba028 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
```
# Bug 2
+ Conference show 2 rdv-***
# Observation
https://review.jami.net/c/jami-daemon/+/23689 seems to be a regression fromKateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/817[call-swarm] duplicates/triplicate and ghost participants in the layout2023-03-03T20:52:53Zovari[call-swarm] duplicates/triplicate and ghost participants in the layoutDuplicate/triplicate participants in the layout.
Not sure how to reproduce the scenario; however, it is thought that all participants are connected as audio-only.
Following images show duplicate participants in the layout exists:
1. A ...Duplicate/triplicate participants in the layout.
Not sure how to reproduce the scenario; however, it is thought that all participants are connected as audio-only.
Following images show duplicate participants in the layout exists:
1. A duplicate and a ghost participant<br>
![1 duplicate and 1 ghost participant](/uploads/2a4fc8891d9f13388228f1a6a8a31cf2/image.png)
2. A triplicate and a ghost participant<br>
![1 triplicate and 1 ghost participant](/uploads/17ec7073b98bb31ac18c53a91d25eab3/image.png)
Thank youhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/795Call in large groups - multi-host?2023-01-07T14:02:03ZSébastien BlinCall in large groups - multi-host?If we remove the limit for swarm, creating a call may have issue for the hosts as they will be able to receive and host thousands of calls.If we remove the limit for swarm, creating a call may have issue for the hosts as they will be able to receive and host thousands of calls.2023-12-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/792plugins: add overlay possibility (because of copping from clients)2022-11-30T23:31:04ZSébastien Blinplugins: add overlay possibility (because of copping from clients)# Scenario
+ Use watermark plugin (or whisper) in a conference
+ Result can be cropped because of the client
# Expected
+ Not cropped or correctly handled by the client# Scenario
+ Use watermark plugin (or whisper) in a conference
+ Result can be cropped because of the client
# Expected
+ Not cropped or correctly handled by the clienthttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/752Windows: offer full fps range for video camera2022-12-23T20:29:35ZSébastien BlinWindows: offer full fps range for video cameraEg from https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/747
```
$ ffmpeg -f dshow -list_options true -i video="ManyCam Virtual Webcam"
[dshow @ 000001F46BD265C0] DirectShow video device options (from video devices)
[dsho...Eg from https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/747
```
$ ffmpeg -f dshow -list_options true -i video="ManyCam Virtual Webcam"
[dshow @ 000001F46BD265C0] DirectShow video device options (from video devices)
[dshow @ 000001F46BD265C0] Pin "Capture" (alternative pin name "0")
[dshow @ 000001F46BD265C0] pixel_format=yuyv422 min s=1920x1080 fps=0.015625 max s=1920x1080 fps=60.0002
[dshow @ 000001F46BD265C0] pixel_format=yuyv422 min s=1600x1200 fps=0.015625 max s=1600x1200 fps=60.0002
```
Jami only displays 60fps (max fps). However with some modification we can offer the range 1,5,10,15...60
I think it's not important as anyway the virtual camera will probably be encoded to 60fps by the original app anyway, and codec will already do optimize, so the data reduction will be minor.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/712Windows: Black screen of the interlocutor if he/she rotates the screen of the...2024-02-14T14:06:57ZElysWindows: Black screen of the interlocutor if he/she rotates the screen of the phonePerson A using Jami Windows 10, Person B using Jami Android 11 (Mate 20 Pro)
issue: especially if Person B rotates the screen to portrait
Steps: you get a video call (android, Person B):
persons A and B see each other
Person B rotates...Person A using Jami Windows 10, Person B using Jami Android 11 (Mate 20 Pro)
issue: especially if Person B rotates the screen to portrait
Steps: you get a video call (android, Person B):
persons A and B see each other
Person B rotates the screen to portrait, then rotates the screen to upside-down landscape. If person B rotates the screen to portrait again, Person A (using Windows 10) only sees a black screen (with a preview of Person A). Sometimes person B has to rotate the screen many times but after a random number of attempts this issue occurs.
same thing happens (sometimes) if Person A shares screen and wants to return to webcam - Person B is now absent - Person A only sees black screen (with a preview of Person A)
Example:
![fail2](/uploads/dd557fd8978885fb470b3116fa4bfed2/fail2.png)Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/220Explore WebRTC support2023-11-20T14:19:22ZAdrien BéraudExplore WebRTC supportBacklogLarbi GharibLarbi Gharibhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/975Link voice setup callback to host (without rtp session)2024-03-25T18:36:16ZSébastien BlinLink voice setup callback to host (without rtp session)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/974Various asserts and crashes with TURN / PJNATH2024-03-25T18:29:13ZAdrien BéraudVarious asserts and crashes with TURN / PJNATHTypical assertion when PJSIP built with asserts:
```
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2024-03-22 14:13:31.793 9191-9191 D...Typical assertion when PJSIP built with asserts:
```
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Build fingerprint: 'google/cheetah/cheetah:14/AP1A.240305.019.A1/11445699:user/release-keys'
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Revision: 'MP1.0'
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A ABI: 'arm64'
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Timestamp: 2024-03-22 14:13:31.550572829-0400
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Process uptime: 2s
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Cmdline: cx.ring
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A pid: 8414, tid: 9172, name: Thread-64 >>> cx.ring <<<
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A uid: 10352
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Abort message: '../src/pjnath/turn_session.c:740: pj_status_t pj_turn_session_alloc(pj_turn_session *, const pj_turn_alloc_param *): assertion "sess->state>PJ_TURN_STATE_NULL && sess->state<=PJ_TURN_STATE_RESOLVED" failed'
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x0 0000000000000000 x1 00000000000023d4 x2 0000000000000006 x3 000000795e531320
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x4 2f333639622d6d6e x5 2f333639622d6d6e x6 2f333639622d6d6e x7 7f7f7f7f7f7f7f7f
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x8 00000000000000f0 x9 0000007d40c87200 x10 0000000000000001 x11 0000007d40cd1ba0
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x12 0000007d5ac86020 x13 000000007fffffff x14 00000000009ffbec x15 00000247cba606d0
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x16 0000007d40d3cfc8 x17 0000007d40d1a160 x18 000000795b0d8000 x19 00000000000020de
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x20 00000000000023d4 x21 00000000ffffffff x22 0000000000002374 x23 00000000000020de
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x24 000000795e5318b0 x25 000000795e5318b0 x26 000000795e531bf0 x27 00000000000fc000
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x28 00000000000fe000 x29 000000795e5313a0
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A lr 0000007d40cc2e48 sp 000000795e531300 pc 0000007d40cc2e74 pst 0000000000001000
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A 11 total frames
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A backtrace:
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #00 pc 000000000005ee74 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: 33ad5959e2b38fc822cda3c642e16c94)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #01 pc 000000000005f284 /apex/com.android.runtime/lib64/bionic/libc.so (__assert2+36) (BuildId: 33ad5959e2b38fc822cda3c642e16c94)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #02 pc 0000000001922e2c /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (pj_turn_session_alloc+284) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #03 pc 000000000192a61c /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #04 pc 000000000192a258 /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #05 pc 000000000194d5f4 /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #06 pc 00000000019414bc /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (ioqueue_dispatch_write_event+416) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #07 pc 0000000001945428 /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (pj_ioqueue_poll+1476) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #08 pc 0000000001739b98 /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #09 pc 00000000000ca7cc /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+204) (BuildId: 33ad5959e2b38fc822cda3c642e16c94)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #10 pc 00000000000607b0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 33ad5959e2b38fc822cda3c642e16c94)
```Sébastien BlinFrançois-Simon Fauteux-ChapleauSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/973Flatpak: Automatic Upgrades: tag versions of jami-daemon which jami-client de...2024-03-22T09:29:01ZovariFlatpak: Automatic Upgrades: tag versions of jami-daemon which jami-client depends on>> It would be great if this Flatpak package would upgrade automatically if a newer upstream version of Jami is released.
> Not possible because of how jami-client depends on specific untagged versions of jami-daemon.
https://github.co...>> It would be great if this Flatpak package would upgrade automatically if a newer upstream version of Jami is released.
> Not possible because of how jami-client depends on specific untagged versions of jami-daemon.
https://github.com/flathub/net.jami.Jami/issues/86https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/972Modified contact profile synchronization2024-03-19T13:01:46ZPierre NicolasModified contact profile synchronizationhttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1402#note_48719
> The display name and the profile picture, which I have assigned to my contact myself, have not been synchronised.https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1402#note_48719
> The display name and the profile picture, which I have assigned to my contact myself, have not been synchronised.