PipeWire  0.3.36
PipeWire Session Manager

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 PipeWire Objects Design, PipeWire provides a media graph consistent 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:

  • Media Session - the reference session manager provided by PipeWire
  • WirePlumber, a modular session manager based on GObject

This page describes some of the requirements for session managers in general.

Client management

PipeWire provides a permission system to limit client's acccess to resources but only basic permissionhandling". 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 PipeWire Objects Design for details on Endpoints.