janbar/noson-app

Pipewire support

codedwrench opened this issue · 1 comments

Hi, I tried to use your program on Arch Linux with Pipewire as an audio backend (completely replacing pulse) and ran into a smallish issue.
In Pipewire noson does not appear as an audio sink:
image

It does seem to take the output from firefox and play it back okay, but it does not mute the original output device, causing the sound to be played twice. It also quickly disconnects when seeking in firefox.

I was able to make it work using a virtual audio sink and Catia as a workaround however:
image

Disconnecting noson from firefox directly and connecting it to the monitor output of the virtual audio sink, this also fixes seeking.

I'm not sure if this is helpful at all but here is a snippet of the log (it took 3 tries to get it connected):
(SONOS)streamSink: no sink available
(SONOS)streamSink: no sink available
(SONOS)Open FLAC encoder
(SONOS)Open PA session

It would be awesome if this could work without the workaround.
This is using Noson version 7efd29f and Pipewire 0.3.22

This seems like a pretty grave issue with the pulse emulation in pipewire, since noson just uses the pa_simple API (i. e. it's libpulse doing everything).

This is basically example code for libpulse: https://github.com/janbar/noson/blob/136297cfde7815c07cd0f535be1539f4f71395ac/noson/src/pasource.cpp#L159 and https://github.com/janbar/noson/blob/136297cfde7815c07cd0f535be1539f4f71395ac/noson/src/pasource.cpp#L197

If you already have a user account on the freedesktop gitlab it would make sense to open a bug report there at least to get some feedback (I can't be arsed to register a user right now).

And are you sure the first issue isn't a problem with pavucontrol? I noticed some weird issues when testing pipewire with my own pavucontrol fork, with sinks not showing up etc.