Moving from Pulseaudio API to Pipewire's
I am the developer of PulseEffects and I have started the move to PipeWire API. So far I was able to listen to node events and get some of the information I need from them https://github.com/wwmm/pulseeffects/blob/pipewire/src/pipe_manager.cpp. At some point I will need to link stream outputs to the input of a GStreamer pipeline so I can apply effects to the audio buffers. But so far I have no clue about how this is done on PipeWire. On Pulseaudio the only way was to load a null sink and move sink inputs to it. And then move GStreamer's pipeline source output (pulsesrc) to this null sink monitor. It seems to me that PipeWire does not need a null sink in the middle. But how is it done?
There are other things that would be nice to do like muting and controlling streams volume (like Pavucontrol) or getting each stream audio format but redirecting them to the input of the GStreamer pipeline is the critical operation that I will have to implement in order to make PulseEffects working in PipeWire without resorting to the Pulseaudio compatibility layer.
Best regards, Wellington