Home

libpipewire

libpipewire is the client library for the PipeWire multimedia framework. It provides a stable C API that applications use to connect to the PipeWire daemon, create and manage streams and nodes, discover and bind to objects, query and set properties, and respond to state changes. As the primary client-side interface, libpipewire sits between applications and the PipeWire server, enabling scripted and real-time control of audio and video pipelines.

The library exposes a set of core objects that model the PipeWire world. Key entities include pw_core

Typical usage involves initializing a core, obtaining a registry, discovering available nodes or devices, creating and

As a component of the PipeWire project, libpipewire is widely used by multimedia applications and toolchains

for
the
connection
to
the
server,
pw_registry
for
discovering
objects,
pw_node
and
pw_port
to
represent
processing
units
and
their
interfaces,
pw_stream
for
media
streams,
and
pw_device
and
pw_link
for
routing
and
associations.
It
also
provides
pw_properties
for
property
maps
and
a
variety
of
event
callbacks
and
error
handling
mechanisms.
libpipewire
communicates
with
the
PipeWire
daemon
using
the
project’s
wire
protocol
over
IPC,
and
supports
both
high-level
convenience
APIs
and
lower-level
access
for
advanced
use
cases.
configuring
streams,
negotiating
formats,
and
controlling
playback
or
capture.
Applications
can
react
to
state
changes
through
event-driven
callbacks,
enabling
dynamic
routing,
volume
control,
and
simple
processing
tasks
within
the
PipeWire
ecosystem.
on
Linux.
It
is
maintained
as
part
of
the
upstream
PipeWire
codebase
and
is
distributed
under
the
project’s
licensing
terms.