pipewire issueshttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues2023-12-11T16:22:52Zhttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3302cross compile error2023-12-11T16:22:52Zbiaobiaocross compile errorwhen i run **ninja** to **cross compile** the project,it show :
/spa/plugins/avb/avb-pcm.c: In function ‘setup_socket’:
../spa/plugins/avb/avb-pcm.c:560:22: error: storage size of ‘txtime_cfg’ isn’t known
struct sock_txtime txtime_cfg...when i run **ninja** to **cross compile** the project,it show :
/spa/plugins/avb/avb-pcm.c: In function ‘setup_socket’:
../spa/plugins/avb/avb-pcm.c:560:22: error: storage size of ‘txtime_cfg’ isn’t known
struct sock_txtime txtime_cfg;
^~~~~~~~~~
../spa/plugins/avb/avb-pcm.c:572:36: error: ‘SO_TXTIME’ undeclared (first use in this function); did you mean ‘SI_TIMER’?
res = setsockopt(fd, SOL_SOCKET, SO_TXTIME, &txtime_cfg,
^~~~~~~~~
SI_TIMER
../spa/plugins/avb/avb-pcm.c:572:36: note: each undeclared identifier is reported only once for each function it appears in
so how to fix the problem?https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3301Audio input in Jitsi changes pitch randomly2023-12-11T16:07:58Z42trianglesAudio input in Jitsi changes pitch randomly<!-- 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.71, Linked with libpipewire 0.3.71
- Distrib...<!-- 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.71, Linked with libpipewire 0.3.71
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Arch Linux
- Desktop Environment: Xorg, i3, dunst, xdg-desktop-portal-gtk
- Kernel version (`uname -r`): 6.3.8-arch1-1
## Description of Problem:
When I'm in a call on Jitsi, the audio that gets transmitted randomly jumps in pitch between normal pitch and a higher pitch, about every half a second or something of the sort?
## How Reproducible:
I doubt it's easily reproducible on other systems, as I couldn't find anything regarding this precise issue, beyond some older issues that sounded similar but were closed as fixed.
### Steps to Reproduce:
This happens in a few places, but with those it happens reliably:
* when I use the Volt 1 Analog Stereo input; but it does NOT happen when I also route it to the output of the Volt 1, does still happen if I route it to the stereo output of my graphics card though
* when I use EasyEffects
And (to my knowledge), it only happens with Jitsi running in Firefox.
### Actual Results:
The audio weirdly jumps in pitch
### Expected Results:
The audio doesn't jump in pitch
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`: [pw-dump.log](/uploads/1e49f98e1c983a49060535938d465d49/pw-dump.log)
- `sudo journalctl --boot=0 --all | grep pipe > pipe-journal.log`: [pipe-journal.log](/uploads/89ef197cfcb42d44fe98ee2309d108a7/pipe-journal.log) (this one countains error messages regarding being unable to find 'PipeWire:Protocol:Native', not being able to load 'libpipewire-module-filter-chain', and some input/output errors, though I'm not sure those are related (could've been easy effects / me trying to experiment with a different profile in pavucontrol) )https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3300Crackling Audio, no issues in pw-top2023-06-21T00:49:35ZR VCrackling Audio, no issues in pw-top<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`):
Compiled with libpipewire 0.3.71
Linked with libpipewire 0.3.71
- Distribution and d...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`):
Compiled with libpipewire 0.3.71
Linked with libpipewire 0.3.71
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`):
PRETTY_NAME=EndeavourOS
- Desktop Environment: plasma
- Kernel version (`uname -r`): 6.3.8-arch1-1
## Description of Problem:
Whenever playing audio, it pops and clips and crackles. No errors/xruns shown when running `pw-top`.
## How Reproducible:
Any audio stream really
### Steps to Reproduce:
1. Play audio
### Actual Results:
Crackling.
### Expected Results:
No Crackling.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`: [pw-dump.log](/uploads/a8d4819caa0eac8b8e14de0751fd66d5/pw-dump.log)
- sample audio[Terrible_Clipping_Weirdness.flac](/uploads/627f4917d07fc6d0c2bbd50dcc9e47f6/Terrible_Clipping_Weirdness.flac)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3299client side environment variable PIPEWIRE_AUTOCONNECT= is missing documentati...2023-06-26T09:53:17ZDreamcat 4client side environment variable PIPEWIRE_AUTOCONNECT= is missing documentation, seems broken. But would really love it to work!!! (tears of desperation)<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version: `0.3.71`
- Distribution and distribution version: `Ubuntu 23.04`
- Desktop Environment: KDE Plasma, `plasma...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version: `0.3.71`
- Distribution and distribution version: `Ubuntu 23.04`
- Desktop Environment: KDE Plasma, `plasmashell 5.27.5`
- Kernel version (`uname -r`): `6.3.8-x64v3-xanmod1`
## Description of Problem:
**Long story short:**
Can the environment variable `PIPEWIRE_AUTOCONNECT` be set to `true` value on a per-client application basis? When the global server configuration is set to `false`? This this an undocumented feature currently. But can it be fixed / improved / and documented? And can it have a true both ways settable functionality? Because ATM it seems like it does not work. Or was never fully implemented to be both ways.
However I would dearly love to try out this feature. To see how well it resolves my issues here.
**Detailed description:**
Definately cannot use here `node.autoconnect = true` in my global pipewire daemon / server settings. It just causes far too many crashes. Either my DAW's audio engine to crash, or other types of client crashes. This is just how it is for the set(s) of applications I am currently running. And that is not going to change very much.
Now this is where things gets difficult:
Since many client programs will do a whole routine whereby they probe / test the available audio endpoints when they startup for the first time ever. And so (most of those times) am there chasing, trying to catch those nodes appearing before they timeout in qpwgraph. Which is never successful or even possible. Since for most of these programs, they will have a very short duration timeouts (not to delay program load times too much). And although visible it seem that every created test node is left just hanging there, suspended or frozen state (waiting to be connected). But in reality, the client app has already have internally timed that one out, and moved on to creating the next variation(s) of test node(s). Many times with some other channels configurations etc. To test for the surround etc. It cannot be intervened manually.
This translated into a critical need to first launch a program with `node.autoconnect` property = true. To pass these challenges for the client. Even though my DAW's audio engine might crash. But anyhow let the client program and pwgraph to go through those probe tearup / teardown test dummy nodes. And have pipewire always trying to be autoconnecting them up the default virtual sink. As soon as they appear. But then (for all other stable, long term clients, and all other default behaviour). Have `node.autoconnect` property set false. Just in the global server settings.
Can we have this? Is this an achievable goal (dynamically runtime). Without having to restart the whole pipewire server? Because if yes, then you already created some `PIPEWIRE_AUTOCONNECT` env var to be set... on starting of the client process? If could have that settable to a `TRUE` state. or `1` instead of `0`. Things like this. But it's not ever been documented.
## How Reproducible:
YES 100%. Here is how:
### Steps to Reproduce:
Server Pre-configuration:
1. Set the property `node.autoconnect = false` into all pipewire server configurations
Control case, to check the server pre-configuration:
2. Launch client program, WITHOUT any special overrides. To double check it's defaulting to `false` setting at runtime.
2.2. For example: `paplay long-enough-lasting-sound.ding.mp3`
3. Then go to another terminal (while the client application is still running). And check the client's properties by greping / searching within the whole `pw-dump` command. For example:
```sh
clear
_program_name="paplay"
pw-dump | grep -C20 -i $_program_name | grep -C20 -i autoconnect
```
So that was the default global case tested (should `=false`).
If not `=false`, then you cannot yet proceed to perform the actual test case.
Actual Test Case:
1. Set env variable `PIPEWIRE_AUTOCONNECT=true` on the client program at process creation. For example:
```sh
PIPEWIRE_AUTOCONNECT=true paplay long-enough-lasting-sound.ding.mp3
```
2. Check output of `pw-dump` below:
### Actual Results:
```sh
"application.process.host": "apex",
"application.process.id": 528958,
"application.process.machine-id": "d9bcdde265724512acdd4fed8edd4a9a",
"application.process.session-id": 4,
"application.process.user": "id",
"audio.adapt.follower": "",
"client.api": "pipewire-pulse",
"client.id": 444,
"clock.quantum-limit": 8192,
"factory.id": 6,
"factory.mode": "split",
"library.name": "audioconvert/libspa-audioconvert",
"media.artist": "Zoo",
"media.class": "Stream/Output/Audio",
"media.comment": "LAME settings: 320 kbps qval=2",
"media.date": 1984,
"media.format": "MPEG-1/2 Audio",
"media.name": "11-12 Where Have All the Good Times.mp3",
"media.software": "LAME 3.98 (Max 0.9.1)",
"media.title": "Where Have All the Good Times Gone?",
"node.autoconnect": false, <------------------------------- HERE <==========================
"node.latency": "256/96000",
"node.lock-quantum": true,
"node.name": "paplay", <----------------------------------- HERE <==========================
"node.pause-on-idle": false,
"node.rate": "1/44100",
"node.want-driver": true,
"object.id": 254,
"object.register": false,
"object.serial": 1612,
"pulse.server.type": "unix",
"stream.is-live": true,
"window.x11.display": ":0"
},
"params": {
"EnumFormat": [
{
"mediaType": "audio",
"mediaSubtype": "raw",
"format": "F32LE",
"rate": 44100,
```
And to double check it was set `PIPEWIRE_AUTOCONNECT=true` within the client's process environment space:
```sh
θ62° [id:~] [venv] 2 $ ps -aux | grep -i paplay
id 538659 0.0 0.0 84284 6568 pts/1 S+ 15:32 0:00 paplay 11-12 Where Have All the Good Times.mp3
θ64° [id:~] [venv] 1 $ grep --binary-files=text -i -o "pipewire_autoconnect=...." /proc/538659/environ
PIPEWIRE_AUTOCONNECT=true
```
### Expected Results:
Well (for this feature)... would dearly like it to behave in the following way:
For the stream property `"node.autoconnect": true,` to appear in the output of `pw-dump` for that client process. If it's environment variable was set to be `PIPEWIRE_AUTOCONNECT=true`
# Additional Info (as attachments):
- `[pw-dump.log](/uploads/de51197833e4bdcb028d60b780765f07/pw-dump.log)`:
Attached.
# References / Links
https://github.com/PipeWire/pipewire/blob/master/src/pipewire/stream.c#L2010
https://github.com/PipeWire/pipewire/blob/master/NEWS#L3669
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/964#note_858741https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3298alsa-udev: report OF compatibles2023-06-18T11:52:03ZDmitry Sharshakovalsa-udev: report OF compatiblesOn OF platforms like ARM it could be useful to have audio device compatibles (as used to bind drivers) listed in device properties available to PipeWireOn OF platforms like ARM it could be useful to have audio device compatibles (as used to bind drivers) listed in device properties available to PipeWirehttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3297Incorrect buffer size in Carla with Jack2023-06-19T14:56:11ZTasos SahanidisIncorrect buffer size in Carla with Jack- PipeWire version (`pipewire --version`): 0.3.71 (including ce71b37b58d5e251ae7acda0799f696688df11c2) but also with latest master (abb300750f65c362eb100891f71a418c01b07d01).
## Description of Problem:
PW seems to tell Carla to always e...- PipeWire version (`pipewire --version`): 0.3.71 (including ce71b37b58d5e251ae7acda0799f696688df11c2) but also with latest master (abb300750f65c362eb100891f71a418c01b07d01).
## Description of Problem:
PW seems to tell Carla to always expect a buffer size of 1024, but it sends data of other sizes, depending on what the graph is running at. This workflow functioned correctly with 0.3.70.
Bisecting it revealed 045cb95a27534c694c9c0df0c8d668fd85207766 to be the first bad commit.
## How Reproducible:
Always
### Steps to Reproduce:
1. Make sure the graph isn't running at 1024 quantum
2. Open Carla with Jack and host a plugin (in my case noise-suppression-for-voice LV2)
3. Observe the log
### Actual Results:
If quantum < 1024, then the following is spammed:
```
Carla assertion failure: "nframes == pData->bufferSize" in file CarlaEngineJack.cpp, line 2249, v1 256, v2 1024
```
If quantum > 1024:
```
Carla assertion failure: "nframes == pData->bufferSize" in file CarlaEngineJack.cpp, line 2249, v1 2048, v2 1024
free(): corrupted unsorted chunks
Aborted (core dumped)
```
### Expected Results:
Audio works in Carla and it doesn't crash
# Additional Info (as attachments):
[pw-dump.log](/uploads/dae17c85c9e2c0a10c378ce8b8b952dd/pw-dump.log)
[rnnoise.carxp](/uploads/0efefb5f675923ccb959423d491b0051/rnnoise.carxp)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3296packaging of client configs and modules2024-01-11T07:48:23ZThomas Weißschuhpackaging of client configs and modulesHow are the client configuration libraries (client.conf, client-rt.conf) and the modules used by clients (module-client-device, module-client-node) supposed to be packaged in relation to libpipewire and the pipewire daemon?
Is it valid ...How are the client configuration libraries (client.conf, client-rt.conf) and the modules used by clients (module-client-device, module-client-node) supposed to be packaged in relation to libpipewire and the pipewire daemon?
Is it valid to have libpipewire installed but not the client configurations and modules?
At the moment both ArchLinux and Debian are packaging libpipewire in a way that does not guarantee that the configurations and modules are also installed. Only the full pipewire daemon pulls them in.
This leads to errors on startup:
```
[W][00355.592783] pw.conf | [ conf.c: 939 try_load_conf()] can't load config client.conf: No such file or directory
[E][00355.593459] pw.conf | [ conf.c: 963 pw_conf_load_conf_for_context()] can't load default config client.conf: No such file or directory
```
(This is a followup to https://github.com/mpv-player/mpv/issues/11790)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3295Glitches in sound when using samplerate different than 441002023-06-26T13:00:41ZJuan Jose CasafrancaGlitches in sound when using samplerate different than 44100I have a Scarlett 2i2 audio card. This card supports 44100, 48000 and 96000 sample rate (probably more, but I dont care).
The issue is that when I set the samplerate to 48000 or 96000 in pipewire.conf, the audio is completely broken, a...I have a Scarlett 2i2 audio card. This card supports 44100, 48000 and 96000 sample rate (probably more, but I dont care).
The issue is that when I set the samplerate to 48000 or 96000 in pipewire.conf, the audio is completely broken, as you can hear on the attached file.
I have no clue on how to fix this, I have tried connecting the audio interface into another USB, without success.
This is the output of pw-top
![image](/uploads/ead59b957e73dbae8840380421ff80c7/image.png)
I have other audio interfaces in the same computer, and those audio interfaces work fine, so it looks like the issue is that the Scarlett 2i2 is not being configured correctly.
[signal-2023-06-17-134735.aac](/uploads/f957d9ad1b060c5f0a79d4e782976d62/signal-2023-06-17-134735.aac)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3294PipeWire as Bluetooth sink has audio stuttering heavily2023-06-19T15:24:40ZBart RibbersPipeWire as Bluetooth sink has audio stuttering heavilyThis is happening on a RPi3. PipeWire is configured as a Bluetooth sink and everything played to it (e.g. by an Android phone) is played on attached USB speakers. However no matter what audio is played, it stutters and crackles heavily, ...This is happening on a RPi3. PipeWire is configured as a Bluetooth sink and everything played to it (e.g. by an Android phone) is played on attached USB speakers. However no matter what audio is played, it stutters and crackles heavily, making it unable to use properly.
`pw-top` output:
```
S 28 0 0 --- --- --- --- 0 Dummy-Driver
S 29 0 0 --- --- --- --- 0 Freewheel-Driver
R 39 2048 48000 9.6ms 1.6ms 0.23 0.04 0 S16P 6 48000 alsa_output.usb-0d8c_USB_Sound_Device-00.analo
R 52 1200 48000 136.4us 305.6us 0.00 0.01 0 S16LE 6 48000 + PipeWire
R 76 512 48000 145.5us 9.3ms 0.00 0.22 0 S16LE 2 44100 + bluez_input.22_22_02_5A_81_E8.2
```
`alsa_output.usb-0d8c_USB_Sound_Device-00.analo` has been cut off, but it's the name of the output device.
Interestingly enough audio played over the network using the pulseaudio-zeroconf thing plays flawlessly, it's just Bluetooth that has this issue.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3293Segfault in libpipewire-0.3.so.0`tee_process at impl-port.c:186:142023-06-16T19:07:27ZNiklāvs KoļesņikovsSegfault in libpipewire-0.3.so.0`tee_process at impl-port.c:186:14- PipeWire version (`pipewire --version`): present in current git master, first noticed in a build of commit a0a32af38
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Gentoo Linux using custom ebuilds for ...- PipeWire version (`pipewire --version`): present in current git master, first noticed in a build of commit a0a32af38
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Gentoo Linux using custom ebuilds for PipeWire and WirePlumber
- Desktop Environment: KDE (Plasma 5.27.5)
- Kernel version (`uname -r`): 6.4.0-rc6 with EEVDF scheduler
## Description of Problem:
Randomly PipeWire crashes with a segfault. All stack traces point to the same tee_process at impl-port.c:186:14.
## How Reproducible:
Happens about 3-4 times per day.
### Steps to Reproduce:
Currently not known what triggers the crash. It may be relevant that EasyEffects is being used. I have the core files and can provide other debug information such as the CPU register values, if needed.
# Additional Info (as attachments):
- LLDB stack trace of the first crash (all look the same from what I can tell): [PW_a0a32af38_crash.txt](/uploads/ac9c5a9b5aee2ef571728fd60f72fadd/PW_a0a32af38_crash.txt)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3292how to record specific applications?2023-07-31T15:41:15ZBETLOGhow to record specific applications?I am having trouble figuring out how to use loopback (as suggested by the wiki) to substitute for pulseaudio's module-virtual-sink.
Unlike pulse I can't just assign the desired application to the module in pavucontrol-qt. My best guess i...I am having trouble figuring out how to use loopback (as suggested by the wiki) to substitute for pulseaudio's module-virtual-sink.
Unlike pulse I can't just assign the desired application to the module in pavucontrol-qt. My best guess is that I need to do some stream.rules matching, or define a master/slave.
...But how do i define an application as an input?
Can I get some assistance?
The embedded source example that seems most pertinent
```
context.modules = [
{
name = libpipewire-module-loopback
args = {
node.description = "CM106 Stereo Pair 2"
#target.delay.sec = 1.5
capture.props = {
node.name = "CM106_stereo_pair_2"
media.class = "Audio/Sink"
audio.position = [ FL FR ]
}
playback.props = {
node.name = "playback.CM106_stereo_pair_2"
audio.position = [ RL RR ]
target.object = "alsa_output.usb-0d8c_USB_Sound_Device-00.analog-surround-71"
node.dont-reconnect = true
stream.dont-remix = true
node.passive = true
}
}
}
]
```https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3291Profile for Sony SBS-XB33 bluetooth speaker randomly changes to a 'headset' p...2023-06-16T00:13:41ZGet GeoffProfile for Sony SBS-XB33 bluetooth speaker randomly changes to a 'headset' profile (with no audio)<!-- 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`): 0.3...<!-- 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`): 0.3.70
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): "Gentoo Linux"
- Desktop Environment: Plasma
- Kernel version (`uname -r`): 5.15.11-gentoo
- BlueZ version (`bluetoothctl --version`): 5.66
- `lsusb`:
```
Bus 002 Device 005: ID 047d:1020 Kensington Expert Mouse Trackball
Bus 002 Device 004: ID 045e:082c Microsoft Corp. Microsoft Ergonomic Keyboard
Bus 002 Device 003: ID 05ac:8242 Apple, Inc. Built-in IR Receiver
Bus 002 Device 002: ID 0424:2514 Microchip Technology, Inc. (formerly SMSC) USB 2.0 Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 05ac:8509 Apple, Inc. FaceTime HD Camera
Bus 001 Device 005: ID 05ac:0252 Apple, Inc. Internal Keyboard/Trackpad (ANSI)
Bus 001 Device 008: ID 05ac:821a Apple, Inc. Bluetooth Host Controller
Bus 001 Device 004: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 001 Device 002: ID 0424:2514 Microchip Technology, Inc. (formerly SMSC) USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
```
- Bluetooth devices:
```
Device 6C:47:60:E9:AA:98 SRS-XB33 PBR
Device 6C:47:60:E9:EC:81 SRS-XB33 MAIN
```
## Description of Problem:
These speakers only sometimes produce audio when connected.
The bluetooth connection is solid. However, I have noticed the profile as viewed from PulseAudio Volume Control randomly switching from "High Fidelity Playback" (which works) to "Headset Head Unit" (the codec varies). When this happens, audio fails.
## How Reproducible:
Turn the speakers on and wait to see if they get assigned the right profile or not.
### Steps to Reproduce:
1. Boot up
2. Power up one or both speakers
3. See if you get audio
### Actual Results:
Usually don't get audio.
### Expected Results:
It should work first time, every time, the way pulseaudio did before I replaced it.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`:
[pipewire-bluez.log](/uploads/e9b8f8841d937e3aa490d9084c95a618/pipewire-bluez.log)[pw_dump.log](/uploads/087d3ea60193c364d5102cbcb2414ba5/pw_dump.log)
- Bluetooth debug log, see [here](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Troubleshooting#bluetooth):https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3290Debian/sid & pipewire 0.3.71 no network sink2023-06-19T14:54:57ZPascal ObryDebian/sid & pipewire 0.3.71 no network sinkI'm on GNU/Debian/sid and do regular updates. Yesterday I had an issue migrating pipewire from 0.3.65 to 0.3.71.
After the migration I cannot connect from my client computer to a remote sink. Actually the sink which was displayed in GNO...I'm on GNU/Debian/sid and do regular updates. Yesterday I had an issue migrating pipewire from 0.3.65 to 0.3.71.
After the migration I cannot connect from my client computer to a remote sink. Actually the sink which was displayed in GNOME control is not listed anymore.
I have done a:
`$ pactl unload-module module-zeroconf-discover`
and
`$ pactl load-module module-zeroconf-discover`
Still no sink listed.
I have then reverted to 0.3.65 and all is working fine.
For the record on the server I have pipewire 0.3.71.
I haven't found a similar issue, so reporting.
If needed I can do some testing to help on this issue, just let me know.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3289how? switch between pure pulseaudio and pipewire, and back again as required2023-06-17T06:36:48ZBETLOGhow? switch between pure pulseaudio and pipewire, and back again as requiredI am trying to adapt a whole bunch of scripts to pipewire. However it hasn't been as simple as I had hoped, so I want to be able to use some scripted enabling and disabling of the correct respective services to selectively switch between...I am trying to adapt a whole bunch of scripts to pipewire. However it hasn't been as simple as I had hoped, so I want to be able to use some scripted enabling and disabling of the correct respective services to selectively switch between running a 'pure' pulseaudio or pipewire environment, until I can get everything i need to solve in pipewire solved and migrate to it completely.
I'm thinking I can probably do this without rebooting.
Currently I have disabled pipewire, and enabled pulseaudio, it's been a few months so I *think* what i did was:
```
systemctl --user stop wireplumber pipewire pipewire-pulse
systemctl --user --now disable wireplumber pipewire pipewire-pulse pipewire-media-session.service
systemctl --user unmask pulseaudio
systemctl --user --now enable pulseaudio.service pulseaudio.socket
sudo apt remove pipewire-audio-client-libraries pipewire
```
I assume I probably dont need to apt remove anything, i was just getting tired of pipewire refusing to let go when i originally did this.
However advice on the full list of apt install components for complete pipewire install would be appreciated.
Lets call that `pure-pulseaudio.sh`
Therefore `pure-pipewire.sh` needs to disable pulse and enable pipewire.
```
systemctl --user stop pulseaudio.service pulseaudio.socket
systemctl --user --now disable pulseaudio.service pulseaudio.socket
systemctl --user mask pulseaudio
systemctl --user unmask pipewire
systemctl --user --now start wireplumber pipewire pipewire-pulse pipewire-media-session.service
systemctl --user --now enable wireplumber pipewire pipewire-pulse pipewire-media-session.service
```
Can someone who knows what they are doing help me out with both of these scripts before I spend the next few days wanting to utterly destroy both audio systems?https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3288Is it Possible to Listen to the audio that comes into an SPDIF optical port?2023-06-15T08:31:27Zxek onIs it Possible to Listen to the audio that comes into an SPDIF optical port?- PipeWire version (`pipewire --version`): libpipewire 0.3.71
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): EndeavourOS
- Desktop Environment: Plasma-desktop (x11)
- Kernel version (`uname -r`): 6.3.7-ar...- PipeWire version (`pipewire --version`): libpipewire 0.3.71
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): EndeavourOS
- Desktop Environment: Plasma-desktop (x11)
- Kernel version (`uname -r`): 6.3.7-arch1-1
## Description of Problem:
I recently installed EndeavourOS which uses pipewire, I previously used Arch which I believe was just using alsa/pulse.
On Arch I would just open kmix and hit the red button at the bottom of the IEC958 column to hear that device:
![capture-spdif](/uploads/989f0cc4bbc1b744a8b1916230a4f496/capture-spdif.png)
Now that I am using pipewire I am not sure how to listen to that device anymore, appreciate any help.
I attempted to use the "pro audio" interface... I can atleast see the IEC958 device in helvum now... but I have never used any of these tools before. I attempted to make some connections, but nothing I have tried has worked.
![2023-06-15_00-14-01](/uploads/cad96f16c40819273a3bfc86f39edca0/2023-06-15_00-14-01.png)
# Additional Info (as attachments):
- `[pw-dump.log](/uploads/1471e157fc2603cdf75eeed14d658073/pw-dump.log)`:
[pw-dump.log](/uploads/a1d2dff1abc879db3d95b0e49a203d92/pw-dump.log)
I really appreciate any help.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3287USB DAC cuts out occasionally2023-06-15T00:03:32ZPavle PorticUSB DAC cuts out occasionally<!-- 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.71
- 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.71
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Arch Linux
- Desktop Environment: startx, i3, pipewire managed by systemd user service
- Kernel version (`uname -r`): 6.3.7-arch1-1
## Description of Problem:
I don't know if this is an alsa or pipewire bug, but I thought I might report here first. I have a USB DAC+amp combo that has started disconnecting/cutting out since the last reboot. It just resets itself, audio switches to my speakers for a bit and when it connects again audio goes back to my headphones through the DAC. It's configured as a Digital Stereo (IEC958) output device through pavucontrol. The issue is sporadic, happening sometimes 10-15mins apart, sometimes 1min. Here's the pipewire log from journalctl:
```
Jun 15 00:46:45 cuprum pipewire[3070]: spa.alsa: iec958:2: snd_pcm_drop No such device
Jun 15 00:46:45 cuprum pipewire[3070]: spa.alsa: iec958:2: close failed: No such device
Jun 15 01:00:18 cuprum pipewire[3070]: spa.alsa: iec958:2: snd_pcm_drop No such device
Jun 15 01:00:18 cuprum pipewire[3070]: spa.alsa: iec958:2: close failed: No such device
Jun 15 01:03:02 cuprum pipewire[3070]: spa.alsa: iec958:2: snd_pcm_drop No such device
Jun 15 01:03:02 cuprum pipewire[3070]: spa.alsa: iec958:2: close failed: No such device
Jun 15 01:05:18 cuprum pipewire[3070]: spa.alsa: iec958:2: snd_pcm_drop No such device
Jun 15 01:05:18 cuprum pipewire[3070]: spa.alsa: iec958:2: close failed: No such device
```
## How Reproducible:
Not sure if this is consistent on all up-to-date arch installations and USB IEC958, or it's something specific to my combo.
### Steps to Reproduce:
1. Use USB IEC958 device on archlinux
2. Listen to something and wait I guess ¯\_(ツ)_/¯
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`: [pw-dump.log](/uploads/e3444ada1124d88660041336d3f6cfbd/pw-dump.log)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3286Question about matching specific bluez_output in bluez-monitor.conf2023-06-15T16:31:39ZFrank SchrijverQuestion about matching specific bluez_output in bluez-monitor.confI am trying to disable hw-volume for two specific devices. When I generally disable it under `properties = {` it works as expected.
When I try to match using `node.name = "bluez_output.C0_49_EF_BD_B0_46.a2dp-sink"` or `node.name = "~bl...I am trying to disable hw-volume for two specific devices. When I generally disable it under `properties = {` it works as expected.
When I try to match using `node.name = "bluez_output.C0_49_EF_BD_B0_46.a2dp-sink"` or `node.name = "~bluez_output.C0_49_EF_BD_B0_46.a2dp-sink.*"` or `node.name = "bluez_output.C0_49_EF_BD_B0_46.*"`
I get errors in journalctl `plasmashell[1552]: org.kde.plasma.pulseaudio: No object for name "bluez_output.C0_49_EF_BD_B0_46.a2dp-sink"`
Does anyone have a hint for me on how I can match properly?
```
# Bluez monitor config file for PipeWire version 0.4.2 #
#
# Copy and edit this file in /etc/pipewire/media-session.d/
# for system-wide changes or in
# ~/.config/pipewire/media-session.d/ for local changes.
properties = {
# These features do not work on all headsets, so they are enabled
# by default based on the hardware database. They can also be
# forced on/off for all devices by the following options:
#bluez5.enable-sbc-xq = true
#bluez5.enable-msbc = true
#bluez5.enable-hw-volume = false
#bluez5.enable-faststream = true
# See bluez-hardware.conf for the hardware database.
# Enabled headset roles (default: [ hfp_hf hfp_ag ]), this
# property only applies to native backend. Currently some headsets
# (Sony WH-1000XM3) are not working with both hsp_ag and hfp_ag
# enabled, disable either hsp_ag or hfp_ag to work around it.
#
# Supported headset roles: hsp_hs (HSP Headset),
# hsp_ag (HSP Audio Gateway),
# hfp_hf (HFP Hands-Free),
# hfp_ag (HFP Audio Gateway)
#bluez5.headset-roles = [ hsp_hs hsp_ag hfp_hf hfp_ag ]
# Enabled A2DP codecs (default: all).
#bluez5.codecs = [ sbc sbc_xq aac ldac aptx aptx_hd aptx_ll aptx_ll_duplex faststream faststream_duplex ]
# HFP/HSP backend (default: native).
# Available values: any, none, hsphfpd, ofono, native
#bluez5.hfphsp-backend = native
# HFP/HSP native backend modem (default: none).
# Available values: none, any or the modem device string as found in
# 'Device' property of org.freedesktop.ModemManager1.Modem interface
#bluez5.hfphsp-backend-native-modem = none
# Properties for the A2DP codec configuration
#bluez5.default.rate = 48000
#bluez5.default.channels = 2
# Register dummy AVRCP player, required for AVRCP volume function.
# Disable if you are running mpris-proxy or equivalent.
#bluez5.dummy-avrcp-player = true
}
rules = [
# An array of matches/actions to evaluate.
{
# Rules for matching a device or node. It is an array of
# properties that all need to match the regexp. If any of the
# matches work, the actions are executed for the object.
matches = [
{
# This matches all cards.
device.name = "~bluez_card.*"
}
]
actions = {
# Actions can update properties on the matched object.
update-props = {
# Auto-connect device profiles on start up or when only partial
# profiles have connected. Disabled by default if the property
# is not specified.
#bluez5.auto-connect = [
# hfp_hf
# hsp_hs
# a2dp_sink
# hfp_ag
# hsp_ag
# a2dp_source
#]
bluez5.auto-connect = [ hfp_hf hsp_hs a2dp_sink ]
# Hardware volume control (default: all)
#bluez5.hw-volume = [
# hfp_hf
# hsp_hs
# a2dp_sink
# hfp_ag
# hsp_ag
# a2dp_source
#]
# LDAC encoding quality
# Available values: auto (Adaptive Bitrate, default)
# hq (High Quality, 990/909kbps)
# sq (Standard Quality, 660/606kbps)
# mq (Mobile use Quality, 330/303kbps)
#bluez5.a2dp.ldac.quality = auto
# AAC variable bitrate mode
# Available values: 0 (cbr, default), 1-5 (quality level)
#bluez5.a2dp.aac.bitratemode = 0
# Profile connected first
# Available values: a2dp-sink (default), headset-head-unit
#bluez5.profile = a2dp-sink
# A2DP <-> HFP profile auto-switching (when device is default output)
# Available values: false, role (default), true
# 'role' will switch the profile if the recording application
# specifies Communication (or "phone" in PA) as the stream role.
#bluez5.autoswitch-profile = role
}
}
}
{
matches = [
{
# Matches all sources.
node.name = "~bluez_input.*"
}
{
# Matches all sinks.
node.name = "~bluez_output.*"
}
]
actions = {
update-props = {
#node.nick = "My Node"
#node.nick = null
#priority.driver = 100
#priority.session = 100
node.pause-on-idle = false
#resample.quality = 4
#channelmix.normalize = false
#channelmix.mix-lfe = false
#session.suspend-timeout-seconds = 5 # 0 disables suspend
#monitor.channel-volumes = false
# Media source role, "input" or "playback"
# Defaults to "playback", playing stream to speakers
# Set to "input" to use as an input for apps
#bluez5.media-source-role = input
}
}
}
{
matches = [
{
node.name = "~bluez_output.C0_49_EF_BD_B0_46.a2dp-sink"
}
{
node.name = "bluez_output.94_B5_55_FC_DA_D6.a2dp-sink"
}
]
actions = {
update-props = {
bluez5.enable-hw-volume = false
}
}
}
]
```https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3285Volume control doesn't sync with UI2023-06-12T22:25:10ZEmmanuelVolume control doesn't sync with UI<!-- 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`): 0.3...<!-- 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`): 0.3.68
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Ubuntu 20.04.6 LTS
- Desktop Environment: GNOME
- Kernel version (`uname -r`): 5.13.0-35-generic
- BlueZ version (`bluetoothctl --version`): 5.53
- `lsusb`:
```
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 002: ID 1058:2621 Western Digital Technologies, Inc. Elements 2621
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 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 003: ID 090c:6300 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) USB2.0 Card Reader
Bus 001 Device 002: ID 046d:c092 Logitech, Inc. G203 LIGHTSYNC Gaming Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
```
- Bluetooth devices:
```
Device 30:53:C1:23:A9:A6 WH-CH710N
```
## Description of Problem:
Headphone's volume up and volume down buttons don't work sync with Ubuntu.
## How Reproducible:
Very.
### Steps to Reproduce:
1. Sync WH-CH710N to Ubuntu
2. Press volume up
3. Volume changes, but Ubuntu volume bar doesn't change
### Actual Results:
Ubuntu volume bar doesn't change
### Expected Results:
Ubuntu should sync with headphone's sound level.
# Additional Info (as attachments):
- ` log, see [here](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Troubleshooting#bluetooth):
[pw-dump.log](/uploads/32abbae3847a24e4cecc9b72e20bf24b/pw-dump.log)
[pipewire-bluez.log](/uploads/da57731f1af1263cb66031dfe51995d5/pipewire-bluez.log)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3284Parec Integration Issues2023-06-14T18:29:32ZYura MocherniukParec Integration Issues- PipeWire version: 0.3.65
- Distribution and distribution version: Debian GNU/Linux 12 (bookworm)
- Desktop Environment: Xfce
- Kernel version: 6.1.0-9-amd64
- session manager: wireplumber
## Description of Problem:
I have the followi...- PipeWire version: 0.3.65
- Distribution and distribution version: Debian GNU/Linux 12 (bookworm)
- Desktop Environment: Xfce
- Kernel version: 6.1.0-9-amd64
- session manager: wireplumber
## Description of Problem:
I have the following script that records audio from the default output device:
https://github.com/JayXT/RecordAudioOutput/blob/main/record_audio_output.
When called the first time it starts audio recording with **parec** and in real-time redirects the output to **lame** that writes the stream data to mp3 file. When called the second time, it kills the parec process, thus finishes the recording of the mp3 file and copies it to clipboard. Usually, I call the script with Super + A shortcut. In case of PulseAudio in Debian 11 it worked fine, but with upgrade I've noticed two PipeWire-related issues:
1. @DEFAULT_MONITOR@ is not supported. parec starts to record from input source (microphone) instead.
2. When the recording gets finished (the second script run that kills the process), last few seconds of the recording are lost, which wasn't the case before.
## How Reproducible:
The problem occurs when running the script utilizing parec and lame command-line utilities.
### Steps to Reproduce:
1. Launch the script to start the recording.
2. Play the audio using the default output device/sink.
3. Launch the same script again to stop the recording to mp3 file.
### Actual Results:
- If @DEFAULT_MONITOR@ is used in the parec -d parameter, input audio device is used instead of the output one.
- Last few seconds of the recording before the step 3 occurs are lost.
### Expected Results:
- @DEFAULT_MONITOR@ is respected and the default audio output device is used.
- The entire audio stream from start of the recording till its end is saved.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`: [pw-dump.log](/uploads/afc4b909d4590a042d1bb712fc24e648/pw-dump.log)
- `wpctl status > wpctl_status.log` [wpctl_status.log](/uploads/9db3a1f1f24c9e55a3f9f12ba6a0d0b5/wpctl_status.log)
Of course, if possible I'd like to use pw-record instead of parec + lame combination, but based on my testing it doesn't look like pw-record supports saving to opus, or at least to mp3 file with high compression, but decent quality. Default output sink/device/node selection isn't supported too.
Also I wasn't able to record audio output with pw-record, only input (microphone) source was supported. When I tried to use this command:
`pw-record --target=alsa_output.pci-0000_00_1f.3.analog-stereo file.wav`, the pw-record for some reason switched to microphone input as a source and used it instead.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3283Loopback question2023-06-26T09:52:33ZMarc gLoopback questionHello
i use a raspberry pi as "Audio Gadget" which means you can stream audio from your pc over usb to your raspberry pi
on the raspberry pi itself i would like to route the input of usb to a dac output
i guess what i need is loopbac...Hello
i use a raspberry pi as "Audio Gadget" which means you can stream audio from your pc over usb to your raspberry pi
on the raspberry pi itself i would like to route the input of usb to a dac output
i guess what i need is loopback but i have one issue... i already tried jack for example and alsaloop but these suffer from clockdrift between the two audio devices.... does pipewire something better here?
the only real solution i found so far was CamillaDSP which is able to "rate_adjust" to sync the two devices (zero under/overruns)
before i try pipewire on my rpi4 streamer setup i would like to know if pipewire handles this gracefully without under/overruns?
unfortunaly i generally have a problem with pipewire`s documentation... there seem to be so many options but half of it seems undocumented