mod.filter-chain: capture_process() out of playback buffers: Broken pipe
- PipeWire version (
pipewire --version
): 0.3.53.r9.g8b649c45 (git master @ 8b649c45) - Distribution and distribution version (
PRETTY_NAME
from/etc/os-release
): Arch Linux - Desktop Environment: Wayland (sway)
- Kernel version (
uname -r
): 5.18.8-arch1-1
Description of Problem:
After the upgrade from 0.3.52 to 0.3.53 I experienced severe stuttering in my filter-chain sinks. I have been using this ladspa plugin for quite some time now (even previously with pulseaudio too): https://github.com/bmc0/dsp
Due to the stuttering, I removed all filter-chain sinks from my config, restarted pipewire and then loaded the filter-chain sink in foreground with the env var PIPEWIRE_DEBUG=4
set.
After the initialization, even with the sink being idle and no streams outputting to it, it immediately started spitting out and repeating these lines:
PIPEWIRE_DEBUG=4 pipewire -c my_sink.conf
[D][14790.003978] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14790.096909] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14790.189799] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14790.282644] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14790.375915] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14790.468376] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14790.561241] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14790.654136] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14790.746985] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14790.839914] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14790.932797] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.025625] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.118502] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.211409] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.304338] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.397223] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.490163] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.582935] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.675822] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.768679] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.861557] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14791.954430] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.047309] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.140186] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.233123] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.325938] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.418894] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.511703] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.604594] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.697420] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.790288] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.883253] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
[D][14792.976033] mod.filter-chain | [module-filter-ch: 599 capture_process()] out of playback buffers: Broken pipe
As mentioned in the pipewire version, this started happening with 0.3.53 and is still happening on current git master.
I have done a git bisect
from 0.3.52 to 0.3.53 and this is the result:
7f9ddd0f15288822ade6e3c72ef20d4866b89717 is the first bad commit
commit 7f9ddd0f15288822ade6e3c72ef20d4866b89717
Author: Wim Taymans <wtaymans@redhat.com>
Date: Wed Feb 23 17:14:14 2022 +0100
Add audioconvert2
However, there were a couple of different issues during the bisecting, at one point pipewire wasn't outputting anything and audio streams simply got stuck.
During the bisect, these commits have been identified as good
:
31bf63105749893e5e2c6ae7784e7f27aa0345ad
f6ddac3f8ef35f254a88e566d832bcfed3a1790b
33a8cf2a23ac74399155b09b5ea8d8a8abed62c3
2d060a5a724e578fe0b8719dd316a948d2c47aef
Let me know if you need further information, assistance in getting it reproduced or if you want me to try out patches / git branches.
How Reproducible:
Very.
Steps to Reproduce:
- Load a filter-chain sink of type ladspa targeting your actual hardware sink
- Redirect an audio stream into that filter-chain sink
- The playback starts stuttering
Actual Results:
Upon sending an audio stream through a filter-chain sink, the audio is severely stuttering.
Expected Results:
The audio stream should pass through the filter-chain sink without stuttering and result in smooth playback.
Additional Information:
-
pw-dump.log
: pw-dump.log - full stdout of the filter-chain sink in foreground (with
PIPEWIRE_DEBUG=5
) : filter-chain_sink.log - my filter-chain sink config: 90_eq_krk-rp5g4.conf
- my
~/.config/ladspa_dsp/config_krk-rp5g4
: config_krk-rp5g4 - my
~/.config/ladspa_dsp/eq/krk-rp5g4.conf
: krk-rp5g4.conf