On Sat, 06 Aug 2022 05:30:32 -0000
Adam Chasen via users <users(a)lists.fedoraproject.org> wrote:
I am hoping for some guidance on if I should be using pipewiresrc
(vs
alsasrc) in my gstreamer pipeline.
From my understanding we fully switched over to PipeWire for managing
audio devices in Fedora. To me, this means all "non-pipewire"
interfaces (PulseAudio, ALSA, OSS, etc) are now using compatibility
layers to plumb the audio to PipeWire. I presume that the "most
correct" pipeline source object type to use is pipewiresrc.
alsa is the hardware layer. It supports the drivers for all audio
devices on the system. Pulse and pipewire give access to alsa devices
in a more user friendly way and add capabilities that alsa doesn't
have. They both use alsa to access the actual devices. The official
switch in Fedora is from pulseaudio to pipewire as an enhancement layer.
I think I still see new pulseaudio versions available, so maybe it will
still work. But, whichever you choose, it should be the only one active
on the system at any time. Two managers (pulseaudio and pipewire), one
employee (alsa), not a recipe for good things happening.
If the answer is to use pipewiresrc, how can I inspect the pipewire
"devices" seen by gstreamer? `gst-device-monitor-1.0` only shows the
expected PipeWire devices via the ALSA api. The upstream
documentation indicates the devices should be listed as of 2 years
ago
https://github.com/PipeWire/pipewire/blob/master/README.md#running-gstrea...
When I looked at this, I was also confused. There doesn't seem to be a
clear translation from the alsa device assignment / label to the
pipewire device assignment / label. My investigation was months ago,
so it could have changed in the meantime, and could still be changing.