PipeWire 1.0.5
|
The PipeWire Daemon is primarily a framework that allows devices and applications to exchange data.
It provides the mechanism to do so but the policy deciding which components can talk to each other and when is controlled by the session manager. As outlined in Objects Design, PipeWire provides a media graph consisting of devices, nodes and ports. The session manager is the one that decides on the links between those elements.
Two prominent session managers currently exist:
This page describes some of the requirements for session managers in general.
PipeWire provides a permission system to limit client's access to resources but only basic permissionhandling". The session manager is expected to decide whether clients may access specific resources.
PipeWire's responsibility is to open devices, however the decision on which devices should be opened is the job of a session manager, including the configuration of those devices.
An endpoint is, effectively, a group of nodes that are a logical unit that can consume or produce media data. For example, a Bluetooth speaker may present as several nodes but is only one logical unit to stream audio to.
See Objects Design for details on Endpoints.