pipewire issueshttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues2021-09-25T15:19:27Zhttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1420Distorted audio in Webex client2021-09-25T15:19:27ZWill ShanksDistorted audio in Webex clientVersion, Distribution, Desktop Environment:
* 0.3.31-2.fc34.i686
* Fedora 34
* Plasma
Description of Problem:
When using the Webex desktop client, audio is distorted. It sounds higher pitched than it should and is distorted (can't rea...Version, Distribution, Desktop Environment:
* 0.3.31-2.fc34.i686
* Fedora 34
* Plasma
Description of Problem:
When using the Webex desktop client, audio is distorted. It sounds higher pitched than it should and is distorted (can't really make out words). If using pulseaudio or the Webex web app in the browser, the audio sounds fine. Also, I don't have such a device but I have been told the audio sounds fine when using some USB audio devices. I have only tested with the built-in speakers on a ThinkPad.
I have not found any other applications that I have audio issues. I tried messing around with different config settings but could not accomplish anything other than making the Webex client's audio disappear. Is there any setting I could adjust that could improve the audio for this application?
How Reproducible:
The audio is always distorted with pipewire.
Steps to Reproduce:
1. Create a Webex account: https://cart.webex.com/sign-up
2. Download and install the Linux client: https://www.webex.com/downloads.html/
3. Open the client and sign in
4. Click on the profile icon in the upper left, then Settings->Audio, and click on the "Test" button for the speakers. It should play a distorted jingle.
Actual Results:
Distorted, high-pitch audio
Expected Results:
Normal sounding audio
Additional Info Eg. `pw-dump -N > file` (As Attachment Please): [webex.json](/uploads/df38850dc1b7b5b9d1ecea49906b29a0/webex.json)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1502Headset stopped working after upgrading to 0.3.33 from 0.3.32 on Fedora 342021-08-16T08:25:37ZWolfgang MaierHeadset stopped working after upgrading to 0.3.33 from 0.3.32 on Fedora 34
Version, Distribution, Desktop Environment: Fedora 34, Gnome 40.3.0, Wayland
Description of Problem: USB-Headset (Logitech H570e Mono) stopped working after upgrading to 0.3.33 (from 0.3.32)
After downgrading to 0.3.25 it's working a...
Version, Distribution, Desktop Environment: Fedora 34, Gnome 40.3.0, Wayland
Description of Problem: USB-Headset (Logitech H570e Mono) stopped working after upgrading to 0.3.33 (from 0.3.32)
After downgrading to 0.3.25 it's working again.
By not working I mean that the headset is not chosen as input nor output device when plugged in. In Gnome Sound settings I can select the headset manually, but their are no speakers shown to test, and when leaving the settings dialog and going back in the default system device is selected again.
How Reproducible: Upgraded again, from 0.3.25, to 0.3.33 and the headset was non-functional again; downgrading to 0.3.25 fixed it also the second time.
Additional Info Eg. `pw-dump -N > file` (As Attachment Please):https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1473Audio latency is too high with M-Audio FireWire 410 sound card2023-03-14T15:15:52ZMichele PerroneAudio latency is too high with M-Audio FireWire 410 sound cardIf you are filing this issue with a regular release please try master as it might already be fixed.
**Version, Distribution, Desktop Environment:**
Pipewire 0.3.32, Manjaro GNOME
**Description of Problem:**
Although having set an laten...If you are filing this issue with a regular release please try master as it might already be fixed.
**Version, Distribution, Desktop Environment:**
Pipewire 0.3.32, Manjaro GNOME
**Description of Problem:**
Although having set an latency of 64/48000 and a period size of 128 samples, I perceive a much higher latency when playing virtual instruments plugins - I would say more 10ms, because it's noticeable. This happens only with my M-Audio FW410 firewire card. With my internal sound card and my USB sound card, the latency is fine. Looking at pw-top confirms that the quantum is indeed set to 64 samples.
**How Reproducible:**
Play any virtual instrument as a standalone or inside a host (Carla or Ardour).
**Steps to Reproduce:**
1. Set the property node.latency = 64/48000 in /etc/pipewire/jack.conf
2. Set the property api.alsa.period-size = 128 in /etc/pipewire/alsa-monitor.conf
3. Restart pipewire and play a virtual instrument ( or use jack_iodelay as suggested by @berthold.crysmann )
**Actual Results:**
Latency is perceptibly higher than it should be (if I can hear it when playing the piano, then it's surely above about 10 ms)
**Expected Results:**
Latency in the order of (period-size/quantum)*(quantum)/(sampling-rate) = (128/64)*64/48000 = 2.7 ms
**Additional Info Eg. `pw-dump -N > file` (As Attachment Please):**
[pw_top.txt](/uploads/a9b1b69e55c28c4c4f7fa7b203205e42/pw_top.txt)
[pw_dump.txt](/uploads/4dac7e21219d00bf3ca9e5bf9438ab43/pw_dump.txt)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3023"Received error event" multiple brands of bluetooth headphones causing media ...2023-03-18T23:19:56ZJared Johnstone"Received error event" multiple brands of bluetooth headphones causing media and audio playback to entirely hang in multiple programs once media paused for a moment.<!-- 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.65
Linked with libpipewire 0.3.65
```
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`):
`Arch Linux`
- Desktop Environment:
Xfce4 on LightDM
- Kernel version (`uname -r`):
`6.1.8-arch1-1`
- BlueZ version (`bluetoothctl --version`):
`bluetoothctl: 5.66`
- `lsusb`:
```
Bus 008 Device 008: ID 0451:8140 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 008 Device 010: ID 0bda:0411 Realtek Semiconductor Corp. Hub
Bus 008 Device 009: ID 0bda:0411 Realtek Semiconductor Corp. Hub
Bus 008 Device 007: ID 0451:8140 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 022: ID 043e:9a39 LG Electronics USA, Inc. USB Controls
Bus 007 Device 019: ID 1038:1724 SteelSeries ApS SteelSeries Rival 600
Bus 007 Device 017: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 007 Device 020: ID 043e:9a39 LG Electronics USA, Inc. USB Controls
Bus 007 Device 026: ID 2972:0047 FiiO Electronics Technology K3
Bus 007 Device 023: ID 04d9:0356 Holtek Semiconductor, Inc. Ducky Keyboard
Bus 007 Device 027: ID fc02:0101 USB MIDI Interface
Bus 007 Device 024: ID 0909:001c Audio-Technica Corp. AT2020USB+
Bus 007 Device 021: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Bus 007 Device 018: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Bus 007 Device 016: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0029 Intel Corp. AX200 Bluetooth
Bus 001 Device 002: ID 048d:8297 Integrated Technology Express, Inc. IT8297 RGB LED Controller
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
```
- Bluetooth devices:
```
Device A0:A3:09:02:FF:BE Airpods
Device 88:C9:E8:78:C6:45 WH-1000XM5
```
## Description of Problem:
I've noticed this issue on the Airpod Pros and also the WH1000-XM5 series. Video content in any browser or local media application will hang for about 30 seconds while it panics and the user journalctl logs will fill up with lines such as:
```
Feb 09 14:48:29 mypc wireplumber[54384]: (bluez_output.A0_A3_09_02_BE_BE.1-19) running -> error (Received error event)
Feb 09 14:48:29 mypc pipewire[54382]: pw.node: (bluez_output.A0_A3_09_02_BE_BE.1-181) running -> error (Received error event)
Feb 09 14:48:29 mypc pipewire[54382]: pw.node: (bluez_output.A0_A3_09_02_BE_BE.1-181) running -> error (error changing node state: Bad address)
```
If I go to PulseAudio Volume Control (For pipewire-pulse) and change these bluetooth headphone devices from whichever bluetooth audio profile they're currently set to onto another, the media playback unfreezes with audio almost immediately. (Followed by a quick shameful return to the desired bluetooth audio codec they were initially using).
This seems to be happening on all my Archlinux machines the past month.
The airpods use AAC and the XM5s use LDAC by default. It doesn't seem to matter what they use; just that they must have their codec flipped to regain control of a program struggling to resume media playback. Firefox also likes to completely hang during this which renders other tabs unclickable during this headset problem too.
## How Reproducible:
100% Guaranteed every time I use the bluetooth headphones lately.
Happens to other software as well such as Spotify and also Plex Media Player.
### Steps to Reproduce:
1. Connect bluetooth headphones
2. open something like YouTube in Firefox and play a video.
3. Pause+resume or just seek to another part of the video and the above `journalctl --user` output gets printed and the playback fails to resume, stuck trying to resume playback with the spinner.
### Actual Results:
Many media-based applications hang, Firefox even hangs fully after waiting long enough and other tabs cannot be clicked.
### Expected Results:
Play the content!
# 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/2969Rate mismatch with filter-chain when switching rates2023-06-28T10:37:30ZDmitry SharshakovRate mismatch with filter-chain when switching rates## Description of Problem:
Occasionally, filter chain manages to get stuck with capture and playback being on different rates. If that happens, it creates crackling due to under-/overflow and repeating buffer/reading zeroes.
This, but c...## Description of Problem:
Occasionally, filter chain manages to get stuck with capture and playback being on different rates. If that happens, it creates crackling due to under-/overflow and repeating buffer/reading zeroes.
This, but caused by misconfiguration, is fixed by https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/e0cc07210086359cea69fd25b6b1af16f5b3cc51
## How Reproducible:
Randomly
### Steps to Reproduce:
Switch rates with filter-chain based sink. Sometimes you can see capture and playback at different rates.
### Actual Results:
Rate mismatch
### Expected Results:
Filter chain behaves appropriately and obliges capture and playback to match ratesDmitry SharshakovDmitry Sharshakovhttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1437Builtin speakers are not detected2021-08-18T00:24:27Zx yBuiltin speakers are not detected## Overview
Everything is working OK with pulseaudio, while pipewire has this issue
### Desired behavior
Laptop's speakers are detected in pipewire and are able to play sounds via pipewire
### Actual behaviour
Laptop's speakers are ...## Overview
Everything is working OK with pulseaudio, while pipewire has this issue
### Desired behavior
Laptop's speakers are detected in pipewire and are able to play sounds via pipewire
### Actual behaviour
Laptop's speakers are not detected in pipewire (checked in `pavucontrol`). However, bluetooth headset is detected and working correctly
### Enviroment
```
Laptop: Dell XPS 9310
```
```
$ uname -a
Linux grid 5.10.18 #1-NixOS SMP Tue Feb 23 14:53:25 UTC 2021 x86_64 GNU/Linux
$ lspci | grep audio
00:1f.3 Multimedia audio controller: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller (rev 20)
$ pipewire --version
pipewire
Compiled with libpipewire 0.3.31
Linked with libpipewire 0.3.31
$ journalctl --user -u pipewire.service
Jul 20 12:26:40 grid systemd[2251]: Started Multimedia Service.
Jul 20 12:26:41 grid pipewire[2472]: ALSA lib pcm.c:2731:(snd_pcm_open_noupdate) Unknown PCM 0001.hw:sofhdadsp,5
Jul 20 12:26:41 grid pipewire[2472]: '0001.hw:sofhdadsp,5': playback open failed: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: adapter 0x55f2c9d669e0: can't get format: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: usage: node.name=<string>
Jul 20 12:26:41 grid pipewire[2472]: ALSA lib pcm.c:2731:(snd_pcm_open_noupdate) Unknown PCM 0001.hw:sofhdadsp,4
Jul 20 12:26:41 grid pipewire[2472]: '0001.hw:sofhdadsp,4': playback open failed: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: adapter 0x55f2c9d729f0: can't get format: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: usage: node.name=<string>
Jul 20 12:26:41 grid pipewire[2472]: ALSA lib pcm.c:2731:(snd_pcm_open_noupdate) Unknown PCM 0001.hw:sofhdadsp,3
Jul 20 12:26:41 grid pipewire[2472]: '0001.hw:sofhdadsp,3': playback open failed: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: adapter 0x55f2c9d77d60: can't get format: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: usage: node.name=<string>
Jul 20 12:26:41 grid pipewire[2472]: ALSA lib pcm.c:2731:(snd_pcm_open_noupdate) Unknown PCM 0001.hw:sofhdadsp
Jul 20 12:26:41 grid pipewire[2472]: '0001.hw:sofhdadsp': playback open failed: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: adapter 0x55f2c9d7f390: can't get format: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: usage: node.name=<string>
Jul 20 12:26:41 grid pipewire[2472]: ALSA lib pcm.c:2731:(snd_pcm_open_noupdate) Unknown PCM 0001.hw:sofhdadsp
Jul 20 12:26:41 grid pipewire[2472]: '0001.hw:sofhdadsp': capture open failed: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: adapter 0x55f2c9d865c0: can't get format: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: usage: node.name=<string>
Jul 20 12:26:41 grid pipewire[2472]: ALSA lib pcm.c:2731:(snd_pcm_open_noupdate) Unknown PCM 0001.hw:sofhdadsp,6
Jul 20 12:26:41 grid pipewire[2472]: '0001.hw:sofhdadsp,6': capture open failed: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: adapter 0x55f2c9d8d7f0: can't get format: No such file or directory
Jul 20 12:26:41 grid pipewire[2472]: usage: node.name=<string>
```
I've googled the error and the closest match was this issue:
https://bugs.archlinux.org/task/70327
My sof-firmware version was `1.7` downloaded from their official bin repo on github. I've updated it to `1.8`, but nothing changedhttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3588use-after-free when node is destroyed while async param set is in progress2023-10-18T17:10:24ZBarnabás Pőczeuse-after-free when node is destroyed while async param set is in progressSee:
```
[I][206213][51607.320387] pw.node | [ impl-node.c: 408 node_update_state()] (Mutter-78) creating -> suspended
[I][206213][51607.323619] pw.context | [ context.c: 1194 pw_context_recalc_graph()] 0x61a000000c80: ...See:
```
[I][206213][51607.320387] pw.node | [ impl-node.c: 408 node_update_state()] (Mutter-78) creating -> suspended
[I][206213][51607.323619] pw.context | [ context.c: 1194 pw_context_recalc_graph()] 0x61a000000c80: busy:0 reason:node activate
[I][206213][51607.355669] pw.node | [ impl-node.c: 2034 pw_impl_node_destroy()] (Mutter-78) destroy
[I][206213][51607.355819] pw.context | [ context.c: 1194 pw_context_recalc_graph()] 0x61a000000c80: busy:0 reason:active node destroy
=================================================================
==206213==ERROR: AddressSanitizer: heap-use-after-free on address 0x617000047ce0 at pc 0x7fb5978c2560 bp 0x7ffe99d16880 sp 0x7ffe99d16870
WRITE of size 8 at 0x617000047ce0 thread T0
#0 0x7fb5978c255f in spa_list_remove ../spa/include/spa/utils/list.h:61
#1 0x7fb5978c290c in spa_hook_remove ../spa/include/spa/utils/hook.h:385
#2 0x7fb5978dee81 in remove_busy_resource ../src/pipewire/impl-node.c:534
#3 0x7fb5978e0965 in resource_destroy ../src/pipewire/impl-node.c:614
#4 0x7fb59799fcd5 in pw_resource_destroy ../src/pipewire/resource.c:325
#5 0x7fb59785422f in pw_global_destroy ../src/pipewire/global.c:399
#6 0x7fb59777423a in registry_destroy ../src/pipewire/impl-core.c:107
#7 0x7fb59133efb8 in registry_demarshal_destroy ../src/modules/module-protocol-native/protocol-native.c:810
#8 0x7fb591306f42 in process_messages ../src/modules/module-protocol-native.c:383pw_context_recalc_graph()] 0x61a000000c80: busy:0 reason:active node destroy
#9 0x7fb59130883f in connection_data ../src/modules/module-protocol-native.c:454
#10 0x7fb5930cc18c in source_io_func ../spa/plugins/support/loop.c:512
#11 0x7fb5930cbbdb in loop_iterate ../spa/plugins/support/loop.c:496
#12 0x7fb5978a7de4 in pw_main_loop_run ../src/pipewire/main-loop.c:128
#13 0x56112f689722 in main ../src/daemon/pipewire.c:111
#14 0x7fb598245ccf (/usr/lib/libc.so.6+0x27ccf) (BuildId: 8bfe03f6bf9b6a6e2591babd0bbc266837d8f658)
#15 0x7fb598245d89 in __libc_start_main (/usr/lib/libc.so.6+0x27d89) (BuildId: 8bfe03f6bf9b6a6e2591babd0bbc266837d8f658)
#16 0x56112f6882a4 in _start (/home/pb/temp/src/pipewire/build/src/daemon/pipewire+0x42a4) (BuildId: 2ed9678cd6b377f0dee04014fb5e5001474e37a3)
0x617000047ce0 is located 96 bytes inside of 704-byte region [0x617000047c80,0x617000047f40)
freed by thread T0 here:
#0 0x7fb5984dfdb2 in __interceptor_free /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:52
#1 0x7fb59077c6b4 in node_free ../src/modules/module-client-node/client-node.c:1369
#2 0x7fb59790dbd9 in pw_impl_node_destroy ../src/pipewire/impl-node.c:2082
#3 0x7fb5978e1ae1 in global_destroy ../src/pipewire/impl-node.c:677
#4 0x7fb597854028 in pw_global_destroy ../src/pipewire/global.c:396
#5 0x7fb59777423a in registry_destroy ../src/pipewire/impl-core.c:107
#6 0x7fb59133efb8 in registry_demarshal_destroy ../src/modules/module-protocol-native/protocol-native.c:810
#7 0x7fb591306f42 in process_messages ../src/modules/module-protocol-native.c:383
#8 0x7fb59130883f in connection_data ../src/modules/module-protocol-native.c:454
#9 0x7fb5930cc18c in source_io_func ../spa/plugins/support/loop.c:512
#10 0x7fb5930cbbdb in loop_iterate ../spa/plugins/support/loop.c:496
#11 0x7fb5978a7de4 in pw_main_loop_run ../src/pipewire/main-loop.c:128
#12 0x56112f689722 in main ../src/daemon/pipewire.c:111
#13 0x7fb598245ccf (/usr/lib/libc.so.6+0x27ccf) (BuildId: 8bfe03f6bf9b6a6e2591babd0bbc266837d8f658)
previously allocated by thread T0 here:
#0 0x7fb5984e0cc1 in __interceptor_calloc /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:77
#1 0x7fb5907811e0 in pw_impl_client_node_new ../src/modules/module-client-node/client-node.c:1657
#2 0x7fb59072e31b in create_object ../src/modules/module-client-node.c:79
#3 0x7fb59791b006 in pw_impl_factory_create_object ../src/pipewire/impl-factory.c:254
#4 0x7fb597778632 in core_create_object ../src/pipewire/impl-core.c:328
#5 0x7fb59133c80a in core_method_demarshal_create_object ../src/modules/module-protocol-native/protocol-native.c:706
#6 0x7fb591306f42 in process_messages ../src/modules/module-protocol-native.c:383
#7 0x7fb59130883f in connection_data ../src/modules/module-protocol-native.c:454
#8 0x7fb5930cc18c in source_io_func ../spa/plugins/support/loop.c:512
#9 0x7fb5930cbbdb in loop_iterate ../spa/plugins/support/loop.c:496
#10 0x7fb5978a7de4 in pw_main_loop_run ../src/pipewire/main-loop.c:128
#11 0x56112f689722 in main ../src/daemon/pipewire.c:111
#12 0x7fb598245ccf (/usr/lib/libc.so.6+0x27ccf) (BuildId: 8bfe03f6bf9b6a6e2591babd0bbc266837d8f658)
SUMMARY: AddressSanitizer: heap-use-after-free ../spa/include/spa/utils/list.h:61 in spa_list_remove
Shadow bytes around the buggy address:
0x617000047a00: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x617000047a80: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x617000047b00: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x617000047b80: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
0x617000047c00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x617000047c80: fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd fd
0x617000047d00: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x617000047d80: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x617000047e00: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x617000047e80: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x617000047f00: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==206213==ABORTING
Félbeszakítva (core készült)
```
This is because the `pw_impl_node` and the contained `spa_node` objects are destroyed before the `impl-node.c:resource_data` objects that refer to them. This is especially problematic if an async param set is in progress ([`impl-node.c:node_set_param()`](https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/8735d07c0ab132be3ae1f903033c4c558d0b3c57/src/pipewire/impl-node.c#L573)) because in that case the `resource_data` will be on a `spa_hook_list` that has already been destroyed (in this case: in `client-node.c:node_free()`). So when the resource is eventually destroyed, `impl-node.c:remove_busy_resource()` will call `spa_hook_remove()`, which leads to the use-after-free seen above.
I believe something like the following fixes this issue but I think there should be a better solution.
<details>
```diff
diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c
index 6bfa26b16..a8bacfc24 100644
--- a/src/pipewire/impl-node.c
+++ b/src/pipewire/impl-node.c
@@ -39,6 +39,7 @@ struct impl {
struct spa_list param_list;
struct spa_list pending_list;
+ struct spa_list resources;
unsigned int cache_params:1;
unsigned int pending_play:1;
@@ -49,6 +50,7 @@ struct impl {
#define pw_node_resource_param(r,...) pw_node_resource(r,param,0,__VA_ARGS__)
struct resource_data {
+ struct spa_list link;
struct pw_impl_node *node;
struct pw_resource *resource;
@@ -608,12 +610,17 @@ static const struct pw_node_methods node_methods = {
.send_command = node_send_command
};
-static void resource_destroy(void *data)
+static void resource_data_clear(struct resource_data *d)
{
- struct resource_data *d = data;
remove_busy_resource(d);
spa_hook_remove(&d->resource_listener);
spa_hook_remove(&d->object_listener);
+ spa_list_remove(&d->link);
+}
+
+static void resource_destroy(void *data)
+{
+ resource_data_clear(data);
}
static void resource_pong(void *data, int seq)
@@ -655,6 +662,8 @@ global_bind(void *object, struct pw_impl_client *client, uint32_t permissions,
&data->object_listener,
&node_methods, data);
+ spa_list_append(&SPA_CONTAINER_OF(this, struct impl, this)->resources, &data->link);
+
pw_log_debug("%p: bound to %d", this, resource->id);
pw_global_add_resource(global, resource);
@@ -1347,6 +1356,7 @@ struct pw_impl_node *pw_context_create_node(struct pw_context *context,
spa_list_init(&impl->param_list);
spa_list_init(&impl->pending_list);
+ spa_list_init(&impl->resources);
this = &impl->this;
this->context = context;
@@ -2069,6 +2079,10 @@ void pw_impl_node_destroy(struct pw_impl_node *node)
spa_list_consume(port, &node->output_ports, link)
pw_impl_port_destroy(port);
+ struct resource_data *d;
+ spa_list_consume(d, &impl->resources, link)
+ resource_data_clear(d);
+
if (node->global) {
spa_hook_remove(&node->global_listener);
pw_global_destroy(node->global);
```
</details>https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1783Fedora 35 Screen Lock Switches Output Device2022-04-11T23:49:35Zjasker5183Fedora 35 Screen Lock Switches Output Device<!-- 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.39
- 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.39
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Fedora 35
- Desktop Environment: Gnome 41.1
- Kernel version (`uname -r`): 5.14.15-300.fc35.x86_64
## Description of Problem:
This seems to be a re-hash of #466/#1199. I lock my screen and my receiver's (Sony STR-DH590) screen goes from PCM to (-----) indicating to me that a node has been suspended. I unlock the screen and look at the gnome-settings sound tab, the output device is now blank. Sound will still work but it takes 2-3 seconds for sound to play or for the node to be un-suspended. The weird thing is that if I click off the sound tab to say sharing then click back it will un-suspend the node and keep it that way. The output device will also be listed properly (HDMI), but for some reason it shows the stereo properties (just balance). If I click from sound back to sharing then back to sound again it is now on the proper setting (Digital 5.1 surround (HDMI) output) where it shows balance, fade, and subwoofer. This is all without changing a single setting just changing the tab in gnome-settings.
I imagine this is a Wireplumber problem as this didn't happen with media-session, so let me know if you want me to move it over there.
Also how do I change the setting now to leave my nodes un-suspended? This would save me from leaving gnome-settings open on the sound tab all the time. Without this I do not hear notification sounds.
Thanks
## How Reproducible:
So far every time.
### Steps to Reproduce:
1. Lock screen. Notice receiver doesn't say PCM just (-----).
2. Unlock screen and look at gnome-settings:
![afterscreenlock](/uploads/ac74faaaf36e785c6b571bd59662f1d5/afterscreenlock.png)
3. Without changing any settings, switch to different tab, then switch back.
![switchtab1](/uploads/d16a6143647e35facf20c6d13ac69c7d/switchtab1.png)
4. One more time.
![switchtab2](/uploads/827fef195fd25fe188e62c688c340193/switchtab2.png)
### Actual Results:
Above.
### Expected Results:
Nothing changes just like with pipewire-media-session.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`:
[pw-dump.log](/uploads/09d46b8c87c3af33c0259785aa4223bf/pw-dump.log) - Before screen lock.
[pw-dump.log](/uploads/a262154c8f7b93d708528c52d00e4151/pw-dump.log) - After screen unlock.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1493Since 0.3.33 USB card doesn't work2021-08-08T08:20:23ZDavid MarzalSince 0.3.33 USB card doesn't work# Version, Distribution, Desktop Environment:
Compiled with libpipewire 0.3.33
Linked with libpipewire 0.3.33
[Arch Linux](https://bugs.archlinux.org/task/71765) / KDE
# Description of Problem:
Before 0.3.33 USB device was working OK, ...# Version, Distribution, Desktop Environment:
Compiled with libpipewire 0.3.33
Linked with libpipewire 0.3.33
[Arch Linux](https://bugs.archlinux.org/task/71765) / KDE
# Description of Problem:
Before 0.3.33 USB device was working OK, but with 0.3.33 the HyperX Cloud Revolver S has stop working
# How Reproducible:
Always
## Steps to Reproduce:
1.Power on
2.Try to use the device
## Actual Results:
USB card not recognized / initialized
## Expected Results:
USB is shown as always
# Additional Info Eg. `pw-dump -N > file` (As Attachment Please):
```
ago 07 16:19:34 kdexpress kernel: usb 1-2: new full-speed USB device number 9 using xhci_hcd
ago 07 16:19:34 kdexpress kernel: usb 1-2: New USB device found, idVendor=0951, idProduct=16ad, bcdDevice= 0.34
ago 07 16:19:34 kdexpress kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
ago 07 16:19:34 kdexpress kernel: usb 1-2: Product: HyperX Cloud Revolver S
ago 07 16:19:34 kdexpress kernel: usb 1-2: Manufacturer: Kingston
ago 07 16:19:34 kdexpress kernel: usb 1-2: SerialNumber: 000000000000
ago 07 16:19:34 kdexpress kernel: input: Kingston HyperX Cloud Revolver S as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.3/0003:0951:16AD.0007/input/input21
ago 07 16:19:34 kdexpress kernel: hid-generic 0003:0951:16AD.0007: input,hidraw0: USB HID v1.11 Device [Kingston HyperX Cloud Revolver S] on usb-0000:00:14.0-2/input3
ago 07 16:19:34 kdexpress mtp-probe[1105]: checking bus 1, device 9: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2"
ago 07 16:19:34 kdexpress mtp-probe[1105]: bus: 1, device: 9 was not an MTP device
ago 07 16:19:34 kdexpress mtp-probe[1114]: checking bus 1, device 9: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2"
ago 07 16:19:34 kdexpress mtp-probe[1114]: bus: 1, device: 9 was not an MTP device
ago 07 16:19:34 kdexpress pipewire[957]: ALSA lib confmisc.c:1369:(snd_func_refer) Unable to find definition 'cards.1.pcm.front.0:CARD=1'
ago 07 16:19:34 kdexpress pipewire[957]: ALSA lib conf.c:5111:(_snd_config_evaluate) function snd_func_refer returned error: No existe el fichero o el directorio
ago 07 16:19:34 kdexpress pipewire[957]: ALSA lib conf.c:5599:(snd_config_expand) Evaluate error: No existe el fichero o el directorio
ago 07 16:19:34 kdexpress pipewire[957]: ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM front:1
ago 07 16:19:34 kdexpress pipewire[957]: 'front:1': playback open failed: No existe el fichero o el directorio
ago 07 16:19:34 kdexpress pipewire[957]: adapter 0x297f67ade10: can't get format: No existe el fichero o el directorio
ago 07 16:19:34 kdexpress pipewire[957]: usage: node.name=<string>
ago 07 16:19:34 kdexpress pipewire-media-session[958]: error id:13 seq:1027 res:-22 (Argumento inválido): usage: node.name=<string>
ago 07 16:19:34 kdexpress plasmashell[703]: org.kde.plasma.pulseaudio: No object for name "alsa_output.pci-0000_01_00.1.hdmi-stereo-extra4.monitor"
```
[pw-dump](/uploads/a3ea8f44f84678fdb4cc3ba6eea13e16/pw-dump)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1459Can't run Carla using pipewire : undefined symbol: pw_thread_utils_get2021-07-26T07:44:48Zwady101Can't run Carla using pipewire : undefined symbol: pw_thread_utils_get
**Version, Distribution, Desktop Environment:**
**Version** - 0.3.31
**Distribution** - 5.12.15-arch1-1, Arch Linux
**DE** - KDE
**Description of Problem:**
Was following these steps to get Carla working with Pipewire; https://wiki.a...
**Version, Distribution, Desktop Environment:**
**Version** - 0.3.31
**Distribution** - 5.12.15-arch1-1, Arch Linux
**DE** - KDE
**Description of Problem:**
Was following these steps to get Carla working with Pipewire; https://wiki.archlinux.org/title/PipeWire#LADSPA,_LV2_and_VST_plugins.
After I run `pw-jack carla-rack`, I get the following error:
```
Carla 2.3.1 started, status:
Python version: 3.9.6
Qt version: 5.15.2
PyQt version: 5.15.4
Binary dir: /usr/lib/carla
Resources dir: /usr/share/carla/resources
Traceback (most recent call last):
File "/usr/share/carla/carla-rack", line 48, in <module>
host = initHost(initName, libPrefix, False, False, True)
File "/usr/share/carla/carla_host.py", line 3201, in initHost
host = HostClass() if HostClass is not None else CarlaHostQtDLL(libname, loadGlobal)
File "/usr/share/carla/carla_backend_qt.py", line 96, in __init__
CarlaHostDLL.__init__(self, libName, loadGlobal)
File "/usr/share/carla/carla_backend.py", line 2614, in __init__
self.lib = CDLL(libName, RTLD_GLOBAL if loadGlobal else RTLD_LOCAL)
File "/usr/lib/python3.9/ctypes/__init__.py", line 374, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /usr/lib/pipewire-0.3/jack/libjack.so.0: undefined symbol: pw_thread_utils_get
```
And just to clarify, pipewire is working well (attached output of `pactl info`;
```
Server String: /run/user/1000/pulse/native
Library Protocol Version: 34
Server Protocol Version: 35
Is Local: yes
Client Index: 73
Tile Size: 65472
User Name: mister
Host Name: kogami
Server Name: PulseAudio (on PipeWire 0.3.31)
Server Version: 14.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_0a_00.3.analog-stereo
Default Source: alsa_input.pci-0000_0a_00.3.analog-stereo
Cookie: 5903:dcae
```
**Steps to reproduce:**
```
pacman -S pipewire pipewire-pulse pipewire-jack carla
pactl load-module module-null-sink object.linger=1 media.class=Audio/Sink sink_name=default_null_sink channel_map=FL,FR
```
Followed by
```
pw-jack carla-rack
```
^ here it fails.
**Actual Results:**
```
OSError: /usr/lib/pipewire-0.3/jack/libjack.so.0: undefined symbol: pw_thread_utils_get
```
Whole log, above in Description
**Expected Results**
Carla opens up with pipewire backend
**Additional Info Eg. `pw-dump -N > file` (As Attachment Please):**
Added.
[file](/uploads/d0bdd03a55df74c09ab175f2863a4516/file)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1458Clang 12 Test FAILS2021-07-27T08:22:46ZGrigoryClang 12 Test FAILSVersion, Distribution, Desktop Environment:
0.3.32
Arch Linux, KDE Plasma
Description of Problem:
Test fails
How Reproducible:
```bash
export CARCH="x86_64"
export CHOST="x86_64-pc-linux-gnu"
export CC=clang
export CXX=clang++
export...Version, Distribution, Desktop Environment:
0.3.32
Arch Linux, KDE Plasma
Description of Problem:
Test fails
How Reproducible:
```bash
export CARCH="x86_64"
export CHOST="x86_64-pc-linux-gnu"
export CC=clang
export CXX=clang++
export LD=ld.lld
export CC_LD=lld
export CXX_LD=lld
export AR=llvm-ar
export NM=llvm-nm
export STRIP=llvm-strip
export OBJCOPY=llvm-objcopy
export OBJDUMP=llvm-objdump
export READELF=llvm-readelf
export RANLIB=llvm-ranlib
export HOSTCC=clang
export HOSTCXX=clang++
export HOSTAR=llvm-ar
export HOSTLD=ld.lld
export LINK=llvm-link
export CPPFLAGS="-D_FORTIFY_SOURCE=2"
export CFLAGS="-fdiagnostics-color=always -pipe -O2 -fstack-protector-strong"
export CXXFLAGS="-fdiagnostics-color=always -pipe -O2 -fstack-protector-strong"
export LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
meson setup pipewire build \
--prefix /usr \
--libexecdir lib \
--sbindir bin \
--auto-features enabled \
--wrap-mode nodownload \
-D debug=false \
-D optimization=2 \
-D b_ndebug=true \
-D b_pie=true \
-D docs=enabled \
-D jack=disabled \
-D libcamera=disabled \
-D udevrulesdir=/usr/lib/udev/rules.d \
-D roc=disabled
meson compile -C build
meson test -C build --print-errorlogs
```
[testlog.txt](/uploads/61d3106bd1331780035bd970ad40149b/testlog.txt)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1456PIPEWIRE_LATENCY does not set JACK applications buffer size2021-07-28T17:20:00ZJeff BealePIPEWIRE_LATENCY does not set JACK applications buffer sizeI created a copy of the pipewire.conf file in ~/.config/pipewire with the following configuration:
```
#default.clock.rate = 48000
#default.clock.quantum = 4096
#default.clock.min-quantum = 32
#default.clock.max...I created a copy of the pipewire.conf file in ~/.config/pipewire with the following configuration:
```
#default.clock.rate = 48000
#default.clock.quantum = 4096
#default.clock.min-quantum = 32
#default.clock.max-quantum = 8192
#default.video.width = 640
#default.video.height = 480
#default.video.rate.num = 25
#default.video.rate.denom = 1
#PIPEWIRE_LATENCY=128/48000 Carla
#PIPEWIRE_LATENCY=256/48000 Zrythm
#PIPEWIRE_LATENCY=4096/48000 Ardour
```
After editing, I tested and the following results are both before and after restarting the machine:
![image](/uploads/23a8652c22bf95530da53d54c0c4fa8a/image.png)
![Screen_2021-07-24_2028-1](/uploads/99ab34b628bcbd9349d4cd7592e62463/Screen_2021-07-24_2028-1.jpeg)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1444Hydrogen jack audio rendering is broken with pipewire jack client library2022-04-27T10:31:07ZCharbel JacquinHydrogen jack audio rendering is broken with pipewire jack client libraryI noticed that Hydrogen drum machine audio rendering is broken with pipewire jack client library.
[hydrogen](https://github.com/hydrogen-music/hydrogen)
Other Hydrogen's audio drivers are fine (PortAudio, Alsa, PulseAudio)
With the Jac...I noticed that Hydrogen drum machine audio rendering is broken with pipewire jack client library.
[hydrogen](https://github.com/hydrogen-music/hydrogen)
Other Hydrogen's audio drivers are fine (PortAudio, Alsa, PulseAudio)
With the Jack One, you hear only saturated noise that stops only when you reset the audio driver, regardless of your drum pattern. As pipewire's jack client library should be a drop in replacement, I report it.
Regards.
## Details
```bash
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute
```
```bash
$ apt policy pipewire
pipewire:
Installé : 0.3.32+dfsg1-1ubuntu21.04
Candidat : 0.3.32+dfsg1-1ubuntu21.04
Table de version :
*** 0.3.32+dfsg1-1ubuntu21.04 500
500 http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu hirsute/main amd64 Packages
100 /var/lib/dpkg/status
0.3.24-3 500
500 http://fr.archive.ubuntu.com/ubuntu hirsute/main amd64 Packages
✔ ~/Hack/hydrogen [lightweight_h2core_objects|✚ 1…26⚑ 4]
```
```bash
LANG=C apt search pipewire|grep installed
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
gnome-remote-desktop/hirsute,now 0.1.9-5 amd64 [installed,automatic]
gstreamer1.0-pipewire/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
libpipewire-0.3-0/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
libpipewire-0.3-dev/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
libpipewire-0.3-modules/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
libspa-0.2-bluetooth/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
libspa-0.2-dev/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
libspa-0.2-jack/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
libspa-0.2-modules/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
pipewire/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
pipewire-audio-client-libraries/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
pipewire-bin/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
pipewire-doc/hirsute,hirsute,now 0.3.32+dfsg1-1ubuntu21.04 all [installed]
pipewire-locales/hirsute,hirsute,now 0.3.32+dfsg1-1ubuntu21.04 all [installed]
pipewire-media-session/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
pipewire-pulse/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
pipewire-tests/hirsute,now 0.3.32+dfsg1-1ubuntu21.04 amd64 [installed]
```https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1431Audio switching on Dell inspiron 3420 not handled properly2022-05-12T20:26:56ZLunaAudio switching on Dell inspiron 3420 not handled properlyIf you are filing this issue with a regular release please try master as it might already be fixed.
Version, Distribution, Desktop Environment:
pipewire
Compiled with libpipewire 0.3.31
Linked with libpipewire 0.3.31
Kde plasma 5.22.3
...If you are filing this issue with a regular release please try master as it might already be fixed.
Version, Distribution, Desktop Environment:
pipewire
Compiled with libpipewire 0.3.31
Linked with libpipewire 0.3.31
Kde plasma 5.22.3
Description of Problem:
When headphones are directly plugged in to the laptop pipewire does not switch to the headphones as intended rather playing audio out of both the internal speakers and the headphones. Using bluetooth speakers/headphones this issue does not occur. Audio switching does work correctly out of the box with both pluseaudio and alsa
How Reproducible:
This happens with a fresh install of pipewire reliably
Steps to Reproduce:
1. plug in headphones, and switch audio device to the headphones if required
2. play audio, audio is outputted through both the internal speakers and headphoneshttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1422won't compile on raspbian2021-07-20T15:05:18Zfolkertvanheusdenwon't compile on raspbianAt least this (in some way) is required:
```
diff --git a/src/modules/module-rtkit.c b/src/modules/module-rtkit.c
index de30f41..859d5c7 100644
--- a/src/modules/module-rtkit.c
+++ b/src/modules/module-rtkit.c
@@ -183,7 +183,7 @@ void p...At least this (in some way) is required:
```
diff --git a/src/modules/module-rtkit.c b/src/modules/module-rtkit.c
index de30f41..859d5c7 100644
--- a/src/modules/module-rtkit.c
+++ b/src/modules/module-rtkit.c
@@ -183,7 +183,7 @@ void pw_rtkit_bus_free(struct pw_rtkit_bus *system_bus)
static pid_t _gettid(void)
{
#ifndef __FreeBSD__
- return (pid_t) gettid();
+ return syscall(SYS_gettid);
#else
long pid;
thr_self(&pid);
@@ -518,7 +518,7 @@ static void *custom_start(void *data)
struct impl *impl = this->impl;
pthread_mutex_lock(&impl->lock);
- this->pid = gettid();
+ this->pid = _gettid();
pthread_cond_broadcast(&impl->cond);
pthread_mutex_unlock(&impl->lock);
```https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1400Microphone Not Working Dual Codec ALC12202022-05-24T03:05:28ZAeonik ChaosMicrophone Not Working Dual Codec ALC1220Version, Distribution, Desktop Environment:
- Arch Linux 5.12.14-arch1-1
- KDE Plasma 5.22.2
- Pipewire 0.3.31
Description of Problem:
Microphone input from Realtek ALC1220 sound card with Dual Codecs not producing any sound.
Steps to ...Version, Distribution, Desktop Environment:
- Arch Linux 5.12.14-arch1-1
- KDE Plasma 5.22.2
- Pipewire 0.3.31
Description of Problem:
Microphone input from Realtek ALC1220 sound card with Dual Codecs not producing any sound.
Steps to Reproduce:
1. arecord -vvv --format=dat --device=plughw:0,4 /dev/null
Actual Results:
No sound recorded from ALC1220 microphone jacks.
Expected Results:
Sound recorded from ALC1220 microphone inputs.
Additional Info:
I have had issues with this sound card before. It is an ALC1220 Dual Codec Sound card. You can see previous troubleshooting here: https://bbs.archlinux.org/viewtopic.php?id=262558. It ended up being a kernel issue before. But my upgrade to Pipewire has broken it. Two other microphones on my system are working properly. I have confirmed that it is not a hardware issue, running other distros without Pipewire work fine.
Possible related issue: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/748
[pw-dump-07052021](/uploads/c9743fcad070be135d2f5a3d1fbfa309/pw-dump-07052021)2021-08-31https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1391Pulseaudio Sink event subscription called when Source state changes2022-05-20T15:52:41ZErik ReiderPulseaudio Sink event subscription called when Source state changes# Version, Distribution, Desktop Environment:
- Manjaro unstable repos
- pipewire-git: 0.3.31.2.g5497d2d90-1
- pipewire-jack: 1:0.3.30-2
- pipewire-media-session-git: 0.3.31.2.g5497d2d90-1
- pipewire-pulse-git: 0.3.31.2.g5497d2d90-1
- sw...# Version, Distribution, Desktop Environment:
- Manjaro unstable repos
- pipewire-git: 0.3.31.2.g5497d2d90-1
- pipewire-jack: 1:0.3.30-2
- pipewire-media-session-git: 0.3.31.2.g5497d2d90-1
- pipewire-pulse-git: 0.3.31.2.g5497d2d90-1
- sway-git: r6718.5cdce42d-1
# Description of Problem:
When monitoring "PA_SUBSCRIPTION_MASK_SINK", the event callback gets fired when playing or resuming audio. The callback should only be called when the Sink state changes if I've understood correctly and not when the Source state changes.
# Steps to Reproduce:
1. Run the simple python script listed below with the pip package [pulsectl](https://pypi.org/project/pulsectl/) installed
``` python
from pulsectl import Pulse
type = "sink"
pulseInfo = Pulse(type)
with Pulse(type) as pulse:
def print_events(ev=None):
print(ev)
pulse.event_mask_set(type)
pulse.event_callback_set(print_events)
pulse.event_listen()
```
# Actual Results:
Callback called when both Sink and Source state changes
# Expected Results:
The callback should only be called when the Sink state changes
# Additional Info:
[file](/uploads/bfe5b209fb32ed0f9372f1cb66ab8c52/file)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1384Can't set or get default sound card volume with amixer2021-09-14T19:11:57ZSourav Dassouravdas142@gmail.comCan't set or get default sound card volume with amixerIf you are filing this issue with a regular release please try master as it might already be fixed.
Version, Distribution, Desktop Environment:
0.3.31, Arch-Linux, i3-wm
Description of Problem:
Can't get or set sound information of d...If you are filing this issue with a regular release please try master as it might already be fixed.
Version, Distribution, Desktop Environment:
0.3.31, Arch-Linux, i3-wm
Description of Problem:
Can't get or set sound information of default sound card with `amixer -D default get Master`, The output of the command - `amixer: Unable to find simple control 'Master',0` Below is the screenshot of `alsamixer` -
![image](/uploads/f6698db17f83cd8c2f959ca357d8e2c4/image.png)
How Reproducible:
Always
Steps to Reproduce:
1. compile >= commit e301048abb7d861b81a31da47dd2f394d8953354 (found from `git bisect`) from [`PKGBUILD`](https://github.com/archlinux/svntogit-packages/blob/packages/pipewire/trunk/PKGBUILD)
2. Install generated pkgs with `pacman -U` reload and restart PW user system services
3. Open `alsamixer` you can find the bug, Or, give `amixer -D default get Master` you can find No sound Information
Actual Results:
Can't set or get default sound from `amixer` or `alsamixer`
Expected Results:
We should change default sound from the `alsamixer` also.
<img src="https://gitlab.freedesktop.org/pipewire/pipewire/uploads/aee8f54014ebf2d20b4c81d0d1bc0ded/image.png" height=350 width=480>
Or, we should get the output from `amixer -D default get Master`, like below
```bash
┌─[✗]─[sourav@Arch-Linux]─[pipewire-bin]
└──╼ $ amixer -D default get Master
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 57853 [88%] [on]
Front Right: Playback 57853 [88%] [on]
```
Additional Info Eg. `pw-dump -N > file` (As Attachment Please):
[pw-dump.log](/uploads/0cbbc510ce78a10e260e8a1ffebd1d59/pw-dump.log)
On addition, If I downgrade `pipewire-media-session` package only (from `0.3.31-1` to `0.3.30-2`), The problem seems to be fixed.
**The `pipewire-media-session` package (0.3.31-1) contents -**
```bash
usr/
usr/bin/
usr/bin/pipewire-media-session
usr/lib/
usr/lib/systemd/
usr/lib/systemd/user/
usr/lib/systemd/user/pipewire-media-session.service
usr/share/
usr/share/licenses/
usr/share/licenses/pipewire-media-session/
usr/share/licenses/pipewire-media-session/COPYING
usr/share/pipewire/
usr/share/pipewire/media-session.d/
usr/share/pipewire/media-session.d/alsa-monitor.conf
usr/share/pipewire/media-session.d/bluez-hardware.conf
usr/share/pipewire/media-session.d/bluez-monitor.conf
usr/share/pipewire/media-session.d/media-session.conf
usr/share/pipewire/media-session.d/v4l2-monitor.conf
```
**package Links to so-names -**
```bash
libasound.so.2
libc.so.6
libdbus-1.so.3
libpipewire-0.3.so.0
libpthread.so.0
libsystemd.so.0
```https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1371Pipewire crashes with module-filter-chain2021-08-29T10:20:51ZA TPipewire crashes with module-filter-chainI've been trying to use Pipewire's module-filter-chain to build a systemwide parametric EQ based on the sink-eq6 example. I was never able to get the example to work properly, but came up with the following, pasted into the `context.modu...I've been trying to use Pipewire's module-filter-chain to build a systemwide parametric EQ based on the sink-eq6 example. I was never able to get the example to work properly, but came up with the following, pasted into the `context.modules` array of the default pipewire.conf:
{ name = libpipewire-module-filter-chain
args = {
node.name = "effect_output.hpeq"
node.description = "Headphone EQ Sink"
media.name = "Headphone EQ Sink"
filter.graph = {
nodes = [
{
type = builtin
name = eq_preamp
label = bq_highshelf
control = { "Freq" = 0 "Q" = 1.0 "Gain" = -12.5 }
}
{
type = builtin
name = eq_band_1
label = bq_peaking
control = { "Freq" = 25.0 "Q" = 1.0 "Gain" = 7.0 }
}
{
type = builtin
name = eq_band_2
label = bq_lowshelf
control = { "Freq" = 105.0 "Q" = 0.71 "Gain" = 5.5 }
}
{
type = builtin
name = eq_band_3
label = bq_peaking
control = { "Freq" = 700.0 "Q" = 1.0 "Gain" = 1.0 }
}
{
type = builtin
name = eq_band_4
label = bq_peaking
control = { "Freq" = 1050.0 "Q" = 2.0 "Gain" = -1.8 }
}
{
type = builtin
name = eq_band_5
label = bq_peaking
control = { "Freq" = 1900.0 "Q" = 1.2 "Gain" = 5.7 }
}
{
type = builtin
name = eq_band_6
label = bq_peaking
control = { "Freq" = 2900.0 "Q" = 1.2 "Gain" = 2.0 }
}
{
type = builtin
name = eq_band_7
label = bq_peaking
control = { "Freq" = 6100.0 "Q" = 2.0 "Gain" = -2.8 }
}
{
type = builtin
name = eq_band_8
label = bq_peaking
control = { "Freq" = 6750.0 "Q" = 4.5 "Gain" = -4.7 }
}
{
type = builtin
name = eq_band_9
label = bq_peaking
control = { "Freq" = 8450.0 "Q" = 4.0 "Gain" = -2.9 }
}
]
links = [
{ output = "eq_preamp:Out" input = "eq_band_1:In" }
{ output = "eq_band_1:Out" input = "eq_band_2:In" }
{ output = "eq_band_2:Out" input = "eq_band_3:In" }
{ output = "eq_band_3:Out" input = "eq_band_4:In" }
{ output = "eq_band_4:Out" input = "eq_band_5:In" }
{ output = "eq_band_5:Out" input = "eq_band_6:In" }
{ output = "eq_band_6:Out" input = "eq_band_7:In" }
{ output = "eq_band_7:Out" input = "eq_band_8:In" }
{ output = "eq_band_8:Out" input = "eq_band_9:In" }
]
inputs = [ "eq_preamp:In" ]
outputs = [ "eq_band_9:Out" ]
}
capture.props = {
media.class = Audio/Sink
audio.channels = 2
audio.position = [ FL FR ]
}
playback.props = {
node.passive = true
audio.channels = 2
audio.position = [ FL FR ]
node.target = "alsa_output.pci-0000_2a_00.4.analog-stereo"
}
}
}
With Pipewire < 0.3.29 it largely failed with it producing 10 different nodes in the pw-link output. Trying it with 0.3.29 resulted in Pipewire running, and I had to manually add the channel mapping and node.target output device otherwise it wouldn't output anything. However only the preamp worked; the audio wasn't processed by further nodes i.e. it was just quieter.
With 0.3.31 vanilla Pipewire works OK, but adding the above filter just crashes Pipewire, with the following log from journalctl under Arch:
Jun 29 22:18:42 hostname systemd[1031]: Started Multimedia Service.
Jun 29 22:20:13 hostname pipewire[3086]: node 0x559d57703d20: output port 0 unknown
Jun 29 22:20:13 hostname pipewire[3086]: free(): double free detected in tcache 2
Jun 29 22:20:13 hostname systemd-coredump[3238]: [🡕] Process 3086 (pipewire) of user 1000 dumped core.
Stack trace of thread 3086:
#0 0x00007f0ffa21bd22 raise (libc.so.6 + 0x3cd22)
#1 0x00007f0ffa205862 abort (libc.so.6 + 0x26862)
#2 0x00007f0ffa25dd28 __libc_message (libc.so.6 + 0x7ed28)
#3 0x00007f0ffa26592a malloc_printerr (libc.so.6 + 0x8692a)
#4 0x00007f0ffa267408 _int_free (libc.so.6 + 0x88408)
#5 0x00007f0ffa26a9e8 __libc_free (libc.so.6 + 0x8b9e8)
#6 0x00007f0ffa42c3ea n/a (libpipewire-0.3.so.0 + 0x603ea)
#7 0x00007f0ff3e6894d n/a (libspa-audioconvert.so + 0x1994d)
#8 0x00007f0ff3e69527 n/a (libspa-audioconvert.so + 0x1a527)
#9 0x00007f0ff3ea217c n/a (libspa-audioconvert.so + 0x5317c)
#10 0x00007f0ff3ea2c04 n/a (libspa-audioconvert.so + 0x53c04)
#11 0x00007f0ff3e7710c n/a (libspa-audioconvert.so + 0x2810c)
#12 0x00007f0ff3e6a02e n/a (libspa-audioconvert.so + 0x1b02e)
#13 0x00007f0ffa433145 pw_impl_port_set_param (libpipewire-0.3.so.0 + 0x67145)
#14 0x00007f0ffa445933 n/a (libpipewire-0.3.so.0 + 0x79933)
#15 0x00007f0ffa445b84 n/a (libpipewire-0.3.so.0 + 0x79b84)
#16 0x00007f0ffa41cf37 pw_impl_link_destroy (libpipewire-0.3.so.0 + 0x50f37)
#17 0x00007f0ffa42c4c6 n/a (libpipewire-0.3.so.0 + 0x604c6)
#18 0x00007f0ff3e6894d n/a (libspa-audioconvert.so + 0x1994d)
#19 0x00007f0ff3e69527 n/a (libspa-audioconvert.so + 0x1a527)
#20 0x00007f0ff3ea217c n/a (libspa-audioconvert.so + 0x5317c)
#21 0x00007f0ff3ea2a11 n/a (libspa-audioconvert.so + 0x53a11)
#22 0x00007f0ff3e75e37 n/a (libspa-audioconvert.so + 0x26e37)
#23 0x00007f0ff3e76650 n/a (libspa-audioconvert.so + 0x27650)
#24 0x00007f0ff3e7232b n/a (libspa-audioconvert.so + 0x2332b)
#25 0x00007f0ff8238f80 n/a (libpipewire-module-client-node.so + 0xcf80)
#26 0x00007f0ff8249c75 n/a (libpipewire-module-client-node.so + 0x1dc75)
#27 0x00007f0ff929abc4 n/a (libpipewire-module-protocol-native.so + 0x11bc4)
#28 0x00007f0ff929b1b0 n/a (libpipewire-module-protocol-native.so + 0x121b0)
#29 0x00007f0ffa49c11b n/a (libspa-support.so + 0x811b)
#30 0x00007f0ffa415603 pw_main_loop_run (libpipewire-0.3.so.0 + 0x49603)
#31 0x0000559d567a0292 n/a (pipewire + 0x1292)
#32 0x00007f0ffa206b25 __libc_start_main (libc.so.6 + 0x27b25)
#33 0x0000559d567a03ee n/a (pipewire + 0x13ee)
Stack trace of thread 3087:
#0 0x00007f0ffa2dd92e epoll_wait (libc.so.6 + 0xfe92e)
#1 0x00007f0ffa4a5651 n/a (libspa-support.so + 0x11651)
#2 0x00007f0ffa49c084 n/a (libspa-support.so + 0x8084)
#3 0x00007f0ffa407250 n/a (libpipewire-0.3.so.0 + 0x3b250)
#4 0x00007f0ffa3b4259 start_thread (libpthread.so.0 + 0x9259)
#5 0x00007f0ffa2dd5e3 __clone (libc.so.6 + 0xfe5e3)
Jun 29 22:20:13 hostname systemd[1031]: pipewire.service: Main process exited, code=dumped, status=6/ABRT
Jun 29 22:20:13 hostname systemd[1031]: pipewire.service: Failed with result 'core-dump'.
Jun 29 22:20:13 hostname systemd[1031]: pipewire.service: Scheduled restart job, restart counter is at 2.
Jun 29 22:20:13 hostname systemd[1031]: Stopped Multimedia Service.
Thanks if you can consider debugging the filter chain so it works -- I hope I've got the rules right. The preamp I implemented from reading the biquad source code, it mentioned a freq of zero meant it was a gain filter only (this might be worth documenting or updating the sink-eq6 example, as without it any positive gain results in distortion).https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1357Static noise when using module-loopback but not with pw-loopback2022-04-12T18:21:46ZErik ReiderStatic noise when using module-loopback but not with pw-loopbackEdit: `latency_msec=20` seems to fix this
# Version, Distribution, Desktop Environment:
- Manjaro unstable repos
- pipewire-git: 0.3.31.2.g5497d2d90-1
- pipewire-jack: 1:0.3.30-2
- pipewire-media-session-git: 0.3.31.2.g5497d2d90-1
- pip...Edit: `latency_msec=20` seems to fix this
# Version, Distribution, Desktop Environment:
- Manjaro unstable repos
- pipewire-git: 0.3.31.2.g5497d2d90-1
- pipewire-jack: 1:0.3.30-2
- pipewire-media-session-git: 0.3.31.2.g5497d2d90-1
- pipewire-pulse-git: 0.3.31.2.g5497d2d90-1
- sway-git: r6718.5cdce42d-1
# Description of Problem:
When loading the module-loopback module using pactl the desktop audio (firefox, discord, etc...) sometimes emits a little bit of noise. The noise disappears when using pw-loopback instead. I only seem to run into this issue when using my motherboard's audio (Gigabyte X470 Gaming 5). When using pactl and loading the module with the regular pulseaudio installed (instead of pipewire-pulse), everything works as expected.
This somehow doesn't affect the audio being looped back, in my case being my Nintendo Switch.
# How Reproducible:
This could be an incompatibility with my mobo and pipewire-pulse's pactl?
# Steps to Reproduce:
1. Run `pactl load-module module-loopback latency_msec=1`
# Actual Results:
Noise while listening to anything.
# Expected Results:
Clean audio
# Additional Info:
[file](/uploads/971192c74d200488fb4e22fd6f3ffdf5/file)