diff options
author | wurstsalat <mailtrash@posteo.de> | 2023-01-21 01:25:03 +0300 |
---|---|---|
committer | wurstsalat <mailtrash@posteo.de> | 2023-01-21 01:25:10 +0300 |
commit | f45619bb11672e374a2a772f4b27a4c13ad0f95d (patch) | |
tree | 64adaa3784fda98d3c244e84fbd37a3c2bbe9d25 | |
parent | 1e64836fde899f22edbd9667325f47ccc508a9b3 (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.py | 29 |
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') |