PipeWire  0.3.43
Related Pages
Here is a list of all related documentation pages:
[detail level 12]
 OverviewPipeWire is a new low-level multimedia framework designed from scratch that aims to provide
 PipeWire Design
 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, 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
 PipeWire LibraryThere are 2 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
 PipeWire DaemonThe PipeWire daemon is the central process that manages data exchange between devices and clients
 PipeWire Tools
 PipeWire Session ManagerThe PipeWire Daemon is primarily a framework that allows devices and applications to exchange data
 PulseAudio compatibility
 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: Client Device
 PipeWire Module: Client Node
 PipeWire Module: Echo CancelThe 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: PortalThe 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: RAOP Discover
 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: RT
 PipeWire Module: RTKit
 PipeWire Module: Session Manager
 PipeWire Module: Zeroconf Discover
 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
 PipeWire APIThe PipeWire API consists of several parts:
 Client Implementation
 Proxy
 Streams
 Thread Loop
 SPA (Simple Plugin API)SPA (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