PipeWire  1.0.7
Example Filter

The example filter is a good starting point for writing a custom filter.

We refer to the source code for more information.

Module Name

libpipewire-module-example-filter

Module Options

  • node.description: a human readable name for the filter streams
  • capture.props = {}: properties to be passed to the input stream
  • playback.props = {}: properties to be passed to the output stream

General options

Options with well-known behavior. Most options can be added to the global configuration or the individual streams:

Stream only properties:

  • PW_KEY_MEDIA_CLASS
  • PW_KEY_NODE_NAME: if not given per stream, the global node.name will be prefixed with 'input.' and 'output.' to generate a capture and playback stream node.name respectively.

Example configuration of a virtual source

1 context.modules = [
2 { name = libpipewire-module-example-filter
3  args = {
4  node.description = "Example Filter"
5  capture.props = {
6  audio.position = [ FL FR ]
7  node.passive = true
8  }
9  playback.props = {
10  node.name = "Example Filter"
11  media.class = "Audio/Source"
12  audio.position = [ FL FR ]
13  }
14  }
15 }
16 ]
1 pw-cli -m lm libpipewire-module-example-filter '{ audio.position=[FL FR] }'