diff options
Diffstat (limited to 'doc/pipewire-session-manager.dox')
-rw-r--r-- | doc/pipewire-session-manager.dox | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/pipewire-session-manager.dox b/doc/pipewire-session-manager.dox new file mode 100644 index 0000000..d21ba9a --- /dev/null +++ b/doc/pipewire-session-manager.dox @@ -0,0 +1,46 @@ +/** \page page_session_manager PipeWire Session Manager + +The \ref page_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 \ref page_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: + +- [PipeWire Media Session](https://gitlab.freedesktop.org/pipewire/media-session), the +example session manager. +- [WirePlumber](https://gitlab.freedesktop.org/pipewire/wireplumber), a +modular session manager based on GObject. +[Documentation](https://pipewire.pages.freedesktop.org/wireplumber/) + +This page describes some of the requirements for session managers in general. + + +# Client Management + +PipeWire provides a \ref page_access "permission system" to limit client's +access to resources but only \ref page_module_access "basic permission +handling". The session manager is expected to decide whether clients may +access specific resources. + + +# Device Management + +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. + + +# Endpoint Grouping + +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 \ref page_objects_design for details on Endpoints. + +*/ |