[pulseaudio-discuss] loopback module double resampling

Raman Shishniou rommer at ibuffed.com
Mon Feb 19 15:56:23 UTC 2018


Hello,

Currently a loopback module does a double resampling if the source
and sink sample rates are different.

I used a simple config to test it:
load-module module-null-source source_name=src rate=48000
load-module module-null-sink sink_name=dst rate=96000
load-module module-loopback source=src sink=dst

After start I see in logs:
D: [pulseaudio] module-loopback.c: Loopback overall latency is 56.14 ms + 67.48 ms + 53.20 ms = 176.76 ms
D: [pulseaudio] module-loopback.c: Loopback latency at base rate is 176.46 ms
D: [pulseaudio] module-loopback.c: [dst] Updated sampling rate to 95758 Hz.
D: [pulseaudio] module-loopback.c: Loopback overall latency is 23.17 ms + 134.20 ms + 44.60 ms = 201.94 ms
D: [pulseaudio] module-loopback.c: Loopback latency at base rate is 201.60 ms
D: [pulseaudio] module-loopback.c: [dst] Updated sampling rate to 95925 Hz.
D: [pulseaudio] module-loopback.c: Loopback overall latency is 44.15 ms + 133.80 ms + 31.56 ms = 209.48 ms
D: [pulseaudio] module-loopback.c: Loopback latency at base rate is 209.37 ms
D: [pulseaudio] module-loopback.c: [dst] Updated sampling rate to 95994 Hz.

Sink-inputs and source-outputs:
$ ~/bin/pactl list short source-outputs
0       0       -       module-loopback.c       s16le 2ch 96000Hz
$ ~/bin/pactl list short sink-inputs
0       0       -       module-loopback.c       s16le 2ch 95994Hz

I.e. first resample occurs in source-output (48000Hz -> 96000Hz) and
the second in sink-input (95994Hz -> 96000Hz).

I think it should change source-output's sample rate during latency recalculations.
In this case there should be only one real resampler. This should increase
audio quality and reduce cpu usage.

--
Raman


More information about the pulseaudio-discuss mailing list