PipeWire  0.3.85
Pages
Here is a list of all related documentation pages:
[detail level 12]
 page_overviewPipeWire is a new low-level multimedia framework designed from scratch that aims to provide:
 page_pipewire
 DesignA short overview of PipeWire's design
 AudioThis document explains how Audio is implemented
 Access ControlThis document explains how access control is designed and implemented
 Portal Access ControlThis document explains how clients from the portal are handled
 MIDI SupportThis document explains how MIDI is implemented
 Objects DesignThis document is a design reference on the various objects that exist in the PipeWire media and session management graphs
 PipeWire LibraryThere are two main components that make up the PipeWire library:
 DMA-BUF SharingPipeWire supports sharing Direct Memory Access buffers (DMA-BUFs) between clients via the SPA_DATA_DmaBuf data type
 Graph SchedulingThis document tries to explain how the PipeWire graph is scheduled
 Native ProtocolPipeWire has a pluggable client/server IPC protocol
 PipeWire DaemonThe PipeWire daemon is the central process that manages data exchange between devices and clients
 PipeWire Session ManagerThe PipeWire Daemon is primarily a framework that allows devices and applications to exchange data
 PulseAudio Compatibility
 page_toolsManual pages:
 pipewireManual page for pipewire
 pipewire-pulseManual page for pipewire-pulse
 pipewire.confManual page for pipewire.conf
 pw-catManual page for pw-cat
 pw-cliManual page for pw-cli
 pw-configManual page for pw-config
 pw-dotManual page for pw-dot
 pw-linkManual page for pw-link
 pw-metadataManual page for pw-metadata
 pw-mididumpManual page for pw-mididump
 pw-monManual page for pw-mon
 pw-profilerManual page for pw-profiler
 pw-topManual page for pw-top
 pw-jackManual page for pw-jack
 page_pipewire_modulesA PipeWire module is effectively a PipeWire client in an .so file that shares the Context with the loading entity
 PipeWire Module: AccessThe access module performs access checks on clients
 PipeWire Module: Adapter
 PipeWire Module: AVB
 PipeWire Module: Client Device
 PipeWire Module: Client Node
 PipeWire Module: Combine StreamThe combine stream can make:
 PipeWire Module: Echo CancelThe echo-cancel module performs echo cancellation
 PipeWire Module: Example FilterThe example filter is a good starting point for writing a custom filter
 PipeWire Module: Example SinkThe example sink is a good starting point for writing a custom sink
 PipeWire Module: Example SourceThe example source is a good starting point for writing a custom source
 PipeWire Module: Fallback SinkFallback sink, which appear dynamically when no other sinks are present
 PipeWire Module: FFADO firewire audio driverThe ffado-driver module provides a source or sink using the libffado library for reading and writing to firewire audio devices
 PipeWire Module: Filter-ChainThe filter-chain allows you to create an arbitrary processing graph from LADSPA, LV2 and builtin filters
 PipeWire Module: JACK DBus detectAutomaticall creates a sink/source when a jackdbus server is started and connect to JACK
 PipeWire Module: JACK TunnelThe jack-tunnel module provides a source or sink that tunnels all audio to a JACK server
 PipeWire Module: Link Factory
 PipeWire Module: LoopbackThe loopback module passes the output of a capture stream unmodified to a playback stream
 PipeWire Module: Metadata
 PipeWire Module: Netjack2 driverThe netjack2-driver module provides a source or sink that is following a netjack2 driver
 PipeWire Module: Netjack2 managerThe netjack2 manager module listens for new netjack2 driver messages and will start a communication channel with them
 PipeWire Module: Unix Pipe TunnelThe pipe-tunnel module provides a source or sink that tunnels all audio to or from a unix pipe respectively
 PipeWire Module: PortalThe portal module performs access control management for clients started inside an XDG portal
 PipeWire Module: ProfilerThe profiler module provides a Profiler interface for applications that can be used to receive profiling information
 PipeWire Module: Protocol NativeThe native protocol module implements the PipeWire communication between a client and a server using unix local sockets
 PipeWire Module: Protocol PulseThis module implements a complete PulseAudio server on top of PipeWire
 PipeWire Module: Protocol SimpleThe simple protocol provides a bidirectional audio stream on a network socket
 PipeWire Module: Pulse TunnelThe pulse-tunnel module provides a source or sink that tunnels all audio to a remote PulseAudio connection
 PipeWire Module: AirPlay SinkCreates a new Sink to stream to an Airplay device
 PipeWire Module: RAOP DiscoverAutomatically creates RAOP (Airplay) sink devices based on zeroconf information
 PipeWire Module: ROC sinkThe roc-sink module creates a PipeWire sink that sends samples to a preconfigured receiver address
 PipeWire Module: ROC sourceThe 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: SAP Announce and create RTP streamsThe rtp-sap module announces RTP streams that match the rules with the announce-stream action
 PipeWire Module: RTP sinkThe rtp-sink module creates a PipeWire sink that sends audio RTP packets
 PipeWire Module: RTP sourceThe rtp-source module creates a PipeWire source that receives audio and midi RTP packets
 PipeWire Module: RTP sessionThe rtp-session module creates a media session that is announced with avahi/mDNS/Bonjour
 PipeWire Module: RTThe rt modules can give real-time priorities to processing threads
 PipeWire Module: Session ManagerThis module implements some usefull objects for implementing a session manager
 PipeWire Module: VBAN receiverThe vban-recv module creates a PipeWire source that receives audio and midi VBAN packets
 PipeWire Module: VBAN senderThe vban-send module creates a PipeWire sink that sends audio and midi VBAN packets
 PipeWire Module: X11 BellThe x11-bell module intercept the X11 bell events and uses libcanberra to play a sound
 PipeWire Module: Zeroconf DiscoverUse zeroconf to detect and load module-pulse-tunnel with the right parameters
 page_apiThe PipeWire API consists of several parts:
 Client Implementation
 Proxy
 Streams
 Thread Loop
 page_spaSPA (Simple Plugin API) is an extensible API to implement all kinds of plugins
 SPA Design
 SPA PluginsSPA plugins are dynamically loadable objects that contain objects and interfaces that can be introspected and used at runtime in any application
 SPA PODPOD (plain old data) is a sort of data container
 SPA Buffers

What is the array of spa_data in spa_buffer?

A SPA Buffer contains metadata and data

 page_tutorialWelcome to the PipeWire tutorial
 Tutorial - Part 1: Getting StartedIndex | Tutorial - Part 2: Enumerating Objects
 Tutorial - Part 2: Enumerating ObjectsTutorial - Part 1: Getting Started | Index | Tutorial - Part 3: Forcing A Roundtrip
 Tutorial - Part 3: Forcing A RoundtripTutorial - Part 2: Enumerating Objects | Index | Tutorial - Part 4: Playing A Tone
 Tutorial - Part 4: Playing A ToneTutorial - Part 3: Forcing A Roundtrip | Index | Tutorial - Part 5: Capturing Video Frames
 Tutorial - Part 5: Capturing Video FramesTutorial - Part 4: Playing A Tone | Index | Tutorial - Part 6: Binding Objects
 Tutorial - Part 6: Binding ObjectsTutorial - Part 5: Capturing Video Frames | Index
 List of example programs