On Thu, Jan 28, 2021 at 02:10:47PM +0100, Lukas Ruzicka wrote:
>
>
> I think there's a misunderstanding in how all the "frameworks" and
stacked
> on top of each other. I'm not very knowledgeable in this area, but I think
> the layers are more or less like this:
>
> 6. Totem | Firefox | Rhythmbox | Audacity
> --------------------------
> 5. GStreamer | FFmpeg
> --------------------------
> 4. PulseAudio | JACK
> --------------------------
> 3. Pipewire
> --------------------------
> 2. ALSA | OSS
> --------------------------
> 1. Hardware
>
This is from the headlines at
pipewire.org:
*PipeWire provides a low-latency, graph based processing engine on top of
audio and video devices that can be used to support the use cases currently
handled by both pulseaudio and JACK.*
To me, this sounds more like a replacement of the layer 4 (at least). Am I
wrong to think that devices = hardware? Also, what Wim has told me "*PipeWire
should be an under-the-hood change. No workflow or tools or apis are
changed, so we still use pulseaudio API, jack API, jack tools and
pulseaudio tools for everything. Evaluation of this should be on how
similar the old setup was to the new one, there should ideally be no
difference, nobody should notice a change, ideally.*" does not have to
imply that "sound data" go to PulseAudio first and then to PipeWire. I
believe that PipeWire mimics the PulseAudio ports to handle the situation
by itself. However, I was not able to find any accurate description of how
that actually works in the system, so if you have a link to a place where
the above diagram is to be seen or confirmed, please share it.
pipewire replaces completely pulseaudio and jack _daemons_
ie, now you might have jackd or pulseaudio running, after the switch you
will just have pipewire. All the pulseaudio clients and jack clients
talk to pipewire, and think it's their daemon. They still use
pulseaudio-libs and jack libs to talk it, but pipewire daemon "speaks"
both those protocols, so as far as they know everything is exactly the
same.
So, you could adjust your table by making line 4 "Pulseaudio and jack
clients" or merging 3 and 4 into "pulseaudio, jack or pipewire daemons".
At least thats my understanding.
kevin