jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2023-10-30T13:47:56Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/910Wrong UDP ICE candidates (UPnP Enabled/TURN disabled)2023-10-30T13:47:56ZSébastien BlinWrong UDP ICE candidates (UPnP Enabled/TURN disabled)# Scenario
+ Connect to JamiLabs
+ Disable TURN for the account, Enable UPnP
+ Start a call
# Expected result
UDP ICE candidates should show public ip in srflx candidates
# Current result
+ UDP candidates doesn't have the public ip ...# Scenario
+ Connect to JamiLabs
+ Disable TURN for the account, Enable UPnP
+ Start a call
# Expected result
UDP ICE candidates should show public ip in srflx candidates
# Current result
+ UDP candidates doesn't have the public ip in the srflx list
+ However, TCP candidates are correct
Meaning that depending the configuration, you can have a TCP negotiation success and media failure (causing the call to stop)
```
[1698335554.247|23970|sdp.cpp :498 ] [SDP OFFER] Remote active session:
v=0
o=localhost 3907324354 1 IN IP4 192.168.0.147
s=Call ID 1888667388261686
c=IN IP4 192.168.0.147
t=0 0
a=ice-ufrag:124cdb6c
a=ice-pwd:621c04a84d50cacf2ef374ff
m=audio 27538 RTP/SAVP 104 101
a=rtpmap:104 opus/48000/2
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtcp:27539 IN IP4 192.168.0.147
a=sendrecv
a=candidate:Hc0a80093 1 UDP 2130706431 192.168.0.147 42590 typ host
a=candidate:Ha0989db2 1 UDP 2130706431 fe80::7c8d:d8ff:fed4:ac16 42915 typ host
a=candidate:Sc0a80093 1 UDP 1694498303 192.168.0.147 21296 typ srflx
a=candidate:Hc0a80093 1 UDP 2130706431 192.168.0.147 21296 typ host
a=candidate:Hc0a80093 2 UDP 2130706430 192.168.0.147 38712 typ host
a=candidate:Ha0989db2 2 UDP 2130706430 fe80::7c8d:d8ff:fed4:ac16 37073 typ host
a=candidate:Sc0a80093 2 UDP 1694498302 192.168.0.147 23972 typ srflx
a=candidate:Hc0a80093 2 UDP 2130706430 192.168.0.147 23972 typ host
m=video 57832 RTP/SAVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=428029
a=rtcp:57833 IN IP4 192.168.0.147
a=sendrecv
a=candidate:Hc0a80093 3 UDP 2130706429 192.168.0.147 42826 typ host
a=candidate:Ha0989db2 3 UDP 2130706429 fe80::7c8d:d8ff:fed4:ac16 48183 typ host
a=candidate:Sc0a80093 3 UDP 1694498301 192.168.0.147 22465 typ srflx
a=candidate:Hc0a80093 3 UDP 2130706429 192.168.0.147 22465 typ host
a=candidate:Hc0a80093 4 UDP 2130706428 192.168.0.147 42565 typ host
a=candidate:Ha0989db2 4 UDP 2130706428 fe80::7c8d:d8ff:fed4:ac16 40706 typ host
a=candidate:Sc0a80093 4 UDP 1694498300 192.168.0.147 21643 typ srflx
a=candidate:Hc0a80093 4 UDP 2130706428 192.168.0.147 21643 typ host
```Sé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/902Crash in AudioRtpSession (audioInput_ can be nullptr)2023-10-26T17:59:46ZSébastien BlinCrash in AudioRtpSession (audioInput_ can be nullptr)Crash:
```plaintext
[Thread 0x7ffed47f8640 (LWP 248414) exited]
Thread 5606 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff3a7fc640 (LWP 248286)]
___pthread_mutex_lock (mutex=0x8) at ./nptl/pthr...Crash:
```plaintext
[Thread 0x7ffed47f8640 (LWP 248414) exited]
Thread 5606 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff3a7fc640 (LWP 248286)]
___pthread_mutex_lock (mutex=0x8) at ./nptl/pthread_mutex_lock.c:80
80 ./nptl/pthread_mutex_lock.c: No such file or directory.
(gdb) bt
#0 ___pthread_mutex_lock (mutex=0x8) at ./nptl/pthread_mutex_lock.c:80
#1 0x00005555556ad59b in __gthread_mutex_lock (__mutex=0x8) at /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:749
#2 0x00005555556cbd04 in std::mutex::lock (this=0x8) at /usr/include/c++/11/bits/std_mutex.h:100
#3 0x00005555556d089c in std::lock_guard<std::mutex>::lock_guard (this=0x7fff3a7f8c40, __m=...) at /usr/include/c++/11/bits/std_mutex.h:229
#4 0x0000555555711689 in jami::Observable<std::shared_ptr<libjami::MediaFrame> >::attach (this=0x0, o=0x7fff10090010) at ./observer.h:77
#5 0x0000555555c7489b in jami::AudioRtpSession::attachLocalRecorder (this=0x7fffb119a920, ms=...) at ./media/audio/audio_rtp_session.cpp:385
#6 0x0000555555c748f0 in operator() (__closure=0x7fff341062d0, ms=...) at ./media/audio/audio_rtp_session.cpp:399
#7 0x0000555555c76a09 in std::__invoke_impl<void, jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/11/bits/invoke.h:61
#8 0x0000555555c764a5 in std::__invoke_r<void, jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#9 0x0000555555c75b3f in std::_Function_handler<void(const jami::MediaStream&), jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)> >::_M_invoke(const std::_Any_data &, const jami::MediaStream &) (__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
#10 0x00005555559ef0d7 in std::function<void (jami::MediaStream const&)>::operator()(jami::MediaStream const&) const (this=0x7fff341062d0, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
#11 0x00005555559e8e47 in jami::AudioInput::readFromDevice (this=0x7fff34105f20) at ./media/audio/audio_input.cpp:141
#12 0x00005555559e88c2 in jami::AudioInput::process (this=0x7fff34105f20) at ./media/audio/audio_input.cpp:74
#13 0x00005555559e7e83 in operator() (__closure=0x7fff3a7f8fd0) at ./media/audio/audio_input.cpp:52
#14 0x00005555559ecd06 in std::__invoke_impl<void, jami::AudioInput::AudioInput(const string&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#15 0x00005555559ec49a in std::__invoke_r<void, jami::AudioInput::AudioInput(const string&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#16 0x00005555559ebcba in std::_Function_handler<void(), jami::AudioInput::AudioInput(const string&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/11/bits/std_function.h:290
#17 0x00005555556d13c0 in std::function<void ()>::operator()() const (this=0x7fff3a7f8fd0) at /usr/include/c++/11/bits/std_function.h:590
#18 0x0000555555b8698a in jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>) (this=0x7fff34106228, tid=..., setup=..., process=...,
cleanup=...) at threadloop.cpp:38
#19 0x0000555555b8832a in std::__invoke_impl<void, void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> >(std::__invoke_memfun_deref, void (jami::ThreadLoop::*&&)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*&&, std::reference_wrapper<std::thread::id>&&, std::function<bool ()>&&, std::function<void ()>&&, std::function<void ()>&&) (
__f=@0x7fffc81ea608: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>, __t=@0x7fffc81ea600: 0x7fff34106228) at /usr/include/c++/11/bits/invoke.h:74
#20 0x0000555555b88120 in std::__invoke<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> >(void (jami::ThreadLoop::*&&)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*&&, std::reference_wrapper<std::thread::id>&&, std::function<bool ()>&&, std::function<void ()>&&, std::function<void ()>&&) (
__fn=@0x7fffc81ea608: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>) at /usr/include/c++/11/bits/invoke.h:96
#21 0x0000555555b87f7f in std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>) (
this=0x7fffc81ea598) at /usr/include/c++/11/bits/std_thread.h:259
#22 0x0000555555b87ec4 in std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > >::operator()() (this=0x7fffc81ea598) at /usr/include/c++/11/bits/std_thread.h:266
#23 0x0000555555b87ea4 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > > >::_M_run() (this=0x7fffc81ea590)
at /usr/include/c++/11/bits/std_thread.h:211
#24 0x00007ffff6edc253 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#25 0x00007ffff6a94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#26 0x00007ffff6b26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/901MediaRecorder: segfault for videoFilter_2023-10-26T17:59:42ZSébastien BlinMediaRecorder: segfault for videoFilter_Crash:
```plaintext
Thread 5745 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff1d7fa640 (LWP 241057)]
0x00007ffff6f4bf95 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator...Crash:
```plaintext
Thread 5745 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff1d7fa640 (LWP 241057)]
0x00007ffff6f4bf95 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) bt
#0 0x00007ffff6f4bf95 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#1 0x00007ffff6f4c4ad in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x0000555555a50bdb in jami::MediaFilter::initialize (this=0x0,
filterDesc="[v:remote] fps=30/1, scale=-2:720 [v:m]; [v:local] fps=30/1, scale=-2:144 [v:o]; [v:m] [v:o] overlay=main_w-overlay_w:main_h-overlay_h, format=pix_fmts=yuv420p",
msps=std::vector of length 2, capacity 2 = {...}) at media/media_filter.cpp:56
#3 0x0000555555a5dced in jami::MediaRecorder::setupVideoOutput (this=0x7fff80a94b30) at media/media_recorder.cpp:517
#4 0x0000555555a5bd85 in jami::MediaRecorder::addStream (this=0x7fff80a94b30, ms=...) at media/media_recorder.cpp:283
#5 0x0000555555c86594 in jami::video::VideoRtpSession::attachLocalRecorder (this=0x7fff802e6ab0, ms=...) at ./media/video/video_rtp_session.cpp:792
#6 0x0000555555c86618 in operator() (__closure=0x5555577a9438, ms=...) at ./media/video/video_rtp_session.cpp:808
#7 0x0000555555c89531 in std::__invoke_impl<void, jami::video::VideoRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(std::__invoke_other, struct {...} &) (
__f=...) at /usr/include/c++/11/bits/invoke.h:61
#8 0x0000555555c88da7 in std::__invoke_r<void, jami::video::VideoRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#9 0x0000555555c8801f in std::_Function_handler<void(const jami::MediaStream&), jami::video::VideoRtpSession::initRecorder()::<lambda(const jami::MediaStream&)> >::_M_invoke(const std::_Any_data &, const jami::MediaStream &) (__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
#10 0x00005555559ef0d7 in std::function<void (jami::MediaStream const&)>::operator()(jami::MediaStream const&) const (this=0x5555577a9438, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
#11 0x0000555555a2cd76 in operator() (__closure=0x7ffeac32d508) at ./media/video/video_input.cpp:266
#12 0x0000555555a303bc in std::__invoke_impl<void, jami::video::VideoInput::setRecorderCallback(const std::function<void(const jami::MediaStream&)>&)::<lambda()>&>(std::__invoke_other, struct {...} &) (
__f=...) at /usr/include/c++/11/bits/invoke.h:61
#13 0x0000555555a2fda1 in std::__invoke_r<void, jami::video::VideoInput::setRecorderCallback(const std::function<void(const jami::MediaStream&)>&)::<lambda()>&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#14 0x0000555555a2f9c8 in std::_Function_handler<void(), jami::video::VideoInput::setRecorderCallback(const std::function<void(const jami::MediaStream&)>&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11/bits/std_function.h:290
#15 0x00005555556d13c0 in std::function<void ()>::operator()() const (this=0x7ffeac32d508) at /usr/include/c++/11/bits/std_function.h:590
#16 0x0000555555a490db in jami::MediaDecoder::decode (this=0x7ffeac32d300, packet=...) at media/media_decoder.cpp:701
#17 0x0000555555a47d1c in operator() (__closure=0x7ffeac0f1b90, packet=...) at media/media_decoder.cpp:492
#18 0x0000555555a4a88f in std::__invoke_impl<jami::DecodeStatus, jami::MediaDecoder::setup(AVMediaType)::<lambda(AVPacket&)>&, AVPacket&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/11/bits/invoke.h:61
#19 0x0000555555a4a511 in std::__invoke_r<jami::DecodeStatus, jami::MediaDecoder::setup(AVMediaType)::<lambda(AVPacket&)>&, AVPacket&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:114
#20 0x0000555555a49f9a in std::_Function_handler<jami::DecodeStatus(AVPacket&), jami::MediaDecoder::setup(AVMediaType)::<lambda(AVPacket&)> >::_M_invoke(const std::_Any_data &, AVPacket &) (
__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
#21 0x0000555555a4bb15 in std::function<jami::DecodeStatus (AVPacket&)>::operator()(AVPacket&) const (this=0x7ffeac0f1b90, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
#22 0x0000555555a472d6 in jami::MediaDemuxer::decode (this=0x7ffeac32c080) at media/media_decoder.cpp:403
#23 0x0000555555a491b0 in jami::MediaDecoder::decode (this=0x7ffeac32d300) at media/media_decoder.cpp:717
#24 0x0000555555a2c987 in jami::video::VideoInput::captureFrame (this=0x5555577a90d0) at ./media/video/video_input.cpp:212
#25 0x0000555555a2c845 in jami::video::VideoInput::process (this=0x5555577a90d0) at ./media/video/video_input.cpp:183
#26 0x0000555555a32ddf in std::__invoke_impl<void, void (jami::video::VideoInput::*&)(), jami::video::VideoInput*&> (
__f=@0x7fffc8134020: (void (jami::video::VideoInput::*)(jami::video::VideoInput * const)) 0x555555a2c78a <jami::video::VideoInput::process()>, __t=@0x7fffc8134030: 0x5555577a90d0)
at /usr/include/c++/11/bits/invoke.h:74
#27 0x0000555555a32cae in std::__invoke<void (jami::video::VideoInput::*&)(), jami::video::VideoInput*&> (
__fn=@0x7fffc8134020: (void (jami::video::VideoInput::*)(jami::video::VideoInput * const)) 0x555555a2c78a <jami::video::VideoInput::process()>) at /usr/include/c++/11/bits/invoke.h:96
#28 0x0000555555a32bd7 in std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x7fffc8134020, __args=...)
at /usr/include/c++/11/functional:420
#29 0x0000555555a32a69 in std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>::operator()<, void>() (this=0x7fffc8134020) at /usr/include/c++/11/functional:503
#30 0x0000555555a327be in std::__invoke_impl<void, std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&>(std::__invoke_other, std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#31 0x0000555555a3244e in std::__invoke_r<void, std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&>(std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&) (
__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#32 0x0000555555a31e80 in std::_Function_handler<void (), std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()> >::_M_invoke(std::_Any_data const&) (__functor=...)
at /usr/include/c++/11/bits/std_function.h:290
--Type <RET> for more, q to quit, c to continue without paging--
#33 0x00005555556d13c0 in std::function<void ()>::operator()() const (this=0x7fff1d7f6fd0) at /usr/include/c++/11/bits/std_function.h:590
#34 0x0000555555b8698a in jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>) (this=0x5555577a9378, tid=..., setup=..., process=...,
cleanup=...) at threadloop.cpp:38
#35 0x0000555555b8832a in std::__invoke_impl<void, void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> >(std::__invoke_memfun_deref, void (jami::ThreadLoop::*&&)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*&&, std::reference_wrapper<std::thread::id>&&, std::function<bool ()>&&, std::function<void ()>&&, std::function<void ()>&&) (
__f=@0x7fffc818cba8: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>, __t=@0x7fffc818cba0: 0x5555577a9378) at /usr/include/c++/11/bits/invoke.h:74
#36 0x0000555555b88120 in std::__invoke<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> >(void (jami::ThreadLoop::*&&)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*&&, std::reference_wrapper<std::thread::id>&&, std::function<bool ()>&&, std::function<void ()>&&, std::function<void ()>&&) (
__fn=@0x7fffc818cba8: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>) at /usr/include/c++/11/bits/invoke.h:96
#37 0x0000555555b87f7f in std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>) (
this=0x7fffc818cb38) at /usr/include/c++/11/bits/std_thread.h:259
#38 0x0000555555b87ec4 in std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > >::operator()() (this=0x7fffc818cb38) at /usr/include/c++/11/bits/std_thread.h:266
#39 0x0000555555b87ea4 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > > >::_M_run() (this=0x7fffc818cb30)
at /usr/include/c++/11/bits/std_thread.h:211
#40 0x00007ffff6edc253 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#41 0x00007ffff6a94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#42 0x00007ffff6b26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```
mutexes for videoFilter\_ seems to be incorrectSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/900ut_conference segfault since some days2023-10-26T17:59:38ZSébastien Blinut_conference segfault since some daysStacktrace:
```plaintext
�[0m�[22;36m[1695969528.280|21249|sipcall.cpp :1089] �[22;36mAddressSanitizer:DEADLYSIGNAL
[1695969528.280|20699|socket_pair.cpp :337 ] �[0m=================================================...Stacktrace:
```plaintext
�[0m�[22;36m[1695969528.280|21249|sipcall.cpp :1089] �[22;36mAddressSanitizer:DEADLYSIGNAL
[1695969528.280|20699|socket_pair.cpp :337 ] �[0m=================================================================
Creating rtp socket for uri rtp://172.17.0.11:49404 on port 60378
�[0m�[0m[call:4008112576292348] Successfully answered the media change request
�[0m�[22;36m[1695969528.280|20697|sip_utils.cpp :221 ] �[0mAdd header to SIP message: "User-Agent: Jami Daemon 13.9.0-09bfe85330-dirty (linux)"
�[0m�[22;36m[1695969528.280|20699|socket_pair.cpp :174 ] �[0muse local address: 0.0.0.0:60378
�[0m==20697==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000038 (pc 0x55853e0f604a bp 0x7fa7477e7f70 sp 0x7fa7477e7f40 T589)
�[22;36m[1695969528.280|20699|socket_pair.cpp :174 ] �[0muse local address: 0.0.0.0:60379
�[0m�[22;36m�[22;36m[1695969528.280|20699|socket_pair.cpp :361 ] �[0m�[01;33mSocketPair: local{60378,60379} / 172.17.0.11{49404,49405}
�[0m[1695969528.280|21293|media_decoder.cpp :150 ] �[0mTrying to open device dummyFilename with format sdp, pixel format , size 0x0, rate 0.000000
==20697==The signal is caused by a READ memory access.
�[0m�[22;36m[1695969528.280|21250|sipvoiplink.cpp :1120] �[0m[call:7411818913851632] INVITE@0x61900042c2a8 media update: status 0
�[0m�[22;36m[1695969528.280|20697|conference.cpp :561 ] �[0m�[01;33mTake over [AUDIO] control from call 3129400994883713 - current local source state [muted]
�[0m==20697==Hint: address points to the zero page.
�[22;36m[1695969528.280|20699|video_rtp_session.cpp :118 ] �[0m[0x61d000413c90] Start video RTP sender: input [] - muted [NO]
�[0m�[22;36m[1695969528.280|20697|conference.cpp :567 ] �[0m�[01;33mTake over [VIDEO] control from call 3129400994883713 - current local source state [muted]
�[0m�[22;36m[1695969528.280|21250|sdp.cpp :134 ] �[0mSet active local session to [0x619000306ba8]. Was [(nil)]
�[0m�[22;36m[1695969528.280|20699|media_encoder.cpp :62 ] �[0m[0x61500129a380] New instance created
�[0m�[22;36m[1695969528.280|20697|sipcall.cpp :3081] �[0m[call:3129400994883713] Entering conference [5406518273839043]
�[0m�[22;36m[1695969528.280|21250|sdp.cpp :498 ] �[0m[SDP OFFER] Local active session:
v=0
o=b7b6580484b9 3904958326 2 IN IP4 172.17.0.11
s=Call ID 1702131012226992
c=IN IP4 172.17.0.11
t=0 0
m=audio 29248 RTP/SAVP 104 101
a=rtpmap:104 opus/48000/2
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtcp:29249 IN IP4 172.17.0.11
a=sendrecv
m=video 58824 RTP/SAVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=428029
a=rtcp:58825 IN IP4 172.17.0.11
a=sendrecv
�[0m�[22;36m[1695969528.280|20699|media_encoder.cpp :93 ] �[0m�[22;31mInvalid options
�[0m�[22;36m[1695969528.280|21293|media_decoder.cpp :170 ] �[0mUsing format sdp and resolution 0x0
�[0m�[22;36m�[22;36m[1695969528.280|21250|sdp.cpp :142 ] �[0mSet active remote session to [0x619000505aa8]. Was [(nil)]
�[0m[1695969528.280|20697|video_rtp_session.cpp :557 ] �[0m[0x61d00047fe90] enterConference (conf: 5406518273839043)
�[0m�[22;36m[1695969528.280|20699|media_encoder.cpp :189 ] �[0m[0x61500129a380] Created new coding instance for H264 @ index 0
�[0m�[22;36m[1695969528.280|21250|sdp.cpp :498 ] �[0m[SDP OFFER] Remote active session:
v=0
o=b7b6580484b9 3904958326 3 IN IP4 172.17.0.11
s=Call ID 4008112576292348
c=IN IP4 172.17.0.11
t=0 0
m=audio 22278 RTP/SAVP 104 101
a=rtpmap:104 opus/48000/2
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtcp:22279 IN IP4 172.17.0.11
a=sendrecv
m=video 54988 RTP/SAVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=428029
a=rtcp:54989 IN IP4 172.17.0.11
a=sendrecv
�[0m�[22;36m[1695969528.280|20697|conference.cpp :977 ] �[0mBind participant 3129400994883713 to conference 5406518273839043
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :174 ] �[0mBind call 3129400994883713 to call 7411818913851632
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '3129400994883713' to callid '7411818913851632'
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '7411818913851632' to callid '3129400994883713'
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '3129400994883713' to callid 'audiolayer_id'
�[0m�[22;36m[1695969528.280|20697|manager.cpp :611 ] �[0m----- Switch current call id to '5406518273839043' -----
�[0m�[22;36m[1695969528.280|20697|conference.cpp :344 ] �[0m[conf 5406518273839043] Set state to [ACTIVE_ATTACHED] (was [ACTIVE_ATTACHED])
�[0m�[22;36m[1695969528.281|20697|conference.cpp :346 ] �[0mStop conference
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1433] �[0mHangup conference 5406518273839043
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1717] �[0m[call:3129400994883713] Remove local audio
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 3129400994883713 from all bound calls
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1607] �[0mRemove participant 3129400994883713
�[0m�[22;36m[1695969528.281|20697|conference.cpp :880 ] �[0mRemove call 3129400994883713 in conference 5406518273839043
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :3101] �[0m[call:3129400994883713] Leaving conference
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :174 ] �[0mBind call 3129400994883713 to call audiolayer_id
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '3129400994883713' to callid 'audiolayer_id'
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf 'audiolayer_id' to callid '3129400994883713'
�[0m�[22;36m[1695969528.281|20697|video_rtp_session.cpp :577 ] �[0m[0x61d00047fe90] exitConference (conf: 5406518273839043)
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1717] �[0m[call:3129400994883713] Remove local audio
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 3129400994883713 from all bound calls
�[0m�[22;36m[1695969528.281|20697|manager.cpp :544 ] �[0mProcess remaining 1 participant(s) from conference 5406518273839043
�[0m�[22;36m[1695969528.281|20697|manager.cpp :611 ] �[0m----- Switch current call id to '7411818913851632' -----
�[0m�[22;36m[1695969528.281|20697|manager.cpp :580 ] �[0mNo remaining participants, remove conference
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :759 ] �[0m[call:3129400994883713] Terminate SIP session
�[0m�[22;36m[1695969528.281|20697|sip_utils.cpp :221 ] �[0mAdd header to SIP message: "User-Agent: Jami Daemon 13.9.0-09bfe85330-dirty (linux)"
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :733 ] �[0m[call:3129400994883713] Delete current invite session
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :2227] �[0m[call:3129400994883713] Stopping all media
�[0m�[22;36m[1695969528.281|20697|audio_rtp_session.cpp :228 ] �[0m[0x61c0000d8090] Stopping receiver
�[0m�[22;36m[1695969528.281|20697|video_rtp_session.cpp :245 ] �[0m[0x61d00047fe90] Stop video RTP sender: input [] - muted [NO]
�[0m�[22;36m[1695969528.281|20697|video_rtp_session.cpp :319 ] �[0m[0x61d00047fe90] Stopping receiver
�[0m�[22;36m[1695969528.281|20697|call.cpp :241 ] �[0m[call:3129400994883713] state change 1/1, cnx 4/0, code 0
�[0m�[22;36m[1695969528.282|20697|call.cpp :275 ] �[0m[call:3129400994883713] emit client call state change HUNGUP, code 0
�[0m�[22;36m[1695969528.282|20697|manager.cpp :1717] �[0m[call:7411818913851632] Remove local audio
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 7411818913851632 from all bound calls
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :1592] �[0m[call:3129400994883713] removeCall()
�[0m�[22;36m[1695969528.282|20697|manager.cpp :1607] �[0mRemove participant 7411818913851632
�[0m�[22;36m[1695969528.282|20761|call_factory.cpp :72 ] �[0mRemoving call 3129400994883713
�[0m�[22;36m[1695969528.282|20697|conference.cpp :880 ] �[0mRemove call 7411818913851632 in conference 5406518273839043
�[0m�[22;36m[1695969528.282|20761|call_factory.cpp :75 ] �[0mRemaining 3 call
�[0m�[22;36m[1695969528.282|20761|call.cpp :241 ] �[0m[call:3129400994883713] state change 1/6, cnx 0/0, code 0
�[0m�[22;36m[1695969528.282|20697|sipcall.cpp :3101] �[0m[call:7411818913851632] Leaving conference
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :174 ] �[0mBind call 7411818913851632 to call audiolayer_id
�[0m�[22;36m[1695969528.282|20761|contact_list.cpp :163 ] �[0m�[01;33m[Contacts] contact '90d20919eec87c2de5c4559df9eeb269f000eec3' not found
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '7411818913851632' to callid 'audiolayer_id'
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf 'audiolayer_id' to callid '7411818913851632'
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3255] �[0m- Call 3129400994883713 with 90d20919eec87c2de5c4559df9eeb269f000eec3:
�[0m�[22;36m[1695969528.282|20697|video_rtp_session.cpp :577 ] �[0m[0x61d0002fb290] exitConference (conf: 5406518273839043)
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3256] �[0m - Duration: 10 ms
�[0m�[22;36m[1695969528.282|20697|video_mixer.cpp :203 ] �[0mDetaching video of call 7411818913851632
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3258] �[0m - Media: type [AUDIO] enabled [YES] muted [NO] label [audio_0] source [] secure [YES]
�[0m�[22;36m[1695969528.282|20697|video_mixer.cpp :237 ] �[0mRemove source [0x60b0001317b0]
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3258] �[0m - Media: type [VIDEO] enabled [YES] muted [NO] label [video_0] source [] secure [YES]
�[0m�[22;36m[1695969528.282|20697|video_mixer.cpp :239 ] �[0mTotal sources: 0
�[0m�[22;36m[1695969528.282|20761|call.cpp :275 ] �[0m[call:3129400994883713] emit client call state change OVER, code 0
�[0m�[22;36m[1695969528.282|20697|video_receive_thread.cpp:285 ] �[0m[0x61a000702680] Starting sink
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :459 ] �[0m[call:3129400994883713] Setting transport to [(nil)]
�[0m�[22;36m[1695969528.282|20697|manager.cpp :1717] �[0m[call:7411818913851632] Remove local audio
�[0m�[22;36m[1695969528.283|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 7411818913851632 from all bound calls
�[0m�[22;36m[1695969528.283|20697|manager.cpp :544 ] �[0mProcess remaining 0 participant(s) from conference 5406518273839043
�[0m�[22;36m[1695969528.283|20697|manager.cpp :584 ] �[0mNo remaining participants, remove conference
�[0m�[22;36m[1695969528.283|20697|sipcall.cpp :759 ] �[0m[call:7411818913851632] Terminate SIP session
�[0m�[22;36m[1695969528.283|20697|sip_utils.cpp :221 ] �[0mAdd header to SIP message: "User-Agent: Jami Daemon 13.9.0-09bfe85330-dirty (linux)"
�[0m�[22;36m[1695969528.283|20697|sipcall.cpp :733 ] �[0m[call:7411818913851632] Delete current invite session
�[0m�[22;36m[1695969528.283|20697|sipcall.cpp :2227] �[0m[call:7411818913851632] Stopping all media
�[0m�[22;36m[1695969528.283|20697|audio_rtp_session.cpp :228 ] �[0m[0x61c0000d5890] Stopping receiver
�[0m�[22;36m[1695969528.283|20697|socket_pair.cpp :313 ] �[0m[0x6160013aa380] Read operations in blocking mode [NO]
�[0m�[22;36m[1695969528.283|20697|socket_pair.cpp :300 ] �[0m�[01;33m[0x6160013aa380] Interrupting RTP sockets
�[0m�[22;36m[1695969528.283|21249|sipvoiplink.cpp :891 ] �[0m[call:4008112576292348] INVITE@0x6190001987a8 state changed to 6 (DISCONNCTD): cause=200, tsx@0x61d000035328 status 200 (OK)
�[0m�[22;36m[1695969528.283|21281|media_decoder.cpp :547 ] �[0mUsing libopus Opus (libopus) decoder for audio
�[0m�[22;36m[1695969528.283|21281|media_decoder.cpp :558 ] �[0m�[01;33mNot using hardware decoding for opus
�[0m #0 0x55853e0f6049 in jami::MediaDecoder::getStream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const media/media_decoder.cpp:835
#1 0x55853e9198dc in jami::AudioReceiveThread::getInfo() const media/audio/audio_receive_thread.cpp:152
#2 0x55853e820fe3 in jami::AudioRtpSession::setMuted(bool, jami::RtpSession::Direction) media/audio/audio_rtp_session.cpp:262
#3 0x55853e3e46fe in jami::SIPCall::peerMuted(bool, int) sip/sipcall.cpp:3615
#4 0x55853e499d54 in handleMediaControl sip/sipvoiplink.cpp:1241
#5 0x55853e49c508 in onRequestInfo sip/sipvoiplink.cpp:1323
#6 0x55853e49d2fa in transaction_state_changed_cb sip/sipvoiplink.cpp:1390
#7 0x55853e9c5467 in mod_inv_on_tsx_state (/foo/test/unitTest/ut_conference+0x40de467)
#8 0x55853ea025ec in pjsip_dlg_on_tsx_state (/foo/test/unitTest/ut_conference+0x411b5ec)
#9 0x55853e9fb6eb in tsx_set_state (/foo/test/unitTest/ut_conference+0x41146eb)
#10 0x55853e9fbef8 in tsx_on_state_null (/foo/test/unitTest/ut_conference+0x4114ef8)
#11 0x55853e9ff6b1 in pjsip_tsx_recv_msg (/foo/test/unitTest/ut_conference+0x41186b1)
#12 0x55853ea02304 in pjsip_dlg_on_rx_request (/foo/test/unitTest/ut_conference+0x411b304)
#13 0x55853ea03a62 in mod_ua_on_rx_request (/foo/test/unitTest/ut_conference+0x411ca62)
#14 0x55853e9e897a in pjsip_endpt_process_rx_data (/foo/test/unitTest/ut_conference+0x410197a)
#15 0x55853e9e8bb5 in endpt_on_rx_msg (/foo/test/unitTest/ut_conference+0x4101bb5)
#16 0x55853e9efbde in pjsip_tpmgr_receive_packet (/foo/test/unitTest/ut_conference+0x4108bde)
#17 0x55853e6379bd in operator() jamidht/channeled_transport.cpp:172
#18 0x55853e63ac21 in _M_invoke /usr/include/c++/9/bits/std_function.h:285
#19 0x55853e9611c3 in dhtnet::ChannelSocket::onRecv(std::vector<unsigned char, std::allocator<unsigned char> >&&) (/foo/test/unitTest/ut_conference+0x407a1c3)
#20 0x55853e961025 in dhtnet::MultiplexedSocket::Impl::handleChannelPacket(unsigned short, std::vector<unsigned char, std::allocator<unsigned char> >&&) (/foo/test/unitTest/ut_conference+0x407a025)
#21 0x55853e9658f2 in dhtnet::MultiplexedSocket::Impl::eventLoop() (/foo/test/unitTest/ut_conference+0x407e8f2)
#22 0x55853e969437 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dhtnet::MultiplexedSocket::Impl::Impl(dhtnet::MultiplexedSocket&, std::shared_ptr<asio::io_context>, dht::Hash<32ul> const&, std::unique_ptr<dhtnet::TlsSocketEndpoint, std::default_delete<dhtnet::TlsSocketEndpoint> >, std::shared_ptr<dht::log::Logger>)::{lambda()#1}> > >::_M_run() (/foo/test/unitTest/ut_conference+0x4082437)
#23 0x7fa771d9fdf3 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xd6df3)
#24 0x7fa7724b9608 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x8608)
#25 0x7fa771a8c132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132)
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/890Call-Swarm fix audio binding2023-09-14T17:39:14ZSébastien BlinCall-Swarm fix audio binding# Scenario
+ Alice hosts a call-swarm between Alice/Bob/Carla
# Expected result
+ Bob should hear carla
# Current result
+ Carla and Bob can't communicate by audio, but Alice got all audio# Scenario
+ Alice hosts a call-swarm between Alice/Bob/Carla
# Expected result
+ Bob should hear carla
# Current result
+ Carla and Bob can't communicate by audio, but Alice got all audioCapucine BerthetSébastien BlinCapucine Berthethttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/888Pulse use-after-free2023-08-29T16:47:28ZSébastien BlinPulse use-after-free```
=================================================================
==926351==ERROR: AddressSanitizer: heap-use-after-free on address 0x60c0000a6728 at pc 0x555555aa2313 bp 0x7fffefff78a0 sp 0x7fffefff7890
READ of size 8 at 0x60c0000a6...```
=================================================================
==926351==ERROR: AddressSanitizer: heap-use-after-free on address 0x60c0000a6728 at pc 0x555555aa2313 bp 0x7fffefff78a0 sp 0x7fffefff7890
READ of size 8 at 0x60c0000a6728 thread T5 (threaded-ml)
[1691760278.218|9099|accel.cpp :209 ] -- Starting decoding init for cuda with default device.
[1691760278.218|9099|accel.cpp :209 ] -- Starting decoding init for vaapi with default device.
[1691760278.221|9099|accel.cpp :185 ] Device type vaapi successfully created.
[1691760278.221|9099|accel.cpp :218 ] -- Init passed for vaapi with default device.
[AVHWFramesContext @ 0x60e002153a40] [IMGUTILS @ 0x7fffcd1e4040] Picture size 0x0 is invalid
[1691760278.221|9099|accel.cpp :344 ] Failed to initialize hardware frame context: Invalid argument (-22)
[1691760278.222|9099|accel.cpp :209 ] -- Starting decoding init for vdpau with default device.
[1691760278.222|9099|media_decoder.cpp :548 ] Using H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (h264) decoder for video
[1691760278.222|9099|media_decoder.cpp :559 ] Not using hardware decoding for h264
[New Thread 0x7fffd9388640 (LWP 926606)]
[1691760278.338|9092|media_decoder.cpp :171 ] Using format video4linux2 and resolution 960x540
#0 0x555555aa2312 in std::_Function_base::_M_empty() const /usr/include/c++/11/bits/std_function.h:247
#1 0x555555ff005e in std::function<void (bool)>::operator()(bool) const /usr/include/c++/11/bits/std_function.h:588
#2 0x5555567e6cbb in operator() media/audio/pulseaudio/audiostream.cpp:221
#3 0x5555567e6d60 in _FUN media/audio/pulseaudio/audiostream.cpp:222
#4 0x7ffff73cb76f (/lib/x86_64-linux-gnu/libpulse.so.0+0x2076f)
#5 0x7ffff66d4382 (/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so+0x40382)
#6 0x7ffff66d55be in pa_pdispatch_run (/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so+0x415be)
#7 0x7ffff73bf082 (/lib/x86_64-linux-gnu/libpulse.so.0+0x14082)
#8 0x7ffff66da486 (/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so+0x46486)
#9 0x7ffff66db1d7 (/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so+0x471d7)
#10 0x7ffff66db599 (/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so+0x47599)
#11 0x7ffff66df739 (/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so+0x4b739)
#12 0x7ffff73d2a72 in pa_mainloop_dispatch (/lib/x86_64-linux-gnu/libpulse.so.0+0x27a72)
#13 0x7ffff73d30c9 in pa_mainloop_iterate (/lib/x86_64-linux-gnu/libpulse.so.0+0x280c9)
#14 0x7ffff73d316f in pa_mainloop_run (/lib/x86_64-linux-gnu/libpulse.so.0+0x2816f)
#15 0x7ffff73e337c (/lib/x86_64-linux-gnu/libpulse.so.0+0x3837c)
#16 0x7ffff66edcb2 (/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so+0x59cb2)
#17 0x7ffff6094b42 in start_thread nptl/pthread_create.c:442
#18 0x7ffff61269ff (/lib/x86_64-linux-gnu/libc.so.6+0x1269ff)
0x60c0000a6728 is located 104 bytes inside of 120-byte region [0x60c0000a66c0,0x60c0000a6738)
freed by thread T1 here:
#0 0x7ffff74b724f in operator delete(void*, unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:172
#1 0x555556788eec in std::default_delete<jami::AudioStream>::operator()(jami::AudioStream*) const /usr/include/c++/11/bits/unique_ptr.h:85
#2 0x55555678aa79 in std::__uniq_ptr_impl<jami::AudioStream, std::default_delete<jami::AudioStream> >::reset(jami::AudioStream*) (/home/sblin/Projects/jami-project/client-qt/daemon/test/unitTest/ut_ice_media_cand_exchange+0x1236a79)
#3 0x555556788605 in std::unique_ptr<jami::AudioStream, std::default_delete<jami::AudioStream> >::reset(jami::AudioStream*) (/home/sblin/Projects/jami-project/client-qt/daemon/test/unitTest/ut_ice_media_cand_exchange+0x1234605)
#4 0x55555677fefc in jami::PulseLayer::stopStream(jami::AudioDeviceType) media/audio/pulseaudio/pulselayer.cpp:482
#5 0x555555b14e0b in jami::AudioDeviceGuard::~AudioDeviceGuard() /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:2234
#6 0x555555b563f7 in std::default_delete<jami::AudioDeviceGuard>::operator()(jami::AudioDeviceGuard*) const /usr/include/c++/11/bits/unique_ptr.h:85
#7 0x555555b42224 in std::unique_ptr<jami::AudioDeviceGuard, std::default_delete<jami::AudioDeviceGuard> >::~unique_ptr() /usr/include/c++/11/bits/unique_ptr.h:361
#8 0x55555667cf22 in jami::AudioInput::~AudioInput() media/audio/audio_input.cpp:69
#9 0x555556498105 in void __gnu_cxx::new_allocator<jami::AudioInput>::destroy<jami::AudioInput>(jami::AudioInput*) /usr/include/c++/11/ext/new_allocator.h:168
#10 0x55555649800a in void std::allocator_traits<std::allocator<jami::AudioInput> >::destroy<jami::AudioInput>(std::allocator<jami::AudioInput>&, jami::AudioInput*) /usr/include/c++/11/bits/alloc_traits.h:535
#11 0x555556497aea in std::_Sp_counted_ptr_inplace<jami::AudioInput, std::allocator<jami::AudioInput>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/include/c++/11/bits/shared_ptr_base.h:528
#12 0x555555aaea2b in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/11/bits/shared_ptr_base.h:168
#13 0x555555aa7001 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/include/c++/11/bits/shared_ptr_base.h:705
#14 0x555555b3dc03 in std::__shared_ptr<jami::AudioInput, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/include/c++/11/bits/shared_ptr_base.h:1154
#15 0x555556407fad in std::__shared_ptr<jami::AudioInput, (__gnu_cxx::_Lock_policy)2>::reset() /usr/include/c++/11/bits/shared_ptr_base.h:1272
#16 0x55555668eeda in jami::AudioRtpSession::stop() media/audio/audio_rtp_session.cpp:250
[1691760278.631|9092|accel.cpp :209 ] -- Starting decoding init for cuda with default device.
[1691760278.631|9092|media_decoder.cpp :548 ] Using MJPEG (Motion JPEG) (mjpeg) decoder for video
[1691760278.631|9092|media_decoder.cpp :559 ] Not using hardware decoding for mjpeg
[1691760278.635|9092|video_input.cpp :346 ] created decoder with video params : size=960X536, fps=30.000000 pix=yuvj422p
[1691760278.635|9092|sinkclient.cpp :498 ] [Sink:0x613000005b50] Started - size=960x540, mixer=No
#17 0x5555562c5dc2 in jami::SIPCall::stopAllMedia() sip/sipcall.cpp:2247
#18 0x5555562bb546 in jami::SIPCall::peerHungup() sip/sipcall.cpp:1488
#19 0x555555b12746 in jami::Manager::peerHungupCall(jami::Call&) /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:1970
#20 0x5555562be19c in operator() sip/sipcall.cpp:1646
#21 0x5555562dd01b in operator() manager.h:906
#22 0x5555562ea33d in __invoke_impl<void, jami::runOnMainThread<jami::SIPCall::onClosed()::<lambda()> >(jami::SIPCall::onClosed()::<lambda()>&&, char const*, uint32_t)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:61
#23 0x5555562e841d in __invoke_r<void, jami::runOnMainThread<jami::SIPCall::onClosed()::<lambda()> >(jami::SIPCall::onClosed()::<lambda()>&&, char const*, uint32_t)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:111
#24 0x5555562e55a8 in _M_invoke /usr/include/c++/11/bits/std_function.h:290
#25 0x555555aa7c6f in std::function<void ()>::operator()() const /usr/include/c++/11/bits/std_function.h:590
#26 0x555555c30039 in jami::ScheduledExecutor::loop() /home/sblin/Projects/jami-project/client-qt/daemon/src/scheduled_executor.cpp:145
#27 0x555555c2defb in operator() /home/sblin/Projects/jami-project/client-qt/daemon/src/scheduled_executor.cpp:35
#28 0x555555c33061 in __invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor(const string&)::<lambda()> > /usr/include/c++/11/bits/invoke.h:61
#29 0x555555c33024 in __invoke<jami::ScheduledExecutor::ScheduledExecutor(const string&)::<lambda()> > /usr/include/c++/11/bits/invoke.h:96
previously allocated by thread T1 here:
#0 0x7ffff74b61e7 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99
#1 0x55555677e7f7 in jami::PulseLayer::createStream(std::unique_ptr<jami::AudioStream, std::default_delete<jami::AudioStream> >&, jami::AudioDeviceType, jami::PaDeviceInfos const&, bool, std::function<void (unsigned long)>&&) media/audio/pulseaudio/pulselayer.cpp:414
#2 0x55555677f7c2 in jami::PulseLayer::startStream(jami::AudioDeviceType) media/audio/pulseaudio/pulselayer.cpp:457
#3 0x555555b14b11 in jami::AudioDeviceGuard::AudioDeviceGuard(jami::Manager&, jami::AudioDeviceType) /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:2225
#4 0x555555b4214b in std::_MakeUniq<jami::AudioDeviceGuard>::__single_object std::make_unique<jami::AudioDeviceGuard, jami::Manager&, jami::AudioDeviceType&>(jami::Manager&, jami::AudioDeviceType&) /usr/include/c++/11/bits/unique_ptr.h:962
#5 0x555555b34049 in jami::Manager::startAudioStream(jami::AudioDeviceType) manager.h:149
#6 0x55555667e85c in jami::AudioInput::initDevice(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) media/audio/audio_input.cpp:189
#7 0x555556680e9e in jami::AudioInput::switchInput(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) media/audio/audio_input.cpp:312
#8 0x55555668cce1 in jami::AudioRtpSession::startSender() media/audio/audio_rtp_session.cpp:101
#9 0x55555668e8a1 in jami::AudioRtpSession::start(std::unique_ptr<dhtnet::IceSocket, std::default_delete<dhtnet::IceSocket> >, std::unique_ptr<dhtnet::IceSocket, std::default_delete<dhtnet::IceSocket> >) media/audio/audio_rtp_session.cpp:220
#10 0x5555562c4d05 in jami::SIPCall::startAllMedia() sip/sipcall.cpp:2173
#11 0x5555562cbcb0 in jami::SIPCall::onIceNegoSucceed() sip/sipcall.cpp:2748
#12 0x5555562d6406 in operator() sip/sipcall.cpp:3388
#13 0x5555562e0b13 in operator() manager.h:906
#14 0x5555562eaba1 in __invoke_impl<void, jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<dhtnet::IceTransportOptions>)::<lambda(bool)>::<lambda()> >(jami::SIPCall::initIceMediaTransport(bool, std::optional<dhtnet::IceTransportOptions>)::<lambda(bool)>::<lambda()>&&, char const*, uint32_t)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:61
#15 0x5555562e91cd in __invoke_r<void, jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<dhtnet::IceTransportOptions>)::<lambda(bool)>::<lambda()> >(jami::SIPCall::initIceMediaTransport(bool, std::optional<dhtnet::IceTransportOptions>)::<lambda(bool)>::<lambda()>&&, char const*, uint32_t)::<lambda()>&> /usr/include/c++/11/bits/invoke.h:111
#16 0x5555562e6a6d in _M_invoke /usr/include/c++/11/bits/std_function.h:290
#17 0x555555aa7c6f in std::function<void ()>::operator()() const /usr/include/c++/11/bits/std_function.h:590
#18 0x555555c30039 in jami::ScheduledExecutor::loop() /home/sblin/Projects/jami-project/client-qt/daemon/src/scheduled_executor.cpp:145
#19 0x555555c2defb in operator() /home/sblin/Projects/jami-project/client-qt/daemon/src/scheduled_executor.cpp:35
#20 0x555555c33061 in __invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor(const string&)::<lambda()> > /usr/include/c++/11/bits/invoke.h:61
#21 0x555555c33024 in __invoke<jami::ScheduledExecutor::ScheduledExecutor(const string&)::<lambda()> > /usr/include/c++/11/bits/invoke.h:96
#22 0x555555c32fd1 in _M_invoke<0> /usr/include/c++/11/bits/std_thread.h:259
#23 0x555555c32fa5 in operator() /usr/include/c++/11/bits/std_thread.h:266
#24 0x555555c32f89 in _M_run /usr/include/c++/11/bits/std_thread.h:211
#25 0x7ffff64dc252 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xdc252)
Thread T5 (threaded-ml) created by T0 here:
[1691760278.666|9092|media_recorder.cpp :277 ] [Recorder: 0x6160010e3690] Recorder input #1: v:local
[New Thread 0x7fffce1ea640 (LWP 926607)]
#0 0x7ffff7458685 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:216
#1 0x7ffff66edd63 in pa_thread_new (/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so+0x59d63)
Thread T1 created by T0 here:
#0 0x7ffff7458685 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:216
#1 0x7ffff64dc328 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xdc328)
#2 0x555555c2e28b in jami::ScheduledExecutor::ScheduledExecutor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/sblin/Projects/jami-project/client-qt/daemon/src/scheduled_executor.cpp:30
#3 0x555555afe37e in jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&) /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:460
#4 0x555555b026ee in jami::Manager::Manager() /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:738
#5 0x555555b024f1 in jami::Manager::instance() /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:715
#6 0x555555c2b537 in libjami::init(libjami::InitFlag) /home/sblin/Projects/jami-project/client-qt/daemon/src/ring_api.cpp:69
#7 0x555555aa534c in jami::test::IceMediaCandExchangeTest::IceMediaCandExchangeTest() (/home/sblin/Projects/jami-project/client-qt/daemon/test/unitTest/ut_ice_media_cand_exchange+0x55134c)
#8 0x555555acba5d in CppUnit::ConcretTestFixtureFactory<jami::test::IceMediaCandExchangeTest>::makeFixture() (/home/sblin/Projects/jami-project/client-qt/daemon/test/unitTest/ut_ice_media_cand_exchange+0x577a5d)
#9 0x555555aa866f in CppUnit::TestSuiteBuilderContext<jami::test::IceMediaCandExchangeTest>::makeFixture() const (/home/sblin/Projects/jami-project/client-qt/daemon/test/unitTest/ut_ice_media_cand_exchange+0x55466f)
#10 0x555555aa5dd3 in jami::test::IceMediaCandExchangeTest::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&) (/home/sblin/Projects/jami-project/client-qt/daemon/test/unitTest/ut_ice_media_cand_exchange+0x551dd3)
#11 0x555555aa62c2 in jami::test::IceMediaCandExchangeTest::suite() (/home/sblin/Projects/jami-project/client-qt/daemon/test/unitTest/ut_ice_media_cand_exchange+0x5522c2)
#12 0x555555acba32 in CppUnit::TestSuiteFactory<jami::test::IceMediaCandExchangeTest>::makeTest() (/home/sblin/Projects/jami-project/client-qt/daemon/test/unitTest/ut_ice_media_cand_exchange+0x577a32)
#13 0x7ffff7f8172e in CppUnit::TestFactoryRegistry::addTestToSuite(CppUnit::TestSuite*) (/lib/x86_64-linux-gnu/libcppunit-1.15.so.1+0x2772e)
SUMMARY: AddressSanitizer: heap-use-after-free /usr/include/c++/11/bits/std_function.h:247 in std::_Function_base::_M_empty() const
Shadow bytes around the buggy address:
0x0c188000cc90: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c188000cca0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
0x0c188000ccb0: fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa
0x0c188000ccc0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa
0x0c188000ccd0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
=>0x0c188000cce0: fd fd fd fd fd[fd]fd fa fa fa fa fa fa fa fa fa
0x0c188000ccf0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c188000cd00: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c188000cd10: 00 00 00 00 00 00 05 fa fa fa fa fa fa fa fa fa
0x0c188000cd20: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa
0x0c188000cd30: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==926351==ABORTING
[Thread 0x7fffce1ea640 (LWP 926607) exited]
[Thread 0x7fffd9388640 (LWP 926606) exited]
[Thread 0x7fffcf1ec640 (LWP 926605) exited]
[Thread 0x7fffcd1e8640 (LWP 926603) exited]
[Thread 0x7fffcd9e9640 (LWP 926602) exited]
[Thread 0x7fffcf9ed640 (LWP 926598) exited]
[Thread 0x7fffd01ee640 (LWP 926597) exited]
[Thread 0x7fffd09ef640 (LWP 926596) exited]
[Thread 0x7fffd31f4640 (LWP 926592) exited]
[Thread 0x7fffda38a640 (LWP 926591) exited]
[Thread 0x7ffface46640 (LWP 926582) exited]
[Thread 0x7fffac62f640 (LWP 926581) exited]
[Thread 0x7fffd19f1640 (LWP 926448) exited]
[Thread 0x7fffd21f2640 (LWP 926447) exited]
[Thread 0x7fffd39f5640 (LWP 926444) exited]
[Thread 0x7fffd41f6640 (LWP 926443) exited]
[Thread 0x7fffd49f7640 (LWP 926441) exited]
[Thread 0x7fffd51f8640 (LWP 926440) exited]
[Thread 0x7fffd59f9640 (LWP 926439) exited]
[Thread 0x7fffd7348640 (LWP 926438) exited]
[Thread 0x7fffd9b89640 (LWP 926403) exited]
[Thread 0x7fffd6b31640 (LWP 926402) exited]
[Thread 0x7fffd8b87640 (LWP 926374) exited]
[Thread 0x7fffdab8b640 (LWP 926369) exited]
[Thread 0x7fffdb38c640 (LWP 926368) exited]
[Thread 0x7fffdbb8d640 (LWP 926367) exited]
[Thread 0x7fffdc38e640 (LWP 926366) exited]
[Thread 0x7fffdcff5640 (LWP 926365) exited]
[Thread 0x7fffdd7f6640 (LWP 926364) exited]
[Thread 0x7fffddff7640 (LWP 926363) exited]
[Thread 0x7fffde7f8640 (LWP 926362) exited]
[Thread 0x7fffdeff9640 (LWP 926361) exited]
[Thread 0x7fffefffb640 (LWP 926359) exited]
[Thread 0x7ffff07fc640 (LWP 926358) exited]
[Thread 0x7ffff0ffd640 (LWP 926357) exited]
[Thread 0x7ffff17fe640 (LWP 926356) exited]
[Thread 0x7ffff1fff640 (LWP 926354) exited]
[Thread 0x7ffff58064c0 (LWP 926351) exited]
[Thread 0x7fffdf7fa640 (LWP 926604) exited]
[New process 926351]
[Inferior 1 (process 926351) exited with code 01]
(gdb)
```
In
```cpp
auto* op = pa_context_get_source_info_by_name(
context,
name,
[](pa_context* /*c*/, const pa_source_info* i, int /*eol*/, void* userdata) {
AudioStream* thisPtr = (AudioStream*) userdata;
// this whole closure gets called twice by pulse for some reason
// the 2nd time, i is invalid
if (!i) {
// JAMI_ERR("[audiostream] source info not found for %s", realName);
return;
}
// string compare
bool usingEchoCancel = std::string_view(i->driver) == "module-echo-cancel.c";
JAMI_WARN("[audiostream] capture stream using pulse echo cancel module? %s (%s)",
usingEchoCancel ? "yes" : "no",
i->name);
if (!thisPtr) {
JAMI_ERR("[audiostream] AudioStream pointer became invalid during "
"pa_source_info_cb_t callback!");
return;
}
thisPtr->echoCancelCb(usingEchoCancel);
},
this);
```
destruction may occurs between:
```cpp
if (!thisPtr) {
JAMI_ERR("[audiostream] AudioStream pointer became invalid during "
"pa_source_info_cb_t callback!");
return;
}
// HERE
thisPtr->echoCancelCb(usingEchoCancel);
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/878CPU rapidly increased during video call when video muted on another side2023-09-08T15:24:55ZKateryna KostiukCPU rapidly increased during video call when video muted on another sidesteps to reproduce:
- Start a video call between A and B.
- Monitor CPU usage on A.
- Mute video on B.
- On A, CPU usage increases and stays high.steps to reproduce:
- Start a video call between A and B.
- Monitor CPU usage on A.
- Mute video on B.
- On A, CPU usage increases and stays high.Adrien BéraudSébastien BlinAdrien Béraudhttps://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/842FFmpeg 6.0 hevc hardware acceleration NVENC/NVDEC2023-12-29T23:49:35ZAKmatiAKFFmpeg 6.0 hevc hardware acceleration NVENC/NVDECHi, in the new ffmpeg version in order to use hevc hardware acceleration on some nvidia graphic cards -b_ref_mode disabled needs to be passed to ffmpeg. Thread here: https://bbs.archlinux.org/viewtopic.php?id=284290
Also, I suggest to a...Hi, in the new ffmpeg version in order to use hevc hardware acceleration on some nvidia graphic cards -b_ref_mode disabled needs to be passed to ffmpeg. Thread here: https://bbs.archlinux.org/viewtopic.php?id=284290
Also, I suggest to add information about enabling HW accel to get hevc working in enabled codecs settings. I figured it out by accident and for some time wondered why H265 is not listed.Adrien BéraudAdrien Béraudhttps://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/809AudioRtpSession nullptr exception (seems a multi-thread issue)2023-03-24T18:03:59ZSébastien BlinAudioRtpSession nullptr exception (seems a multi-thread issue)# Scenario
None, it was on a auto-answer device
# Backtrace
```
#0 0x00007fffe8d9ad54 in jami::MediaDecoder::getStream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const
(this=0x0, name="a:remo...# Scenario
None, it was on a auto-answer device
# Backtrace
```
#0 0x00007fffe8d9ad54 in jami::MediaDecoder::getStream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const
(this=0x0, name="a:remote") at media/media_decoder.cpp:832
#1 0x00007fffe8de95a1 in jami::AudioReceiveThread::getInfo() const (this=0x619000be3280) at ./media/audio/audio_receive_thread.cpp:137
#2 0x00007fffe8dece71 in jami::AudioRtpSession::deinitRecorder(std::shared_ptr<jami::MediaRecorder>&)
(this=0x61c000bb4090, rec=std::shared_ptr<jami::MediaRecorder> (use count 1, weak count 1) = {...}) at ./media/audio/audio_rtp_session.cpp:357
#3 0x00007fffe8eced41 in jami::SIPCall::deinitRecorder() (this=0x61a000f6de90) at ./sip/sipcall.cpp:3210
#4 0x00007fffe8ec93be in jami::SIPCall::stopAllMedia() (this=0x61a000f6de90) at ./sip/sipcall.cpp:2221
#5 0x00007fffe8ebfbc0 in operator()(pjsip_transport_state, pjsip_transport_state_info const*) const
(__closure=0x602000346db0, state=PJSIP_TP_STATE_DISCONNECTED) at ./sip/sipcall.cpp:496
#6 0x00007fffe8ed70da in std::__invoke_impl<void, jami::SIPCall::setSipTransport(const std::shared_ptr<jami::SipTransport>&, const std::string&)::<lambda(pjsip_transport_state, const pjsip_transport_state_info*)>&, pjsip_transport_state, const pjsip_transport_state_info*>(std::__invoke_other, struct {...} &)
(__f=...) at /usr/include/c++/12/bits/invoke.h:61
#7 0x00007fffe8ed55b1 in std::__invoke_r<void, jami::SIPCall::setSipTransport(const std::shared_ptr<jami::SipTransport>&, const std::string&)::<lambda(pjsip_transport_state, const pjsip_transport_state_info*)>&, pjsip_transport_state, const pjsip_transport_state_info*>(struct {...} &) (__fn=...)
at /usr/include/c++/12/bits/invoke.h:111
#8 0x00007fffe8ed3c71 in std::_Function_handler<void(pjsip_transport_state, const pjsip_transport_state_info*), jami::SIPCall::setSipTransport(const std::shared_ptr<jami::SipTransport>&, const std::string&)::<lambda(pjsip_transport_state, const pjsip_transport_state_info*)> >::_M_invoke(const std::_Any_data &, pjsip_transport_state &&, const pjsip_transport_state_info *&&)
(__functor=..., __args#0=@0x7fff01d8ded4: PJSIP_TP_STATE_DISCONNECTED, __args#1=@0x7fff01d8dec8: 0x7fff01d8e110)
at /usr/include/c++/12/bits/std_function.h:290
#9 0x00007fffe8efb830 in std::function<void (pjsip_transport_state, pjsip_transport_state_info const*)>::operator()(pjsip_transport_state, pjsip_transport_state_info const*) const (this=0x603000c74800, __args#0=PJSIP_TP_STATE_DISCONNECTED, __args#1=0x7fff01d8e110) at /usr/include/c++/12/bits/std_function.h:591
#10 0x00007fffe8ef853b in jami::SipTransport::stateCallback(pjsip_transport_state, pjsip_transport_state_info const*)
(this=0x611000a27dd0, state=PJSIP_TP_STATE_DISCONNECTED, info=0x7fff01d8e110) at ./sip/siptransport.cpp:155
#11 0x00007fffe8ef8b20 in jami::SipTransportBroker::transportStateChanged(pjsip_transport*, pjsip_transport_state, pjsip_transport_state_info const*)
(this=0x60e00014fa20, tp=0x62501149f170, state=PJSIP_TP_STATE_DISCONNECTED, info=0x7fff01d8e110) at ./sip/siptransport.cpp:243
#12 0x00007fffe8ee9bdc in jami::tp_state_callback(pjsip_transport*, pjsip_transport_state, pjsip_transport_state_info const*)
(tp=0x62501149f170, state=PJSIP_TP_STATE_DISCONNECTED, info=0x7fff01d8e110) at ./sip/sipvoiplink.cpp:587
#13 0x00007fffe8c4178b in operator()() const (__closure=0x61200039fde0) at jamidht/channeled_transport.cpp:190
#14 0x00007fffe8c42c44 in std::__invoke_impl<void, jami::tls::ChanneledSIPTransport::start()::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/12/bits/invoke.h:61
#15 0x00007fffe8c4278c in std::__invoke_r<void, jami::tls::ChanneledSIPTransport::start()::<lambda()>&>(struct {...} &) (__fn=...)
at /usr/include/c++/12/bits/invoke.h:111
#16 0x00007fffe8c422e6 in std::_Function_handler<void(), jami::tls::ChanneledSIPTransport::start()::<lambda()> >::_M_invoke(const std::_Any_data &)
(__functor=...) at /usr/include/c++/12/bits/std_function.h:290
#17 0x00007fffe89c0b70 in std::function<void ()>::operator()() const (this=0x61200039fde0) at /usr/include/c++/12/bits/std_function.h:591
#18 0x00007fffe8b5db5f in jami::ChannelSocket::stop() (this=0x603001bc32c0) at connectivity/multiplexed_socket.cpp:1055
#19 0x00007fffe8b62295 in jami::MultiplexedSocket::Impl::clearSockets() (this=0x61700070ba00) at connectivity/multiplexed_socket.cpp:103
#20 0x00007fffe8b62401 in jami::MultiplexedSocket::Impl::shutdown() (this=0x61700070ba00) at connectivity/multiplexed_socket.cpp:121
#21 0x00007fffe8b5967f in jami::MultiplexedSocket::Impl::eventLoop() (this=0x61700070ba00) at connectivity/multiplexed_socket.cpp:242
#22 0x00007fffe8b61b9f in jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<32ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}::operator()() const (__closure=0x602001332118) at connectivity/multiplexed_socket.cpp:68
#23 0x00007fffe8b6f766 in std::__invoke_impl<void, jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<32ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}>(std::__invoke_other, jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<32ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}&&) (__f=...)
at /usr/include/c++/12/bits/invoke.h:61
#24 0x00007fffe8b6f729 in std::__invoke<jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<32ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}>(jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<32ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}&&) (__fn=...)
at /usr/include/c++/12/bits/invoke.h:96
#25 0x00007fffe8b6f6d6 in std::thread::_Invoker<std::tuple<jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<32ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x602001332118)
at /usr/include/c++/12/bits/std_thread.h:252
#26 0x00007fffe8b6f688 in std::thread::_Invoker<std::tuple<jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<32ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}> >::operator()() (this=0x602001332118)
at /usr/include/c++/12/bits/std_thread.h:259
#27 0x00007fffe8b6f632 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::MultiplexedSocket::Impl::Impl(jami::MultiplexedSocket&, dht::Hash<32ul> const&, std::unique_ptr<jami::TlsSocketEndpoint, std::default_delete<jami::TlsSocketEndpoint> >)::{lambda()#1}> > >::_M_run() (this=0x602001332110)
at /usr/include/c++/12/bits/std_thread.h:210
#28 0x00007fffe80dbb03 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#29 0x00007fffe7c8cded in start_thread () at /lib64/libc.so.6
#30 0x00007fffe7d12370 in clone3 () at /lib64/libc.so.6
```
In: `jami::AudioRtpSession::deinitRecorder(std::shared_ptr<jami::MediaRecorder>&)` receiveThread_ is nullptr, so it was de-allocated between line 356/357Aline Gondim SantosAline Gondim Santoshttps://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/779conference: detached host appearing2023-12-27T18:01:47ZAline Gondim Santosconference: detached host appearingJoin a rdv from two different devices;
Crash one of them (force jami quit without correctly ending the call)
On the other one you will see the host in the place of this crashed participant. If the crashed participant is still there (a ...Join a rdv from two different devices;
Crash one of them (force jami quit without correctly ending the call)
On the other one you will see the host in the place of this crashed participant. If the crashed participant is still there (a frozen component), you can change the layout one or two times and the host will take its place.
Expected: the crashed participant should disappear and the host should not take its place.Aline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/771ut_conference, sporadic crashes in testParticipantAddRmSecondVideo2023-03-31T15:55:27ZSébastien Blinut_conference, sporadic crashes in testParticipantAddRmSecondVideoOn current master (b7dd425660c420466d951f09e3c67e9d5f9eec90), sometimes:
# Stack
```
[1665072641.413|34936|sdp.cpp :606 ] Processing received offer for [Call ID 4153440945198650] with 2 media
malloc_consolidate(): unali...On current master (b7dd425660c420466d951f09e3c67e9d5f9eec90), sometimes:
# Stack
```
[1665072641.413|34936|sdp.cpp :606 ] Processing received offer for [Call ID 4153440945198650] with 2 media
malloc_consolidate(): unaligned fastbin chunk detected
Thread 1 "ut_conference" received signal SIGABRT, Aborted.
0x00007ffff668ec4c in __pthread_kill_implementation () from /lib64/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install alsa-lib-1.2.7.2-1.fc36.x86_64 bzip2-libs-1.0.8-11.fc36.x86_64 cppunit-1.15.1-6.fc36.x86_64 dbus-libs-1.14.0-1.fc36.x86_64 expat-2.4.7-1.fc36.x86_64 flac-libs-1.3.4-1.fc36.x86_64 glibc-2.35-17.fc36.x86_64 gmp-6.2.1-2.fc36.x86_64 gnutls-3.7.7-1.fc36.x86_64 gsm-1.0.19-7.fc36.x86_64 jsoncpp-1.9.5-2.fc36.x86_64 lame-libs-3.100-12.fc36.x86_64 libX11-1.7.3.1-2.fc36.x86_64 libXau-1.0.9-8.fc36.x86_64 libXext-1.3.4-8.fc36.x86_64 libXfixes-6.0.0-3.fc36.x86_64 libargon2-20171227-9.fc36.x86_64 libasyncns-0.8-22.fc36.x86_64 libcap-2.48-4.fc36.x86_64 libdrm-2.4.110-1.fc36.x86_64 libgcc-12.2.1-2.fc36.x86_64 libgcrypt-1.10.1-3.fc36.x86_64 libgpg-error-1.45-1.fc36.x86_64 libidn2-2.3.3-1.fc36.x86_64 libogg-1.3.5-3.fc36.x86_64 libsndfile-1.1.0-4.fc36.x86_64 libstdc++-12.2.1-2.fc36.x86_64 libtasn1-4.18.0-2.fc36.x86_64 libunistring-1.0-1.fc36.x86_64 libuuid-2.38-1.fc36.x86_64 libva-2.14.0-1.fc36.x86_64 libvdpau-1.5-10.fc36.x86_64 libvorbis-1.3.7-5.fc36.x86_64 libxcb-1.13.1-9.fc36.x86_64 libzstd-1.5.2-2.fc36.x86_64 lz4-libs-1.9.3-4.fc36.x86_64 mpg123-libs-1.30.1-1.fc36.x86_64 nettle-3.8-1.fc36.x86_64 nss-mdns-0.15.1-5.fc36.x86_64 nvidia-driver-cuda-libs-515.76-1.fc36.x86_64 openssl-libs-3.0.5-1.fc36.x86_64 opus-1.3.1-10.fc36.x86_64 p11-kit-0.24.1-2.fc36.x86_64 pulseaudio-libs-15.0-5.fc36.x86_64 speex-1.2.0-10.fc36.x86_64 speexdsp-1.2.1-1.fc36.x86_64 systemd-libs-250.8-1.fc36.x86_64 x264-libs-0.163-6.20210613git5db6aa6.fc36.x86_64 xz-libs-5.2.5-9.fc36.x86_64 yaml-cpp-0.6.3-6.fc36.x86_64 zlib-1.2.11-33.fc36.x86_64
(gdb) bt
#0 0x00007ffff668ec4c in __pthread_kill_implementation () from /lib64/libc.so.6
#1 0x00007ffff663e9c6 in raise () from /lib64/libc.so.6
#2 0x00007ffff66287f4 in abort () from /lib64/libc.so.6
#3 0x00007ffff6682d9e in __libc_message () from /lib64/libc.so.6
#4 0x00007ffff669895c in malloc_printerr () from /lib64/libc.so.6
#5 0x00007ffff669aa8c in _int_free () from /lib64/libc.so.6
#6 0x00007ffff669d103 in free () from /lib64/libc.so.6
#7 0x000000000063b90c in jami::MediaDescription::~MediaDescription (this=0x7fff300212f8, __in_chrg=<optimized out>)
at /home/amarok/Projects/jami/daemon/src/media/media_codec.h:274
#8 0x0000000000906636 in jami::RtpSession::~RtpSession (this=0x7fff300210c0, __in_chrg=<optimized out>)
at ./media/rtp_session.h:51
#9 0x0000000000910ce3 in jami::video::VideoRtpSession::~VideoRtpSession (this=0x7fff300210c0,
__in_chrg=<optimized out>) at ./media/video/video_rtp_session.cpp:79
#10 0x00000000006a8c3a in std::_Destroy<jami::video::VideoRtpSession> (__pointer=0x7fff300210c0)
at /usr/include/c++/12/bits/stl_construct.h:151
#11 0x00000000006a8bde in std::allocator_traits<std::allocator<void> >::destroy<jami::video::VideoRtpSession> (
__p=0x7fff300210c0) at /usr/include/c++/12/bits/alloc_traits.h:648
#12 0x00000000006a8941 in std::_Sp_counted_ptr_inplace<jami::video::VideoRtpSession, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x7fff300210b0) at /usr/include/c++/12/bits/shared_ptr_base.h:613
#13 0x000000000049f957 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use (
this=0x7fff300210b0) at /usr/include/c++/12/bits/shared_ptr_base.h:175
#14 0x000000000049d212 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold (
this=0x7fff300210b0) at /usr/include/c++/12/bits/shared_ptr_base.h:199
#15 0x000000000049a9db in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x7fff300210b0)
at /usr/include/c++/12/bits/shared_ptr_base.h:353
#16 0x000000000049d269 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x1eb9b38,
__in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr_base.h:1071
#17 0x00000000004cf40a in std::__shared_ptr<jami::RtpSession, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (
this=0x1eb9b30, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr_base.h:1524
#18 0x00000000004e3ef6 in std::shared_ptr<jami::RtpSession>::~shared_ptr (this=0x1eb9b30, __in_chrg=<optimized out>)
at /usr/include/c++/12/bits/shared_ptr.h:175
#19 0x00000000004e3f11 in std::_Destroy<std::shared_ptr<jami::RtpSession> > (__pointer=0x1eb9b30)
at /usr/include/c++/12/bits/stl_construct.h:151
#20 0x00000000004e17a1 in std::_Destroy_aux<false>::__destroy<std::shared_ptr<jami::RtpSession>*> (
__first=0x1eb9b30, __last=0x1eb9b40) at /usr/include/c++/12/bits/stl_construct.h:163
#21 0x00000000004ddade in std::_Destroy<std::shared_ptr<jami::RtpSession>*> (__first=0x1eb9b20, __last=0x1eb9b40)
at /usr/include/c++/12/bits/stl_construct.h:196
#22 0x00000000004d8169 in std::_Destroy<std::shared_ptr<jami::RtpSession>*, std::shared_ptr<jami::RtpSession> > (
__first=0x1eb9b20, __last=0x1eb9b40) at /usr/include/c++/12/bits/alloc_traits.h:850
#23 0x00000000004d2823 in std::vector<std::shared_ptr<jami::RtpSession>, std::allocator<std::shared_ptr<jami::RtpSession> > >::~vector (this=0x7fffffffc3b0, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/stl_vector.h:730
#24 0x000000000068fa7f in jami::SIPCall::exitConference (this=0x1cb4670) at ./sip/sipcall.cpp:3061
#25 0x00000000004be2bb in jami::Conference::removeParticipant (this=0x1d2f140, participant_id="6158319920365303")
at conference.cpp:884
#26 0x00000000004fa526 in jami::Manager::removeParticipant (this=0x1a6d6e0 <jami::Manager::instance()::instance>,
call=...) at manager.cpp:1545
#27 0x00000000004f7c22 in jami::Manager::hangupCall (this=0x1a6d6e0 <jami::Manager::instance()::instance>,
callId="6158319920365303") at manager.cpp:1105
#28 0x00000000004f9424 in jami::Manager::ManagerPimpl::hangupConference (this=0x1cb7760, conference=...)
at manager.cpp:1370
#29 0x00000000004f7dc4 in jami::Manager::hangupConference (this=0x1a6d6e0 <jami::Manager::instance()::instance>,
accountId="15d9d069807f7c0d", confId="") at manager.cpp:1127
#30 0x00000000004849ff in jami::test::ConferenceTest::hangupConference (this=0x1cb37b0) at call/conference.cpp:311
#31 0x00000000004939b9 in jami::test::ConferenceTest::testParticipantAddRmSecondVideo (this=0x1cb37b0)
at call/conference.cpp:881
--Type <RET> for more, q to quit, c to continue without paging--
#32 0x00000000004ab82d in std::__invoke_impl<void, void (jami::test::ConferenceTest::*&)(), jami::test::ConferenceTest*&> (
__f=@0x1cd08e0: (void (jami::test::ConferenceTest::*)(jami::test::ConferenceTest * const)) 0x4930d6 <jami::test::ConferenceTest::testParticipantAddRmSecondVideo()>, __t=@0x1cd08f0: 0x1cb37b0) at /usr/include/c++/12/bits/invoke.h:74
#33 0x00000000004aad83 in std::__invoke<void (jami::test::ConferenceTest::*&)(), jami::test::ConferenceTest*&> (
__fn=@0x1cd08e0: (void (jami::test::ConferenceTest::*)(jami::test::ConferenceTest * const)) 0x4930d6 <jami::test::ConferenceTest::testParticipantAddRmSecondVideo()>) at /usr/include/c++/12/bits/invoke.h:96
#34 0x00000000004a9f4e in std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x1cd08e0, __args=...) at /usr/include/c++/12/functional:484
#35 0x00000000004a8942 in std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>::operator()<, void>() (this=0x1cd08e0) at /usr/include/c++/12/functional:567
#36 0x00000000004a7218 in std::__invoke_impl<void, std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>&>(std::__invoke_other, std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>&)
(__f=...) at /usr/include/c++/12/bits/invoke.h:61
#37 0x00000000004a563e in std::__invoke_r<void, std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>&>(std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>&) (__fn=...)
at /usr/include/c++/12/bits/invoke.h:111
#38 0x00000000004a3127 in std::_Function_handler<void (), std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()> >::_M_invoke(std::_Any_data const&) (__functor=...)
at /usr/include/c++/12/bits/std_function.h:290
#39 0x000000000049dbb4 in std::function<void ()>::operator()() const (this=0x1cb0990)
at /usr/include/c++/12/bits/std_function.h:591
#40 0x00000000004acc14 in CppUnit::TestCaller<jami::test::ConferenceTest>::runTest (this=0x1cb0950)
at /usr/include/cppunit/TestCaller.h:175
#41 0x00007ffff7f7ea66 in CppUnit::TestCaseMethodFunctor::operator()() const () from /lib64/libcppunit-1.15.so.1
#42 0x00007ffff7f7e9b3 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () from /lib64/libcppunit-1.15.so.1
#43 0x00007ffff7f77a23 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&)
() from /lib64/libcppunit-1.15.so.1
#44 0x00007ffff7f8041a in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib64/libcppunit-1.15.so.1
#45 0x00007ffff7f88dba in CppUnit::TestCase::run(CppUnit::TestResult*) () from /lib64/libcppunit-1.15.so.1
#46 0x00007ffff7f7edad in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) ()
from /lib64/libcppunit-1.15.so.1
#47 0x00007ffff7f7ebdb in CppUnit::TestComposite::run(CppUnit::TestResult*) () from /lib64/libcppunit-1.15.so.1
#48 0x00007ffff7f7edad in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) ()
from /lib64/libcppunit-1.15.so.1
#49 0x00007ffff7f7ebdb in CppUnit::TestComposite::run(CppUnit::TestResult*) () from /lib64/libcppunit-1.15.so.1
#50 0x00007ffff7f7f716 in CppUnit::TestResult::runTest(CppUnit::Test*) () from /lib64/libcppunit-1.15.so.1
#51 0x00007ffff7f86143 in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib64/libcppunit-1.15.so.1
#52 0x00007ffff7f912c4 in CppUnit::TextTestRunner::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, bool, bool) () from /lib64/libcppunit-1.15.so.1
#53 0x0000000000493e9b in main () at call/conference.cpp:889
```Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/761Audio crash in pulse2022-11-03T14:50:17ZSébastien BlinAudio crash in pulseScenario: none provided
Since: probably last changes (seems a recent crash and test-recorder get some crashes too)
```
New Thread 0x7fff41feb640 (LWP 971442)]
[New Thread 0x7fff387d8640 (LWP 971443)]
[Thread 0x7fff41feb640 (LWP 971442)...Scenario: none provided
Since: probably last changes (seems a recent crash and test-recorder get some crashes too)
```
New Thread 0x7fff41feb640 (LWP 971442)]
[New Thread 0x7fff387d8640 (LWP 971443)]
[Thread 0x7fff41feb640 (LWP 971442) exited]
[Thread 0x7fff2f7c6640 (LWP 971342) exited]
[1662562478.697|57330|audio_frame_resizer.cpp :117 ] Audio resizer error: Invalid argument
terminate called after throwing an instance of 'std::runtime_error'
what(): Failed to add audio to frame resizer
Thread 21 "threaded-ml" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffc67fc640 (LWP 909298)]
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140736523650624) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=140736523650624) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=140736523650624) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=140736523650624, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007ffff60ad476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff60937f3 in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff6355bfe in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff636128c in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#7 0x00007ffff63612f7 in std::terminate() () from /lib/x86_64-linux-gnu/libstdc++.so.6
#8 0x00007ffff6361558 in __cxa_throw () from /lib/x86_64-linux-gnu/libstdc++.so.6
#9 0x00007ffff6adef7a in jami::AudioFrameResizer::enqueue (this=0x7fffac2bba28, frame=...)
at ./media/audio/audio_frame_resizer.cpp:118
#10 0x00007ffff6b11a28 in jami::AudioProcessor::enqueue (this=0x7fffac2bba20, frameResizer=..., buf=...)
at ./media/audio/audio-processing/audio_processor.h:181
#11 0x00007ffff6b116ec in jami::AudioProcessor::putPlayback (this=0x7fffac2bba20,
buf=std::shared_ptr<DRing::AudioFrame> (use count 2, weak count 0) = {...})
at ./media/audio/audio-processing/audio_processor.h:61
#12 0x00007ffff6afc22a in jami::AudioLayer::getToPlay (this=0x55555576eea0, format=..., writableSamples=1288)
at ./media/audio/audiolayer.cpp:307
#13 0x00007ffff6b1c2d4 in jami::PulseLayer::writeToSpeaker (this=0x55555576eea0)
at media/audio/pulseaudio/pulselayer.cpp:503
#14 0x00007ffff6b2ba64 in std::__invoke_impl<void, void (jami::PulseLayer::*&)(), jami::PulseLayer*&> (
__f=@0x7fff80011790: (void (jami::PulseLayer::*)(jami::PulseLayer * const)) 0x7ffff6b1c140 <jami::PulseLayer::writeToSpeaker()>, __t=@0x7fff800117a0: 0x55555576eea0) at /usr/include/c++/11/bits/invoke.h:74
#15 0x00007ffff6b29a4f in std::__invoke<void (jami::PulseLayer::*&)(), jami::PulseLayer*&> (
__fn=@0x7fff80011790: (void (jami::PulseLayer::*)(jami::PulseLayer * const)) 0x7ffff6b1c140 <jami::PulseLayer::writeToSpeaker()>) at /usr/include/c++/11/bits/invoke.h:96
#16 0x00007ffff6b27885 in std::_Bind<void (jami::PulseLayer::*(jami::PulseLayer*))()>::__call<void, unsigned long&&, 0ul>(std::tuple<unsigned long&&>&&, std::_Index_tuple<0ul>) (this=0x7fff80011790, __args=...)
at /usr/include/c++/11/functional:420
#17 0x00007ffff6b25cee in std::_Bind<void (jami::PulseLayer::*(jami::PulseLayer*))()>::operator()<unsigned long, void>(unsigned long&&) (this=0x7fff80011790) at /usr/include/c++/11/functional:503
#18 0x00007ffff6b2487b in std::__invoke_impl<void, std::_Bind<void (jami::PulseLayer::*(jami::PulseLayer*))()>&, unsigned long>(std::__invoke_other, std::_Bind<void (jami::PulseLayer::*(jami::PulseLayer*))()>&, unsigned long&&) (
__f=...) at /usr/include/c++/11/bits/invoke.h:61
#19 0x00007ffff6b22e71 in std::__invoke_r<void, std::_Bind<void (jami::PulseLayer::*(jami::PulseLayer*))()>&, unsigned long>(std::_Bind<void (jami::PulseLayer::*(jami::PulseLayer*))()>&, unsigned long&&) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#20 0x00007ffff6b2139c in std::_Function_handler<void (unsigned long), std::_Bind<void (jami::PulseLayer::*(jami::PulseLayer*))()> >::_M_invoke(std::_Any_data const&, unsigned long&&) (__functor=..., __args#0=@0x7fffc67f8d10: 5152)
at /usr/include/c++/11/bits/std_function.h:290
#21 0x00007ffff6ad9efb in std::function<void (unsigned long)>::operator()(unsigned long) const (
this=0x7fff8003ba70, __args#0=5152) at /usr/include/c++/11/bits/std_function.h:590
#22 0x00007ffff6ad8f93 in operator() (__closure=0x0, bytes=5152, userdata=0x7fff8003ba50)
at media/audio/pulseaudio/audiostream.cpp:96
#23 0x00007ffff6ad8fc7 in _FUN () at media/audio/pulseaudio/audiostream.cpp:97
--Type <RET> for more, q to quit, c to continue without paging--
#24 0x00007ffff5ea54be in ?? () from /lib/x86_64-linux-gnu/libpulse.so.0
#25 0x00007ffff4a00540 in pa_pdispatch_run () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so
#26 0x00007ffff5e8a083 in ?? () from /lib/x86_64-linux-gnu/libpulse.so.0
#27 0x00007ffff4a05487 in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so
#28 0x00007ffff4a061d8 in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so
#29 0x00007ffff4a0659a in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so
#30 0x00007ffff4a0a73a in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so
#31 0x00007ffff5e9da73 in pa_mainloop_dispatch () from /lib/x86_64-linux-gnu/libpulse.so.0
#32 0x00007ffff5e9e0ca in pa_mainloop_iterate () from /lib/x86_64-linux-gnu/libpulse.so.0
#33 0x00007ffff5e9e170 in pa_mainloop_run () from /lib/x86_64-linux-gnu/libpulse.so.0
#34 0x00007ffff5eae37d in ?? () from /lib/x86_64-linux-gnu/libpulse.so.0
#35 0x00007ffff4a18cb3 in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so
#36 0x00007ffff60ffb43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#37 0x00007ffff6191a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```Aline Gondim SantosEzra PierceAline Gondim Santos