jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2024-03-08T13:26:13Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/970Video camera stream is black when hardware acceleration is enabled2024-03-08T13:26:13ZPaul Le Guen de KerneizonVideo camera stream is black when hardware acceleration is enabled## How to report a bug
## One bug = one bug report
If you have multiple issues, please file separate bug reports. It will be much easier to track bugs that way.
## Avoid duplicates
Search for similar problem - update existing issue i...## How to report a bug
## One bug = one bug report
If you have multiple issues, please file separate bug reports. It will be much easier to track bugs that way.
## Avoid duplicates
Search for similar problem - update existing issue instead of creating new one.
## Bug report form
## Describe your environment
Please specify the following:
- OS: Ubuntu 22.04.4 LTS
- Jami version: 202402141827
- What build you are using: jami.net
## Steps to reproduce
1. Enable hardware acceleration in parameters with 960x540 resolution
2. Start a video call
- Actual result: My video camera stream is black on the Jami screen of other contacts in the meeting. However, I can see myself on my Jami screen. Must disable hardware acceleration to solve the problem or change the video resolution to 1280x720
- Expected result: Other people can see my camera video stream instead of a black screen.
## Additional information
- With Jami enable with `--debug`, this log appeared:
```
[1709890977.592|52761|accel.cpp :298 ] Failed to push frame to GPU: Invalid argument
[1709890977.593|52761|media_encoder.cpp :438 ] Fail to get frame
[1709890977.593|52761|video_sender.cpp :87 ] encoding failed
```
- The issue appears whatever camera I use
- My laptop is a Lenovo P14S with AMD GPU and same hardware
- We achieve to reproduce the same bug with Fedora 39
On contact side:
![Screenshot_from_2024-03-08_11-29-49](/uploads/f93d51095c449899708f64255c9f4850/Screenshot_from_2024-03-08_11-29-49.png)
On my side:
![Screenshot_from_2024-03-08_11-29-48](/uploads/f5672232032c2ce2a9671ebf44825c2e/Screenshot_from_2024-03-08_11-29-48.png)
For retrieving logs, cf [this page](https://git.jami.net/savoirfairelinux/ring-project/wikis/tutorials/Bug-report-guide#logs).https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/959Call-Swarm/Rdv: wrong audio is attached2024-03-28T00:05:08ZSébastien BlinCall-Swarm/Rdv: wrong audio is attached# Scenario
+ In a call swarm (alice is the host), bob calls
+ Alice is detached, but audio is playing
# Expected
Alice should not ear anything, Bob should not ear alice# Scenario
+ In a call swarm (alice is the host), bob calls
+ Alice is detached, but audio is playing
# Expected
Alice should not ear anything, Bob should not ear alicehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/958Call-swarm: Joining in audio make the host join2024-03-25T18:36:16ZSébastien BlinCall-swarm: Joining in audio make the host join# Scenario
* Alice, Bob in a swarm
* Alice is default host
* Bob joins in audio
# Expected
Alice doesn't join the call
# Current
Alice is attached# Scenario
* Alice, Bob in a swarm
* Alice is default host
* Bob joins in audio
# Expected
Alice doesn't join the call
# Current
Alice is attachedSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/957Call-swarm: join in audio fails2024-02-26T20:30:19ZSébastien BlinCall-swarm: join in audio fails# Scenario
* Alice, Bob, Carla in a swarm
* Alice is default host
* Bob call in audio
* Carla calls (audio or video)
# Expected result
Carla should ear Bob
# Current result
No sound# Scenario
* Alice, Bob, Carla in a swarm
* Alice is default host
* Bob call in audio
* Carla calls (audio or video)
# Expected result
Carla should ear Bob
# Current result
No soundhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/953Call Swarm: full pass2024-03-28T00:05:08ZSébastien BlinCall Swarm: full pass# TODO
+ Check performance
+ Check call ending announcement
+ Check support on all platforms
+ Fallback
+ ask for hosts
+ audio binding
+ test with 8 devices
+ Performance# TODO
+ Check performance
+ Check call ending announcement
+ Check support on all platforms
+ Fallback
+ ask for hosts
+ audio binding
+ test with 8 devices
+ PerformanceSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/939ut_scheduler test newly fails (20231222.2)2024-02-09T19:37:52ZMaxim Cournoyerut_scheduler test newly fails (20231222.2)This test (along with `ut_media_player`, already repoted here https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/935) newly fails from version 20231201.0, and also in the latest nightly, 20231222.2.
```
FAIL: ut_scheduler
======...This test (along with `ut_media_player`, already repoted here https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/935) newly fails from version 20231201.0, and also in the latest nightly, 20231222.2.
```
FAIL: ut_scheduler
==================
.F
!!!FAILURES!!!
Test Results:
Run: 1 Failures: 1 Errors: 0
1) test: jami::test::SchedulerTest::schedulerTest (F) line: 74 scheduler.cpp
assertion failed
- Expression: cv.wait_for(lk, std::chrono::seconds(3), [&]{ return taskRun == N; })
FAIL ut_scheduler (exit status: 1)
```
I've skipped ut_media_player; here's the failure per test-suite.log:
```
=======================================================
Jami Daemon 13.11.0: test/unitTest/test-suite.log
=======================================================
# TOTAL: 15
# PASS: 13
# SKIP: 0
# XFAIL: 1
# FAIL: 1
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
FAIL: ut_scheduler
==================
.F
!!!FAILURES!!!
Test Results:
Run: 1 Failures: 1 Errors: 0
1) test: jami::test::SchedulerTest::schedulerTest (F) line: 74 scheduler.cpp
assertion failed
- Expression: cv.wait_for(lk, std::chrono::seconds(3), [&]{ return taskRun == N; })
FAIL ut_scheduler (exit status: 1)
XFAIL: ut_media_player
======================
.�[22;36m[1704680039.242|20007] �[0mUPnPContext: starting dedicated io_context thread
�[0m�[22;36m[1704680039.243|20007] �[0mCreating UPnPContext instance [0xd5cf10]
�[0m�[22;36m[1704680039.243|20008] �[0mPUPnP: Creating instance [0x7fffec000b80] ...
�[0m�[22;36m[1704680039.243|20007|ringbuffer.cpp :55 ] �[0mCreate new RingBuffer audiolayer_id
�[0m�[22;36m[1704680039.244|20007|manager.cpp :732 ] �[0mNot initialized
�[0m�[22;36m[1704680039.244|20007|manager.cpp :732 ] �[0mNot initialized
�[0m�[22;36m[1704680039.244|20007|manager.cpp :732 ] �[0mNot initialized
�[0m�[22;36m[1704680039.249|20007|manager.cpp :806 ] �[0mUsing PJSIP version 2.13.1 for x86_64-unknown-linux-gnu
�[0m�[22;36m[1704680039.249|20007|manager.cpp :807 ] �[0mUsing GnuTLS version 3.7.7
�[0m�[22;36m[1704680039.249|20007|manager.cpp :808 ] �[0mUsing OpenDHT version 3.1.7
�[0m�[22;36m[1704680039.249|20007|manager.cpp :809 ] �[0mUsing FFmpeg version 6.1.1
�[0m�[22;36m[1704680039.249|20007|manager.cpp :812 ] �[0mUsing Libgit2 version 1.6.4
�[0m�[22;36m[1704680039.249|20007|manager.cpp :257 ] �[0m02:13:59.249 sip_endpoint.c Creating endpoint instance...
�[0m�[22;36m[1704680039.249|20007|manager.cpp :257 ] �[0m02:13:59.249 pjlib epoll I/O Queue created (flags:0x1, ptr=0xde8e90)
�[0m�[22;36m[1704680039.249|20007|manager.cpp :257 ] �[0m02:13:59.249 sip_endpoint.c Module "mod-msg-print" registered
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 sip_transport.c Transport manager created.
�[0m�[22;36m[1704680039.250|20007|sipvoiplink.cpp :648 ] �[0mUsing SIP nameserver: 127.0.0.1
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 sip_endpoint.c Module "mod-tsx-layer" registered
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 sip_endpoint.c Module "mod-stateful-util" registered
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 sip_endpoint.c Module "mod-ua" registered
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 sip_endpoint.c Module "mod-100rel" registered
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 sip_endpoint.c Module "jami" registered
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 sip_endpoint.c Module "mod-evsub" registered
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 sip_endpoint.c Module "mod-refer" registered
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 evsub.c Event pkg "refer" registered by mod-refer
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 sip_endpoint.c Module "mod-presence" registered
�[0m�[22;36m[1704680039.250|20007|manager.cpp :257 ] �[0m02:13:59.250 evsub.c Event pkg "presence" registered by mod-presence
�[0m�[22;36m[1704680039.251|20007|manager.cpp :257 ] �[0m02:13:59.251 sip_endpoint.c Module "mod-presence-server" registered
�[0m�[22;36m[1704680039.251|20007|manager.cpp :257 ] �[0m02:13:59.251 sip_endpoint.c Module "mod-invite" registered
�[0m�[22;36m[1704680039.251|20007|sipvoiplink.cpp :742 ] �[0mSIPVoIPLink@0xdcc960
�[0m�[22;36m[1704680039.251|20007|manager.cpp :830 ] �[0mConfiguration file path: jami-sample.yml
�[0m�[22;36m[1704680039.253|20007|ringbuffer.cpp :55 ] �[0mCreate new RingBuffer urgentRingBuffer_id
�[0m�[22;36m[1704680039.253|20007|audiolayer.cpp :60 ] �[0m[audiolayer] AGC: 1, noiseReduce: auto, VAD: 1, echoCancel: auto, audioProcessor: webrtc
�[0m�[22;36m[1704680039.253|20007|pulselayer.cpp :69 ] �[0m[audiolayer] created pulseaudio layer
�[0m�[22;36m[1704680039.253|20007|audiolayer.cpp :169 ] �[0m[audiolayer] setHasNativeNS: 0
�[0m�[22;36m[1704680039.257|20007|pulselayer.cpp :146 ] �[0mWaiting....
�[0m�[22;36m[1704680039.285|20013|pulselayer.cpp :146 ] �[0mWaiting....
�[0m�[22;36m[1704680039.286|20013|pulselayer.cpp :146 ] �[0mWaiting....
�[0m�[22;36m[1704680039.286|20013|pulselayer.cpp :150 ] �[0mConnection to PulseAudio server established
�[0m�[22;36m[1704680039.286|20013|pulselayer.cpp :180 ] �[0mUpdating PulseAudio sink list
�[0m�[22;36m[1704680039.286|20013|pulselayer.cpp :197 ] �[0mUpdating PulseAudio source list
�[0m�[22;36m[1704680039.286|20013|pulselayer.cpp :214 ] �[0mUpdating PulseAudio server infos
�[0m�[22;36m[1704680039.289|20013|pulselayer.cpp :685 ] �[0mPulseAudio server info:
Server name: pulseaudio
Server version: 16.1
Default Sink auto_null
Default Source auto_null.monitor
Default Sample Specification: s16le 2ch 44100Hz
Default Channel Map: front-left,front-right
�[0m�[22;36m[1704680039.289|20013|audiolayer.cpp :73 ] �[0mHardware audio format available : {s16, 2 channels, 44100Hz} 0
�[0m�[22;36m[1704680039.289|20013|manager.cpp :2680] �[0mAudio format changed: {s16, 1 channels, 16000Hz} -> {s16, 2 channels, 44100Hz}
�[0m�[22;36m[1704680039.384|20007|test_media_player.cpp :106 ] �[0mStart testCreate
�[0m�[22;36m[1704680039.384|20007|audio_input.cpp :53 ] �[0mCreating audio input with id: ./media/test_video_file.mp4
�[0m�[22;36m[1704680039.384|20007|ringbuffer.cpp :55 ] �[0mCreate new RingBuffer ./media/test_video_file.mp4
�[0m�[22;36m[1704680039.384|20007|sinkclient.cpp :335 ] �[0m[Sink:0xe61d70] Sink [./media/test_video_file.mp4] created
�[0m�[22;36m[1704680039.385|20007|video_input.cpp :607 ] �[0mMRL: './media/test_video_file.mp4'
�[0m�[22;36m[1704680039.385|20030|media_player.cpp :81 ] �[0m�[01;33mGuessing file type for ./media/test_video_file.mp4
�[0m�[22;36m[1704680039.386|20030|media_decoder.cpp :152 ] �[0mTrying to open input ./media/test_video_file.mp4 with format , pixel format , size 0x0, rate 0
�[0m�[22;36m[1704680039.391|20030|media_decoder.cpp :172 ] �[0mOpened input Using format and resolution 320x240
�[0m�[22;36m[1704680039.392|20030|media_decoder.cpp :555 ] �[0mUsing libopus Opus (libopus) decoder for audio
�[0m�[22;36m[1704680039.392|20030|media_decoder.cpp :566 ] �[0m�[01;33mNot using hardware decoding for opus
�[0m�[22;36m[1704680039.392|20030|ringbufferpool.cpp :155 ] �[0mBind rbuf './media/test_video_file.mp4' to ringbuffer 'audiolayer_id'
�[0m�[22;36m[1704680039.392|20030|ringbufferpool.cpp :151 ] �[0m�[01;33mRingBuffer has a readoffset on itself
�[0m�[22;36m[1704680039.392|20030|ringbufferpool.cpp :155 ] �[0mBind rbuf './media/test_video_file.mp4' to ringbuffer './media/test_video_file.mp4'
�[0m�[22;36m[1704680039.411|20030|audiostream.cpp :54 ] �[0mPlayback: Creating stream with device (s16le, 44100Hz, 1 channels)
�[0m�[22;36m[1704680039.411|20030|audiostream.cpp :258 ] �[0mStream is creating...
�[0m�[22;36m[1704680039.412|20030|threadloop.cpp :74 ] �[0m�[22;31malready started
�[0m�[22;36m[1704680039.412|20030|media_decoder.cpp :585 ] �[0m�[22;31mUnsupported codec
�[0m�[22;36m[1704680039.412|20030|sinkclient.cpp :190 ] �[0m[ShmHolder:Jami Daemon_shm_20007_0] New size: f=0, a=103
�[0m�[22;36m[1704680039.412|20030|sinkclient.cpp :157 ] �[0m[ShmHolder:Jami Daemon_shm_20007_0] New holder created
�[0m�[22;36m[1704680039.412|20030|sinkclient.cpp :284 ] �[0m[Sink:0xe61d70] Shared memory [Jami Daemon_shm_20007_0] created
�[0mXFAIL ut_media_player (exit status: 139)
```Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/935ut_media_player: failure2024-02-23T13:51:56ZSébastien Blinut_media_player: failure```
!!!FAILURES!!!
Test Results:
Run: 6 Failures: 2 Errors: 0
1) test: jami::test::MediaPlayerTest::testJPG (F) line: 130 media/test_media_player.cpp
assertion failed
- Expression: audio_stream_ == -1
2) test: jami::test::MediaP...```
!!!FAILURES!!!
Test Results:
Run: 6 Failures: 2 Errors: 0
1) test: jami::test::MediaPlayerTest::testJPG (F) line: 130 media/test_media_player.cpp
assertion failed
- Expression: audio_stream_ == -1
2) test: jami::test::MediaPlayerTest::testAudioFile (F) line: 148 media/test_media_player.cpp
assertion failed
- Expression: video_stream_ != -1
```Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/923Fix Audio sharing2023-12-05T21:02:32ZSébastien BlinFix Audio sharing# Scenario
+ Go in 1:1 (or in conference)
+ Share a video + audio file
# Expected
Audio must be played locally and remotely
# Current
No audio# Scenario
+ Go in 1:1 (or in conference)
+ Share a video + audio file
# Expected
Audio must be played locally and remotely
# Current
No audioSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/917Swarm-call: bugguy state if join call in audio-only2023-11-17T16:28:47ZSébastien BlinSwarm-call: bugguy state if join call in audio-only# Scenario
+ Host a video call in a swarm
+ With another device join in audio
# Current result
+ Stuck in calling, media not negotiated
# Expected
+ Call should work with muted video# Scenario
+ Host a video call in a swarm
+ With another device join in audio
# Current result
+ Stuck in calling, media not negotiated
# Expected
+ Call should work with muted videoSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/914Video bitrate adjustment improvements2023-11-09T13:45:43ZAlexander Lussier-CullenVideo bitrate adjustment improvementsCurrently, the video bitrate adjustment functionality doesn't perform optimally.
When losses are detected, the bitrate is reduced.
The problem is that it can then immediately be increased again, repeating the losses.
This means that i...Currently, the video bitrate adjustment functionality doesn't perform optimally.
When losses are detected, the bitrate is reduced.
The problem is that it can then immediately be increased again, repeating the losses.
This means that if losses are consistent due to some network limitation, they will repeatedly occur without end.https://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éraud