pipewire-pulse crashes while loading module
- PipeWire version (
pipewire --version
): master 11c478d0 - Distribution and distribution version (
Debian GNU/Linux 11 (bullseye)
): - Desktop Environment: Gnome Shell 43
- Kernel version (
6.1.0-7-amd64
):
Description of Problem:
pipewire-pulse segfault
How Reproducible:
always with 0.3.70 package with pipewire-pulse service most of the time with git master or 0.3.70 branch with "make run"
Steps to Reproduce:
- setup module-zeroconf-discover load in piipewire-conf on box
- setup module-native-protocol-tcp and module-zeroconf-publish on another box
- start pipewire-pulse
Actual Results:
pipewire-pulse segfault
Expected Results:
pipewire-pulse provide the remotely published audio devices.
Additional Info (as attachments):
running master "11c478d0 (HEAD -> master, upstream/master) improve debug of commands and events" from the build the directory.
I cannot debug with "make run" from the build directory as coredumpctl is unable to get a backtrace if run so, ie I only get:
coredumpctl info 3108048
PID: 3108048 (pipewire)
UID: 1000 (prahal)
GID: 1000 (prahal)
Signal: 11 (SEGV)
Timestamp: Thu 2023-05-04 16:01:01 CEST (20s ago)
Command Line: /home/prahal/Projects/WIP/pipewire_avahi/upstream/build/src/daemon/pipewire -c pipewire-pulse.conf
Executable: /home/prahal/Projects/WIP/pipewire_avahi/upstream/build/src/daemon/pipewire
Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/app-org.gnome.Terminal.slice/vte-spawn-6f1c858a-9dce-448e-bd51-ba4ff4414cbf.scope
Unit: user@1000.service
User Unit: vte-spawn-6f1c858a-9dce-448e-bd51-ba4ff4414cbf.scope
Slice: user-1000.slice
Owner UID: 1000 (prahal)
Boot ID: 3924ba608a364e7d9561905bc8db2307
Machine ID: 2b483dcbcecb6729df407c5b5382b0d1
Hostname: cyclope
Storage: /var/lib/systemd/coredump/core.pipewire.1000.3924ba608a364e7d9561905bc8db2307.3108048.1683208861000000.zst (present)
Size on Disk: 353.4K
Message: Process 3108048 (pipewire) of user 1000 dumped core.
Stack trace of thread 3108048:
#0 0x00007fa0df60b820 n/a (/home/prahal/Projects/WIP/pipewire_avahi/upstream/build/src/pipewire/libpipewire-0.3.so.0.370.0 + 0x6e820)
ELF object binary architecture: AMD x86-64
So by running in one shell:
$ ../pipewire/pw-uninstalled.sh -b
Using build directory: ./subprojects/wireplumber
$ .//src/daemon/pipewire-uninstalled
Using build directory: /home/prahal/Projects/WIP/pipewire_avahi/upstream/build/subprojects/wireplumber
C 16:11:30.238046 GLib (null):(null):(null): Failed to set scheduler settings: Op?ration non permise
[430:05:16.203963432] [3108837] WARN IPAManager ipa_manager.cpp:154 No IPA found in '/usr/lib/x86_64-linux-gnu/libcamera'
[430:05:16.204007516] [3108837] INFO Camera camera_manager.cpp:299 libcamera v0.0.4
W 16:11:31.000596 m-portal-permissio ../pipewire/subprojects/wireplumber/modules/module-portal-permissionstore.c:63:wp_portal_permissionstore_plugin_lookup: <WpPortalPermissionStorePlugin:0x5645e36e1990> Failed to call Lookup: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for camera
[E][48281.723106] mod.pulse-tunnel | [module-pulse-tun: 928 create_pulse_stream()] failed to connect: Connection refused
[E][48281.723424] mod.zeroconf-discover | [module-zeroconf-: 358 resolver_cb()] Can't load module: Connexion refus?e
[430:05:16.756260969] [3108830] WARN IPAManager ipa_manager.cpp:154 No IPA found in '/usr/lib/x86_64-linux-gnu/libcamera'
[430:05:16.756314401] [3108830] INFO Camera camera_manager.cpp:299 libcamera v0.0.4
M 16:11:31.102713 m-lua-scripting ../pipewire/subprojects/wireplumber/modules/module-lua-scripting/api/api.c:376:object_activate_done: <WpSiAudioAdapter:0x5645e3ae9050> Object activation aborted: proxy destroyed
M 16:11:31.102754 script/create-item create-item.lua:80:chunk: <WpSiAudioAdapter:0x5645e3ae9050> failed to activate item: Object activation aborted: proxy destroyed
M 16:11:40.339508 m-lua-scripting ../pipewire/subprojects/wireplumber/modules/module-lua-scripting/api/api.c:376:object_activate_done: <WpSiAudioAdapter:0x5645e3ae9240> Object activation aborted: proxy destroyed
M 16:11:40.339997 script/create-item create-item.lua:80:chunk: <WpSiAudioAdapter:0x5645e3ae9240> failed to activate item: Object activation aborted: proxy destroyed
M 16:11:40.342585 m-lua-scripting ../pipewire/subprojects/wireplumber/modules/module-lua-scripting/api/api.c:376:object_activate_done: <WpSiAudioAdapter:0x5645e3ae9430> Object activation aborted: proxy destroyed
M 16:11:40.342620 script/create-item create-item.lua:80:chunk: <WpSiAudioAdapter:0x5645e3ae9430> failed to activate item: Object activation aborted: proxy destroyed
W 16:11:41.359398 m-portal-permissio ../pipewire/subprojects/wireplumber/modules/module-portal-permissionstore.c:63:wp_portal_permissionstore_plugin_lookup: <WpPortalPermissionStorePlugin:0x5645e36e1990> Failed to call Lookup: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for camera
W 16:11:41.365401 m-portal-permissio ../pipewire/subprojects/wireplumber/modules/module-portal-permissionstore.c:63:wp_portal_permissionstore_plugin_lookup: <WpPortalPermissionStorePlugin:0x5645e36e1990> Failed to call Lookup: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for camera
when pipewire pulse crashes (it does always in my debian 0.3.70 install but when running via "make run" it does not always crash), then running pipwire-pulse in another shell I get the same backtrace with master than I got with 0.3.70 from the Debian experimental package (there pipewire-pulse is always crashing see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1035280):
$ ../pipewire/pw-uninstalled.sh -b
Using build directory: ./subprojects/wireplumber
$ gdb --args ./src/daemon/pipewire -c pipewire-pulse.conf
[New Thread 0x7ffff19fe6c0 (LWP 3109304)]
[New Thread 0x7fffe37fe6c0 (LWP 3109305)]
[E][48460.953808] mod.pulse-tunnel | [module-pulse-tun: 928 create_pulse_stream()] failed to connect: Connection refused
[Thread 0x7ffff19fe6c0 (LWP 3109304) exited]
[Thread 0x7fffe37fe6c0 (LWP 3109305) exited]
[E][48460.954181] mod.zeroconf-discover | [module-zeroconf-: 358 resolver_cb()] Can't load module: Connexion refus?e
Thread 1 "pipewire" received signal SIGSEGV, Segmentation fault.
pw_impl_module_schedule_destroy (module=0xf000001f0) at ../pipewire/src/pipewire/impl-module.c:403
403 if (impl->destroy_work_id != SPA_ID_INVALID)
(gdb) bt
#0 pw_impl_module_schedule_destroy (module=0xf000001f0) at ../pipewire/src/pipewire/impl-module.c:403
#1 0x00007ffff7395a8d in do_schedule_destroy
(loop=<optimized out>, async=<optimized out>, seq=<optimized out>, data=<optimized out>, size=<optimized out>, user_data=<optimized out>)
at ../pipewire/src/modules/module-pulse-tunnel.c:503
#2 0x00007ffff7eb56ff in flush_items (impl=0x555555564f18) at ../pipewire/spa/plugins/support/loop.c:171
#3 0x00007ffff7eb5569 in source_event_func (source=0x55555556d040) at ../pipewire/spa/plugins/support/loop.c:602
#4 0x00007ffff7eb7a8e in loop_iterate (object=0x555555564f18, timeout=-1) at ../pipewire/spa/plugins/support/loop.c:439
#5 0x00007ffff7f3a2c7 in pw_main_loop_run (loop=loop@entry=0x555555564dc0) at ../pipewire/src/pipewire/main-loop.c:128
#6 0x00005555555553ff in main (argc=<optimized out>, argv=<optimized out>) at ../pipewire/src/daemon/pipewire.c:111
(gdb) bt full
#0 pw_impl_module_schedule_destroy (module=0xf000001f0) at ../pipewire/src/pipewire/impl-module.c:403
impl = 0xf000001f0
#1 0x00007ffff7395a8d in do_schedule_destroy
(loop=<optimized out>, async=<optimized out>, seq=<optimized out>, data=<optimized out>, size=<optimized out>, user_data=<optimized out>)
at ../pipewire/src/modules/module-pulse-tunnel.c:503
impl = <optimized out>
#2 0x00007ffff7eb56ff in flush_items (impl=0x555555564f18) at ../pipewire/spa/plugins/support/loop.c:171
item = 0x555555565088
block = false
func = <optimized out>
index = 128
flush_count = 1
avail = 64
res = <optimized out>
__func__ = "flush_items"
#3 0x00007ffff7eb5569 in source_event_func (source=0x55555556d040) at ../pipewire/spa/plugins/support/loop.c:602
s = 0x55555556d040
count = 3
res = <optimized out>
__func__ = "source_event_func"
#4 0x00007ffff7eb7a8e in loop_iterate (object=0x555555564f18, timeout=-1) at ../pipewire/spa/plugins/support/loop.c:439
s = <optimized out>
__cancel_buf =
{__cancel_jmp_buf = {{__cancel_jmp_buf = {93824992300992, -7771112215202645496, 4294967295, 93824992300080, 93824992247064, 140737354125344, -4507500908969084408, -4507483208008353272}, __mask_was_saved = 0}}, __pad = {0x7fffffffd380, 0x0, 0x636f6c6220796369, 0x706572206120646e}}
__cancel_routine = 0x7ffff7eb5120 <cancellation_handler>
__cancel_arg = <optimized out>
__not_first_call = <optimized out>
impl = 0x555555564f18
ep =
{{events = 1, data = 0x5555555b69a0}, {events = 1, data = 0x5555555b1cd0}, {events = 1, data = 0x5555555afcd0}, {events = 1, data = 0x555555604600}, {events = 1, data = 0x5555556977e0}, {events = 1, data = 0x5555555b32b0}, {events = 4, data = 0x555555726250}, {events = 1, data = 0x555555618110}, {events = 1, data = 0x55555556d040}, {events = 1432065584, data = 0x5555555b9440}, {events = 1432065008, data = 0x5555555b9630}, {events = 4160233443, data = 0x7ffff7f5cab2 <do_replace+402>}, {events = 1432065328, data = 0x1ad0}, {events = 4159151200, data = 0xc}, {events = 2, data = 0x0}, {events = 0, data = 0x0} <repeats 17 times>}
e = <optimized out>
i = 8
nfds = 9
--Type <RET> for more, q to quit, c to continue without paging--
cdata = {ep = 0x7fffffffc0e0, ep_count = 9}
__func__ = "loop_iterate"
#5 0x00007ffff7f3a2c7 in pw_main_loop_run (loop=loop@entry=0x555555564dc0) at ../pipewire/src/pipewire/main-loop.c:128
_f = <optimized out>
_res = -95
_o = <optimized out>
res = 0
__func__ = "pw_main_loop_run"
#6 0x00005555555553ff in main (argc=<optimized out>, argv=<optimized out>) at ../pipewire/src/daemon/pipewire.c:111
context = 0x55555556d1b0
loop = 0x555555564dc0
properties = 0x0
long_options =
{{name = 0x555555556076 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x55555555607b "version", has_arg = 0, flag = 0x0, val = 86}, {name = 0x555555556083 "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x55555555608a "verbose", has_arg = 0, flag = 0x0, val = 118}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
c = <optimized out>
res = 0
path = "/home/prahal/Projects/WIP/pipewire_avahi/upstream/build/src/daemon/pipewire.conf\000\350\034\000\000\000\000\000\020\000\000\000\000\000\000\000\220\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000S\345td\004\000\000\000P\003\000\000\000\000\000\000P\003\000\000\000\000\000\000P\003\000\000\000\000\000\000 \000\000\000\000\000\000\000 \000\000\000\000\000\000\000\b\000\000\000\000\000\000\000P\345td\004\000\000\000\254\n\032\000\000\000\000\000\254\n\032\000\000\000\000\000\254\n\032\000\000\000\000\000"...
config_name = <optimized out>
level = <optimized out>
__func__ = "main"
(gdb) up
#1 0x00007ffff7395a8d in do_schedule_destroy (loop=<optimized out>, async=<optimized out>, seq=<optimized out>, data=<optimized out>, size=<optimized out>,
user_data=<optimized out>) at ../pipewire/src/modules/module-pulse-tunnel.c:503
503 pw_impl_module_schedule_destroy(impl->module);
(gdb)
#2 0x00007ffff7eb56ff in flush_items (impl=0x555555564f18) at ../pipewire/spa/plugins/support/loop.c:171
171 item->res = func(&impl->loop, true, item->seq, item->data,
(gdb)
#3 0x00007ffff7eb5569 in source_event_func (source=0x55555556d040) at ../pipewire/spa/plugins/support/loop.c:602
602 s->func.event(source->data, count);
(gdb)
#4 0x00007ffff7eb7a8e in loop_iterate (object=0x555555564f18, timeout=-1) at ../pipewire/spa/plugins/support/loop.c:439
439 s->func(s);
(gdb)
#5 0x00007ffff7f3a2c7 in pw_main_loop_run (loop=loop@entry=0x555555564dc0) at ../pipewire/src/pipewire/main-loop.c:128
128 if ((res = pw_loop_iterate(loop->loop, -1)) < 0) {
(gdb)
#6 0x00005555555553ff in main (argc=<optimized out>, argv=<optimized out>) at ../pipewire/src/daemon/pipewire.c:111
111 pw_main_loop_run(loop);
(gdb)
I believe this is the module unloading that is broken. It could be that the module unloading issue is older but only triggers because the module loading behavior changed.
My pulse config on the pulse client running pipewire master is:
cat src/daemon/pipewire-pulse.conf.d/pulse-native-tcp-client.conf
pulse.cmd = [
{ cmd = "load-module", args = "module-zeroconf-discover" }
]
The pipewire-pulse configuration on the pulse server running pipewire 0.3.70 Debian package is:
cat .config/pipewire/pipewire-pulse.conf.d/pulse-native-tcp-server.conf
pulse.cmd = [
{ cmd = "load-module", args = "module-native-protocol-tcp" }
{ cmd = "load-module", args = "module-zeroconf-publish" }
]
zeroconf on client:
$ avahi-browse --resolve _pulse-sink._tcp -t
+ enx0050b66daf43 IPv4 prahal@hermes: Audio interne St__r__o analogique PulseAudio Sound Sink local
+ enx0050b66daf43 IPv4 prahal@hermes: Lenovo Smart Dock 7AB0C6 PulseAudio Sound Sink local
+ enx0050b66daf43 IPv4 root@tv: Dummy Output PulseAudio Sound Sink local
+ wlp4s0 IPv4 prahal@hermes: Audio interne St__r__o analogique PulseAudio Sound Sink local
+ wlp4s0 IPv4 prahal@hermes: Lenovo Smart Dock 7AB0C6 PulseAudio Sound Sink local
+ wlp4s0 IPv4 root@tv: Dummy Output PulseAudio Sound Sink local
= enx0050b66daf43 IPv4 prahal@hermes: Audio interne St__r__o analogique PulseAudio Sound Sink local
hostname = [hermes.local]
address = [192.168.10.175]
port = [4713]
txt = ["org.freedesktop.Avahi.cookie=1359232070" "description=Audio interne St\195\169r\195\169o analogique" "subtype=hardware" "channel_map=front-left,front-right" "format=s32le" "channels=2" "rate=48000" "device=alsa_output.pci-0000_00_1f.3.analog-stereo" "cookie=0xca9cd2a7" "fqdn=hermes" "uname=Linux x86_64 6.1.0-7-amd64" "user-name=prahal" "server-version=PipeWire 0.3.70"]
= enx0050b66daf43 IPv4 prahal@hermes: Lenovo Smart Dock 7AB0C6 PulseAudio Sound Sink local
hostname = [hermes.local]
address = [192.168.10.175]
port = [4713]
txt = ["org.freedesktop.Avahi.cookie=1359232070" "description=Lenovo Smart Dock 7AB0C6" "subtype=hardware" "channel_map=front-left,front-right" "format=s16le" "channels=2" "rate=48000" "device=bluez_output.84_B8_B8_7A_B0_C6.1" "cookie=0xca9cd2a7" "fqdn=hermes" "uname=Linux x86_64 6.1.0-7-amd64" "user-name=prahal" "server-version=PipeWire 0.3.70"]
= enx0050b66daf43 IPv4 root@tv: Dummy Output PulseAudio Sound Sink local
hostname = [tv.local]
address = [192.168.10.220]
port = [4713]
txt = ["icon-name=computer" "class=abstract" "description=Dummy Output" "subtype=virtual" "channel_map=front-left,front-right" "format=s16le" "channels=2" "rate=44100" "device=auto_null" "cookie=0x022d828c" "fqdn=tv" "uname=Linux aarch64 6.1.19 #1 SMP PREEMPT Sat Mar 18 14:45:52 UTC 2023" "machine-id=a730fa22a179b7996d19d4d2617bbd5d" "user-name=root" "server-version=pulseaudio 16.1"]
= wlp4s0 IPv4 prahal@hermes: Audio interne St__r__o analogique PulseAudio Sound Sink local
hostname = [hermes.local]
address = [192.168.10.175]
port = [4713]
txt = ["org.freedesktop.Avahi.cookie=1359232070" "description=Audio interne St\195\169r\195\169o analogique" "subtype=hardware" "channel_map=front-left,front-right" "format=s32le" "channels=2" "rate=48000" "device=alsa_output.pci-0000_00_1f.3.analog-stereo" "cookie=0xca9cd2a7" "fqdn=hermes" "uname=Linux x86_64 6.1.0-7-amd64" "user-name=prahal" "server-version=PipeWire 0.3.70"]
= wlp4s0 IPv4 prahal@hermes: Lenovo Smart Dock 7AB0C6 PulseAudio Sound Sink local
hostname = [hermes.local]
address = [192.168.10.175]
port = [4713]
txt = ["org.freedesktop.Avahi.cookie=1359232070" "description=Lenovo Smart Dock 7AB0C6" "subtype=hardware" "channel_map=front-left,front-right" "format=s16le" "channels=2" "rate=48000" "device=bluez_output.84_B8_B8_7A_B0_C6.1" "cookie=0xca9cd2a7" "fqdn=hermes" "uname=Linux x86_64 6.1.0-7-amd64" "user-name=prahal" "server-version=PipeWire 0.3.70"]
= wlp4s0 IPv4 root@tv: Dummy Output PulseAudio Sound Sink local
hostname = [tv.local]
address = [192.168.10.220]
port = [4713]
txt = ["icon-name=computer" "class=abstract" "description=Dummy Output" "subtype=virtual" "channel_map=front-left,front-right" "format=s16le" "channels=2" "rate=44100" "device=auto_null" "cookie=0x022d828c" "fqdn=tv" "uname=Linux aarch64 6.1.19 #1 SMP PREEMPT Sat Mar 18 14:45:52 UTC 2023" "machine-id=a730fa22a179b7996d19d4d2617bbd5d" "user-name=root" "server-version=pulseaudio 16.1"]
$ avahi-browse --resolve _pulse-source._tcp -t
+ enx0050b66daf43 IPv4 prahal@hermes: Audio interne St__r__o analogique PulseAudio Sound Source local
= enx0050b66daf43 IPv4 prahal@hermes: Audio interne St__r__o analogique PulseAudio Sound Source local
hostname = [hermes.local]
address = [192.168.10.175]
port = [4713]
txt = ["org.freedesktop.Avahi.cookie=1359232070" "description=Audio interne St\195\169r\195\169o analogique" "subtype=hardware" "channel_map=front-left,front-right" "format=s32le" "channels=2" "rate=48000" "device=alsa_input.pci-0000_00_1f.3.analog-stereo" "cookie=0xca9cd2a7" "fqdn=hermes" "uname=Linux x86_64 6.1.0-7-amd64" "user-name=prahal" "server-version=PipeWire 0.3.70"]
+ wlp4s0 IPv4 prahal@hermes: Audio interne St__r__o analogique PulseAudio Sound Source local
= wlp4s0 IPv4 prahal@hermes: Audio interne St__r__o analogique PulseAudio Sound Source local
hostname = [hermes.local]
address = [192.168.10.175]
port = [4713]
txt = ["org.freedesktop.Avahi.cookie=1359232070" "description=Audio interne St\195\169r\195\169o analogique" "subtype=hardware" "channel_map=front-left,front-right" "format=s32le" "channels=2" "rate=48000" "device=alsa_input.pci-0000_00_1f.3.analog-stereo" "cookie=0xca9cd2a7" "fqdn=hermes" "uname=Linux x86_64 6.1.0-7-amd64" "user-name=prahal" "server-version=PipeWire 0.3.70"]
Note that I get these errors when "pipewire-pulse from master" works or when it segfaults:
[E][48281.723106] mod.pulse-tunnel | [module-pulse-tun: 928 create_pulse_stream()] failed to connect: Connection refused
[E][48281.723424] mod.zeroconf-discover | [module-zeroconf-: 358 resolver_cb()] Can't load module: Connexion refusée
but with git master when pipewire-pulse successfully starts I get these messages twice. When pipewire-pulse crashes I get these messages only once (probably because it crashes before the second load attempt). ("Connexon refusée" means "Connection refused").
The dummy output from the tv host might be at fault (as it shares dummy output I am suspicious. It is a LibreELEC host running kodi. "LibreELEC (official): 11.0.1", kernel 6.1.19, pulseaudio 16.1. It is supposed to playback via hdmi audio( right now the tv the hdmi cable is plugged into is powered off).
tv:~ # pactl info
Server String: /var/run/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 3
Tile Size: 65496
User Name: root
Host Name: tv
Server Name: pulseaudio
Server Version: 16.1
Default Sample Specification: s16le 2ch 44100Hz
Default Channel Map: front-left,front-right
Default Sink: auto_null
Default Source: auto_null.monitor
Cookie: 022d:828c
tv:~ # pactl list
Module #0
Name: module-native-protocol-unix
Argument:
Usage counter: n/a
Properties:
module.author = "Lennart Poettering"
module.description = "Native protocol (UNIX sockets)"
module.version = "16.1"
Module #1
Name: module-stream-restore
Argument:
Usage counter: n/a
Properties:
module.author = "Lennart Poettering"
module.description = "Automatically restore the volume/mute/device state of streams"
module.version = "16.1"
Module #2
Name: module-device-restore
Argument:
Usage counter: n/a
Properties:
module.author = "Lennart Poettering"
module.description = "Automatically restore the volume/mute state of devices"
module.version = "16.1"
Module #3
Name: module-card-restore
Argument:
Usage counter: n/a
Properties:
module.author = "Lennart Poettering"
module.description = "Automatically restore profile of cards"
module.version = "16.1"
Module #4
Name: module-default-device-restore
Argument:
Usage counter: n/a
Properties:
module.author = "Lennart Poettering"
module.description = "Automatically restore the default sink and source"
module.version = "16.1"
Module #5
Name: module-always-sink
Argument:
Usage counter: n/a
Properties:
module.author = "Colin Guthrie"
module.description = "Always keeps at least one sink loaded even if it's a null one"
module.version = "16.1"
Module #6
Name: module-null-sink
Argument: sink_name=auto_null sink_properties='device.description="Dummy Output"'
Usage counter: 0
Properties:
module.author = "Lennart Poettering"
module.description = "Clocked NULL sink"
module.version = "16.1"
Module #7
Name: module-suspend-on-idle
Argument:
Usage counter: n/a
Properties:
module.author = "Lennart Poettering"
module.description = "When a sink/source is idle for too long, suspend it"
module.version = "16.1"
Module #8
Name: module-dbus-protocol
Argument:
Usage counter: n/a
Properties:
module.author = "Tanu Kaskinen"
module.description = "D-Bus interface"
module.version = "16.1"
Module #9
Name: module-bluetooth-policy
Argument:
Usage counter: n/a
Properties:
module.author = "Fr?d?ric Dalleau, Pali Roh?r"
module.description = "Policy module to make using bluetooth devices out-of-the-box easier"
module.version = "16.1"
Module #10
Name: module-bluetooth-discover
Argument:
Usage counter: n/a
Properties:
module.author = "Jo?o Paulo Rechi Vita"
module.description = "Detect available Bluetooth daemon and load the corresponding discovery module"
module.version = "16.1"
Module #11
Name: module-bluez5-discover
Argument:
Usage counter: n/a
Properties:
module.author = "Jo?o Paulo Rechi Vita"
module.description = "Detect available BlueZ 5 Bluetooth audio devices and load BlueZ 5 Bluetooth audio drivers"
module.version = "16.1"
Module #12
Name: module-zeroconf-publish
Argument:
Usage counter: n/a
Properties:
module.author = "Lennart Poettering"
module.description = "mDNS/DNS-SD Service Publisher"
module.version = "16.1"
Module #13
Name: module-switch-on-connect
Argument:
Usage counter: n/a
Properties:
module.author = "Michael Terry"
module.description = "When a sink/source is added, switch to it or conditionally switch to it"
module.version = "16.1"
Sink #0
State: SUSPENDED
Name: auto_null
Description: Dummy Output
Driver: module-null-sink.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 6
Mute: no
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
Monitor Source: auto_null.monitor
Latency: 0 usec, configured 0 usec
Flags: DECIBEL_VOLUME LATENCY SET_FORMATS
Properties:
device.description = "Dummy Output"
device.class = "abstract"
device.icon_name = "audio-card"
Formats:
pcm
Source #0
State: SUSPENDED
Name: auto_null.monitor
Description: Monitor of Dummy Output
Driver: module-null-sink.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 6
Mute: no
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
Monitor of Sink: auto_null
Latency: 0 usec, configured 0 usec
Flags: DECIBEL_VOLUME LATENCY
Properties:
device.description = "Monitor of Dummy Output"
device.class = "monitor"
device.icon_name = "audio-input-microphone"
Formats:
pcm
Client #1
Driver: protocol-native.c
Owner Module: 0
Properties:
application.name = "KodiDriver"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "35"
application.process.id = "712"
application.process.user = "root"
application.process.host = "tv"
application.process.binary = "kodi.bin"
application.language = "C"
application.process.machine_id = "a730fa22a179b7996d19d4d2617bbd5d"
Client #4
Driver: protocol-native.c
Owner Module: 0
Properties:
application.name = "pactl"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "35"
application.process.id = "11630"
application.process.user = "root"
application.process.host = "tv"
application.process.binary = "pactl"
application.language = "C.UTF-8"
application.process.machine_id = "a730fa22a179b7996d19d4d2617bbd5d"