Chaining filter chains broken in 0.3.35
I am running pipewire 0.3.35 on Arch Linux. The problem did not exist in 0.3.34.
Daisy chaining of filter chains (libpipewire-module-filter-chain
) in pipewire.conf
does not work and outputs the following error messages:
Sep 09 14:44:41 Silmeria systemd[827]: Started Multimedia Service.
Sep 09 14:44:41 Silmeria pipewire[18570]: buffers 0x564ef5da6668: no buffers param
Sep 09 14:44:41 Silmeria pipewire[18570]: params Spa:Enum:ParamId:Buffers: 0:0 No such file or directory (input param)
Sep 09 14:44:41 Silmeria pipewire[18570]: error: No such file or directory
Sep 09 14:44:41 Silmeria pipewire[18570]: params Spa:Enum:ParamId:Buffers: 1:0 No such file or directory (output param)
Sep 09 14:44:41 Silmeria pipewire[18570]: error: Input/output error
Sep 09 14:44:41 Silmeria pipewire[18570]: port 0x564ef5d2d920: can't negotiate buffers: No such file or directory
Sep 09 14:44:41 Silmeria pipewire[18570]: port 0x564ef5d2d920: negotiate buffers on node: -2 (No such file or directory)
Sep 09 14:44:41 Silmeria pipewire[18570]: port 0x564ef5d2d920: state ready -> error (can't negotiate buffers on port)
Sep 09 14:44:41 Silmeria pipewire[18570]: port 0x564ef5d2d920: mix use buffers failed: -5 (Input/output error)
Sep 09 14:44:41 Silmeria pipewire[18570]: port 0x7f883accd0a8: use_buffers: -5 Input/output error
Sep 09 14:44:41 Silmeria pipewire[18570]: impl-core 0x564ef5772610: error -5 for resource 2: port_use_buffers error: Input/output error
Sep 09 14:44:41 Silmeria pipewire[18570]: client-node 0x564ef5cbb0a0: error seq:31 -5 (port_use_buffers error: Input/output error)
Sep 09 14:44:41 Silmeria pipewire[18570]: buffers 0x564ef5f6d418: no buffers param
Sep 09 14:44:41 Silmeria pipewire[18570]: params Spa:Enum:ParamId:Buffers: 0:0 No such file or directory (input param)
Sep 09 14:44:41 Silmeria pipewire[18570]: error: No such file or directory
Sep 09 14:44:41 Silmeria pipewire[18570]: params Spa:Enum:ParamId:Buffers: 1:0 No such file or directory (output param)
Sep 09 14:44:41 Silmeria pipewire[18570]: error: Input/output error
Sep 09 14:44:41 Silmeria pipewire[18570]: port 0x564ef5d5a9c0: can't negotiate buffers: No such file or directory
Sep 09 14:44:41 Silmeria pipewire[18570]: port 0x564ef5d5a9c0: negotiate buffers on node: -2 (No such file or directory)
Sep 09 14:44:41 Silmeria pipewire[18570]: port 0x564ef5d5a9c0: state ready -> error (can't negotiate buffers on port)
Sep 09 14:44:41 Silmeria pipewire[18570]: port 0x564ef5d5a9c0: mix use buffers failed: -5 (Input/output error)
Sep 09 14:44:41 Silmeria pipewire[18570]: port 0x7f883a42d0a8: use_buffers: -5 Input/output error
Sep 09 14:44:41 Silmeria pipewire[18570]: impl-core 0x564ef5772610: error -5 for resource 2: port_use_buffers error: Input/output error
Sep 09 14:44:41 Silmeria pipewire[18570]: client-node 0x564ef5cdba90: error seq:39 -5 (port_use_buffers error: Input/output error)
Sep 09 14:45:55 Silmeria systemd[827]: Stopping Multimedia Service...
Sep 09 14:45:55 Silmeria systemd-coredump[18664]: [🡕] Process 18570 (pipewire) of user 1000 dumped core.
Found module libgcc_s.so.1 with build-id: 7f8508bb914546ada778809b64b99d234337d835
Found module libstdc++.so.6 with build-id: 8ab0e57054dd1dcba681f217016afc6a4e639783
Found module lsp-plugins-ladspa.so with build-id: f679f141a74afd474a3568061ad44979edd0cad7
Found module libogg.so.0 with build-id: ca0cae30a809f10db1f16e54a23b4e5ff7b2c54c
Found module libvorbis.so.0 with build-id: ad0a6c1af8f219b4e314090b6e8847223d424cbe
Found module libopus.so.0 with build-id: 649d3ddab8764d7caf73648004a35cb13e23a5e1
Found module libFLAC.so.8 with build-id: e568dc3d434723c72d6d302eb0b2559f27e91faa
Found module libvorbisenc.so.2 with build-id: 28ed815b8b1d322e6bf2bfdce4b0af2789b74335
Found module libsndfile.so.1 with build-id: 72d5531e74ed3e9afe49e95e449c40cb8984a258
Found module libm.so.6 with build-id: 2b8fd1f869ecab4e0b55e92f2f151897f6818acf
Found module libpipewire-module-filter-chain.so with build-id: a0f8b589a067b7801260070bfea0e1692088ec9a
Found module libpipewire-module-session-manager.so with build-id: c4d7add4d51c17e6ec5d614ebbd0260a596acabc
Found module libpipewire-module-link-factory.so with build-id: 3dde337f0ddd2fbfeafa248ff072f802020e3a23
Found module libpipewire-module-adapter.so with build-id: 8f5882a722d017cc95b5e5cbad7bca41f5c0424a
Found module libpipewire-module-access.so with build-id: ab69276c6bef2ae54afa69db0b1258a336602057
Found module libpipewire-module-portal.so with build-id: 900f8b49699a927335f1f78cf836fd821d805205
Found module libpipewire-module-client-device.so with build-id: 32864d4f5ec9c2ee94a040400e1b0a778340e786
Found module libpipewire-module-client-node.so with build-id: a2e33aa0cfa427b5ea501a3bf3d3bdeb8cb90b9f
Found module libpipewire-module-spa-node-factory.so with build-id: ec9db2095fea6ac0a40239429e3fd6e26f791cc9
Found module libpipewire-module-spa-device-factory.so with build-id: da150d0a6a14b635d079e556839af303cd28ceb0
Found module libpipewire-module-metadata.so with build-id: a9751ac0eb1a623fce9a6088d8cca24c1feef4dd
Found module libpipewire-module-profiler.so with build-id: 1a5018f0be539356e4c6615ca7def5af34a00206
Found module libpipewire-module-protocol-native.so with build-id: 276a805b4237eb5e34335bd94c27e7d1a5dcebb4
Found module libpipewire-module-rtkit.so with build-id: 7570396f0177a17af2b3becf57090867ba5c6bfd
Found module libnss_files.so.2 with build-id: 1a36dfc01d3a1010b2ee79766a24a8090a3266d5
Found module libdbus-1.so.3 with build-id: 74f2ab9c60512f3a93c932c3f627564d42e0b11e
Found module libspa-dbus.so with build-id: 7f65bdaad708ac9fbdf3166b23bac444ae2b5017
Found module libgpg-error.so.0 with build-id: ba85170c2d9343ea05eea8fa2048c212ff4ef552
Found module libgcrypt.so.20 with build-id: db45f5d5e0f7af1e77324fea1885f974619ad268
Found module libcap.so.2 with build-id: e5698e341f259c990af983244c9368a60d175aac
Found module liblz4.so.1 with build-id: e63600ab23b2f6997f42fac2fa56e1f02ce159a1
Found module libzstd.so.1 with build-id: 4b10444c1560ebc574af4d5f488b7408b22d450e
Found module liblzma.so.5 with build-id: f8d607153b2b315f1aaa1c8e12553d544e661f2d
Found module librt.so.1 with build-id: 75484da2d6f1515189eefa076e0a40328834cd16
Found module libsystemd.so.0 with build-id: f776aaa16b4e2ba7056d01d928e4b2726ffe2b8b
Found module libspa-journal.so with build-id: 38c88d8fc212988f786aa1247b68d6dfab730823
Found module libspa-support.so with build-id: 95ddb02c8e90b0e2b938e201534054a802dd9da0
Found module ld-linux-x86-64.so.2 with build-id: 040cc3dd10461562f177df39e3be2f3704258c3c
Found module libdl.so.2 with build-id: 5abc547e7b0949f89f3c0e21ab0c8331a7440a8a
Found module libc.so.6 with build-id: 4b406737057708c0e4c642345a703c47a61c73dc
Found module libpthread.so.0 with build-id: 07c8f95b4f3251d08550217ad8a1f31066229996
Found module libpipewire-0.3.so.0 with build-id: 88ce3b6d2dd306f21294d65806d382340b4cee8f
Found module pipewire with build-id: 651923838f3290b16e3897432ae31759856a6758
Stack trace of thread 17703:
#0 0x0000000000000000 n/a (n/a + 0x0)
Sep 09 14:44:41 Silmeria systemd[827]: pipewire.service: Main process exited, code=dumped, status=11/SEGV
Sep 09 14:44:41 Silmeria pipewire[18570]: 'port->have_format' failed at ../pipewire/spa/plugins/audiomixer/audiomixer.c:635 impl_node_port_use_buffers()
Sep 09 14:44:41 Silmeria pipewire[18570]: 'port->have_format' failed at ../pipewire/spa/plugins/audiomixer/audiomixer.c:635 impl_node_port_use_buffers()
Sep 09 14:44:41 Silmeria systemd[827]: pipewire.service: Failed with result 'core-dump'.
Sep 09 14:44:41 Silmeria systemd[827]: pipewire.service: Consumed 2.105s CPU time.
Here is a pipewire.conf
that allows reproducing the issue (replace the target of foo with your physical device and set bar as the default sink, with eg pactl set-default-sink bar
).
context.properties = {
core.daemon = true
core.name = pipewire-0
default.clock.rate = 44100
default.clock.allowed-rates = [ 44100 ]
}
context.spa-libs = {
audio.convert.* = audioconvert/libspa-audioconvert
api.alsa.* = alsa/libspa-alsa
api.v4l2.* = v4l2/libspa-v4l2
api.libcamera.* = libcamera/libspa-libcamera
api.bluez5.* = bluez5/libspa-bluez5
api.vulkan.* = vulkan/libspa-vulkan
api.jack.* = jack/libspa-jack
support.* = support/libspa-support
}
context.modules = [
{ name = libpipewire-module-rtkit }
{ name = libpipewire-module-protocol-native }
{ name = libpipewire-module-profiler }
{ name = libpipewire-module-metadata }
{ name = libpipewire-module-spa-device-factory }
{ name = libpipewire-module-spa-node-factory }
{ name = libpipewire-module-client-node }
{ name = libpipewire-module-client-device }
{ name = libpipewire-module-portal }
{ name = libpipewire-module-access }
{ name = libpipewire-module-adapter }
{ name = libpipewire-module-link-factory }
{ name = libpipewire-module-session-manager }
{ name = libpipewire-module-filter-chain
args = { node.name = "foo" node.description = "foo" media.name = "foo"
filter.graph = {
nodes = [
{ type = builtin label = copy name = left config = { channel = 0 } }
{ type = builtin label = copy name = right config = { channel = 1 } }
]
inputs = [ "left:In" "right:In" ]
outputs = [ "left:Out" "right:Out" ]
}
capture.props { media.class = Audio/Sink audio.channels = 2 audio.position = [ FL FR ] }
playback.props { node.passive = true node.target = "alsa_output.usb-Yamaha_Corporation_Steinberg_UR22-00.analog-stereo" }
}
}
{ name = libpipewire-module-filter-chain
args = { node.name = "bar" node.description = "bar" media.name = "bar"
filter.graph = {
nodes = [
{ type = builtin label = copy name = left config = { channel = 0 } }
{ type = builtin label = copy name = right config = { channel = 1 } }
]
inputs = [ "left:In" "right:In" ]
outputs = [ "left:Out" "right:Out" ]
}
capture.props { media.class = Audio/Sink audio.channels = 2 audio.position = [ FL FR ] }
playback.props { node.passive = true node.target = "foo" }
}
}
]
context.objects = [
{ factory = spa-node-factory
args = { factory.name = support.node.driver node.name = Dummy-Driver node.group = pipewire.dummy
priority.driver = 20000 } }
{ factory = spa-node-factory
args = { factory.name = support.node.driver node.name = Freewheel-Driver
priority.driver = 19000 node.group = pipewire.freewheel node.freewheel = true } }
]