|
PipeWire 1.1.0
|
| Overview | PipeWire is a new low-level multimedia framework designed from scratch that aims to provide: |
| ►Programs | |
| pipewire | |
| pipewire.conf | |
| pipewire-pulse | |
| pipewire-pulse.conf | |
| pipewire-pulse-modules | |
| pw-cat | |
| pw-cli | |
| pw-config | |
| pw-dot | |
| pw-dump | |
| pw-jack | |
| pw-link | |
| pw-loopback | |
| pw-metadata | |
| pw-mididump | |
| pw-mon | |
| pw-profiler | |
| pw-reserve | |
| pw-top | |
| pw-v4l2 | |
| spa-acp-tool | |
| spa-inspect | |
| spa-json-dump | |
| spa-monitor | |
| spa-resample | |
| libpipewire-modules | |
| ►Modules | A PipeWire module is effectively a PipeWire client in an .so file that shares the Context with the loading entity |
| Access | The access module performs access checks on clients |
| Adapter | |
| AVB | |
| Client Device | |
| Client Node | |
| Combine Stream | The combine stream can make: |
| Echo Cancel | The echo-cancel module performs echo cancellation |
| Example Filter | The example filter is a good starting point for writing a custom filter |
| Example Sink | The example sink is a good starting point for writing a custom sink |
| Example Source | The example source is a good starting point for writing a custom source |
| Fallback Sink | Fallback sink, which appear dynamically when no other sinks are present |
| FFADO firewire audio driver | The ffado-driver module provides a source or sink using the libffado library for reading and writing to firewire audio devices |
| Filter-Chain | The filter-chain allows you to create an arbitrary processing graph from LADSPA, LV2 and builtin filters |
| JACK DBus detect | Automaticall creates a sink/source when a jackdbus server is started and connect to JACK |
| JACK Tunnel | The jack-tunnel module provides a source or sink that tunnels all audio to a JACK server |
| Link Factory | |
| Loopback | The loopback module passes the output of a capture stream unmodified to a playback stream |
| Metadata | |
| Netjack2 driver | The netjack2-driver module provides a source or sink that is following a netjack2 manager |
| Netjack2 manager | The netjack2 manager module listens for new netjack2 driver messages and will start a communication channel with them |
| Unix Pipe Tunnel | The pipe-tunnel module provides a source or sink that tunnels all audio to or from a unix pipe respectively |
| Portal | The portal module performs access control management for clients started inside an XDG portal |
| Profiler | The profiler module provides a Profiler interface for applications that can be used to receive profiling information |
| Protocol Native | The native protocol module implements the PipeWire communication between a client and a server using unix local sockets |
| Protocol Pulse | This module implements a complete PulseAudio server on top of PipeWire |
| Protocol Simple | The simple protocol provides a bidirectional audio stream on a network socket |
| Pulse Tunnel | The pulse-tunnel module provides a source or sink that tunnels all audio to a remote PulseAudio connection |
| AirPlay Sink | Creates a new Sink to stream to an Airplay device |
| RAOP Discover | Automatically creates RAOP (Airplay) sink devices based on zeroconf information |
| ROC sink | The roc-sink module creates a PipeWire sink that sends samples to a preconfigured receiver address |
| 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 |
| SAP Announce and create RTP streams | The rtp-sap module announces RTP streams that match the rules with the announce-stream action |
| RTP sink | The rtp-sink module creates a PipeWire sink that sends audio RTP packets |
| RTP source | The rtp-source module creates a PipeWire source that receives audio and midi RTP packets |
| RTP session | The rtp-session module creates a media session that is announced with avahi/mDNS/Bonjour |
| RT | The rt modules can give real-time priorities to processing threads |
| Session Manager | This module implements some usefull objects for implementing a session manager |
| VBAN receiver | The vban-recv module creates a PipeWire source that receives audio and midi VBAN packets |
| VBAN sender | The vban-send module creates a PipeWire sink that sends audio and midi VBAN packets |
| X11 Bell | The x11-bell module intercept the X11 bell events and uses libcanberra to play a sound |
| Zeroconf Discover | Use zeroconf to detect and load module-pulse-tunnel with the right parameters |
| ►Pulseaudio Modules | |
| ALSA Sink | |
| ALSA Source | |
| Always Sink | |
| Combine Sink | |
| Echo Cancel | |
| GSettings | |
| JackDBus Detect | |
| LADSPA Sink | |
| LADSPA Source | |
| Loopback | |
| Pulseaudio TCP Protocol | |
| Null Sink | |
| Pipe Sink | |
| Pipe Source | |
| RAOP Discover | |
| Remap Sink | |
| Remap Source | |
| ROC Sink | |
| ROC Sink Input | |
| ROC Source | |
| RTP Receiver | |
| RTP Sender | |
| Simple TCP Protocol | |
| Switch on Connect | |
| Tunnel Sink | |
| Tunnel Source | |
| Virtual Sink | |
| Virtual Source | |
| X11 Bell | |
| Zeroconf Discover | |
| Zeroconf Publish | |
| ►Internals | |
| Design | A short overview of PipeWire's design |
| 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 |
| Objects Design | This document is a design reference on the various objects that exist in the PipeWire media and session management graphs |
| PipeWire Library | There are two main components that make up the PipeWire library: |
| DMA-BUF Sharing | PipeWire supports sharing Direct Memory Access buffers (DMA-BUFs) between clients via the SPA_DATA_DmaBuf data type |
| Graph Scheduling | This document tries to explain how the PipeWire graph is scheduled |
| ►Native Protocol | PipeWire has a pluggable client/server IPC protocol |
| PipeWire Daemon | The PipeWire daemon is the central process that manages data exchange between devices and clients |
| PipeWire Session Manager | The PipeWire Daemon is primarily a framework that allows devices and applications to exchange data |
| PulseAudio Compatibility | |
| ►PipeWire API | The PipeWire API consists of several parts: |
| ►SPA (Simple Plugin API) | SPA (Simple Plugin API) is an extensible API to implement all kinds of plugins |
| SPA Design | |
| SPA Plugins | SPA 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 |
A SPA Buffer contains metadata and data |
| ►Client Implementation | |
| ►Proxy | |
| ►Streams | |
| ►Thread Loop | |
| ►Tutorial | Welcome to the PipeWire API 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 |
| List of example programs |