PipeWire  0.3.40
Tutorial - Part 1: Getting started

Index | Tutorial - Part 2: Enumerating objects

In this tutorial we show the basics of a simple PipeWire application. Use this tutorial to get started and help you set up your development environment.


Let get started with the simplest application.

int main(int argc, char *argv[])
pw_init(&argc, &argv);
fprintf(stdout, "Compiled with libpipewire %s\n"
"Linked with libpipewire %s\n",
return 0;
void pw_init(int *argc, char **argv[])
Initialize PipeWire.
Definition: pipewire.c:586

Before you can use any PipeWire functions, you need to call pw_init().


PipeWire provides a pkg-config file named libpipewire-0.3 (note: the version suffix may change with future releases of pipewire). To compile the simple test application, copy it into a test1.c file and use pkg-config to provide the required dependencies:

gcc -Wall test1.c -o test1 $(pkg-config --cflags --libs libpipewire-0.3)

then run it with:

# ./test1
Compiled with libpipewire 0.3.5
Linked with libpipewire 0.3.5

Use your build system's pkg-config support to integrate it into your project. For example, a minimal meson.build entry would look like this:

project('test1', ['c'])
pipewire_dep = dependency('libpipewire-0.3')
executable('test1', 'test1.c',
           dependencies: [pipewire_dep])

Index | Tutorial - Part 2: Enumerating objects