PipeWire
0.3.33
|
Overview | PipeWire is a new low-level multimedia framework designed from scratch that aims to provide |
▼PipeWire | |
Design | A short overview of PipeWire's design |
PipeWire Audio | This document explains how Audio is implemented |
Access Control | This document explains how access control is designed and implemented |
Portal Access Control | This document explains how clients from the portal are handled |
MIDI Support | This document explains how MIDI is implemented |
Media Streams | |
Client | |
Proxy | |
Threaded Loop | |
PipeWire Objects Design | This document is a design reference on the various objects that exist in the PipeWire media and session management graphs, explaining what these objects are, how they are meant to be used and how they relate to other kinds of objects and concepts that exist in subsystems or other libraries |
DMA-BUF sharing | PipeWire supports sharing Direct Memory Access buffers (DMA-BUFs) between clients via the SPA_DATA_DmaBuf data type |
PipeWire Daemon | The PipeWire daemon is the central process that manages data exchange between devices and clients |
PipeWire Library | There are 2 main components that make up the PipeWire library: |
PipeWire Tools | |
PipeWire Session Manager | The PipeWire Daemon is primarily a framework that allows devices and applications to exchange data |
PulseAudio compatibility | |
▼PipeWire Modules | A PipeWire module is effectively a PipeWire client in an .so file that shares the PipeWire Context with the loading entity |
PipeWire Module: Access | The access module performs access checks on clients |
PipeWire Module: Adapter | |
PipeWire Module: Client Device | |
PipeWire Module: Client Node | |
PipeWire Module: Echo Cancel | The echo-cancel module performs echo cancellation |
PipeWire Module: Example Sink | |
PipeWire Module: Example Source | |
PipeWire Module: Filter-Chain | |
PipeWire Module: Link Factory | |
PipeWire Module: Loopback | |
PipeWire Module: Metadata | |
PipeWire Module: Portal | The portal module performs access control management for clients started inside an XDG portal |
PipeWire Module: Profiler | |
PipeWire Module: Protocol Native | |
PipeWire Module: Protocol Pulse | |
PipeWire Module: Protocol Simple | |
PipeWire Module: Pulse Tunnel | |
PipeWire Module: ROC sink | The roc-sink module creates a PipeWire sink that sends samples to a preconfigured receiver address |
PipeWire Module: ROC source | The roc-source module creates a PipeWire source that receives samples from ROC sender and passes them to the sink it is connected to |
PipeWire Module: RT | |
PipeWire Module: RTKit | |
PipeWire Module: Session Manager | |
PipeWire Module: Zeroconf Discover | |
▼Media Session | PipeWire Media Session is the reference/example session manager provided by the PipeWire project |
Media Session Module: Access Flatpak | |
Media Session Module: Access Portal | The Access Portal module manages media roles for clients started through a portal (see PipeWire Module: Portal) |
Media Session Module: ALSA Endpoint | The ALSA endpoint module creates an endpoint and corresponding endpoint stream for each Node on ALSA devices |
Media Session Module: ALSA MIDI | |
Media Session Module: ALSA Monitor | |
Media Session Module: BlueZ Auto-Switch | Switch profiles of Bluetooth devices trying to enable an input route, if input streams are active while default output is directed to the device |
Media Session Module: BlueZ Endpoint | |
Media Session Module: BlueZ Monitor | |
Media Session Module: Default Nodes | |
Media Session Module: Default Profile | The default profile module restores a previously saved profile or otherwise the best available profile |
Media Session Module: Default Routes | |
Media Session Module: libCamera Monitor | |
Media Session Module: Logind | The logind module uses systemd logind to keep track of the user's session and updates the media session's seat state accordingly |
Media Session Module: Metadata | |
Media Session Module: Policy Endpoint | |
Media Session Module: Policy Node | |
Media Session Module: Restore Stream | |
Media Session Module: Session Manager | |
Media Session Module: Stream Endpoint | |
Media Session Module: Stream Follow Default | |
Media Session Module: Suspend Node | |
Media Session Module: V4L2 Endpoint | |
Media Session Module: V4L2 Monitor | |
API Documentation | The API consists of two parts: |
▼Tutorial | Welcome to the PipeWire tutorial |
Tutorial - Part 1: Getting started | Index | Tutorial - Part 2: Enumerating objects |
Tutorial - Part 2: Enumerating objects | Tutorial - Part 1: Getting started | Index | Tutorial - Part 3: Forcing a roundtrip |
Tutorial - Part 3: Forcing a roundtrip | Tutorial - Part 2: Enumerating objects | Index | Tutorial - Part 4: Playing a tone |
Tutorial - Part 4: Playing a tone | Tutorial - Part 3: Forcing a roundtrip | Index | Tutorial - Part 5: Capturing video frames |
Tutorial - Part 5: Capturing video frames | Tutorial - Part 4: Playing a tone | Index | Tutorial - Part 6: Binding objects |
Tutorial - Part 6: Binding objects | Tutorial - Part 5: Capturing video frames | Index |
▼SPA (Simple Plugin API) | SPA (Simple Plugin API) is an extensible API to implement all kinds of plugins |
SPA Design | |
SPA Plugins | Plugins are dynamically loadable objects that contain objects and interfaces that can be introspected and used at runtime in any application |
SPA POD | POD (plain old data) is a sort of data container |
SPA Buffers |
|