Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwurstsalat <mailtrash@posteo.de>2023-01-21 01:25:03 +0300
committerwurstsalat <mailtrash@posteo.de>2023-01-21 01:25:10 +0300
commitf45619bb11672e374a2a772f4b27a4c13ad0f95d (patch)
tree64adaa3784fda98d3c244e84fbd37a3c2bbe9d25
parent1e64836fde899f22edbd9667325f47ccc508a9b3 (diff)
fix: JingleAudio: Always resample audio before processing with webrtcdsp
Resample both input and output in order to make sure both run at the same sampling rate in all cases. Fixes #11023
-rw-r--r--gajim/common/jingle_rtp.py29
1 files changed, 23 insertions, 6 deletions
diff --git a/gajim/common/jingle_rtp.py b/gajim/common/jingle_rtp.py
index 0ceb844b6..770462694 100644
--- a/gajim/common/jingle_rtp.py
+++ b/gajim/common/jingle_rtp.py
@@ -440,17 +440,24 @@ class JingleAudio(JingleRTPContent):
if 'webrtcdsp' in self.available_gst_plugins:
self.src_bin = self.make_bin_from_config(
'audio_input_device',
- '''%s
+ '''
+ %s
+ ! audioconvert
+ ! audioresample
+ ! audio/x-raw,rate=48000
! webrtcdsp
echo-suppression-level=high
noise-suppression-level=very-high
voice-detection=true
- ! audioconvert ''',
+ ''',
_('audio input'))
else:
self.src_bin = self.make_bin_from_config(
'audio_input_device',
- '%s ! audioconvert ',
+ '''
+ %s
+ ! audioconvert
+ ''',
_('audio input'))
# setting name=webrtcechoprobe0 is needed because lingering probes
@@ -458,13 +465,23 @@ class JingleAudio(JingleRTPContent):
if 'webrtcdsp' in self.available_gst_plugins:
self.sink = self.make_bin_from_config(
'audio_output_device',
- '''audioconvert ! volume name=gajim_out_vol !
- webrtcechoprobe name=webrtcechoprobe0 ! %s''',
+ '''
+ audioconvert
+ ! audioresample
+ ! audio/x-raw,rate=48000
+ ! volume name=gajim_out_vol
+ ! webrtcechoprobe name=webrtcechoprobe0
+ ! %s
+ ''',
_('audio output'))
else:
self.sink = self.make_bin_from_config(
'audio_output_device',
- 'audioconvert ! volume name=gajim_out_vol ! %s',
+ '''
+ audioconvert
+ ! volume name=gajim_out_vol
+ ! %s
+ ''',
_('audio output'))
self.mic_volume = self.src_bin.get_by_name('gajim_vol')
self.out_volume = self.sink.get_by_name('gajim_out_vol')