[pulseaudio-discuss] Interaction between applications and Pavucontrol

Alexandre Savard alexandre.savard at savoirfairelinux.com
Mon Oct 26 16:14:47 PDT 2009


Thanks for fast answering the email concerning Pulseaudio instabilities
under Ubuntu Karmic.

Our issue seems not to be so related with realtime issues under Ubuntu.
I understand that it is an important problem and I hope that this
situation will be fixed soon.

We recently discovered that Pulseaudio works fine for our application on
Ubuntu Karmic if and only if Pavucontrol apps is opened. As soon as
Pavucontrol is closed 
Buffer Underruns are back and sound is of very low quality. Is this
happenning because the Peaks resampler is used when Pavucontrol is

I would like to get some insight (or links) about how the scheduling of
our application and Pavucontrol are related and why it influence
positively our application.

In case the realtime issue is realy the problem here and that opening
the peak resampler actually improve our sound quality, 
is there a way to force opening it when creating a Pulseaudio Stream?

Comparing pulseaudio's debugs:

Our application ouput stream opens like that.

I: resampler.c: Forcing resampler 'copy', because of fixed, identical
sample rates.
I: remap_sse.c: Using SSE mono to stereo remapping
I: resampler.c: Using resampler 'copy'
I: resampler.c: Using s16le as working format.
I: sink-input.c: Created input 30 "SFLphone out" on
alsa_output.pci-0000_00_1b.0.analog-stereo with sample spec s16le 1ch
44100Hz and channel map mono
I: sink-input.c:     media.name = "SFLphone out"
I: sink-input.c:     application.name = "SFLphone"
I: sink-input.c:     native-protocol.peer = "UNIX socket client"
I: sink-input.c:     native-protocol.version = "16"
I: sink-input.c:     media.role = "phone"
I: sink-input.c:     application.process.id = "6626"
I: sink-input.c:     application.process.user = "alexandresavard"
I: sink-input.c:     application.process.host =
I: sink-input.c:     application.process.binary = "lt-sflphoned"
I: sink-input.c:     application.language = "C"
I: sink-input.c:     window.x11.display = ":0.0"
I: sink-input.c:     application.process.machine_id =
I: sink-input.c:     application.process.session_id =
I: sink-input.c:     module-stream-restore.id =
I: protocol-native.c: Requested tlength=92.88 ms, minreq=23.22 ms
I: protocol-native.c: Final latency 138.45 ms = 46.01 ms + 2*23.22 ms +
46.00 ms

138ms latency is not that bad for a phone (ideally this would be 20 ms).

When Pavucontrol is opened, the resampler appears right after the above

I: remap.c: Using generic matrix remapping
I: resampler.c: Using resampler 'peaks'
I: resampler.c: Using float32le as working format.
I: source-output.c: Created output 52 "Peak detect" on
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor with sample spec
float32le 1ch 25Hz and channel map mono
I: source-output.c:     media.name = "Peak detect"
I: source-output.c:     application.name = "PulseAudio Volume Control"
I: source-output.c:     native-protocol.peer = "UNIX socket client"
I: source-output.c:     native-protocol.version = "16"
I: source-output.c:     application.id = "org.PulseAudio.pavucontrol"
I: source-output.c:     application.icon_name = "audio-card"
I: source-output.c:     application.version = "0.9.8"
I: source-output.c:     application.process.id = "6510"
I: source-output.c:     application.process.user = "alexandresavard"
I: source-output.c:     application.process.host =
I: source-output.c:     application.process.binary = "pavucontrol"
I: source-output.c:     window.x11.display = ":0.0"
I: source-output.c:     application.language = "en_CA.UTF-8"
I: source-output.c:     application.process.machine_id =
I: source-output.c:     application.process.session_id =
I: protocol-native.c: Final latency 86.00 ms = 40.00 ms + 46.00 ms


More information about the pulseaudio-discuss mailing list