From root, 5 Days ago, written in Plain Text.
This paste will self destruct in 3 Weeks.
Embed
  1. # Client config file for PipeWire version "1.4.2" #
  2. #
  3. # Copy and edit this file in /etc/pipewire for system-wide changes
  4. # or in ~/.config/pipewire for local changes.
  5. #
  6. # It is also possible to place a file with an updated section in
  7. # /etc/pipewire/client.conf.d/ for system-wide changes or in
  8. # ~/.config/pipewire/client.conf.d/ for local changes.
  9. #
  10.  
  11. context.properties = {
  12.     ## Configure properties in the system.
  13.     #mem.warn-mlock  = false
  14.     #mem.allow-mlock = true
  15.     #mem.mlock-all   = false
  16.     log.level        = 0
  17.  
  18.     default.clock.quantum-limit = 2822400
  19. }
  20.  
  21. context.spa-libs = {
  22.     #<factory-name regex> = <library-name>
  23.     #
  24.     # Used to find spa factory names. It maps an spa factory name
  25.     # regular expression to a library name that should contain
  26.     # that factory.
  27.     #
  28.     audio.convert.* = audioconvert/libspa-audioconvert
  29.     support.*       = support/libspa-support
  30.     video.convert.* = videoconvert/libspa-videoconvert
  31. }
  32.  
  33. context.modules = [
  34.     #{ name = <module-name>
  35.     #    ( args  = { <key> = <value> ... } )
  36.     #    ( flags = [ ( ifexists ) ( nofail ) ] )
  37.     #    ( condition = [ { <key> = <value> ... } ... ] )
  38.     #}
  39.     #
  40.     # Loads a module with the given parameters.
  41.     # If ifexists is given, the module is ignored when it is not found.
  42.     # If nofail is given, module initialization failures are ignored.
  43.     #
  44.     # Uses realtime scheduling to boost the audio thread priorities
  45.     { name = libpipewire-module-rt
  46.         args = {
  47.             #rt.prio      = 83
  48.             #rt.time.soft = -1
  49.             #rt.time.hard = -1
  50.         }
  51.         flags = [ ifexists nofail ]
  52.         condition = [ { module.rt = !false } ]
  53.     }
  54.  
  55.     # The native communication protocol.
  56.     { name = libpipewire-module-protocol-native }
  57.  
  58.     # Allows creating nodes that run in the context of the
  59.     # client. Is used by all clients that want to provide
  60.     # data to PipeWire.
  61.     { name = libpipewire-module-client-node
  62.         condition = [ { module.client-node = !false } ]
  63.     }
  64.  
  65.     # Allows creating devices that run in the context of the
  66.     # client. Is used by the session manager.
  67.     { name = libpipewire-module-client-device
  68.         condition = [ { module.client-device = !false } ]
  69.     }
  70.  
  71.     # Makes a factory for wrapping nodes in an adapter with a
  72.     # converter and resampler.
  73.     { name = libpipewire-module-adapter
  74.         condition = [ { module.adapter = !false } ]
  75.     }
  76.  
  77.     # Allows applications to create metadata objects. It creates
  78.     # a factory for Metadata objects.
  79.     { name = libpipewire-module-metadata
  80.         condition = [ { module.metadata = !false } ]
  81.     }
  82.  
  83.     # Provides factories to make session manager objects.
  84.     { name = libpipewire-module-session-manager
  85.         condition = [ { module.session-manager = !false } ]
  86.     }
  87. ]
  88.  
  89. filter.properties = {
  90.     #node.latency = 1024/48000
  91. }
  92.  
  93. stream.properties = {
  94.     #node.latency          = 1024/48000
  95.     #node.autoconnect      = true
  96.     #resample.quality      = 4
  97.     #channelmix.normalize  = false
  98.     #channelmix.mix-lfe    = true
  99.     #channelmix.upmix      = true
  100.     #channelmix.upmix-method = psd  # none, simple
  101.     #channelmix.lfe-cutoff = 150
  102.     #channelmix.fc-cutoff  = 12000
  103.     #channelmix.rear-delay = 12.0
  104.     #channelmix.stereo-widen = 0.0
  105.     #channelmix.hilbert-taps = 0
  106.     #dither.noise = 0
  107. }
  108.  
  109. stream.rules = [
  110.     {   matches = [
  111.             {
  112.                 # all keys must match the value. ! negates. ~ starts regex.
  113.                 #application.name       = "pw-cat"
  114.                 #node.name              = "~Google Chrome$"
  115.             }
  116.         ]
  117.         actions = {
  118.             update-props = {
  119.                 #node.latency = 512/48000
  120.             }
  121.         }
  122.     }
  123. ]
  124.  
  125. alsa.properties = {
  126.     #alsa.deny = false
  127.     # ALSA params take a single value, an array [] of values
  128.     # or a range { min=.. max=... }
  129.     #alsa.access = [ MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED ]
  130.     #alsa.format = [ FLOAT S32 S24 S24_3 S16 U8 ]
  131.     #alsa.rate = { min=1 max=384000 }           # or [ 44100 48000 .. ]
  132.     #alsa.channels = { min=1 max=64 }           # or [ 2 4 6 .. ]
  133.     #alsa.period-bytes = { min=128 max=2097152 } # or [ 128 256 1024 .. ]
  134.     #alsa.buffer-bytes = { min=256 max=4194304 } # or [ 256 512 4096 .. ]
  135.  
  136.     #alsa.volume-method = cubic                 # linear, cubic
  137. }
  138.  
  139. # client specific properties
  140. alsa.rules = [
  141.     {   matches = [ { application.process.binary = "resolve" } ]
  142.         actions = {
  143.             update-props = {
  144.                 alsa.buffer-bytes = 131072
  145.             }
  146.         }
  147.     }
  148. ]