pipewire issueshttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues2023-05-11T14:53:41Zhttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3192[pipewire-pulse][module-combine-sink] Switching a physical device configurati...2023-05-11T14:53:41ZBastien Orivel[pipewire-pulse][module-combine-sink] Switching a physical device configuration results in a segfault<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): master (c23c27b566bec021edcd84a7b199fb7c31b95288)
- Distribution and distribution ve...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): master (c23c27b566bec021edcd84a7b199fb7c31b95288)
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Archlinux
- Desktop Environment: i3, nothing fancy
- Kernel version (`uname -r`): 6.3.0-arch1-1
## Description of Problem:
When using `module-combine-sink` (used through `pactl load-module module-combine-sink`), if I switch a device configuration (in my case switching which HDMI port to use) a few times quickly, I get the following segfault:
```
(gdb) bt
#0 0x00007f65171a96a4 in pw_stream_trigger_process (stream=0x0) at ../src/pipewire/stream.c:2465
#1 0x00007f6514ee8d05 in combine_input_process (d=0x55ee3eee5210) at ../src/modules/module-combine-stream.c:753
#2 0x00007f651719dd19 in impl_node_process_input (object=0x55ee3eef92a0) at ../src/pipewire/stream.c:1000
#3 0x00007f65157a4279 in impl_node_process (object=0x55ee3eefb1e8) at ../spa/plugins/audioconvert/audioadapter.c:1502
#4 0x00007f65171736f9 in process_node (data=0x55ee3ef18f20) at ../src/pipewire/impl-node.c:1148
#5 0x00007f6517171370 in node_on_fd_events (source=<optimized out>) at ../src/pipewire/impl-node.c:1199
#6 0x00007f6517221e4e in loop_iterate (object=0x55ee3e2a67f8, timeout=-1) at ../spa/plugins/support/loop.c:439
#7 0x00007f6517147e1c in do_loop (user_data=0x55ee3e2a6690) at ../src/pipewire/data-loop.c:61
#8 0x00007f6516f9cbb5 in start_thread (arg=<optimized out>) at pthread_create.c:444
#9 0x00007f651701ecb4 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
```
## How Reproducible:
Pretty much 100%
### Steps to Reproduce:
1. `pactl load-module module-combine-sink`
2. Get something playing sound on the `combined` sink
3. Go to `Configuration` on pavucontrol, take a device that has multple configurations, use the scroll wheel to quickly switch between them
4. Do that until it crashes. Note that it might take a while or happen immediately, it's kinda random
### Actual Results:
Crash
### Expected Results:
No crash
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`:
[pw-dump.log](/uploads/da5861542542d0cdee0d89b9add86945/pw-dump.log)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2833pipewire-jack doesn't properly honor jack_open_client() JackUseExactName flag...2023-05-11T14:53:41ZEthan Funkpipewire-jack doesn't properly honor jack_open_client() JackUseExactName flag option flagpipewire --version
pipewire
Compiled with libpipewire 0.3.58
Linked with libpipewire 0.3.58
jack_client_open function should fail with a returned status code of JackNameNotUnique when a new client requests a name that already exists. I...pipewire --version
pipewire
Compiled with libpipewire 0.3.58
Linked with libpipewire 0.3.58
jack_client_open function should fail with a returned status code of JackNameNotUnique when a new client requests a name that already exists. Instead, jack_client_open returns a client with a jack name slightly different than the requested conflicting name, and a subsequent call on the new client of jack_get_client_name(client) returns the original conflicting name, not the modified name.
Here is a simple example program that you can use to see the problem by running with the first parameter to a client name that already in use:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <jack/jack.h>
int main(int argc, char *argv[]){
// name to assign is first parameter
const char *server = NULL;
jack_options_t options = JackUseExactName;
jack_client_t *client;
jack_status_t status;
client = jack_client_open(argv[1], options, &status, server);
if(client == NULL) {
if(status & JackServerFailed)
fprintf(stderr, "\nERROR: Unable to connect to JACK server\n");
else
fprintf(stderr, "\nERROR: jack_client_open() failed\n");
return -1;
}
if(status & JackNameNotUnique)
fprintf(stdout, "\nSTATUS: jack_client_open() assigned different client name.\n");
fprintf(stdout, "\nNAME: jack_client_open() client name = %s\n", jack_get_client_name(client));
sleep(30);
finish:
jack_client_close(client);
return 0;
}https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3199pipewire-pulse crashes while loading module2023-05-11T14:53:41ZAlban Browaeyspipewire-pulse crashes while loading module<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): master 11c478d0f
- Distribution and distribution version (`Debian GNU/Linux 11 (bull...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): master 11c478d0f
- 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:
1. setup module-zeroconf-discover load in piipewire-conf on box
2. setup module-native-protocol-tcp and module-zeroconf-publish on another box
3. start pipewire-pulse
### Actual Results:
pipewire-pulse segfault
### Expected Results:
pipewire-pulse provide the remotely published audio devices.
# Additional Info (as attachments):
running master "11c478d0f (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"
```https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2450Output sinks ordering2023-05-11T12:25:37ZJakub LeszczakOutput sinks ordering- PipeWire version (`pipewire --version`): 0.3.51
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Arch Linux
- Desktop Environment: None (X11 + dwm)
- Kernel version (`uname -r`): 5.17.9-arch1-1
## Descri...- PipeWire version (`pipewire --version`): 0.3.51
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Arch Linux
- Desktop Environment: None (X11 + dwm)
- Kernel version (`uname -r`): 5.17.9-arch1-1
## Description of Problem:
Hello,
I have a problem that pipewire (wireplumber? x11? something?) is ordering audio outputs in non-deterministic way.
I have four outputs: "Tiger Lake-LP Smart Sound Technology Audio Controller Speaker + Headphones" and 3 times "Tiger Lake-LP Smart Sound Technology Audio Controller HDMI / DisplayPort {1,2,3} Output"
The first one always points to laptop's built-in speakers. The next three point to different HDMI/DP outputs (one connected to TV, one to external monitor, one not connected at all) - and here is the problem, their order is random.
For example when I first boot up my computer "HDMI/DP 1 Output" will point to my TV (connected via HDMI), and "HDMI/DP 2 Output" will point to external monitor (connected via DP over Thunderbolt). Then after some time of inactivity my computer goes into sleep, and after I wake it up the outputs might switch places. Now "HDMI/DP 1 Output" points to monitor, and "HDMI/DP 2 Output" points to TV.
This is frustrating because then I have to open up pulsemixer and change default output sink and change volumes again and again - the volume I have set for TV is now set for monitor and vice versa.
I guess that this has something to do with a fact that pipewire does audio device discovery (?) and it gets responses in random order?
X11 (xrandr) always says that DP1 is my external monitor and HDMI1 is my TV. So xrandr is deterministic. pulsemixer is not.
Is there something that I can do about it? Can I somehow tell pipewire to order outputs in a deterministic way?
## How Reproducible:
All the time
### Steps to Reproduce:
1. Connect TV via HDMI, and external monitor (with speakers) via DP to a laptop
2. Boot up PC and note order of audio outputs
3. Wait for PC to go to sleep
4. Wake it up and note that order of audio outputs changed
### Expected Results:
I would expect that pipewire should always assign the same audio output number to the same physical connector.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`:
[pw-dump.log](/uploads/db8b1e163ed6ea7e4e5c9d5c2cd53630/pw-dump.log)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3122Support per-session PipeWire servers as clients to system-wide PipeWire server.2023-05-10T22:49:47Zkenji amanoSupport per-session PipeWire servers as clients to system-wide PipeWire server.I don't know whether this is already possible because I just started learning PipeWire.
I want to be able to play sound from system cronjobs through PipeWire, but I also want to play sound in desktop environments.
One system-wide PipeW...I don't know whether this is already possible because I just started learning PipeWire.
I want to be able to play sound from system cronjobs through PipeWire, but I also want to play sound in desktop environments.
One system-wide PipeWire server can do the job, but some things like portal require session d-bus which lives in each login session.
Thus, system-wide PipeWire server cannot use portal if per-session PipeWire servers are not clients to the system-wide PipeWire server.
Per-session pipewire servers should not add latency to system-wide pipewire server.
I could make system-wide PipeWire server and per-session PipeWire servers use ALSA dmix, but ALSA dmix adds latency. I want to minimize latency.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3203multiple output nodes not mixed on input node2023-05-10T15:28:38ZDouglas Coopermultiple output nodes not mixed on input node<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): 0.3.50
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): 0.3.50
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): custom
- Desktop Environment: none
- Kernel version (`uname -r`): 5.15.7
## Description of Problem:
I have multiple sources (an audio device and a custom rtp receiver stream) connected to a custom input stream...a many to one scenario.
## How Reproducible:
connect the output of two sources to a sink where the multiple outputs nodes are connected to a single input node.
### Steps to Reproduce:
1. load my input stream with autoconnect flag which connects the sound card output automatically
2. load my rtp receiver stream
3. connect the rtp receiver output to my client input with an already connected sound card link
4. generate rtp traffic to stimulate the receiver
### Actual Results:
no audio is output on the custom input stream.
### Expected Results:
the sound card and rtp receiver audio is mixed.
# Additional Info (as attachments):https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/591Scarlett 4i4 (3rd gen) not listed as input device by libgnome-volume-control2023-05-10T03:40:32ZGeorges Basile Stavracas NetoScarlett 4i4 (3rd gen) not listed as input device by libgnome-volume-controlDistro: Arch
Version: master (d46c58e9)
Dump: [pw-dump](/uploads/f8db24ea080b44cce9d5fda29850f765/pw-dump)
I have a Scarlett 4i4 USB DAC that has its quirks, but generally works well enough. As of lately, however, the Sound panel of GNO...Distro: Arch
Version: master (d46c58e9)
Dump: [pw-dump](/uploads/f8db24ea080b44cce9d5fda29850f765/pw-dump)
I have a Scarlett 4i4 USB DAC that has its quirks, but generally works well enough. As of lately, however, the Sound panel of GNOME Settings stopped listing it as an input device - only as output.
![Captura_de_tela_de_2021-01-18_20-39-17](/uploads/5fc626da17b1006ebaf8b4db09736d76/Captura_de_tela_de_2021-01-18_20-39-17.png)
`pavucontrol`, however, properly lists it:
![Captura_de_tela_de_2021-01-18_20-39-54](/uploads/38cf62e53f13b84b4690e76289648ec1/Captura_de_tela_de_2021-01-18_20-39-54.png)
I see the following couple of lines in the journal:
```
jan 18 20:32:53 feareniar-x1 gnome-control-c[95325]: Couldn't match the portless stream (with card) - 'Scarlett 4i4 USB Multichannel' is it an input ? -> 1, streams card id -> 46
jan 18 20:32:53 feareniar-x1 gnome-control-c[95325]: gvc_mixer_ui_device_get_id: assertion 'GVC_IS_MIXER_UI_DEVICE (device)' failed
```
I bisected as far as 0.3.18, and all commits seem to be bad, but this was working okay until yesterday. Coincidentally, yesterday was the day I tried to reproduce old friend HDMI problem (https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/377, https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/390) so I suspect it must be related.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3207Decklink support2023-05-09T19:04:35ZNicolas GoyDecklink supportHello,
I use blackmagick decklink card under linux with OBS, but I'd like to be able to route decklink audio through pipewire to use into JACK apps.
Do you think decklink could be something pipewire could support?
I found this project...Hello,
I use blackmagick decklink card under linux with OBS, but I'd like to be able to route decklink audio through pipewire to use into JACK apps.
Do you think decklink could be something pipewire could support?
I found this project which could give some pointers: https://github.com/yslai/sounddeckhttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3021RTP-MIDI support2023-05-09T07:10:31ZDmitry SharshakovRTP-MIDI supportAlso called AppleMIDI. Supported by many music instruments and controllers which have Ethernet/Wi-Fi, as well as computers and special adapters.
Looking into this myself solely, task assigned for now.Also called AppleMIDI. Supported by many music instruments and controllers which have Ethernet/Wi-Fi, as well as computers and special adapters.
Looking into this myself solely, task assigned for now.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3123PipeWire’s JACK frontend causes Ardour 7 to hang on exit2023-05-09T06:31:29ZgitterdudePipeWire’s JACK frontend causes Ardour 7 to hang on exitSimilar to the old issue here (https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2781) pipewire commit 90b11e3c49 and later, up to at lease the current aa0d9c5b41 one, causes Ardour7 to hang on exit when started using `pw-jack -p...Similar to the old issue here (https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2781) pipewire commit 90b11e3c49 and later, up to at lease the current aa0d9c5b41 one, causes Ardour7 to hang on exit when started using `pw-jack -p 512 /path/to/ardour`
Tested under Ubuntu 18.04 and 22.04 and openSuse-15.5 beta
This happens even if I don't do anything in Ardour; I usually just open the Help->About dialog and then close it and close Ardour when testing for this problem.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/568Bluetooth: mSBC playback does not work with headsets Soundcore Life P2 and AX...2023-05-09T01:44:33ZSebastian A.Bluetooth: mSBC playback does not work with headsets Soundcore Life P2 and AXLOI GoinBluetooth: mSBC playback does not work
TLDR: Long thread, a lot of things tested. @pvir has a confirmed-good setup with the same bluetooth adapter+kernel+patches with other headsets, so the most likely explanation is a problem with the...Bluetooth: mSBC playback does not work
TLDR: Long thread, a lot of things tested. @pvir has a confirmed-good setup with the same bluetooth adapter+kernel+patches with other headsets, so the most likely explanation is a problem with the headsets (and most likely in combination with a bluetooth-over-usb adapter)
System Setup
- Ubuntu 20.04 / Linux version 5.4.0-60-generic
- Built-in USB bluetooth adapter (USB ID 8087:07dc Intel Corp.)
- Headset Soundcore Life P2-L
- Headset AXLOIE Goin
- Pipewire with backend-native
Observation:
- After enabling mSBC in config, audio playback on HFP does not work, only play's silence
Expected behaviour:
- Have good audio
Analysis:
Similar to #549, all-zero packets (i.e. 48 zeros in the packet) get inserted into the packet stream which do not have anything to do with the payload data stream. This can be observed via `sudo btmon -S`
Some background can be found [here](https://patchwork.freedesktop.org/patch/245272/)
> Because the mtu is 48 and the mSBC encode size is 60, the transmission
> stops after 48 bytes, we now wait for a new mSBC packet to be received,
> so we miss the next eSCO transmission window and the headset fills in
> with zeros causing the packet to be chopped and the next one to be
> discarded as invalid.
**Conclusion**
The Intel USB bluetooth adapter 8087:07dc is confirmed working with a Kernel 5.9 + patch (see [below](https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/568#note_765141)).
Other headsets are confirmed working with (thank you for testing, @pvir)
> Ubuntu 20.04 + 5.8.0-36-generic hwe kernel + out-of-tree drivers/bluetooth @ 517b693351a2d, pipewire at b3213bcb(sco-accounting), adapter Intel 8087:07dchttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2445Bluetooth is disconnecting frequently when used with HSP/HFP CVSD or HSP/HFP ...2023-05-09T00:49:58ZTejaskumar KasundraBluetooth is disconnecting frequently when used with HSP/HFP CVSD or HSP/HFP mSBC codec<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
<!-- If you can, test also with Pulseaudio and list `pulseaudio --version`. -->
- PipeWire version (`pipewire --version`):
```...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
<!-- If you can, test also with Pulseaudio and list `pulseaudio --version`. -->
- PipeWire version (`pipewire --version`):
```
pipewire
Compiled with libpipewire 0.3.52
Linked with libpipewire 0.3.52
```
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`):
```
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal
```
- Desktop Environment: Yes
- Kernel version (`uname -r`):
```5.4.0-117-generic```
- BlueZ version (`bluetoothctl: 5.64`):
```
00:00.0 Host bridge: Intel Corporation Device 9b61 (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics (rev 02)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 0c)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Comet Lake Thermal Subsytem
00:14.0 USB controller: Intel Corporation Device 02ed
00:14.2 RAM memory: Intel Corporation Device 02ef
00:14.3 Network controller: Intel Corporation Wireless-AC 9462
00:15.0 Serial bus controller [0c80]: Intel Corporation Serial IO I2C Host Controller
00:15.1 Serial bus controller [0c80]: Intel Corporation Comet Lake Serial IO I2C Host Controller
00:16.0 Communication controller: Intel Corporation Comet Lake Management Engine Interface
00:1c.0 PCI bridge: Intel Corporation Device 02b8 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Device 02b0 (rev f0)
00:1d.4 PCI bridge: Intel Corporation Device 02b4 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Device 0284
00:1f.3 Audio device: Intel Corporation Device 02c8
00:1f.4 SMBus: Intel Corporation Device 02a3
00:1f.5 Serial bus controller [0c80]: Intel Corporation Comet Lake SPI (flash) Controller
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (10) I219-V
02:00.0 Wireless controller [0d40]: Intel Corporation XMM7360 LTE Advanced Modem (rev 01)
03:00.0 Non-Volatile memory controller: Sandisk Corp Device 5006
05:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:01.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:02.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:04.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
07:00.0 System peripheral: Intel Corporation JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016] (rev 02)
2d:00.0 USB controller: Intel Corporation JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016] (rev 02)
```
## Description of Problem:
```
- Using Nothing ear 1 bluetooth headset
- Using HSP/HFP CVSD or mSBC codec while taking call with google meet or zoom
- Bluetooth disconnecting very frequently
```
```Server String: /run/user/1000/pulse/native
Library Protocol Version: 33
Server Protocol Version: 35
Is Local: yes
Client Index: 845
Tile Size: 65472
User Name: tejaskumar
Host Name: tejaskumar
Server Name: PulseAudio (on PipeWire 0.3.52)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: bluez_output.2C_BE_EB_03_EC_E4.headset-head-unit
Default Source: bluez_input.2C_BE_EB_03_EC_E4.headset-head-unit
Cookie: 8cb5:da1c
```
Syslogs while issue happening
```
Jun 14 14:24:49 tejaskumar bluetoothd[830]: src/profile.c:ext_io_disconnected() Unable to get io data for Hands-Free Voice gateway: getpeername: Transport endpoint is not connected (107)
Jun 14 14:24:49 tejaskumar kernel: [13575.109188] Bluetooth: hci0: SCO packet for unknown connection handle 257
Jun 14 14:24:50 tejaskumar bluetoothd[830]: src/profile.c:ext_connect() Hands-Free Voice gateway failed connect to 2C:BE:EB:03:EC:E4: Connection refused (111)
Jun 14 14:24:50 tejaskumar kernel: [13576.441067] Bluetooth: hci0: SCO packet for unknown connection handle 0
Jun 14 14:24:50 tejaskumar kernel: [13576.441070] Bluetooth: hci0: SCO packet for unknown connection handle 0
Jun 14 14:24:50 tejaskumar kernel: [13576.451115] Bluetooth: hci0: SCO packet for unknown connection handle 0
Jun 14 14:24:50 tejaskumar kernel: [13576.451129] Bluetooth: hci0: SCO packet for unknown connection handle 0
Jun 14 14:24:50 tejaskumar kernel: [13576.451136] Bluetooth: hci0: SCO packet for unknown connection handle 0
Jun 14 14:24:50 tejaskumar kernel: [13576.451162] Bluetooth: hci0: SCO packet for unknown connection handle 0
```
## How Reproducible:
```
- Always reproducible
- Even when bluetooth device is idle, disconnect happening at that time as well
```
[pw-dump.log](/uploads/c0dfece0d39aa1de7be70dbd4a7c56e8/pw-dump.log)
### Expected Results:
- It should not disconnect every now and then
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`:
- Bluetooth debug log, see [here](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Troubleshooting#bluetooth):https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2518Volume intolerably low on Intel audio device (broadwellrt286 card)2023-05-06T01:59:26ZBenjamin RichardsonVolume intolerably low on Intel audio device (broadwellrt286 card)- PipeWire version: 0.3.53
- Distribution and distribution version: Pop!_OS 22.04 LTS (I've also experienced this issue on multiple versions of Fedora, including Fedora 36.
- Desktop Environment: Gnome 42
- Kernel version (`uname -r`): 5...- PipeWire version: 0.3.53
- Distribution and distribution version: Pop!_OS 22.04 LTS (I've also experienced this issue on multiple versions of Fedora, including Fedora 36.
- Desktop Environment: Gnome 42
- Kernel version (`uname -r`): 5.17.15-76051715-generic
## Description of Problem:
My laptop (an HP Spectre X360 13-4002dx) speakers and headphone jack output audio at extremely low levels, to the point where initially I thought they weren't outputting audio at all. It was only when I allowed over-amplification in gnome-tweaks and holding my ear up to the speaker that I realized there was sound coming out.
However, when I plug in a pair of USB headphones (not via the headphone jack) sound levels are within expected range. Same thing if I output sound via HDMI to a television.
On older versions of Pop_OS (which used pulse) and Ubuntu 22.04, my volume levels are normal. My sense is that my sound driver is reporting incorrect DBs, that maybe pulse was working around and pipewire doesn't. But my knowledge of linux audio is unfortunately rather shallow. I've tried changing some of the properties listed here (https://pipewire.pages.freedesktop.org/wireplumber/configuration/alsa.html), including setting ["api.alsa.ignore-dB"] = true, but no dice.
# Additional Info:
I've attached a pw-dump, as well a link to an alsa-info here:
[pw-dump.log](/uploads/b47f300777ec8a3dd0b078dfb57a8c03/pw-dump.log)
http://alsa-project.org/db/?f=ae8f82c96163e70429b297661aa26d4cb731d186.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3200Unable to change volume on external devices with volume keys/knob2023-05-05T20:16:51ZMatteo DUnable to change volume on external devices with volume keys/knobpipewire
Compiled with libpipewire 0.3.70
Linked with libpipewire 0.3.70
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Arch Linux
- Desktop Environment: sway version 1.8.1
- Kernel version (`uname -r`):...pipewire
Compiled with libpipewire 0.3.70
Linked with libpipewire 0.3.70
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Arch Linux
- Desktop Environment: sway version 1.8.1
- Kernel version (`uname -r`): 6.3.1-arch1-1
## Description of Problem:
Volume buttons and knob will not change volume, not will executing commands such as wpctl set-volume @DEFAULT_AUDIO_SINK@ +50% or pamixer -i 50 only on externally connected audio devices (in my situation a thinkpad dock)
## How Reproducible:
Connect to an external monitor before or after boot, doesn't make a difference for me.
### Steps to Reproduce:
1. Boot with external monitor and use as default audio output
2. Play spotify or youtube
3. Try to set audio anywhere but the application itself and pavucontrol and fail
### Actual Results:
Audio volume is not changed
### Expected Results:
Audio volume should respect commands and get louder or quieter as needed
# Additional Info (as attachments):
- `pw-mon > pw-mon.log`: https://0x0.st/HZr4.log
- This log is of me using my keyboard to try to change volume.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1576Ardour hangs in `graph_callback` when connecting/disconnecting inputs or outputs2023-05-05T17:50:12ZStefan BenderArdour hangs in `graph_callback` when connecting/disconnecting inputs or outputsHi,
Version, Distribution, Desktop Environment:
pipewire 0.3.32+, Ubuntu 18.04, Ardour 5.12.0 (ubuntu package)
Description of Problem:
As of version 0.3.32, Ardour's patchbay (and UI) hangs when trying to connect/disconnect nodes in it...Hi,
Version, Distribution, Desktop Environment:
pipewire 0.3.32+, Ubuntu 18.04, Ardour 5.12.0 (ubuntu package)
Description of Problem:
As of version 0.3.32, Ardour's patchbay (and UI) hangs when trying to connect/disconnect nodes in it when using pipewire. This is independent from the nodes being virtual or real devices.
Git bisect told me: aab72ded6e757c7edad5404ffdcd6072fa9740fe is the first bad commit.
This commit added calls to the `graph_callback` in `pipewire-jack/src/pipewire-jack.c`, and in the recent master version (abc01083d4e085cbb7b47327ce678ed50bb5e814), these calls have moved to lines 2772 in `registry_event_global()` and 2833 in `registry_event_global_remove()` in that file.
Removing/commenting these calls fixes it for me.
Trying to connect from outside (using `pw-link` or `qjackctl`) results in a popup-window with: "programming error: no per-thread pool "" for thread unknown". The same happens when starting ardour first and then any other app (pavucontrol, qjackctl, ...) that seems to trigger the `graph_callback`.
I am not sure what breaks there, I suppose it is some kind of race condition. Maybe it is a bug in Ardour, but it works fine with pulseaudio and jack.
How Reproducible:
Every time.
Steps to Reproduce:
1. compile pipewire
2. start pipewire
3. run ardour
4. try to connect or disconnect some inputs or outputs
Actual Results: Ardour's UI freezes.
Expected Results: Ardour's UI stays responsive.
Let me know what else I can do to debug that, but it hangs exactly at `do_callback()` and the callback seems to have been set, i.e. is not (nil).https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3191pavucontrol running halves reported latency2023-05-03T18:06:52ZP Vpavucontrol running halves reported latencyWhen pavucontrol is running, it creates monitor streams to everywhere, whose ports have all Latency fields set to zero.
This affects latency reporting: `pw-dump 71` (id of paplay node) when pavucontrol is not running:
```
"Laten...When pavucontrol is running, it creates monitor streams to everywhere, whose ports have all Latency fields set to zero.
This affects latency reporting: `pw-dump 71` (id of paplay node) when pavucontrol is not running:
```
"Latency": [ { "direction": "Input",
"minQuantum": 1.000000, "maxQuantum": 1.000000,
"minRate": 512, "maxRate": 512,
"minNs": 0, "maxNs": 0 }
],
```
and when pavucontrol is running
```
"Latency": [ { "direction": "Input",
"minQuantum": 0.000000, "maxQuantum": 1.000000,
"minRate": 0, "maxRate": 512,
"minNs": 0, "maxNs": 0 } ],
```
`pw_get_time_n` calculates the delay by taking the average of max+min, so it is halved when pavucontrol runs. This then affects all clients and also eg. pulseaudio latency reporting.
There probably should be something in the port latency calculation so that it ignores e.g. stream ports that don't have valid defined latency.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3182Bad quality sound on intel HDA HDMI output2023-05-02T19:39:40ZMatthieuBad quality sound on intel HDA HDMI output<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`):
pipewire
Compiled with libpipewire 0.3.65
Linked with libpipewire 0.3.65
- Distribut...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`):
pipewire
Compiled with libpipewire 0.3.65
Linked with libpipewire 0.3.65
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Ubuntu 23.04
- Desktop Environment: Default (gnome I guess)
- Kernel version (`uname -r`): 6.2.0-20-generic
## Description of Problem:
The sound quality is degraded, it's hard to explain, there is some reverb / hissing on quite high pitch sound, like the [S] sound when talking. And this problem seems to be not consistent, sometimes it's more pronounced. Even on same audio file, at one time it will be subtle, and little after really obvious that ther is a trouble.
When I revert back on pulseaudio on the 22.10 install, the problem was solved. (So same hardware, same global Ubuntu settings ...)
## How Reproducible:
I've tried with Ubuntu 22.10 installed and in live CD. And with the 23.04 installed
This problem appear with every program (pw-cat, aplay or Internet Browser).
### Steps to Reproduce:
1. Just listen music or movie with bad sound
2. Revert to pulseaudio
3. The sound is now great, at least normal.
### Actual Results:
Bad quality sound
### Expected Results:
Normal qyality sound
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`:
[pw-dump.log](/uploads/810e9e77fce565b37a97e855c6383356/pw-dump.log)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2753module-rtp-recv errors when trying to load from pipewire-pulse.conf2023-05-01T20:36:37ZScott Moreaumodule-rtp-recv errors when trying to load from pipewire-pulse.confWith pipewire 9dd1c78f50aa, RTP works great with module-null-sink+module-rtp-send on the server and module-rtp-recv on the client. The server loads the modules without problem from pipewire-pulse.conf but on the client, attempting to loa...With pipewire 9dd1c78f50aa, RTP works great with module-null-sink+module-rtp-send on the server and module-rtp-recv on the client. The server loads the modules without problem from pipewire-pulse.conf but on the client, attempting to load module-rtp-recv in context.exec section, I get the following errors:
Oct 08 04:53:45 desktop pipewire-pulse[1449]: mod.rtp-source: join mcast failed: No such device
Oct 08 04:53:45 desktop pipewire-pulse[1449]: mod.protocol-pulse: 0x55a41cfb45c0: [pactl] failed to load module index:536870912 name:module-rtp-recv tag:2 result:-19 (No such device)
If I load the module manually, it works fine.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3188Pipewire 0.3.70 not respecting user defined quantum2023-05-01T14:44:33ZFilippo LandiPipewire 0.3.70 not respecting user defined quantum<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): 0.3.70
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`): 0.3.70
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Fedora Linux 37 (Thirty Seven)
- Desktop Environment: i3-wm
- Kernel version (`uname -r`): 6.2.12-200.fc37.x86_64
## Description of Problem:
With recent versions of pipewire to avoid xruns I had to copy /usr/share/pipewire/pipewire.conf in .config/pipewire/, and change the pulse.min.quantum to 1024, looking at pw-top the latest version seems to not respect this setting and I get xruns.
## How Reproducible:
Opening a video with mpv I can see 512 quantum.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3184combine-sink fails to output data to all sinks / node activation issue2023-05-01T09:48:24ZP Vcombine-sink fails to output data to all sinks / node activation issueUsing combine-sink to play to both ALSA and Bluetooth output results to audio not being to sent one of them,
```
$ pw-top
S ID QUANT RATE WAIT BUSY W/Q B/Q ERR FORMAT NAME ...Using combine-sink to play to both ALSA and Bluetooth output results to audio not being to sent one of them,
```
$ pw-top
S ID QUANT RATE WAIT BUSY W/Q B/Q ERR FORMAT NAME
S 29 0 0 --- --- --- --- 0 Dummy-Driver
S 30 0 0 --- --- --- --- 0 Freewheel-Driver
S 40 0 0 --- --- --- --- 0 Midi-Bridge
S 50 0 0 --- --- --- --- 0 libcamera_input.__SB_.PCI0.XHC_.RHUB.HSP3-3_1.0-0c45_6368
S 52 0 0 --- --- --- --- 0 v4l2_input.pci-0000_00_14.0-usb-0_3_1.0
R 66 2048 48000 +++ 359,3us +++ 0,01 1 S16LE 2 48000 bluez_output.48_D8_45_AD_F1_2B.1
R 113 0 0 7,6us 24,2us 0,00 0,00 1 F32P 2 48000 + combined
R 116 0 0 --- 0,0us --- 0,00 25 F32P 2 48000 + output.combined_bluez_output.48_D8_45_AD_F1_2B.1
R 35 0 0 1,8us 120,3us 0,00 0,00 25 S16LE 2 48000 + alsa_output.usb-Logitech_PRO_000000000000-00.analog-stereo.2
R 115 0 0 0,0us 0,0us 0,00 0,00 25 F32P 2 48000 + output.combined_alsa_output.usb-Logitech_PRO_000000000000-00.analog-stereo.2
R 74 8192 44100 32,1us 102,1us 0,00 0,00 1 F32LE 2 44100 + paplay
```
In this case, there was no output on the ALSA device. If I unlink the output.combined from the bluez sink in Helvum, the ALSA node starts to play. If the Bluetooth node is linked again in Helvum, ALSA node starts to play a short loop as if repeating some current buffer.
Reproducer: have Bluetooth and ALSA outputs, do `pactl load-module module-combine-sink`, play something, doesn't play on one of the devices. If you remove links in Helvum from combine-output to one sink, the other starts playing. If you reconnect, the problematic sink starts playing a short sample loop.
Git bisect: 3cae535da08bb78bae540772085f5700beed0c6c is the first bad commit
So looks like some node activation problem. <s>Bluetooth is maybe relevant because it's a driver in a different process.</s> This seems to occur also with only ALSA nodes.
[pw-dump.txt](/uploads/16e12966f3d7bd6433b87e3fa4da4b27/pw-dump.txt)