PipeWire Documentation

# Introduction

This document describes the API for the PipeWire multimedia framework. The API consists of two parts:

- The core API and tools to build new modules (See Core API)
- The remote API (See Remote API)

# Error reporting

Functions return either NULL or a negative int error code when an error occurs. Error codes are used from the SPA plugin library on which PipeWire is built.

Some functions might return asynchronously. The error code for such functions is positive and SPA_RESULT_IS_ASYNC() will return true. SPA_RESULT_ASYNC_SEQ() can be used to get the unique sequence number associated with the async operation.

The object returning the async result code will have some way to signal the completion of the async operation (with, for example, a callback). The sequence number can be used to see which operation completed.

# Logging

The 'PIPEWIRE_DEBUG' environment variable can be used to enable more debugging. The format is:

<level>[:<category>,...]

- <level>: specifies the log level:
  - `0`: no logging is enabled
  - `1`: Error logging is enabled
  - `2`: Warnings are enabled
  - `3`: Informational messages are enabled
  - `4`: Debug messages are enabled
  - `5`: Trace messages are enabled. These messages can be logged from the realtime threads.
- <category>: Specifies a string category to enable. Many categories can be separated by commas. Current categories are:
  - `connection`: to log connection messages