#998809 jami: No echo cancellation on pipewire-pulse

Package:
jami
Source:
ring
Description:
Secure and distributed voice, video, and chat platform - desktop client
Submitter:
Bruno Kleinert
Date:
2021-11-15 05:45:02 UTC
Severity:
normal
#998809#5
Date:
2021-11-08 07:02:20 UTC
From:
To:
Hi,

I'm using Jami with speakers and webcam microphone. When I use pipewire-pulse
instead of pulseaudio, there is no echo cancellation applied in Jami (People I
call tell me they hear an echo of themselves).

When I use Jami on pulseaudio, /usr/lib/pulse-15.0+dfsg1/modules/module-echo-
cancel.so is used to cancel the echo. Instead, on pipewire-pulse
/usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-echo-cancel.so seems
to be available, but is not used to cancel the echo. I would expect echo
cancellation to work on both audio daemons.

I report the bug against jami because I observe and reproduce it with this
package. If it is an issue in one of the pipewire packages, please forward
accordingly.

Cheers,
Bruno

#998809#10
Date:
2021-11-15 05:32:42 UTC
From:
To:
I found a workaround:
   1. Copy /usr/share/pipewire/pipewire-pulse.conf to
      ~/.config/pipewire/
   2. Edit and add { name = libpipewire-module-echo-cancel } into
      section context.modules = [ … ]
   3. systemctl --user restart pipewire-pulse.service
   4. Check with pavucontrol if the virtual device 'Echo Cancel
      Capture' records from the desired physical device
   5. In Jami's media settings, select 'Echo Cancel sink' and 'Echo
      Cancel source' as recording and output devices


In jami-daemon src/media/audio/pulseaudio/pulselayer.cpp I found some
"magic" related to PulseAudio's echo-cancel module, but I don't
understand how that does the trick for PulseAudio and if that is
supposed to also work with PipeWire.