[pulseaudio-discuss] Android Emulator (Qemu) Pulseaudio backend high CPU usage

Tudor Zaharia tudor.zaharia at gmail.com
Wed Sep 9 16:03:47 UTC 2020


Hello,

I am experiencing high CPU usage of Pulseaudio in the following setup and I
would greatly appreciate any help in identifying the reason for it:

I am running the Android Emulator (which runs on Qemu) with Pulseaudio as
the audio backend on a Ubuntu 18.04 docker container. I am creating two
null sinks in Pulseaudio prior to running the emulator:

/etc/pulse/default.pa:
load-module module-null-sink sink_name=emu_audio_out
sink_properties=device.description=emu_audio_out format=s16le rate=48000
channels=2 channel_map=front-left,front-right
load-module module-null-sink sink_name=emu_audio_in
sink_properties=device.description=emu_audio_out format=s16le rate=48000
channels=2 channel_map=front-left,front-right

load-module module-native-protocol-unix auth-anonymous=1
socket=/tmp/pulse-socket
load-module module-native-protocol-tcp  auth-anonymous=1

and then use the monitors on each of them to redirect the input/output.
Then pass the source and sink to Qemu:

QEMU_AUDIO_DRV=pa
QEMU_PA_SINK=emu_audio_out
QEMU_PA_SOURCE=emu_audio_in.monitor
QEMU_AUDIO_DAC_FIXED_FREQ=48000
QEMU_AUDIO_ADC_FIXED_FREQ=48000

At the other end I have a small program (called simple_pa_prog) that uses
the pa_simple interface to write to emu_audio_in and read from
emu_audio_out.monitor (application.name in the logs are
PulseaudioSinkWriter and PulseaudioSinkReader).

I do not need to output the audio on the machine's speaker. I am just using
Pulseaudio to basically route the sound from/to qemu to/from my pa_simple -
enable program. This works well, I can send/receive data successfully
to/from my program.

The problem that I am facing is that pulseaudio uses anywhere from 15% to
30% of my CPUs (on a Xeon 3.50GHz). I don't understand for the life of me
what is the reason for this. There is no resampling involved (see log
output below), just moving data around. I have trialed and errored pretty
much everything that I could without success (for example playing with
qemu's options - QEMU_AUDIO_TIMER_PERIOD, QEMU_AUDIO_ADC_TRY_POLL etc).
Pulseaudio's CPU usage stays more or less the same.

The whole thing runs in a Docker container - thus the reason for the first
pulseaudio warning:

This program is not intended to be run as root (unless --system is
specified)

but the same thing happens on bare metal.

I would appreciate any help on how I could identify (and possibly solve)
the high cpu usage of Pulseaudio in this setup.

----------------------------
$ pulseaudio -vvvvv

(   0.000|   0.000) W: [pulseaudio] main.c: This program is not intended to
be run as root (unless --system is specified).
(   0.001|   0.001) I: [pulseaudio] main.c: setrlimit(RLIMIT_NICE, (31,
31)) failed: Operation not permitted
(   0.001|   0.000) I: [pulseaudio] main.c: setrlimit(RLIMIT_RTPRIO, (9,
9)) failed: Operation not permitted
(   0.001|   0.000) D: [pulseaudio] core-rtclock.c: Timer slack is set to
50 us.
(   0.001|   0.000) I: [pulseaudio] main.c: This is PulseAudio 11.1
(   0.001|   0.000) D: [pulseaudio] main.c: Compilation host:
x86_64-pc-linux-gnu
(   0.001|   0.000) D: [pulseaudio] main.c: Compilation CFLAGS: -g -O2
-fdebug-prefix-map=/build/pulseaudio-ZAagCs/pulseaudio-11.1=.
-fstack-protector-strong -Wformat -Werror=format-security -Wall -W -Wextra
-pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations
-Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security
-Wmissing-include-dirs -Wformat-nonliteral -Wpointer-arith -Winit-self
-Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes
-Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow
-Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings
-Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option
-fdiagnostics-color=auto
(   0.001|   0.000) D: [pulseaudio] main.c: Running on host: Linux x86_64
5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020
(   0.001|   0.000) D: [pulseaudio] main.c: Found 8 CPUs.
(   0.001|   0.000) I: [pulseaudio] main.c: Page size is 4096 bytes
(   0.001|   0.000) D: [pulseaudio] main.c: Compiled with Valgrind support:
no
(   0.001|   0.000) D: [pulseaudio] main.c: Running in valgrind mode: no
(   0.001|   0.000) D: [pulseaudio] main.c: Running in VM: no
(   0.001|   0.000) D: [pulseaudio] main.c: Optimized build: yes
(   0.001|   0.000) D: [pulseaudio] main.c: FASTPATH defined, only fast
path asserts disabled.
(   0.001|   0.000) I: [pulseaudio] main.c: Machine ID is b7e637a7805b.
(   0.001|   0.000) I: [pulseaudio] main.c: Using runtime directory
/root/.config/pulse/b7e637a7805b-runtime.
(   0.001|   0.000) I: [pulseaudio] main.c: Using state directory
/root/.config/pulse.
(   0.001|   0.000) I: [pulseaudio] main.c: Using modules directory
/usr/lib/pulse-11.1/modules.
(   0.001|   0.000) I: [pulseaudio] main.c: Running in system mode: no
(   0.001|   0.000) I: [pulseaudio] main.c: System supports high resolution
timers
(   0.003|   0.001) D: [pulseaudio] memblock.c: Using shared memfd memory
pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum
usable slot size is 65472
(   0.003|   0.000) I: [pulseaudio] cpu-x86.c: CPU flags: CMOV MMX SSE SSE2
SSE3 SSSE3 SSE4_1 SSE4_2
(   0.003|   0.000) I: [pulseaudio] svolume_mmx.c: Initialising MMX
optimized volume functions.
(   0.003|   0.000) I: [pulseaudio] remap_mmx.c: Initialising MMX optimized
remappers.
(   0.003|   0.000) I: [pulseaudio] svolume_sse.c: Initialising SSE2
optimized volume functions.
(   0.003|   0.000) I: [pulseaudio] remap_sse.c: Initialising SSE2
optimized remappers.
(   0.003|   0.000) I: [pulseaudio] sconv_sse.c: Initialising SSE2
optimized conversions.
(   0.003|   0.000) I: [pulseaudio] svolume_orc.c: Initialising ORC
optimized volume functions.
(   0.005|   0.001) W: [pulseaudio] sink.c: Default and alternate sample
rates are the same.
(   0.005|   0.000) I: [pulseaudio] sink.c: Created sink 0 "emu_audio_out"
with sample spec s16le 2ch 48000Hz and channel map front-left,front-right
(   0.005|   0.000) I: [pulseaudio] sink.c:     device.description =
"emu_audio_out"
(   0.005|   0.000) I: [pulseaudio] sink.c:     device.class = "abstract"
(   0.005|   0.000) I: [pulseaudio] sink.c:     device.icon_name =
"audio-card"
(   0.005|   0.000) I: [pulseaudio] source.c: Created source 0
"emu_audio_out.monitor" with sample spec s16le 2ch 48000Hz and channel map
front-left,front-right
(   0.005|   0.000) I: [pulseaudio] source.c:     device.description =
"Monitor of emu_audio_out"
(   0.005|   0.000) I: [pulseaudio] source.c:     device.class = "monitor"
(   0.005|   0.000) I: [pulseaudio] source.c:     device.icon_name =
"audio-input-microphone"
(   0.006|   0.000) D: [null-sink] module-null-sink.c: Thread starting up
(   0.006|   0.000) I: [pulseaudio] core.c: default_source: (unset) ->
emu_audio_out.monitor
(   0.006|   0.000) I: [pulseaudio] core.c: default_sink: (unset) ->
emu_audio_out
(   0.006|   0.000) I: [pulseaudio] module.c: Loaded "module-null-sink"
(index: #0; argument: "sink_name=emu_audio_out
sink_properties=device.description=emu_audio_out format=s16le rate=48000
channels=2 channel_map=front-left,front-right ").
(   0.006|   0.000) W: [pulseaudio] sink.c: Default and alternate sample
rates are the same.
(   0.006|   0.000) I: [pulseaudio] sink.c: Created sink 1 "emu_audio_in"
with sample spec s16le 2ch 48000Hz and channel map front-left,front-right
(   0.006|   0.000) I: [pulseaudio] sink.c:     device.description =
"emu_audio_in"
(   0.006|   0.000) I: [pulseaudio] sink.c:     device.class = "abstract"
(   0.006|   0.000) I: [pulseaudio] sink.c:     device.icon_name =
"audio-card"
(   0.006|   0.000) I: [pulseaudio] source.c: Created source 1
"emu_audio_in.monitor" with sample spec s16le 2ch 48000Hz and channel map
front-left,front-right
(   0.006|   0.000) I: [pulseaudio] source.c:     device.description =
"Monitor of emu_audio_in"
(   0.006|   0.000) I: [pulseaudio] source.c:     device.class = "monitor"
(   0.006|   0.000) I: [pulseaudio] source.c:     device.icon_name =
"audio-input-microphone"
(   0.006|   0.000) D: [null-sink] module-null-sink.c: Thread starting up
(   0.006|   0.000) I: [pulseaudio] module.c: Loaded "module-null-sink"
(index: #1; argument: "sink_name=emu_audio_in
sink_properties=device.description=emu_audio_in format=s16le rate=48000
channels=2 channel_map=front-left,front-right ").
(   0.009|   0.002) W: [pulseaudio] authkey.c: Failed to open cookie file
'/root/.config/pulse/cookie': No such file or directory
(   0.009|   0.000) W: [pulseaudio] authkey.c: Failed to load
authentication key '/root/.config/pulse/cookie': No such file or directory
(   0.009|   0.000) W: [pulseaudio] authkey.c: Failed to open cookie file
'/root/.pulse-cookie': No such file or directory
(   0.009|   0.000) W: [pulseaudio] authkey.c: Failed to load
authentication key '/root/.pulse-cookie': No such file or directory
(   0.009|   0.000) D: [pulseaudio] authkey.c: Got 0 bytes from cookie file
'/root/.config/pulse/cookie', expected 256
(   0.009|   0.000) I: [pulseaudio] module.c: Loaded
"module-native-protocol-unix" (index: #2; argument: "auth-anonymous=1
socket=/tmp/pulse-socket").
(   0.010|   0.001) I: [pulseaudio] module.c: Loaded
"module-native-protocol-tcp" (index: #3; argument: "auth-anonymous=1").
(   0.011|   0.000) W: [pulseaudio] server-lookup.c: Unable to contact
D-Bus: org.freedesktop.DBus.Error.InvalidFileContent: D-Bus library appears
to be incorrectly set up: see the manual page for dbus-uuidgen to correct
this issue. (Failed to open "/var/lib/dbus/machine-id": No such file or
directory; UUID file '/etc/machine-id' should contain a hex string of
length 32, not length 0, with no other text)
(   0.011|   0.000) W: [pulseaudio] main.c: Unable to contact D-Bus:
org.freedesktop.DBus.Error.InvalidFileContent: D-Bus library appears to be
incorrectly set up: see the manual page for dbus-uuidgen to correct this
issue. (Failed to open "/var/lib/dbus/machine-id": No such file or
directory; UUID file '/etc/machine-id' should contain a hex string of
length 32, not length 0, with no other text)
(   0.011|   0.000) I: [pulseaudio] main.c: Daemon startup complete.
(   0.011|   0.011) I: [pulseaudio] main.c: Daemon startup successful.
(   0.016|   0.005) I: [pulseaudio] client.c: Created 0 "Native client
(UNIX socket client)"
(   0.016|   0.000) I: [pulseaudio] protocol-native.c: Client authenticated
anonymously.
(   0.017|   0.000) D: [pulseaudio] protocol-native.c: Protocol version:
remote 32, local 32
(   0.017|   0.000) D: [pulseaudio] protocol-native.c: SHM possible: yes
(   0.017|   0.000) D: [pulseaudio] protocol-native.c: Negotiated SHM: yes
(   0.017|   0.000) D: [pulseaudio] protocol-native.c: Memfd possible: yes
(   0.017|   0.000) D: [pulseaudio] protocol-native.c: Negotiated SHM type:
shared memfd
(   0.017|   0.000) D: [pulseaudio] memblock.c: Using shared memfd memory
pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum
usable slot size is 65472
(   0.017|   0.000) D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes,
ringbuffer capacity is 2 * 32712 bytes
(   0.017|   0.000) D: [pulseaudio] protocol-native.c: Enabling
srbchannel...
(   0.017|   0.000) D: [pulseaudio] protocol-native.c: Client enabled
srbchannel.
(   0.019|   0.002) I: [pulseaudio] client.c: Freed 0 "pactl"
(   0.019|   0.000) I: [pulseaudio] protocol-native.c: Connection died.
(   3.179|   3.159) I: [pulseaudio] client.c: Created 1 "Native client
(UNIX socket client)"
(   3.179|   0.000) I: [pulseaudio] protocol-native.c: Client authenticated
anonymously.
(   3.179|   0.000) D: [pulseaudio] protocol-native.c: Protocol version:
remote 32, local 32
(   3.179|   0.000) D: [pulseaudio] protocol-native.c: SHM possible: yes
(   3.179|   0.000) D: [pulseaudio] protocol-native.c: Negotiated SHM: yes
(   3.179|   0.000) D: [pulseaudio] protocol-native.c: Memfd possible: yes
(   3.179|   0.000) D: [pulseaudio] protocol-native.c: Negotiated SHM type:
shared memfd
(   3.179|   0.000) D: [pulseaudio] memblock.c: Using shared memfd memory
pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum
usable slot size is 65472
(   3.179|   0.000) D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes,
ringbuffer capacity is 2 * 32712 bytes
(   3.180|   0.000) D: [pulseaudio] protocol-native.c: Enabling
srbchannel...
(   3.180|   0.000) D: [pulseaudio] protocol-native.c: Client enabled
srbchannel.
(   3.180|   0.000) D: [pulseaudio] sink-input.c: Negotiated format: pcm,
format.sample_format = "\"s16le\""  format.rate = "48000"  format.channels
= "2"  format.channel_map = "\"front-left,front-right\""
(   3.180|   0.000) D: [pulseaudio] memblockq.c: memblockq requested:
maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
(   3.180|   0.000) D: [pulseaudio] memblockq.c: memblockq sanitized:
maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
(   3.180|   0.000) I: [pulseaudio] sink-input.c: Created input 0
"playback" on emu_audio_out with sample spec s16le 2ch 48000Hz and channel
map front-left,front-right
(   3.180|   0.000) I: [pulseaudio] sink-input.c:     media.name =
"playback"
(   3.180|   0.000) I: [pulseaudio] sink-input.c:     application.name =
"PulseaudioSinkWriter"
(   3.180|   0.000) I: [pulseaudio] sink-input.c:     native-protocol.peer
= "UNIX socket client"
(   3.180|   0.000) I: [pulseaudio] sink-input.c:
native-protocol.version = "32"
(   3.180|   0.000) I: [pulseaudio] sink-input.c:     application.process.id
= "1"
(   3.180|   0.000) I: [pulseaudio] sink-input.c:
application.process.user = "root"
(   3.180|   0.000) I: [pulseaudio] sink-input.c:
application.process.host = "b7e637a7805b"
(   3.180|   0.000) I: [pulseaudio] sink-input.c:
application.process.binary = "simple_pa_prog"
(   3.180|   0.000) I: [pulseaudio] sink-input.c:     application.language
= "C"
(   3.180|   0.000) I: [pulseaudio] sink-input.c:     window.x11.display =
":0"
(   3.180|   0.000) I: [pulseaudio] sink-input.c:
application.process.machine_id = "b7e637a7805b"
(   3.180|   0.000) I: [pulseaudio] protocol-native.c: Requested
tlength=250.00 ms, minreq=20.00 ms
(   3.180|   0.000) D: [pulseaudio] protocol-native.c: Adjust latency mode
enabled, configuring sink latency to half of overall latency.
(   3.180|   0.000) D: [pulseaudio] protocol-native.c: Requested
latency=105.00 ms, Received latency=105.00 ms
(   3.180|   0.000) D: [pulseaudio] memblockq.c: memblockq requested:
maxlength=4194304, tlength=27840, base=4, prebuf=24004, minreq=3840
maxrewind=0
(   3.180|   0.000) D: [pulseaudio] memblockq.c: memblockq sanitized:
maxlength=4194304, tlength=27840, base=4, prebuf=24004, minreq=3840
maxrewind=0
(   3.180|   0.000) I: [pulseaudio] protocol-native.c: Final latency 250.00
ms = 105.00 ms + 2*20.00 ms + 105.00 ms
(   3.181|   0.001) I: [pulseaudio] client.c: Created 2 "Native client
(UNIX socket client)"
(   3.182|   0.000) I: [pulseaudio] protocol-native.c: Client authenticated
anonymously.
(   3.182|   0.000) D: [pulseaudio] protocol-native.c: Protocol version:
remote 32, local 32
(   3.182|   0.000) D: [pulseaudio] protocol-native.c: SHM possible: yes
(   3.182|   0.000) D: [pulseaudio] protocol-native.c: Negotiated SHM: yes
(   3.182|   0.000) D: [pulseaudio] protocol-native.c: Memfd possible: yes
(   3.182|   0.000) D: [pulseaudio] protocol-native.c: Negotiated SHM type:
shared memfd
(   3.182|   0.000) D: [pulseaudio] memblock.c: Using shared memfd memory
pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum
usable slot size is 65472
(   3.182|   0.000) D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes,
ringbuffer capacity is 2 * 32712 bytes
(   3.182|   0.000) D: [pulseaudio] protocol-native.c: Enabling
srbchannel...
(   3.182|   0.000) D: [pulseaudio] protocol-native.c: Client enabled
srbchannel.
(   3.182|   0.000) D: [pulseaudio] source-output.c: Negotiated format:
pcm, format.sample_format = "\"s16le\""  format.rate = "48000"
 format.channels = "2"  format.channel_map = "\"front-left,front-right\""
(   3.182|   0.000) D: [pulseaudio] memblockq.c: memblockq requested:
maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
(   3.182|   0.000) D: [pulseaudio] memblockq.c: memblockq sanitized:
maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
(   3.182|   0.000) I: [pulseaudio] source-output.c: Created output 0
"record" on emu_audio_in.monitor with sample spec s16le 2ch 48000Hz and
channel map front-left,front-right
(   3.182|   0.000) I: [pulseaudio] source-output.c:     media.name =
"record"
(   3.182|   0.000) I: [pulseaudio] source-output.c:     application.name =
"PulseaudioSinkReader"
(   3.182|   0.000) I: [pulseaudio] source-output.c:
native-protocol.peer = "UNIX socket client"
(   3.182|   0.000) I: [pulseaudio] source-output.c:
native-protocol.version = "32"
(   3.182|   0.000) I: [pulseaudio] source-output.c:
application.process.id = "1"
(   3.182|   0.000) I: [pulseaudio] source-output.c:
application.process.user = "root"
(   3.182|   0.000) I: [pulseaudio] source-output.c:
application.process.host = "b7e637a7805b"
(   3.182|   0.000) I: [pulseaudio] source-output.c:
application.process.binary = "simple_pa_prog"
(   3.182|   0.000) I: [pulseaudio] source-output.c:
application.language = "C"
(   3.182|   0.000) I: [pulseaudio] source-output.c:     window.x11.display
= ":0"
(   3.182|   0.000) I: [pulseaudio] source-output.c:
application.process.machine_id = "b7e637a7805b"
(   3.183|   0.000) D: [pulseaudio] memblockq.c: memblockq requested:
maxlength=4194304, tlength=0, base=4, prebuf=1, minreq=0 maxrewind=0
(   3.183|   0.000) D: [pulseaudio] memblockq.c: memblockq sanitized:
maxlength=4194304, tlength=4194304, base=4, prebuf=4, minreq=4 maxrewind=0
(   3.183|   0.000) I: [pulseaudio] protocol-native.c: Final latency
4000.00 ms = 2000.00 ms + 2000.00 ms
(   3.946|   0.762) I: [pulseaudio] client.c: Created 3 "Native client
(UNIX socket client)"
(   3.946|   0.000) I: [pulseaudio] protocol-native.c: Client authenticated
anonymously.
(   3.946|   0.000) D: [pulseaudio] protocol-native.c: Protocol version:
remote 32, local 32
(   3.946|   0.000) D: [pulseaudio] protocol-native.c: SHM possible: yes
(   3.946|   0.000) D: [pulseaudio] protocol-native.c: Negotiated SHM: yes
(   3.946|   0.000) D: [pulseaudio] protocol-native.c: Memfd possible: yes
(   3.946|   0.000) D: [pulseaudio] protocol-native.c: Negotiated SHM type:
shared memfd
(   3.946|   0.000) D: [pulseaudio] memblock.c: Using shared memfd memory
pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum
usable slot size is 65472
(   3.946|   0.000) D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes,
ringbuffer capacity is 2 * 32712 bytes
(   3.946|   0.000) D: [pulseaudio] protocol-native.c: Enabling
srbchannel...
(   3.946|   0.000) D: [pulseaudio] protocol-native.c: Client enabled
srbchannel.
(   3.947|   0.000) D: [pulseaudio] sink-input.c: Negotiated format: pcm,
format.sample_format = "\"s16le\""  format.rate = "48000"  format.channels
= "2"  format.channel_map = "\"front-left,front-right\""
(   3.947|   0.000) D: [pulseaudio] memblockq.c: memblockq requested:
maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
(   3.947|   0.000) D: [pulseaudio] memblockq.c: memblockq sanitized:
maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
(   3.947|   0.000) I: [pulseaudio] sink-input.c: Created input 1 "qemu" on
emu_audio_in with sample spec s16le 2ch 48000Hz and channel map
front-left,front-right
(   3.947|   0.000) I: [pulseaudio] sink-input.c:     media.name = "qemu"
(   3.947|   0.000) I: [pulseaudio] sink-input.c:     application.name =
"unix:/tmp/pulse-socket"
(   3.947|   0.000) I: [pulseaudio] sink-input.c:     native-protocol.peer
= "UNIX socket client"
(   3.947|   0.000) I: [pulseaudio] sink-input.c:
native-protocol.version = "32"
(   3.947|   0.000) I: [pulseaudio] sink-input.c:     application.process.id
= "52"
(   3.947|   0.000) I: [pulseaudio] sink-input.c:
application.process.user = "root"
(   3.947|   0.000) I: [pulseaudio] sink-input.c:
application.process.host = "b7e637a7805b"
(   3.947|   0.000) I: [pulseaudio] sink-input.c:
application.process.binary = "qemu-system-x86_64"
(   3.947|   0.000) I: [pulseaudio] sink-input.c:     application.language
= "C"
(   3.947|   0.000) I: [pulseaudio] sink-input.c:     window.x11.display =
":0"
(   3.947|   0.000) I: [pulseaudio] sink-input.c:
application.process.machine_id = "b7e637a7805b"
(   3.947|   0.000) I: [pulseaudio] protocol-native.c: Requested
tlength=10.00 ms, minreq=5.00 ms
(   3.947|   0.000) D: [pulseaudio] protocol-native.c: Adjust latency mode
enabled, configuring sink latency to half of overall latency.
(   3.947|   0.000) D: [pulseaudio] protocol-native.c: Requested
latency=0.00 ms, Received latency=0.50 ms
(   3.947|   0.000) D: [pulseaudio] memblockq.c: memblockq requested:
maxlength=4194304, tlength=2016, base=4, prebuf=1060, minreq=960 maxrewind=0
(   3.947|   0.000) D: [pulseaudio] memblockq.c: memblockq sanitized:
maxlength=4194304, tlength=2016, base=4, prebuf=1060, minreq=960 maxrewind=0
(   3.947|   0.000) I: [pulseaudio] protocol-native.c: Final latency 11.00
ms = 0.50 ms + 2*5.00 ms + 0.50 ms
(   3.947|   0.000) D: [pulseaudio] source-output.c: Negotiated format:
pcm, format.sample_format = "\"s16le\""  format.rate = "48000"
 format.channels = "2"  format.channel_map = "\"front-left,front-right\""
(   3.947|   0.000) D: [pulseaudio] memblockq.c: memblockq requested:
maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
(   3.947|   0.000) D: [pulseaudio] memblockq.c: memblockq sanitized:
maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
(   3.947|   0.000) I: [pulseaudio] source-output.c: Created output 1
"qemu" on emu_audio_out.monitor with sample spec s16le 2ch 48000Hz and
channel map front-left,front-right
(   3.947|   0.000) I: [pulseaudio] source-output.c:     media.name = "qemu"
(   3.947|   0.000) I: [pulseaudio] source-output.c:     application.name =
"unix:/tmp/pulse-socket"
(   3.947|   0.000) I: [pulseaudio] source-output.c:
native-protocol.peer = "UNIX socket client"
(   3.947|   0.000) I: [pulseaudio] source-output.c:
native-protocol.version = "32"
(   3.947|   0.000) I: [pulseaudio] source-output.c:
application.process.id = "52"
(   3.947|   0.000) I: [pulseaudio] source-output.c:
application.process.user = "root"
(   3.947|   0.000) I: [pulseaudio] source-output.c:
application.process.host = "b7e637a7805b"
(   3.947|   0.000) I: [pulseaudio] source-output.c:
application.process.binary = "qemu-system-x86_64"
(   3.947|   0.000) I: [pulseaudio] source-output.c:
application.language = "C"
(   3.947|   0.000) I: [pulseaudio] source-output.c:     window.x11.display
= ":0"
(   3.947|   0.000) I: [pulseaudio] source-output.c:
application.process.machine_id = "b7e637a7805b"
(   3.947|   0.000) D: [pulseaudio] memblockq.c: memblockq requested:
maxlength=4194304, tlength=0, base=4, prebuf=1, minreq=0 maxrewind=0
(   3.948|   0.000) D: [pulseaudio] memblockq.c: memblockq sanitized:
maxlength=4194304, tlength=4194304, base=4, prebuf=4, minreq=4 maxrewind=0
(   3.948|   0.000) I: [pulseaudio] protocol-native.c: Final latency 20.00
ms = 10.00 ms + 10.00 ms
(   5.639|   1.691) D: [pulseaudio] protocol-native.c: Client
qemu-system-x86_64 changes volume of sink input qemu.
(   5.639|   0.000) D: [pulseaudio] sink-input.c: The volume of sink input
1 changed from front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 /
100% / 0.00 dB to front-left: 0 /   0% / -inf dB,   front-right: 65536 /
100% / 0.00 dB.
(   5.639|   0.000) D: [pulseaudio] sink-input.c: Sink input 1 reference
ratio changed from front-left: 65536 / 100% / 0.00 dB,   front-right: 65536
/ 100% / 0.00 dB to front-left: 0 /   0% / -inf dB,   front-right: 65536 /
100% / 0.00 dB.
(   5.639|   0.000) D: [pulseaudio] protocol-native.c: Client
qemu-system-x86_64 changes mute of sink input qemu.
(   5.640|   0.000) D: [pulseaudio] protocol-native.c: Client
qemu-system-x86_64 changes volume of sink input qemu.
(   5.640|   0.000) D: [pulseaudio] sink-input.c: The volume of sink input
1 changed from front-left: 0 /   0% / -inf dB,   front-right: 65536 / 100%
/ 0.00 dB to front-left: 0 /   0% / -inf dB,   front-right: 0 /   0% / -inf
dB.
[truncated]

---------------
$ pacmd list

Memory blocks currently allocated: 1, size: 63.9 KiB.
Memory blocks allocated during the whole lifetime: 3773, size: 738.2 KiB.
Memory blocks imported from other processes: 0, size: 0 B.
Memory blocks exported to other processes: 128, size: 8.0 MiB.
Total sample cache size: 0 B.
Default sample spec: s16le 2ch 48000Hz
Default channel map: front-left,front-right
Default sink name: emu_audio_out
Default source name: emu_audio_out.monitor
Memory blocks of type POOL: 1 allocated/3773 accumulated.
Memory blocks of type POOL_EXTERNAL: 0 allocated/0 accumulated.
Memory blocks of type APPENDED: 0 allocated/0 accumulated.
Memory blocks of type USER: 0 allocated/0 accumulated.
Memory blocks of type FIXED: 0 allocated/0 accumulated.
Memory blocks of type IMPORTED: 0 allocated/0 accumulated.
5 module(s) loaded.
    index: 0
        name: <module-null-sink>
        argument: <sink_name=emu_audio_out
sink_properties=device.description=emu_audio_out format=s16le rate=48000
channels=2 channel_map=front-left,front-right >
        used: 2
        load once: no
        properties:
                module.author = "Lennart Poettering"
                module.description = "Clocked NULL sink"
                module.version = "11.1"
    index: 1
        name: <module-null-sink>
        argument: <sink_name=emu_audio_in
sink_properties=device.description=emu_audio_in format=s16le rate=48000
channels=2 channel_map=front-left,front-right >
        used: 2
        load once: no
        properties:
                module.author = "Lennart Poettering"
                module.description = "Clocked NULL sink"
                module.version = "11.1"
    index: 2
        name: <module-native-protocol-unix>
        argument: <auth-anonymous=1 socket=/tmp/pulse-socket>
        used: -1
        load once: no
        properties:
                module.author = "Lennart Poettering"
                module.description = "Native protocol (UNIX sockets)"
                module.version = "11.1"
    index: 3
        name: <module-native-protocol-tcp>
        argument: <auth-anonymous=1>
        used: -1
        load once: no
        properties:
                module.author = "Lennart Poettering"
                module.description = "Native protocol (TCP sockets)"
                module.version = "11.1"
    index: 4
        name: <module-cli-protocol-unix>
        argument: <>
        used: -1
        load once: no
        properties:
                module.author = "Lennart Poettering"
                module.description = "Command line interface protocol (UNIX
sockets)"
                module.version = "11.1"
2 sink(s) available.
  * index: 0
        name: <emu_audio_out>
        driver: <module-null-sink.c>
        flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: RUNNING
        suspend cause:
        priority: 1000
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 /
100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 5.73 ms
        max request: 1 KiB
        max rewind: 1 KiB
        monitor source: 0
        sample spec: s16le 2ch 48000Hz
        channel map: front-left,front-right
                     Stereo
        used by: 1
        linked by: 2
        configured latency: 10.00 ms; range is 0.50 .. 2000.00 ms
        module: 0
        properties:
                device.description = "emu_audio_out"
                device.class = "abstract"
                device.icon_name = "audio-card"
    index: 1
        name: <emu_audio_in>
        driver: <module-null-sink.c>
        flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: RUNNING
        suspend cause:
        priority: 1000
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 /
100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 0.04 ms
        max request: 0 KiB
        max rewind: 0 KiB
        monitor source: 1
        sample spec: s16le 2ch 48000Hz
        channel map: front-left,front-right
                     Stereo
        used by: 1
        linked by: 2
        configured latency: 0.50 ms; range is 0.50 .. 2000.00 ms
        module: 1
        properties:
                device.description = "emu_audio_in"
                device.class = "abstract"
                device.icon_name = "audio-card"
2 source(s) available.
  * index: 0
        name: <emu_audio_out.monitor>
        driver: <module-null-sink.c>
        flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: IDLE
        suspend cause:
        priority: 1000
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 /
100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 0.00 ms
        max rewind: 1 KiB
        sample spec: s16le 2ch 48000Hz
        channel map: front-left,front-right
                     Stereo
        used by: 0
        linked by: 1
        configured latency: 10.00 ms; range is 0.50 .. 2000.00 ms
        monitor_of: 0
        module: 0
        properties:
                device.description = "Monitor of emu_audio_out"
                device.class = "monitor"
                device.icon_name = "audio-input-microphone"
    index: 1
        name: <emu_audio_in.monitor>
        driver: <module-null-sink.c>
        flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: RUNNING
        suspend cause:
        priority: 1000
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 /
100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 0.00 ms
        max rewind: 0 KiB
        sample spec: s16le 2ch 48000Hz
        channel map: front-left,front-right
                     Stereo
        used by: 1
        linked by: 1
        configured latency: 2000.00 ms; range is 0.50 .. 2000.00 ms
        monitor_of: 1
        module: 1
        properties:
                device.description = "Monitor of emu_audio_in"
                device.class = "monitor"
                device.icon_name = "audio-input-microphone"
4 client(s) logged in.
    index: 1
        driver: <protocol-native.c>
        owner module: 2
        properties:
                application.name = "PulseaudioSinkWriter"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "1"
                application.process.user = "root"
                application.process.host = "46ff4ed03788"
                application.process.binary = "simple_pa_prog"
                application.language = "C"
                window.x11.display = ":0"
                application.process.machine_id = "46ff4ed03788"
    index: 2
        driver: <protocol-native.c>
        owner module: 2
        properties:
                application.name = "PulseaudioSinkReader"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "1"
                application.process.user = "root"
                application.process.host = "46ff4ed03788"
                application.process.binary = "simple_pa_prog"
                application.language = "C"
                window.x11.display = ":0"
                application.process.machine_id = "46ff4ed03788"
    index: 3
        driver: <protocol-native.c>
        owner module: 2
        properties:
                application.name = "unix:/tmp/pulse-socket"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "52"
                application.process.user = "root"
                application.process.host = "46ff4ed03788"
                application.process.binary = "qemu-system-x86_64"
                application.language = "C"
                window.x11.display = ":0"
                application.process.machine_id = "46ff4ed03788"
    index: 5
        driver: <cli.c>
        owner module: 4
        properties:
                application.name = "UNIX socket client"
0 card(s) available.
2 sink input(s) available.
    index: 0
        driver: <protocol-native.c>
        flags:
        state: DRAINED
        sink: 0 <emu_audio_out>
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 /
100% / 0.00 dB
                balance 0.00
        muted: no
        current latency: 0.00 ms
        requested latency: 105.00 ms
        sample spec: s16le 2ch 48000Hz
        channel map: front-left,front-right
                     Stereo
        resample method: (null)
        module: 2
        client: 1 <PulseaudioSinkWriter>
        properties:
                media.name = "playback"
                application.name = "PulseaudioSinkWriter"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "1"
                application.process.user = "root"
                application.process.host = "46ff4ed03788"
                application.process.binary = "simple_pa_prog"
                application.language = "C"
                window.x11.display = ":0"
                application.process.machine_id = "46ff4ed03788"
    index: 1
        driver: <protocol-native.c>
        flags:
        state: DRAINED
        sink: 1 <emu_audio_in>
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 /
100% / 0.00 dB
                balance 0.00
        muted: no
        current latency: 0.00 ms
        requested latency: 0.50 ms
        sample spec: s16le 2ch 48000Hz
        channel map: front-left,front-right
                     Stereo
        resample method: (null)
        module: 2
        client: 3 <unix:/tmp/pulse-socket>
        properties:
                media.name = "qemu"
                application.name = "unix:/tmp/pulse-socket"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "52"
                application.process.user = "root"
                application.process.host = "46ff4ed03788"
                application.process.binary = "qemu-system-x86_64"
                application.language = "C"
                window.x11.display = ":0"
                application.process.machine_id = "46ff4ed03788"
2 source output(s) available.
    index: 0
        driver: <protocol-native.c>
        flags:
        state: RUNNING
        source: 1 <emu_audio_in.monitor>
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 /
100% / 0.00 dB
                balance 0.00
        muted: no
        current latency: 0.00 ms
        requested latency: 2000.00 ms
        sample spec: s16le 2ch 48000Hz
        channel map: front-left,front-right
                     Stereo
        resample method: (null)
        owner module: 2
        client: 2 <PulseaudioSinkReader>
        properties:
                media.name = "record"
                application.name = "PulseaudioSinkReader"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "1"
                application.process.user = "root"
                application.process.host = "46ff4ed03788"
                application.process.binary = "simple_pa_prog"
                application.language = "C"
                window.x11.display = ":0"
                application.process.machine_id = "46ff4ed03788"
    index: 1
        driver: <protocol-native.c>
        flags: START_CORKED
        state: CORKED
        source: 0 <emu_audio_out.monitor>
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 /
100% / 0.00 dB
                balance 0.00
        muted: no
        current latency: 0.00 ms
        requested latency: 10.00 ms
        sample spec: s16le 2ch 48000Hz
        channel map: front-left,front-right
                     Stereo
        resample method: (null)
        owner module: 2
        client: 3 <unix:/tmp/pulse-socket>
        properties:
                media.name = "qemu"
                application.name = "unix:/tmp/pulse-socket"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "52"
                application.process.user = "root"
                application.process.host = "46ff4ed03788"
                application.process.binary = "qemu-system-x86_64"
                application.language = "C"
                window.x11.display = ":0"
                application.process.machine_id = "46ff4ed03788"
0 cache entrie(s) available.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20200909/cc0fe97b/attachment-0001.htm>


More information about the pulseaudio-discuss mailing list