pipewire issueshttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues2022-02-08T18:05:46Zhttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2117please add JACK D-Bus support2022-02-08T18:05:46Zkamplease add JACK D-Bus supportApologies in advance if this is the wrong place to request such a thing. As of late the `pipewire-jack` package conflicts with the `jack2` package on Arch Linux rendering them unable to be installed side by side anymore. With `pipewire-j...Apologies in advance if this is the wrong place to request such a thing. As of late the `pipewire-jack` package conflicts with the `jack2` package on Arch Linux rendering them unable to be installed side by side anymore. With `pipewire-jack` not having any modules to emulate `jack2-dbus` I'm unable to use Cadence, a really useful tool I particularly use for a built in patching tool called Catia. This applications requires the D-bus functionality and I really wish to see it in Pipewire in the future.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2116No audio devices null fallback?2022-02-12T09:27:55ZArtem S. TashkinovNo audio devices null fallback?Here's the situation.
When you have zero output audio devices (say you've disabled them all) applications either refuse to play audio and pause or will play video only e.g. in the case of Firefox.
When you finally enable some output, p...Here's the situation.
When you have zero output audio devices (say you've disabled them all) applications either refuse to play audio and pause or will play video only e.g. in the case of Firefox.
When you finally enable some output, playback for paused applications may (or may not) continue but Firefox will continue being silent because its first attempt at using PA failed and it disabled audio playback completely.
I wonder if pipewire/wireplumber could offer a null fallback device which allows applications to play audio to basically `/dev/null` and then, whenever an actual device activates, audio finally takes a physical form.
If my proposal creates more problems than it solves, let's forget about it. It just feels more logical.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2115Firefox connecting to pulseaudio null-sink crashes Ardour/Mixbus2022-02-08T18:25:38ZBenjaminFirefox connecting to pulseaudio null-sink crashes Ardour/MixbusSince updating from PipeWire 3.43 to 3.44 and now 3.45 (on Fedora 35/amd64), my Ardour/Harrison Mixbus session crashes whenever Firefox wants to play audio to a PipeWire backed pulseaudio 'null-sink', which feeds into an Ardour audio cha...Since updating from PipeWire 3.43 to 3.44 and now 3.45 (on Fedora 35/amd64), my Ardour/Harrison Mixbus session crashes whenever Firefox wants to play audio to a PipeWire backed pulseaudio 'null-sink', which feeds into an Ardour audio channel via 'monitor ports' of the null-sink.
This used to work with pipewire 3.43, but had similar issues a couple of releases ago. Now the issue is back, which might be related to latency recalculation whenever the ports are connected via Jack (Catia) and/or samples start coming in.
Whenever this happens, these logs appear in the journal:
```
Feb 07 21:31:24 banga.lan rtkit-daemon[974]: Supervising 1 threads of 1 processes of 1 users.
Feb 07 21:31:24 banga.lan rtkit-daemon[974]: Successfully made thread 62401 of process 62040 (/usr/lib64/firefox/firefox) owned by '1000' RT at priority 10.
Feb 07 21:31:24 banga.lan rtkit-daemon[974]: Supervising 2 threads of 2 processes of 1 users.
Feb 07 21:31:24 banga.lan SystemMixbus.desktop[58566]: restarting Session::update_latency. # of send changes: 3 iteration: 1
Feb 07 21:31:25 banga.lan rtkit-daemon[974]: Supervising 2 threads of 2 processes of 1 users.
Feb 07 21:31:25 banga.lan rtkit-daemon[974]: Supervising 2 threads of 2 processes of 1 users.
Feb 07 21:31:27 banga.lan pipewire[1394]: spa.alsa: hw:5: follower delay:887 target:2560 thr:2048, resync
Feb 07 21:31:27 banga.lan pipewire[1394]: spa.alsa: hw:5: follower resync delay:887 target:2560 thr:2048
```
I can provide coredumps or reproduce the issue in debug mode if it helps.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2114spa: embedded sources are not safe wrt. removal2022-02-08T18:05:16ZBarnabás Pőczespa: embedded sources are not safe wrt. removalIf a `spa_source` is embedded in another object, and the source is active in the current iteration, and the containing object is freed in the current iteration of the loop due to some other event, but before the contained source could be...If a `spa_source` is embedded in another object, and the source is active in the current iteration, and the containing object is freed in the current iteration of the loop due to some other event, but before the contained source could be dispatched, `loop_iterate()` will cause a use-after-free.
---
<details>
<summary>example program</summary>
```c
#include <assert.h>
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/eventfd.h>
#include <pipewire/pipewire.h>
static struct pw_loop *l;
static struct pw_main_loop *ml;
struct obj {
int x;
struct spa_source source;
};
struct obj *a, *b;
static void on_event(struct spa_source *source)
{
pw_loop_remove_source(l, &a->source);
pw_loop_remove_source(l, &b->source);
close(a->source.fd);
close(b->source.fd);
free(a);
free(b);
pw_main_loop_quit(ml);
}
int
main(void)
{
pw_init(NULL, NULL);
ml = pw_main_loop_new(NULL);
assert(ml);
l = pw_main_loop_get_loop(ml);
assert(l);
a = calloc(1, sizeof(*a));
b = calloc(1, sizeof(*b));
a->source.func = on_event;
a->source.fd = eventfd(0, 0);
a->source.mask = SPA_IO_IN;
b->source.func = on_event;
b->source.fd = eventfd(0, 0);
b->source.mask = SPA_IO_IN;
pw_loop_add_source(l, &a->source);
pw_loop_add_source(l, &b->source);
write(a->source.fd, &(uint64_t){1}, sizeof(uint64_t));
write(b->source.fd, &(uint64_t){1}, sizeof(uint64_t));
pw_main_loop_run(ml);
}
```
</details>
<details>
<summary>ASAN report</summary>
```
==1353114==ERROR: AddressSanitizer: heap-use-after-free on address 0x6040000001f8 at pc 0x7f213e114c9b bp 0x7ffc4f371cd0 sp 0x7ffc4f371cc0
READ of size 4 at 0x6040000001f8 thread T0
#0 0x7f213e114c9a in loop_iterate ../spa/plugins/support/loop.c:336
#1 0x7f21432f8ba8 in pw_main_loop_run ../src/pipewire/main-loop.c:148
#2 0x55ab8dce1eaa in main main3.c:59
#3 0x7f2142228b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
#4 0x55ab8dce11dd in _start (a.out+0x31dd)
0x6040000001f8 is located 40 bytes inside of 48-byte region [0x6040000001d0,0x604000000200)
freed by thread T0 here:
#0 0x7f2143aaff19 in __interceptor_free /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:127
#1 0x55ab8dce15f6 in on_event main3.c:27
previously allocated by thread T0 here:
#0 0x7f2143ab0459 in __interceptor_calloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:154
#1 0x55ab8dce1932 in main main3.c:44
SUMMARY: AddressSanitizer: heap-use-after-free ../spa/plugins/support/loop.c:336 in loop_iterate
Shadow bytes around the buggy address:
0x0c087fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c087fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c087fff8000: fa fa 00 00 00 00 01 fa fa fa 00 00 00 00 00 fa
0x0c087fff8010: fa fa 00 00 00 00 00 fa fa fa 00 00 00 00 00 fa
0x0c087fff8020: fa fa 00 00 00 00 05 fa fa fa 00 00 00 00 00 00
=>0x0c087fff8030: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd[fd]
0x0c087fff8040: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c087fff8050: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c087fff8060: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c087fff8070: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c087fff8080: fa fa fa fa fa fa fa fa 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
Shadow gap: cc
==1353114==ABORTING
```
</details>
---
I have a simple patch draft that - I think - addresses this with minimal additional runtime overhead, however, it changes the layout and size of the `spa_source` struct...
<details>
```diff
diff --git a/spa/include/spa/support/loop.h b/spa/include/spa/support/loop.h
index fae275b3b..49943cc51 100644
--- a/spa/include/spa/support/loop.h
+++ b/spa/include/spa/support/loop.h
@@ -66,6 +66,10 @@ struct spa_source {
int fd;
uint32_t mask;
uint32_t rmask;
+
+ struct {
+ void *data;
+ } priv;
};
typedef int (*spa_invoke_func_t) (struct spa_loop *loop,
diff --git a/spa/plugins/support/loop.c b/spa/plugins/support/loop.c
index c8bcc5b08..bb84746a2 100644
--- a/spa/plugins/support/loop.c
+++ b/spa/plugins/support/loop.c
@@ -113,6 +113,7 @@ static int loop_add_source(void *object, struct spa_source *source)
{
struct impl *impl = object;
source->loop = &impl->loop;
+ source->priv.data = NULL;
return spa_system_pollfd_add(impl->system, impl->poll_fd, source->fd, source->mask, source);
}
@@ -126,6 +127,15 @@ static int loop_remove_source(void *object, struct spa_source *source)
{
struct impl *impl = object;
source->loop = NULL;
+
+ /* active in an iteration of the loop, remove it from there */
+ if (source->priv.data) {
+ struct spa_poll_event *pollev = source->priv.data;
+
+ pollev->data = NULL;
+ source->priv.data = NULL;
+ }
+
return spa_system_pollfd_del(impl->system, impl->poll_fd, source->fd);
}
@@ -330,11 +340,21 @@ static int loop_iterate(void *object, int timeout)
for (i = 0; i < nfds; i++) {
struct spa_source *s = ep[i].data;
s->rmask = ep[i].events;
+
+ /* already active in another iteration of the loop, remove it from that iteration */
+ if (s->priv.data) {
+ struct spa_poll_event *pollev = s->priv.data;
+ pollev->data = NULL;
+ }
+
+ s->priv.data = &ep[i];
}
for (i = 0; i < nfds; i++) {
struct spa_source *s = ep[i].data;
- if (SPA_LIKELY(s->rmask && s->fd != -1 && s->loop == loop))
+ if (SPA_LIKELY(s && s->rmask && s->fd != -1 && s->loop == loop)) {
+ s->priv.data = NULL;
s->func(s);
+ }
}
if (SPA_UNLIKELY(!spa_list_is_empty(&impl->destroy_list)))
process_destroy(impl);
```
</details>
---
This is the same issue that was addressed by 0eb73f0f06a2e40362990080007db295141f6f1f, but that only considered the `spa_source`s which were fully managed by the loop as far as I can tell.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2113PipeWire 0.3.45 no audio devices aside from BlueTooth2022-02-13T08:46:53ZArtem S. TashkinovPipeWire 0.3.45 no audio devices aside from BlueToothAfter upgrading to
```
wireplumber-libs-0.4.7-2.fc35.x86_64
wireplumber-0.4.7-2.fc35.x86_64
pipewire-0.3.45-1.fc35.x86_64
pipewire-libs-0.3.45-1.fc35.x86_64
pipewire-alsa-0.3.45-1.fc35.x86_64
pipewire-jack-audio-connection-kit-0.3.45-1...After upgrading to
```
wireplumber-libs-0.4.7-2.fc35.x86_64
wireplumber-0.4.7-2.fc35.x86_64
pipewire-0.3.45-1.fc35.x86_64
pipewire-libs-0.3.45-1.fc35.x86_64
pipewire-alsa-0.3.45-1.fc35.x86_64
pipewire-jack-audio-connection-kit-0.3.45-1.fc35.x86_64
pipewire-pulseaudio-0.3.45-1.fc35.x86_64
pipewire-utils-0.3.45-1.fc35.x86_64
```
All audio devices have disappeared from the system aside from my Bluetooth audio. I've reverted all my customizations and deleted all user config files - it didn't help.
![nothing](/uploads/bd9e4e22a08092aab8f0c8346009d234/nothing.png)
[pw-dump.txt](/uploads/9cdca11fb9ec4f30c997b5738ad9e1e3/pw-dump.txt)
I'm the only user on the system.
I tried to follow https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2107#note_1246618 but it doesn't really work, all I see is:
```
wireplumber[2075597]: monitor 0x55c6cf5fa590
wireplumber[2075597]: start inotify
wireplumber[2075597]: /dev/snd/controlC0 accessible:1
wireplumber[2075597]: [20B blob data]
wireplumber[2075597]: /dev/snd/controlC1 accessible:1
wireplumber[2075597]: [20B blob data]
```
All ALSA sound cards work just fine:
```
/proc/asound/cards
0 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xfc080000 irq 114
1 [Generic ]: HDA-Intel - HD-Audio Generic
HD-Audio Generic at 0xfca00000 irq 116
```https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2112Analog Stereo vs Digital Stereo profile2023-02-20T00:00:53ZhaarpAnalog Stereo vs Digital Stereo profilepipewire-0.3.44, wireplumber-0.4.7
Hello,
I'm noticing that all USB soundcards/DACs I test have a *Analog Stereo Output* and a *Digital Stereo (IEC958) Output* profile. Obviously, being DACs, both are necessarily digital. The only diff...pipewire-0.3.44, wireplumber-0.4.7
Hello,
I'm noticing that all USB soundcards/DACs I test have a *Analog Stereo Output* and a *Digital Stereo (IEC958) Output* profile. Obviously, being DACs, both are necessarily digital. The only difference I can tell is that with Digital Stereo, the output levels are much lower.
Why do these separate profiles exist and what exactly is the difference? Whch one is preferable? And could these be given different names to better reflect their use?
Thanks!!https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2111PipeWire 0.3.45 (2022-02-03) no sound devices2022-02-10T12:00:02ZFerdi ScholtenPipeWire 0.3.45 (2022-02-03) no sound devicesSince several months my Thinkpad T540p has been working flawless with pipewire and wireplumber as full replacement for pulseaudio on ubuntu 21.10
However the latest update of pipewire, no sound devices are found, reverting to pulseaudio...Since several months my Thinkpad T540p has been working flawless with pipewire and wireplumber as full replacement for pulseaudio on ubuntu 21.10
However the latest update of pipewire, no sound devices are found, reverting to pulseaudio solves the issue immediately.
There were no changes in configuration whatsoever.
observations:
All the pipewire services are running normally without errors
wireplumber is running normaly without errors
pavucontrol shows no output devices when using pipewire
volume controls in gnome settings are disabled en show no output devices.
When opening any program using sound the following loglines appear in syslog:
`Feb 6 00:36:40 Biodanza01 pipewire-pulse[1246]: mod.protocol-pulse: client 0x55f007895d80 [libcanberra]: ERROR command:-1 (invalid) tag:3 error:25 (Input/output error)`
using pipewire and wireplumber from https://github.com/pipewire-debian/pipewire-debian
running Pulseaudio:
```
pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 15
Tile Size: 65472
User Name: ferdi
Host Name: Biodanza01
Server Name: pulseaudio
Server Version: 15.0
Default Sample Specification: s16le 2ch 44100Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_00_1b.0.analog-stereo
Default Source: alsa_input.pci-0000_00_1b.0.analog-stereo
Cookie: 6010:24c6
```
running pipewire:
```
pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 40
Tile Size: 65472
User Name: ferdi
Host Name: Biodanza01
Server Name: PulseAudio (on PipeWire 0.3.45)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: @DEFAULT_SINK@
Default Source: @DEFAULT_SOURCE@
Cookie: 21e9:6107
```https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2110pw-link --monitor seems to not flush its prints2022-02-07T16:06:22ZJens Pitkänenpw-link --monitor seems to not flush its prints<!-- 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.45
- 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.45
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`): Arch Linux
- Desktop Environment: i3
- Kernel version (`uname -r`): 5.16.5-arch1-1
## Description of Problem:
Sorry about using a release pipewire version, but I'm somewhat confident this issue still exists on master, as there has been few changes in pw-link recently. And I couldn't get pipewire-git from the AUR to build.
The following two commands do not behave similarly:
```
pw-link -mio
pw-link -mio | while read line; do echo $line; done
```
The first one prints out connected/disconnected devices (or nodes? I'm not 100% with the terms yet) as they happen, the second one prints out nothing until you ctrl+c, and only then prints out everything. With `pw-link -mio | xargs -n1 echo`, it just doesn't print anything at all.
Maybe there's some buffering going on, if stdout is piped?
## How Reproducible:
Very consistent. I can't seem to find any way to redirect the output of `pw-link -m` so that I would be able to process it line by line, as it prints out the lines.
### Steps to Reproduce:
1. Run `pw-link -mio`, and observe how many lines get printed right away.
2. Run `pw-link -mio | while read line; do echo $line; done`, and observe how nothing gets printed.
3. Interrupt by pressing ctrl+c, and observe how the lines get printed now.
### Actual Results:
Piping the output of pw-link seems to make it not print out anything.
### Expected Results:
For the lines printed by pw-link to get piped into whatever is waiting on the other side of the pipe in a timely fashion.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2108no sound - spa/alsa-udev: fix /proc/asound handling without CONFIG_SND_VERBOS...2022-02-07T04:40:23Z2A4Uno sound - spa/alsa-udev: fix /proc/asound handling without CONFIG_SND_VERBOSE_PROCFSNo sound with `CONFIG_SND_VERBOSE_PROCFS` disabled in kernel.
[snd_folder.log](/uploads/e0b6b9b8497d0996057113a0a7a58450/snd_folder.log)No sound with `CONFIG_SND_VERBOSE_PROCFS` disabled in kernel.
[snd_folder.log](/uploads/e0b6b9b8497d0996057113a0a7a58450/snd_folder.log)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2106module-loopback: node.name might not be globally unique2023-04-19T11:19:14ZBarnabás Pőczemodule-loopback: node.name might not be globally uniqueIf names are not otherwise specified, the *loopback* module uses
```
input.loopback-<global id>
output.loopback-<global id>
```
as node names. However, if the module is loaded somewhere other than the pipewire daemon, the module's global...If names are not otherwise specified, the *loopback* module uses
```
input.loopback-<global id>
output.loopback-<global id>
```
as node names. However, if the module is loaded somewhere other than the pipewire daemon, the module's global will only exist in the local context, so its id will not be globally unique.
Thus running
```
pw-loopback -C X -P Y
```
twice will create 4 nodes, both output and both input nodes will have the same name.
---
`node.group` is different because the two processes have different PIDs; but in some edge cases:
* two pipewire contexts in the same process,
* PID namespaces
this may not be true.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2105How to specify a link from factory in pipewire.conf2022-03-02T11:21:57ZC MurphyHow to specify a link from factory in pipewire.conf<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`):3.45
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`):P...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`):3.45
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`):PRETTY_NAME="Fedora Linux 35 (Workstation Edition)"
- Desktop Environment:gnome
- Kernel version (`uname -r`):5.15.18-200.fc35.x86_64
## Description of Problem:
It is not clear how to use the function described in the release notes for 3.45 to configure a link from the factory in the pipewire.conf file. I have a node defined in pipewire.conf per below. I need to link that inputs for this node to the outputs from the wireplumber configured dmic node. It is no clear how to identify the source and sink nodes. What syntax should I use? If I need the node IDs of the two nodes I am linking, its not clear to me how to get them and refer to them.
Node defined in pipewire.conf:
# This is cjm's new dmic virtnode
# This creates a new Source node. It will have input ports
# that you can link, to provide audio for this source.
{ factory = adapter
args = {
factory.name = support.null-audio-sink
node.name = "vdmic"
node.description = "Microphone"
media.class = "Audio/Source/Virtual"
audio.position = "FL,FR"
}
}
## How Reproducible:
### Steps to Reproduce:
1.
2.
3.
### Actual Results:
Links are not created by config file. Current workaround is to create links with bash script calling pw-cli after pw starts.
### Expected Results:
Links are created by pw from configuration.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`:
[pw-dump.log](/uploads/c86e797b1d388e6e2546d25c4473747e/pw-dump.log)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2104Airpods Pro HSP/HFP profiles does not show up when oFono backend is used2022-03-05T11:56:20ZTrond HauglandAirpods Pro HSP/HFP profiles does not show up when oFono backend is used- PipeWire version: git 143fadf6
- Distribution and distribution version: self rolled based on LibreELEC (buildroot like minimal distro)
- Desktop Environment: Sway
- Kernel version: 5.16.5
- Computer model: NUC8 i5-BEK
- BlueZ version: ...- PipeWire version: git 143fadf6
- Distribution and distribution version: self rolled based on LibreELEC (buildroot like minimal distro)
- Desktop Environment: Sway
- Kernel version: 5.16.5
- Computer model: NUC8 i5-BEK
- BlueZ version: git c1e12f4
- `lsusb`:
```
Bus 002 Device 002: ID 1058:25ee Western Digital Technologies, Inc. My Book 25EE
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2548:1002 Pulse-Eight CEC Adapter
Bus 001 Device 003: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
```
- Bluetooth devices:
```
Device E8:85:4B:82:4B:4B Trond’s AirPods Pro - Find
Device F4:4E:FD:93:12:C5 G20BTS
Device 53:DE:91:F4:11:A1 Urbanista Sydney
Device F4:93:9F:45:75:F3 Wireless Controller
Device 2C:41:A1:6A:1D:ED LE-Bose Color II SoundLink
```
## Description of Problem:
No headset profiles available when oFono is used. A2DP profiles and sink shows up after just over 1 minute, during which `pactl list sinks` hangs.
## How Reproducible:
Always.
### Steps to Reproduce:
1. Pair
2. Connect
3. Observe that only A2DP is available (after 1 minute)
### Actual Results:
No headset-head-unit profiles are available, A2DP works.
- pactl list cards: http://ix.io/3OFf
### Expected Results:
The Airpods Pro should work using oFono for HFP.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`: http://ix.io/3OES
- Bluetooth debug log: http://ix.io/3OF6
- list-modems from ofono: http://ix.io/3OF1 (shows that both ofono/phonesim is enabled and online through dbus)
[dump.btsnoop](/uploads/06aaa6163abaa5b901fd0e741b010329/dump.btsnoop)
- bluetoothd debug log: http://ix.io/3OFp
- ofono debug log: http://ix.io/3OFc
- bluez-monitor.conf: http://ix.io/3OF4 (disabled msbc and aac/sbc_xq for testing)
- /etc/bluetooth/main.conf: http://ix.io/3OF9
It should be noted that both my iPhone XS and my Bose Color II SoundLink does work in HFP AG/HF mode with the same setup, so the oFono/phonesim config is tested working. The Airpods works fine with the native bluez backend.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2103Pipewire Configuration2022-07-15T07:18:16ZC-RecordsPipewire ConfigurationDear Mr. Taymans,
is there a solution to the circumstance that with every new release, the config changes , i.e. buffersize for jack clients etc.?
I would love to have a popup during the installation of a newer version, which asks if...Dear Mr. Taymans,
is there a solution to the circumstance that with every new release, the config changes , i.e. buffersize for jack clients etc.?
I would love to have a popup during the installation of a newer version, which asks if you wanna keep the old config, merge changes or overwrite it.
Thankshttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2102Your GStreamer installation is missing a plug-in2022-12-14T12:08:39ZRiccardo RobecchiYour GStreamer installation is missing a plug-in- PipeWire version: 0.3.44
- Distribution and distribution version: KDE neon 5.23.5
- Desktop Environment: KDE Plasma
- Kernel version: 5.16.2-xanmod1
## Description of Problem:
Playback stops with the message "Your GStreamer installati...- PipeWire version: 0.3.44
- Distribution and distribution version: KDE neon 5.23.5
- Desktop Environment: KDE Plasma
- Kernel version: 5.16.2-xanmod1
## Description of Problem:
Playback stops with the message "Your GStreamer installation is missing a plug-in". This is especially frequent with Strawberry. Playback can stop at any point in time, but usually appears to stop right before the end of a track. A bug report [was opened against Strawberry](https://github.com/strawberrymusicplayer/strawberry/issues/784), but the developer concluded the problem lied elsewhere.
## How Reproducible:
Cannot reproduce reliably, but happens constantly.
### Steps to Reproduce:
1. Reproduce media on Strawberry.
### Actual Results:
Playback goes on uninterrupted.
### Expected Results:
Playback randomly stops.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`: [pw-dump.log](/uploads/00027e390c39e065daa80521b35d8a05/pw-dump.log)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2101Unable to delete null sinks2022-02-04T17:19:35ZMartmistsUnable to delete null sinks<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`):
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`):
- De...<!-- If you are filing this issue with a regular release please try master as it might already be fixed. -->
- PipeWire version (`pipewire --version`):
- Distribution and distribution version (`PRETTY_NAME` from `/etc/os-release`):
- Desktop Environment:
- Kernel version (`uname -r`): 5.16.5-arch1-1
## Description of Problem:
Creating a null sink through a pulse application with pipewire-pulse installed does not allow deletion of said sink.
## How Reproducible:
Every time, across reboots and devices
### Steps to Reproduce:
1. install pipewire-pulse
2. install pagraphcontrol
3. create a null sink
4. right click to delete
### Actual Results:
The sink cannot be deleted
### Expected Results:
The sink gets deleted as if using pulseaudio
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`:
[pw-dump.log](/uploads/19a3863317cc9cbe136d94f2040ff368/pw-dump.log)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2100Distorted sound in MuseScore since 0.3.442022-02-07T08:18:43ZPaul MenzelDistorted sound in MuseScore since 0.3.44Using Debian sid/unstable, since *pipewire* 0.3.44 the sound from MuseScore is distorted. Upgrading to 0.3.45, fixing issue https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2069, did not fix it.
1. [pipewire-0.3.45-pw-dump.txt...Using Debian sid/unstable, since *pipewire* 0.3.44 the sound from MuseScore is distorted. Upgrading to 0.3.45, fixing issue https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2069, did not fix it.
1. [pipewire-0.3.45-pw-dump.txt](/uploads/14dac73fce712d3c5e2276771facb89d/pipewire-0.3.45-pw-dump.txt)https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2099Ardour reached JACK port limit2022-04-01T08:39:41ZunfaArdour reached JACK port limitIt seems PipeWire-JACK has a port limit.
I need to increase that limit.
When working on a piece of music in Ardour suddenly, it failed to duplicate a track or create a new track.
I've checked logs and found this:
```
2022-02-03T15:50:...It seems PipeWire-JACK has a port limit.
I need to increase that limit.
When working on a piece of music in Ardour suddenly, it failed to duplicate a track or create a new track.
I've checked logs and found this:
```
2022-02-03T15:50:50 [ERROR]: unable to create port 'Bass 3B 1/midi_in 1': failed constructor
2022-02-03T15:51:01 [ERROR]: unable to create port 'Bass 3B 1/midi_in 1': failed constructor
2022-02-03T15:51:28 [ERROR]: unable to create port 'Bass 3B 1/midi_in 1': failed constructor
2022-02-03T15:51:42 [ERROR]: unable to create port 'Bass 3 Top 1/midi_in 1': failed constructor
2022-02-03T15:52:25 [ERROR]: No more JACK ports are available. You will need to stop Ardour and restart JACK with more ports if you need this many tracks.
2022-02-03T15:52:25 [ERROR]: could not create 1 new mixed track
2022-02-03T15:52:45 [ERROR]: unable to create port 'Audio 5/audio_in 1': failed constructor
2022-02-03T15:52:45 [ERROR]: could not create 1 new audio track
```
I've searched `pipewire.conf` and `jack.conf` files but found no port limit variable there.https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2098Can't change audio output of running apps in pavucontrol2022-07-06T22:16:07ZStuart AxonCan't change audio output of running apps in pavucontrolI have an HDMI Tv plugged in, and want to direct firefox to it.
In PAVUControl, I can see:
Skype, which I already output via HDMI
Firefox, outputting via the laptop speakers.
![image](/uploads/70f20c1639c0af139e78526917440b09/image.p...I have an HDMI Tv plugged in, and want to direct firefox to it.
In PAVUControl, I can see:
Skype, which I already output via HDMI
Firefox, outputting via the laptop speakers.
![image](/uploads/70f20c1639c0af139e78526917440b09/image.png)
The drop downs for both of these items don't have any further items in them.
If I go to the sound part of GNOME settings, I can choose different global outputs and test those.
![image](/uploads/a5e989a3bf4de00892d1276c0125dd24/image.png)
Output of pw-dump is here
https://gist.github.com/stuaxo/ca0d3655d1f70b80266cdce72b09129ahttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2096ducking other streams for a alert sound2022-02-07T15:49:21Zkushagraducking other streams for a alert soundIs it possible to for all other streams muted or ducked to a lower volume when a alert sound is played ( alarm/notification ). pulse has the `module-role-ducking ` module for this purpose but it is discarded in pipewire. fedora uses pipe...Is it possible to for all other streams muted or ducked to a lower volume when a alert sound is played ( alarm/notification ). pulse has the `module-role-ducking ` module for this purpose but it is discarded in pipewire. fedora uses pipewire by default, and this behaviour seems to be norm there on gnome, Is there any possible way to replicate it using anywhere else ?
seems like wireplumber supports it, but can't find anything in docshttps://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2095null pointer dereference when using a link-factory in `context.objects`2022-02-02T20:43:17ZNicolas Berbichenull pointer dereference when using a link-factory in `context.objects`- PipeWire version:
```
pipewire
Compiled with libpipewire 0.3.43
Linked with libpipewire 0.3.43
```
- Distribution and distribution version: `NixOS 22.05 (Quokka)`
- Desktop Environment: `Sway (Wayland)`
- Kernel ver...- PipeWire version:
```
pipewire
Compiled with libpipewire 0.3.43
Linked with libpipewire 0.3.43
```
- Distribution and distribution version: `NixOS 22.05 (Quokka)`
- Desktop Environment: `Sway (Wayland)`
- Kernel version: `5.15.11-zen1`
## Description of Problem:
I tried to use the undocumented `link-factory` in my `pipewire.conf` but it crashes due to (presumably) a null pointer dereference in `create_object` when calling `pw_resource_get_client` on a `NULL` resource.
I suppose `link-factory` is not meant to be used directly from `context.objects`.
Here's the content of my `pipewire.conf`:
``` json
{
"context.exec": [],
"context.modules": [
{
"args": {},
"flags": [
"ifexists",
"nofail"
],
"name": "libpipewire-module-rtkit"
},
{
"name": "libpipewire-module-protocol-native"
},
{
"name": "libpipewire-module-profiler"
},
{
"name": "libpipewire-module-metadata"
},
{
"name": "libpipewire-module-spa-device-factory"
},
{
"name": "libpipewire-module-spa-node-factory"
},
{
"name": "libpipewire-module-client-node"
},
{
"name": "libpipewire-module-client-device"
},
{
"flags": [
"ifexists",
"nofail"
],
"name": "libpipewire-module-portal"
},
{
"args": {},
"name": "libpipewire-module-access"
},
{
"name": "libpipewire-module-adapter"
},
{
"name": "libpipewire-module-link-factory"
},
{
"name": "libpipewire-module-session-manager"
}
],
"context.objects": [
{
"args": {
"factory.name": "support.node.driver",
"node.name": "dummy-driver",
"priority.driver": 8000
},
"factory": "spa-node-factory"
},
{
"args": {
"audio.position": "MONO",
"factory.name": "support.null-audio-sink",
"media.class": "Audio/Source/Virtual",
"node.description": "Microphone",
"node.name": "Microphone-Proxy",
"object.linger": true
},
"factory": "adapter"
},
{
"args": {
"audio.position": "FL,FR",
"factory.name": "support.null-audio-sink",
"media.class": "Audio/Sink",
"node.description": "Main Output",
"node.name": "Main-Output-Proxy",
"object.linger": true
},
"factory": "adapter"
},
{
"args": {
"factory.name": "link-factory",
"link.input.node": "Main-Output-Proxy",
"link.input.port": "monitor_FR",
"link.output.node": "alsa_output.usb-SteelSeries_SteelSeries_Arctis_7-00.stereo-game",
"link.output.port": "playback_FR",
"node.name": "Main-Output-Proxy",
"port.name": "monitor_FR",
"object.linger": true
},
"factory": "link-factory",
"flags": [
"nofail"
]
}
],
"context.properties": {
"core.daemon": true,
"core.name": "pipewire-0",
"link.max-buffers": 16,
"vm.overrides": {
"default.clock.min-quantum": 1024
}
},
"context.spa-libs": {
"api.alsa.*": "alsa/libspa-alsa",
"api.bluez5.*": "bluez5/libspa-bluez5",
"api.jack.*": "jack/libspa-jack",
"api.libcamera.*": "libcamera/libspa-libcamera",
"api.v4l2.*": "v4l2/libspa-v4l2",
"api.vulkan.*": "vulkan/libspa-vulkan",
"audio.convert.*": "audioconvert/libspa-audioconvert",
"support.*": "support/libspa-support"
},
"properties": {
"link.max.buffers": 16,
"log.level": 4
}
}
```
## How Reproducible:
100%
### Steps to Reproduce:
1. Try to use the "undocumented" `link-factory` in `context.objects`
2. Run pipewire
### Actual Results:
```
PID: 203285 (pipewire)
UID: 1000 (nicolas)
GID: 1000 (nicolas)
Signal: 11 (SEGV)
Timestamp: Wed 2022-02-02 02:40:32 EST (11h ago)
Command Line: /nix/store/r3i0ibbg6c4rm4992iw3hmwg964lm1im-pipewire-0.3.43/bin/pipewire
Executable: /nix/store/r3i0ibbg6c4rm4992iw3hmwg964lm1im-pipewire-0.3.43/bin/pipewire
Control Group: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
Unit: user@1000.service
User Unit: pipewire.service
Slice: user-1000.slice
Owner UID: 1000 (nicolas)
Boot ID: f66f4a3e7be543fb8037784313ad45fa
Machine ID: 28a8489d382e46739f3430446e449012
Hostname: mero
Storage: /var/lib/systemd/coredump/core.pipewire.1000.f66f4a3e7be543fb8037784313ad45fa.203285.1643787632000000.zst (present)
Disk Size: 184.6K
Message: Process 203285 (pipewire) of user 1000 dumped core.
Found module linux-vdso.so.1 with build-id: 127420d77290df746593a1bd5d05dfc1f09626ba
Found module libm.so.6 with build-id: d6b606266f360bba29637ca393f9f4147cbfdb4d
Found module libspa-audioconvert.so without build-id.
Found module libpipewire-module-session-manager.so without build-id.
Found module libpipewire-module-link-factory.so without build-id.
Found module libpipewire-module-adapter.so without build-id.
Found module libpipewire-module-access.so without build-id.
Found module libpipewire-module-portal.so without build-id.
Found module libpipewire-module-client-device.so without build-id.
Found module libpipewire-module-client-node.so without build-id.
Found module libpipewire-module-spa-node-factory.so without build-id.
Found module libpipewire-module-spa-device-factory.so without build-id.
Found module libpipewire-module-metadata.so without build-id.
Found module libpipewire-module-profiler.so without build-id.
Found module libpipewire-module-protocol-native.so without build-id.
Found module libpipewire-module-rtkit.so without build-id.
Found module libdbus-1.so.3 without build-id.
Found module libspa-dbus.so without build-id.
Found module libcap.so.2 without build-id.
Found module librt.so.1 with build-id: e4de41dbc4ced741cc6512fb56f5fc2f68202f20
Found module libsystemd.so.0 without build-id.
Found module libspa-journal.so without build-id.
Found module libspa-support.so without build-id.
Found module ld-linux-x86-64.so.2 with build-id: a799881c2c968a73ad9a4b97e58d47c1c4e22aaf
Found module libdl.so.2 with build-id: b25d5848157ba9d565c58fe501a769ca4b54dd39
Found module libc.so.6 with build-id: 1a840e5b29a4f81b213956c93c630308ee363f48
Found module libpthread.so.0 with build-id: 599dee78d5c0c99fd6dd14898d3eb9f8504d1e0e
Found module libpipewire-0.3.so.0 without build-id.
Found module pipewire without build-id.
Stack trace of thread 203285:
#0 0x00007fc9b51ad090 pw_resource_get_client (libpipewire-0.3.so.0 + 0x86090)
#1 0x00007fc9a659fb24 create_object (libpipewire-module-link-factory.so + 0x2b24)
#2 0x00007fc9b5161516 parse_objects (libpipewire-0.3.so.0 + 0x3a516)
#3 0x00007fc9b51635e3 pw_context_parse_conf_section (libpipewire-0.3.so.0 + 0x3c5e3)
#4 0x00007fc9b5164f17 pw_context_new (libpipewire-0.3.so.0 + 0x3df17)
#5 0x000055e251bdc403 main (pipewire + 0x1403)
#6 0x00007fc9b4f69780 __libc_start_main (libc.so.6 + 0x27780)
#7 0x000055e251bdc5da _start (pipewire + 0x15da)
```
### Expected Results:
Ability to use `link-factory` in the pipewire config without resorting to a shell script.
# Additional Info (as attachments):
- `pw-dump > pw-dump.log`: