PipeWire: PipeWire Module: Echo Cancel

PipeWire 0.3.64

Loading...
Searching...
No Matches
PipeWire Module: Echo Cancel

The `echo-cancel` module performs echo cancellation.

The module creates virtual `echo-cancel-capture` source and `echo-cancel-playback` sink nodes and the associated streams.

## Module Options

Options specific to the behavior of this module

- `capture.props = {}`: properties to be passed to the capture stream
- `source.props = {}`: properties to be passed to the source stream
- `sink.props = {}`: properties to be passed to the sink stream
- `playback.props = {}`: properties to be passed to the playback stream
- `library.name = <str>`: the echo cancellation library Currently supported: `aec/libspa-aec-webrtc`. Leave unset to use the default method (`aec/libspa-aec-webrtc`).
- `aec.args = <str>`: arguments to pass to the echo cancellation method

## General options

Options with well-known behavior:

- PW_KEY_AUDIO_RATE
- PW_KEY_AUDIO_CHANNELS
- SPA_KEY_AUDIO_POSITION
- PW_KEY_MEDIA_CLASS
- PW_KEY_NODE_LATENCY
- PW_KEY_NODE_NAME
- PW_KEY_NODE_DESCRIPTION
- PW_KEY_NODE_GROUP
- PW_KEY_NODE_LINK_GROUP
- PW_KEY_NODE_VIRTUAL
- PW_KEY_NODE_LATENCY
- PW_KEY_REMOTE_NAME

## Example configuration

context.modules = [
{ name = libpipewire-module-echo-cancel
args = {
# library.name = aec/libspa-aec-webrtc
# node.latency = 1024/48000
capture.props = {
node.name = "Echo Cancellation Capture"
}
source.props = {
node.name = "Echo Cancellation Source"
}
sink.props = {
node.name = "Echo Cancellation Sink"
}
playback.props = {
node.name = "Echo Cancellation Playback"
}
}
}
]