mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-09 13:30:06 -05:00
media-session: move the media-session config files to here
This commit is contained in:
parent
3560f3ba2d
commit
6c156cdbb4
10 changed files with 3 additions and 4 deletions
|
|
@ -1,126 +0,0 @@
|
|||
# ALSA monitor config file for PipeWire version @VERSION@ #
|
||||
#
|
||||
# Copy and edit this file in @PIPEWIRE_CONFIG_DIR@/media-session.d/
|
||||
# for system-wide changes or in
|
||||
# ~/.config/pipewire/media-session.d/ for local changes.
|
||||
|
||||
properties = {
|
||||
# Create a JACK device. This is not enabled by default because
|
||||
# it requires that the PipeWire JACK replacement libraries are
|
||||
# not used by the session manager, in order to be able to
|
||||
# connect to the real JACK server.
|
||||
#alsa.jack-device = false
|
||||
|
||||
# Reserve devices.
|
||||
#alsa.reserve = true
|
||||
}
|
||||
|
||||
rules = [
|
||||
# An array of matches/actions to evaluate.
|
||||
{
|
||||
# Rules for matching a device or node. Each dictionary in this array
|
||||
# specifies the property to match as key and a string or regex match
|
||||
# as value. A successful match requires all dictionary keys (i.e.
|
||||
# properties) to match.
|
||||
#
|
||||
# Actions are are executed for the object if at least one successful
|
||||
# match exists.
|
||||
#
|
||||
# Regular expressions are prefixed with the ~ (tilde) character,
|
||||
# otherwise a standard string comparison is used.
|
||||
# The special value "null" matches against empty properties.
|
||||
matches = [
|
||||
{
|
||||
# This matches all cards. These are regular expressions
|
||||
# so "." matches one character and ".*" matches many.
|
||||
device.name = "~alsa_card.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
# Actions can update properties on the matched object.
|
||||
update-props = {
|
||||
# Use ALSA-Card-Profile devices. They use UCM or
|
||||
# the profile configuration to configure the device
|
||||
# and mixer settings.
|
||||
api.alsa.use-acp = true
|
||||
|
||||
# Use UCM instead of profile when available. Can be
|
||||
# disabled to skip trying to use the UCM profile.
|
||||
#api.alsa.use-ucm = true
|
||||
|
||||
# Don't use the hardware mixer for volume control. It
|
||||
# will only use software volume. The mixer is still used
|
||||
# to mute unused paths based on the selected port.
|
||||
#api.alsa.soft-mixer = false
|
||||
|
||||
# Ignore decibel settings of the driver. Can be used to
|
||||
# work around buggy drivers that report wrong values.
|
||||
#api.alsa.ignore-dB = false
|
||||
|
||||
# The profile set to use for the device. Usually this is
|
||||
# "default.conf" but can be changed with a udev rule
|
||||
# or here.
|
||||
#device.profile-set = "profileset-name.conf"
|
||||
|
||||
# The default active profile. Is by default set to "Off".
|
||||
#device.profile = "default profile name"
|
||||
|
||||
# Automatically select the best profile. This is the
|
||||
# highest priority available profile. This is disabled
|
||||
# here and instead implemented in the session manager
|
||||
# where it can save and load previous preferences.
|
||||
api.acp.auto-profile = false
|
||||
|
||||
# Automatically switch to the highest priority available
|
||||
# port. This is disabled here and implemented in the
|
||||
# session manager instead.
|
||||
api.acp.auto-port = false
|
||||
|
||||
# Other properties can be set here.
|
||||
#device.nick = "My Device"
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
# Matches all sources. These are regular expressions
|
||||
# so "." matches one character and ".*" matches many.
|
||||
node.name = "~alsa_input.*"
|
||||
}
|
||||
{
|
||||
# Matches all sinks.
|
||||
node.name = "~alsa_output.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
#node.nick = "My Node"
|
||||
#node.nick = null
|
||||
#priority.driver = 100
|
||||
#priority.session = 100
|
||||
node.pause-on-idle = false
|
||||
#resample.quality = 4
|
||||
#channelmix.normalize = false
|
||||
#channelmix.mix-lfe = false
|
||||
#audio.channels = 2
|
||||
#audio.format = "S16LE"
|
||||
#audio.rate = 44100
|
||||
#audio.position = "FL,FR"
|
||||
#session.suspend-timeout-seconds = 5 # 0 disables suspend
|
||||
#monitor.channel-volumes = false
|
||||
|
||||
#latency.internal.rate = 0 # internal latency in samples
|
||||
#latency.internal.ns = 0 # internal latency in nanoseconds
|
||||
|
||||
#api.alsa.period-size = 1024
|
||||
#api.alsa.headroom = 0
|
||||
#api.alsa.start-delay = 0
|
||||
#api.alsa.disable-mmap = false
|
||||
#api.alsa.disable-batch = false
|
||||
#api.alsa.use-chmap = false
|
||||
#iec958.codecs = [ PCM DTS AC3 MPEG MPEG2-AAC EAC3 TrueHD DTS-HD ]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
# Bluez monitor config file for PipeWire version @VERSION@ #
|
||||
#
|
||||
# Copy and edit this file in @PIPEWIRE_CONFIG_DIR@/media-session.d/
|
||||
# for system-wide changes or in
|
||||
# ~/.config/pipewire/media-session.d/ for local changes.
|
||||
|
||||
properties = {
|
||||
# These features do not work on all headsets, so they are enabled
|
||||
# by default based on the hardware database. They can also be
|
||||
# forced on/off for all devices by the following options:
|
||||
|
||||
#bluez5.enable-sbc-xq = true
|
||||
#bluez5.enable-msbc = true
|
||||
#bluez5.enable-hw-volume = true
|
||||
#bluez5.enable-faststream = true
|
||||
|
||||
# See bluez-hardware.conf for the hardware database.
|
||||
|
||||
# Enabled headset roles (default: [ hsp_hs hfp_ag ]), this
|
||||
# property only applies to native backend. Currently some headsets
|
||||
# (Sony WH-1000XM3) are not working with both hsp_ag and hfp_ag
|
||||
# enabled, disable either hsp_ag or hfp_ag to work around it.
|
||||
#
|
||||
# Supported headset roles: hsp_hs (HSP Headset),
|
||||
# hsp_ag (HSP Audio Gateway),
|
||||
# hfp_hf (HFP Hands-Free),
|
||||
# hfp_ag (HFP Audio Gateway)
|
||||
#bluez5.headset-roles = [ hsp_hs hsp_ag hfp_hf hfp_ag ]
|
||||
|
||||
# Enabled A2DP codecs (default: all).
|
||||
#bluez5.codecs = [ sbc sbc_xq aac ldac aptx aptx_hd aptx_ll aptx_ll_duplex faststream faststream_duplex ]
|
||||
|
||||
# HFP/HSP backend (default: native).
|
||||
# Available values: any, none, hsphfpd, ofono, native
|
||||
#bluez5.hfphsp-backend = native
|
||||
|
||||
# Properties for the A2DP codec configuration
|
||||
#bluez5.default.rate = 48000
|
||||
#bluez5.default.channels = 2
|
||||
|
||||
# Register dummy AVRCP player, required for AVRCP volume function.
|
||||
# Disable if you are running mpris-proxy or equivalent.
|
||||
#bluez5.dummy-avrcp-player = true
|
||||
}
|
||||
|
||||
rules = [
|
||||
# An array of matches/actions to evaluate.
|
||||
{
|
||||
# Rules for matching a device or node. It is an array of
|
||||
# properties that all need to match the regexp. If any of the
|
||||
# matches work, the actions are executed for the object.
|
||||
matches = [
|
||||
{
|
||||
# This matches all cards.
|
||||
device.name = "~bluez_card.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
# Actions can update properties on the matched object.
|
||||
update-props = {
|
||||
|
||||
# Auto-connect device profiles on start up or when only partial
|
||||
# profiles have connected. Disabled by default if the property
|
||||
# is not specified.
|
||||
#bluez5.auto-connect = [
|
||||
# hfp_hf
|
||||
# hsp_hs
|
||||
# a2dp_sink
|
||||
# hfp_ag
|
||||
# hsp_ag
|
||||
# a2dp_source
|
||||
#]
|
||||
bluez5.auto-connect = [ hfp_hf hsp_hs a2dp_sink ]
|
||||
|
||||
# Hardware volume control (default: all)
|
||||
#bluez5.hw-volume = [
|
||||
# hfp_hf
|
||||
# hsp_hs
|
||||
# a2dp_sink
|
||||
# hfp_ag
|
||||
# hsp_ag
|
||||
# a2dp_source
|
||||
#]
|
||||
|
||||
# LDAC encoding quality
|
||||
# Available values: auto (Adaptive Bitrate, default)
|
||||
# hq (High Quality, 990/909kbps)
|
||||
# sq (Standard Quality, 660/606kbps)
|
||||
# mq (Mobile use Quality, 330/303kbps)
|
||||
#bluez5.a2dp.ldac.quality = auto
|
||||
|
||||
# AAC variable bitrate mode
|
||||
# Available values: 0 (cbr, default), 1-5 (quality level)
|
||||
#bluez5.a2dp.aac.bitratemode = 0
|
||||
|
||||
# Profile connected first
|
||||
# Available values: a2dp-sink (default), headset-head-unit
|
||||
#bluez5.profile = a2dp-sink
|
||||
|
||||
# A2DP <-> HFP profile auto-switching (when device is default output)
|
||||
# Available values: false, role (default), true
|
||||
# 'role' will switch the profile if the recording application
|
||||
# specifies Communication (or "phone" in PA) as the stream role.
|
||||
#bluez5.autoswitch-profile = role
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
# Matches all sources.
|
||||
node.name = "~bluez_input.*"
|
||||
}
|
||||
{
|
||||
# Matches all sinks.
|
||||
node.name = "~bluez_output.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
#node.nick = "My Node"
|
||||
#node.nick = null
|
||||
#priority.driver = 100
|
||||
#priority.session = 100
|
||||
node.pause-on-idle = false
|
||||
#resample.quality = 4
|
||||
#channelmix.normalize = false
|
||||
#channelmix.mix-lfe = false
|
||||
#session.suspend-timeout-seconds = 5 # 0 disables suspend
|
||||
#monitor.channel-volumes = false
|
||||
|
||||
# A2DP source role, "input" or "playback"
|
||||
# Defaults to "playback", playing stream to speakers
|
||||
# Set to "input" to use as an input for apps
|
||||
#bluez5.a2dp-source-role = input
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1,117 +0,0 @@
|
|||
# Media session config file for PipeWire version @VERSION@ #
|
||||
#
|
||||
# Copy and edit this file in @PIPEWIRE_CONFIG_DIR@/media-session.d/
|
||||
# for system-wide changes or in
|
||||
# ~/.config/pipewire/media-session.d/ for local changes.
|
||||
|
||||
context.properties = {
|
||||
# Properties to configure the session and some
|
||||
# modules.
|
||||
#mem.mlock-all = false
|
||||
#support.dbus = true
|
||||
#log.level = 2
|
||||
#alsa.seq.name = Midi-Bridge
|
||||
#default-profile.restore-bluetooth = false
|
||||
}
|
||||
|
||||
context.spa-libs = {
|
||||
# Mapping from factory name to library.
|
||||
api.bluez5.* = bluez5/libspa-bluez5
|
||||
api.alsa.* = alsa/libspa-alsa
|
||||
api.v4l2.* = v4l2/libspa-v4l2
|
||||
api.libcamera.* = libcamera/libspa-libcamera
|
||||
}
|
||||
|
||||
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 ]
|
||||
}
|
||||
|
||||
# The native communication protocol.
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
|
||||
# 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 }
|
||||
|
||||
# Makes a factory for wrapping nodes in an adapter with a
|
||||
# converter and resampler.
|
||||
{ name = libpipewire-module-adapter }
|
||||
|
||||
# Allows applications to create metadata objects. It creates
|
||||
# a factory for Metadata objects.
|
||||
{ name = libpipewire-module-metadata }
|
||||
|
||||
# Provides factories to make session manager objects.
|
||||
{ name = libpipewire-module-session-manager }
|
||||
]
|
||||
|
||||
session.modules = {
|
||||
# These are the modules that are enabled when a file with
|
||||
# the key name is found in the media-session.d config directory.
|
||||
# the default bundle is always enabled.
|
||||
|
||||
default = [
|
||||
flatpak # manages flatpak access
|
||||
portal # manage portal permissions
|
||||
v4l2 # video for linux udev detection
|
||||
#libcamera # libcamera udev detection
|
||||
suspend-node # suspend inactive nodes
|
||||
policy-node # configure and link nodes
|
||||
#metadata # export metadata API
|
||||
#default-nodes # restore default nodes
|
||||
#default-profile # restore default profiles
|
||||
#default-routes # restore default route
|
||||
#streams-follow-default # move streams when default changes
|
||||
#alsa-no-dsp # do not configure audio nodes in DSP mode
|
||||
#alsa-seq # alsa seq midi support
|
||||
#alsa-monitor # alsa udev detection
|
||||
#bluez5 # bluetooth support
|
||||
#bluez5-autoswitch # automatic bluetooth HSP/HFP profile switch
|
||||
#restore-stream # restore stream settings
|
||||
#logind # systemd-logind seat support
|
||||
]
|
||||
with-audio = [
|
||||
metadata
|
||||
default-nodes
|
||||
default-profile
|
||||
default-routes
|
||||
alsa-seq
|
||||
alsa-monitor
|
||||
]
|
||||
with-alsa = [
|
||||
with-audio
|
||||
]
|
||||
with-jack = [
|
||||
with-audio
|
||||
]
|
||||
with-pulseaudio = [
|
||||
with-audio
|
||||
bluez5
|
||||
bluez5-autoswitch
|
||||
logind
|
||||
restore-stream
|
||||
streams-follow-default
|
||||
]
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
conf_config = configuration_data()
|
||||
conf_config.set('VERSION', '"@0@"'.format(pipewire_version))
|
||||
conf_config.set('PIPEWIRE_CONFIG_DIR', pipewire_configdir)
|
||||
|
||||
conf_files = [
|
||||
[ 'bluez-monitor.conf', 'bluez-monitor.conf' ],
|
||||
[ 'v4l2-monitor.conf', 'v4l2-monitor.conf' ],
|
||||
[ 'media-session.conf', 'media-session.conf' ],
|
||||
[ 'alsa-monitor.conf', 'alsa-monitor.conf' ],
|
||||
[ 'with-jack', 'with-jack' ],
|
||||
[ 'with-pulseaudio', 'with-pulseaudio' ],
|
||||
]
|
||||
|
||||
foreach c : conf_files
|
||||
configure_file(input : c.get(0),
|
||||
output : c.get(1),
|
||||
configuration : conf_config,
|
||||
install_dir : pipewire_confdatadir / 'media-session.d')
|
||||
endforeach
|
||||
|
||||
install_data(
|
||||
sources : [
|
||||
'with-jack',
|
||||
'with-pulseaudio' ],
|
||||
install_dir : pipewire_confdatadir / 'media-session.d')
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
# V4L2 monitor config file for PipeWire version @VERSION@ #
|
||||
#
|
||||
# Copy and edit this file in @PIPEWIRE_CONFIG_DIR@/media-session.d/
|
||||
# for system-wide changes or in
|
||||
# ~/.config/pipewire/media-session.d/ for local changes.
|
||||
|
||||
properties = { }
|
||||
|
||||
rules = [
|
||||
# An array of matches/actions to evaluate.
|
||||
{
|
||||
# Rules for matching a device or node. It is an array of
|
||||
# properties that all need to match the regexp. If any of the
|
||||
# matches work, the actions are executed for the object.
|
||||
matches = [
|
||||
{
|
||||
# This matches all devices.
|
||||
device.name = "~v4l2_device.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
# Actions can update properties on the matched object.
|
||||
update-props = {
|
||||
#device.nick = "My Device"
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
# Matches all sources.
|
||||
node.name = "~v4l2_input.*"
|
||||
}
|
||||
{
|
||||
# Matches all sinks.
|
||||
node.name = "~v4l2_output.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
#node.nick = "My Node"
|
||||
#node.nick = null
|
||||
#priority.driver = 100
|
||||
#priority.session = 100
|
||||
node.pause-on-idle = false
|
||||
#session.suspend-timeout-seconds = 5 # 0 disables suspend
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -117,9 +117,6 @@ custom_target('pipewire-uninstalled',
|
|||
#endif
|
||||
|
||||
subdir('filter-chain')
|
||||
if build_ms
|
||||
subdir('media-session.d')
|
||||
endif
|
||||
if systemd.found()
|
||||
subdir('systemd')
|
||||
endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue