688ea20708
As we see in the docs here: https://pipewire.pages.freedesktop.org/wireplumber/running-wireplumber-daemon.html#pipewire-conf we need to start wireplumber in replace of the old media session, not "wireplumber as server". (This is my first hecking commit ever !!!!!!!!!)
247 lines
8.9 KiB
Text
247 lines
8.9 KiB
Text
# Daemon config file for PipeWire version "0.3.40" #
|
|
#
|
|
# Copy and edit this file in /etc/pipewire for system-wide changes
|
|
# or in ~/.config/pipewire for local changes.
|
|
|
|
context.properties = {
|
|
## Configure properties in the system.
|
|
#library.name.system = support/libspa-support
|
|
#context.data-loop.library.name.system = support/libspa-support
|
|
#support.dbus = true
|
|
#link.max-buffers = 64
|
|
link.max-buffers = 16 # version < 3 clients can't handle more
|
|
#mem.warn-mlock = false
|
|
#mem.allow-mlock = true
|
|
#mem.mlock-all = false
|
|
#clock.power-of-two-quantum = true
|
|
#log.level = 2
|
|
#cpu.zero.denormals = true
|
|
|
|
core.daemon = true # listening for socket connections
|
|
core.name = pipewire-0 # core name and socket name
|
|
|
|
## Properties for the DSP configuration.
|
|
#default.clock.rate = 48000
|
|
#default.clock.allowed-rates = [ 48000 ]
|
|
#default.clock.quantum = 1024
|
|
#default.clock.min-quantum = 32
|
|
#default.clock.max-quantum = 8192
|
|
#default.video.width = 640
|
|
#default.video.height = 480
|
|
#default.video.rate.num = 25
|
|
#default.video.rate.denom = 1
|
|
#
|
|
# These overrides are only applied when running in a vm.
|
|
vm.overrides = {
|
|
default.clock.min-quantum = 1024
|
|
}
|
|
}
|
|
|
|
context.spa-libs = {
|
|
#<factory-name regex> = <library-name>
|
|
#
|
|
# Used to find spa factory names. It maps an spa factory name
|
|
# regular expression to a library name that should contain
|
|
# that factory.
|
|
#
|
|
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
|
|
#videotestsrc = videotestsrc/libspa-videotestsrc
|
|
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
|
|
}
|
|
|
|
context.modules = [
|
|
#{ name = <module-name>
|
|
# [ args = { <key> = <value> ... } ]
|
|
# [ flags = [ [ ifexists ] [ nofail ] ]
|
|
#}
|
|
#
|
|
# Loads a module with the given parameters.
|
|
# If ifexists is given, the module is ignored when it is not found.
|
|
# If nofail is given, module initialization failures are ignored.
|
|
#
|
|
|
|
# Uses RTKit to boost the data thread priority.
|
|
{ name = libpipewire-module-rtkit
|
|
args = {
|
|
#nice.level = -11
|
|
#rt.prio = 88
|
|
#rt.time.soft = 2000000
|
|
#rt.time.hard = 2000000
|
|
}
|
|
flags = [ ifexists nofail ]
|
|
}
|
|
|
|
# Set thread priorities without using RTKit.
|
|
#{ name = libpipewire-module-rt
|
|
# args = {
|
|
# nice.level = -11
|
|
# rt.prio = 88
|
|
# rt.time.soft = 2000000
|
|
# rt.time.hard = 2000000
|
|
# }
|
|
# flags = [ ifexists nofail ]
|
|
#}
|
|
|
|
# The native communication protocol.
|
|
{ name = libpipewire-module-protocol-native }
|
|
|
|
# The profile module. Allows application to access profiler
|
|
# and performance data. It provides an interface that is used
|
|
# by pw-top and pw-profiler.
|
|
{ name = libpipewire-module-profiler }
|
|
|
|
# Allows applications to create metadata objects. It creates
|
|
# a factory for Metadata objects.
|
|
{ name = libpipewire-module-metadata }
|
|
|
|
# Creates a factory for making devices that run in the
|
|
# context of the PipeWire server.
|
|
{ name = libpipewire-module-spa-device-factory }
|
|
|
|
# Creates a factory for making nodes that run in the
|
|
# context of the PipeWire server.
|
|
{ name = libpipewire-module-spa-node-factory }
|
|
|
|
# Allows creating nodes that run in the context of the
|
|
# client. Is used by all clients that want to provide
|
|
# data to PipeWire.
|
|
{ name = libpipewire-module-client-node }
|
|
|
|
# Allows creating devices that run in the context of the
|
|
# client. Is used by the session manager.
|
|
{ name = libpipewire-module-client-device }
|
|
|
|
# The portal module monitors the PID of the portal process
|
|
# and tags connections with the same PID as portal
|
|
# connections.
|
|
{ name = libpipewire-module-portal
|
|
flags = [ ifexists nofail ]
|
|
}
|
|
|
|
# The access module can perform access checks and block
|
|
# new clients.
|
|
{ name = libpipewire-module-access
|
|
args = {
|
|
# access.allowed to list an array of paths of allowed
|
|
# apps.
|
|
#access.allowed = [
|
|
# /usr/bin/pipewire-media-session
|
|
#]
|
|
|
|
# An array of rejected paths.
|
|
#access.rejected = [ ]
|
|
|
|
# An array of paths with restricted access.
|
|
#access.restricted = [ ]
|
|
|
|
# Anything not in the above lists gets assigned the
|
|
# access.force permission.
|
|
#access.force = flatpak
|
|
}
|
|
}
|
|
|
|
# Makes a factory for wrapping nodes in an adapter with a
|
|
# converter and resampler.
|
|
{ name = libpipewire-module-adapter }
|
|
|
|
# Makes a factory for creating links between ports.
|
|
{ name = libpipewire-module-link-factory }
|
|
|
|
# Provides factories to make session manager objects.
|
|
{ name = libpipewire-module-session-manager }
|
|
]
|
|
|
|
context.objects = [
|
|
#{ factory = <factory-name>
|
|
# [ args = { <key> = <value> ... } ]
|
|
# [ flags = [ [ nofail ] ]
|
|
#}
|
|
#
|
|
# Creates an object from a PipeWire factory with the given parameters.
|
|
# If nofail is given, errors are ignored (and no object is created).
|
|
#
|
|
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } }
|
|
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
|
|
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
|
|
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
|
|
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } }
|
|
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
|
|
|
|
# A default dummy driver. This handles nodes marked with the "node.always-driver"
|
|
# property when no other driver is currently active. JACK clients need this.
|
|
{ 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
|
|
}
|
|
}
|
|
# This creates a new Source node. It will have input ports
|
|
# that you can link, to provide audio for this source.
|
|
#{ factory = adapter
|
|
# args = {
|
|
# factory.name = support.null-audio-sink
|
|
# node.name = "my-mic"
|
|
# node.description = "Microphone"
|
|
# media.class = "Audio/Source/Virtual"
|
|
# audio.position = "FL,FR"
|
|
# }
|
|
#}
|
|
|
|
# This creates a single PCM source device for the given
|
|
# alsa device path hw:0. You can change source to sink
|
|
# to make a sink in the same way.
|
|
#{ factory = adapter
|
|
# args = {
|
|
# factory.name = api.alsa.pcm.source
|
|
# node.name = "alsa-source"
|
|
# node.description = "PCM Source"
|
|
# media.class = "Audio/Source"
|
|
# api.alsa.path = "hw:0"
|
|
# api.alsa.period-size = 1024
|
|
# api.alsa.headroom = 0
|
|
# api.alsa.disable-mmap = false
|
|
# api.alsa.disable-batch = false
|
|
# audio.format = "S16LE"
|
|
# audio.rate = 48000
|
|
# audio.channels = 2
|
|
# audio.position = "FL,FR"
|
|
# }
|
|
#}
|
|
]
|
|
|
|
context.exec = [
|
|
#{ path = <program-name> [ args = "<arguments>" ] }
|
|
#
|
|
# Execute the given program with arguments.
|
|
#
|
|
# You can optionally start the session manager here,
|
|
# but it is better to start it as a systemd service.
|
|
# Run the session manager with -h for options.
|
|
#
|
|
{ path = "/usr/bin/wireplumber" args = "" }
|
|
#
|
|
# You can optionally start the pulseaudio-server here as well
|
|
# but it is better to start it as a systemd service.
|
|
# It can be interesting to start another daemon here that listens
|
|
# on another address with the -a option (eg. -a tcp:4713).
|
|
#
|
|
{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
|
|
]
|