Skip to content

Instantly share code, notes, and snippets.

@columbarius
Last active August 17, 2023 07:43
Show Gist options
  • Save columbarius/50239ea3c4c70df8f240aa50f88e801a to your computer and use it in GitHub Desktop.
Save columbarius/50239ea3c4c70df8f240aa50f88e801a to your computer and use it in GitHub Desktop.
PipeWire Screencast Info
#!/bin/sh
pw-dump | jq -r '[.[] | select(.info.props."node.name" | IN("firefox","gnome-shell","kwin_wayland","obs","xdg-desktop-portal-wlr","xdp-screencast.py")) | .id] as $pw_node_ids | [ .[] | select(.info.props."node.id" | IN($pw_node_ids[])) | .id ] as $pw_port_ids | .[] | select(.id | IN(($pw_node_ids + $pw_port_ids)[]))'
@kkartaltepe
Copy link

kkartaltepe commented Apr 9, 2022

https://gist.github.com/kkartaltepe/c0ae86821e2ca3c5afb5bc968df695b2 here is the output for an attempted capture on nvidia on gnome 42, it looks like its missing the gnome port though. I think the port ended up as gnome-shell updated the gist.

@columbarius
Copy link
Author

thanks!

@columbarius
Copy link
Author

Sigh... just found out that jq doesn't have support for 64bit long integers so all modifiers returned from this script are wrong. Please just read search in the output of pw-dump.

@rpigott
Copy link

rpigott commented Aug 4, 2023

jq doesn't have support for 64bit long integers

fwiw, gojq [1] doesn't share this limitation. I used the following when debugging my own firefox issue:

gojq script
#!/bin/bash

read -r -d '' JQPROG <<'EOF'
map(select(.info.props."node.name" and (.info.params.EnumFormat //empty | any(.mediaType == "video"))) | {
	(.info.props."node.name"): {
		type, id,
		formats: [.info.params.EnumFormat[] | {
			format,
			modifiers: (.modifier |
				if type == "null" then empty
				elif type == "number" then [.]
				else to_entries | map(select(.key | startswith("alt")).value)
				end
			)
		}]
	}
}) | add
EOF

pw-dump | gojq "$JQPROG" | nvim -Es -c '%s/\v^(\s+)(\d+)(,|$)/\=printf("%s\"0x%016x\"%s", submatch(1), submatch(2), submatch(3))/' -c '%print' -

which helped me to discover that webrtc doesn't currently support SPA_VIDEO_FORMAT_xRGB_210LE / DRM_FORMAT_XRGB2101010 and remove render_bit_depth 10 from my sway config so it could work.

Not too familiar with pipewire, some info may have been omitted, ymmv.

[1] https://github.com/itchyny/gojq

@mvdan
Copy link

mvdan commented Aug 9, 2023

I'm trying to debug why screensharing with sway+firefox broke for me on Arch all of a sudden. Went through https://github.com/emersion/xdg-desktop-portal-wlr/wiki/%22It-doesn't-work%22-Troubleshooting-Checklist and ended up at the last step, here.

The original script with jq prints nothing, and the script with gojq prints:

{
  "libcamera_input.__SB_.PCI0.GPP0.RESA.RHUB.HSCM-2_1.0-13d3_5415": {
    "formats": [],
    "id": 50,
    "type": "PipeWire:Interface:Node"
  },
  "v4l2_input.pci-0000_06_00.0-usb-0_2_1.0": {
    "formats": [],
    "id": 48,
    "type": "PipeWire:Interface:Node"
  }
}

This is regardless of whether a screenshare is currently "running" or not. I'm a bit confused, and would really appreciate help. I don't really have enough to file an issue, as I don't even know what piece of this software puzzle is causing problems. The fact that "formats" is empty is throwing me off.

software versions and pw-dump while not screensharing
$ pacman -Q firefox sway xdg-desktop-portal xdg-desktop-portal-wlr
firefox 116.0.2-1
sway 1:1.8.1-1
xdg-desktop-portal 1.16.0-3
xdg-desktop-portal-wlr 0.7.0-1
$ pw-dump
[
  {
    "id": 0,
    "type": "PipeWire:Interface:Core",
    "version": 4,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "cookie": 2128993968,
      "user-name": "mvdan",
      "host-name": "p14s",
      "version": "0.3.77",
      "name": "pipewire-0",
      "change-mask": [ "props" ],
      "props": {
        "clock.power-of-two-quantum": true,
        "config.name": "pipewire.conf",
        "core.daemon": true,
        "core.name": "pipewire-0",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 16,
        "log.level": 2,
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.access": true,
        "module.x11.bell": true,
        "object.id": 0,
        "object.serial": 0,
        "settings.check-quantum": false,
        "settings.check-rate": false
      }
    }
  },
  {
    "id": 1,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-rt",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-rt.so",
      "args": "{\n            nice.level    = -11\n            #rt.prio      = 88\n            #rt.time.soft = -1\n            #rt.time.hard = -1\n        }",
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Use realtime thread scheduling, falling back to RTKit",
        "module.name": "libpipewire-module-rt",
        "module.usage": "( nice.level=<priority: default 20(don't change)> ) ( rt.prio=<priority: default 88> ) ( rt.time.soft=<in usec: default -1> ) ( rt.time.hard=<in usec: default -1> ) ( rlimits.enabled=<default true> ) ( rtportal.enabled=<default true> ) ( rtkit.enabled=<default true> ) ",
        "module.version": "0.3.77",
        "nice.level": -11,
        "object.id": 1,
        "object.serial": 1
      }
    }
  },
  {
    "id": 2,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-protocol-native",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-protocol-native.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Native protocol using unix sockets",
        "module.name": "libpipewire-module-protocol-native",
        "module.version": "0.3.77",
        "object.id": 2,
        "object.serial": 2
      }
    }
  },
  {
    "id": 4,
    "type": "PipeWire:Interface:Profiler",
    "version": 3,
    "permissions": [ "r" ],
    "props": {
      "object.serial": 4
    }
  },
  {
    "id": 3,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-profiler",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-profiler.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Generate Profiling data",
        "module.name": "libpipewire-module-profiler",
        "module.version": "0.3.77",
        "object.id": 3,
        "object.serial": 3
      }
    }
  },
  {
    "id": 5,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-metadata",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-metadata.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Allow clients to create metadata store",
        "module.name": "libpipewire-module-metadata",
        "module.version": "0.3.77",
        "object.id": 5,
        "object.serial": 5
      }
    }
  },
  {
    "id": 6,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "metadata",
      "type": "PipeWire:Interface:Metadata",
      "version": 3,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "metadata",
        "factory.type.name": "PipeWire:Interface:Metadata",
        "factory.type.version": 3,
        "factory.usage": "(metadata.name = <name> ) (metadata.values = [    { ( id = <int> ) key = <string> ( type = <string> ) value = <json> }    ...  ] )",
        "module.id": 5,
        "object.id": 6,
        "object.serial": 6
      }
    }
  },
  {
    "id": 7,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-spa-device-factory",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-spa-device-factory.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Provide a factory to make SPA devices",
        "module.name": "libpipewire-module-spa-device-factory",
        "module.version": "0.3.77",
        "object.id": 7,
        "object.serial": 7
      }
    }
  },
  {
    "id": 8,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "spa-device-factory",
      "type": "PipeWire:Interface:Device",
      "version": 3,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "spa-device-factory",
        "factory.type.name": "PipeWire:Interface:Device",
        "factory.type.version": 3,
        "module.id": 7,
        "object.id": 8,
        "object.serial": 8
      }
    }
  },
  {
    "id": 9,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-spa-node-factory",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-spa-node-factory.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Provide a factory to make SPA nodes",
        "module.name": "libpipewire-module-spa-node-factory",
        "module.version": "0.3.77",
        "object.id": 9,
        "object.serial": 9
      }
    }
  },
  {
    "id": 10,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "spa-node-factory",
      "type": "PipeWire:Interface:Node",
      "version": 3,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "spa-node-factory",
        "factory.type.name": "PipeWire:Interface:Node",
        "factory.type.version": 3,
        "module.id": 9,
        "object.id": 10,
        "object.serial": 10
      }
    }
  },
  {
    "id": 11,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-client-node",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-client-node.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Allow clients to create and control remote nodes",
        "module.name": "libpipewire-module-client-node",
        "module.version": "0.3.77",
        "object.id": 11,
        "object.serial": 11
      }
    }
  },
  {
    "id": 12,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "client-node",
      "type": "PipeWire:Interface:ClientNode",
      "version": 5,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "client-node",
        "factory.type.name": "PipeWire:Interface:ClientNode",
        "factory.type.version": 5,
        "module.id": 11,
        "object.id": 12,
        "object.serial": 12
      }
    }
  },
  {
    "id": 13,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-client-device",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-client-device.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Allow clients to create and control remote devices",
        "module.name": "libpipewire-module-client-device",
        "module.version": "0.3.77",
        "object.id": 13,
        "object.serial": 13
      }
    }
  },
  {
    "id": 14,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "client-device",
      "type": "Spa:Pointer:Interface:Device",
      "version": 0,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "client-device",
        "factory.type.name": "Spa:Pointer:Interface:Device",
        "factory.type.version": 0,
        "factory.usage": "[device.name=<string>]",
        "module.id": 13,
        "object.id": 14,
        "object.serial": 14
      }
    }
  },
  {
    "id": 15,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-portal",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-portal.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.name": "libpipewire-module-portal",
        "object.id": 15,
        "object.serial": 15
      }
    }
  },
  {
    "id": 16,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-access",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-access.so",
      "args": "{\n            # access.allowed to list an array of paths of allowed\n            # apps.\n            #access.allowed = [\n            #    /usr/bin/pipewire-media-session\n            #]\n\n            # An array of rejected paths.\n            #access.rejected = [ ]\n\n            # An array of paths with restricted access.\n            #access.restricted = [ ]\n\n            # Anything not in the above lists gets assigned the\n            # access.force permission.\n            #access.force = flatpak\n        }",
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Perform access check",
        "module.name": "libpipewire-module-access",
        "module.usage": "( access.force=flatpak ) ( access.allowed= [ <cmd-line>,.. ] ) ( access.rejected= [ <cmd-line>,.. ] ) ( access.restricted= [ <cmd-line>,.. ] ) ",
        "module.version": "0.3.77",
        "object.id": 16,
        "object.serial": 16
      }
    }
  },
  {
    "id": 17,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-adapter",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-adapter.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Manage adapter nodes",
        "module.name": "libpipewire-module-adapter",
        "module.version": "0.3.77",
        "object.id": 17,
        "object.serial": 17
      }
    }
  },
  {
    "id": 18,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "adapter",
      "type": "PipeWire:Interface:Node",
      "version": 3,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "adapter",
        "factory.type.name": "PipeWire:Interface:Node",
        "factory.type.version": 3,
        "factory.usage": "factory.name=<factory-name> (library.name=<library-name>) node.name=<string> ",
        "module.id": 17,
        "object.id": 18,
        "object.serial": 18
      }
    }
  },
  {
    "id": 19,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-link-factory",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-link-factory.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.author": "Wim Taymans <wim.taymans@gmail.com>",
        "module.description": "Allow clients to create links",
        "module.name": "libpipewire-module-link-factory",
        "module.usage": "( allow.link.passive=<bool, default false> ) ",
        "module.version": "0.3.77",
        "object.id": 19,
        "object.serial": 19
      }
    }
  },
  {
    "id": 20,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "link-factory",
      "type": "PipeWire:Interface:Link",
      "version": 3,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "link-factory",
        "factory.type.name": "PipeWire:Interface:Link",
        "factory.type.version": 3,
        "factory.usage": "(link.output.node=<output-node>) (link.output.port=<output-port>) (link.input.node=<input-node>) (link.input.port=<input-port>) (object.linger=<bool>) (link.passive=<bool>)",
        "module.id": 19,
        "object.id": 20,
        "object.serial": 20
      }
    }
  },
  {
    "id": 21,
    "type": "PipeWire:Interface:Module",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "libpipewire-module-session-manager",
      "filename": "/usr/lib/pipewire-0.3/libpipewire-module-session-manager.so",
      "args": null,
      "change-mask": [ "props" ],
      "props": {
        "module.author": "George Kiagiadakis <george.kiagiadakis@collabora.com>",
        "module.description": "Implements objects for session management",
        "module.name": "libpipewire-module-session-manager",
        "module.version": "0.3.77",
        "object.id": 21,
        "object.serial": 21
      }
    }
  },
  {
    "id": 22,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "client-endpoint",
      "type": "PipeWire:Interface:ClientEndpoint",
      "version": 0,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "client-endpoint",
        "factory.type.name": "PipeWire:Interface:ClientEndpoint",
        "factory.type.version": 0,
        "module.id": 21,
        "object.id": 22,
        "object.serial": 22
      }
    }
  },
  {
    "id": 23,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "client-session",
      "type": "PipeWire:Interface:ClientSession",
      "version": 0,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "client-session",
        "factory.type.name": "PipeWire:Interface:ClientSession",
        "factory.type.version": 0,
        "module.id": 21,
        "object.id": 23,
        "object.serial": 23
      }
    }
  },
  {
    "id": 24,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "session",
      "type": "PipeWire:Interface:Session",
      "version": 0,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "session",
        "factory.type.name": "PipeWire:Interface:Session",
        "factory.type.version": 0,
        "module.id": 21,
        "object.id": 24,
        "object.serial": 24
      }
    }
  },
  {
    "id": 25,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "endpoint",
      "type": "PipeWire:Interface:Endpoint",
      "version": 0,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "endpoint",
        "factory.type.name": "PipeWire:Interface:Endpoint",
        "factory.type.version": 0,
        "module.id": 21,
        "object.id": 25,
        "object.serial": 25
      }
    }
  },
  {
    "id": 26,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "endpoint-stream",
      "type": "PipeWire:Interface:EndpointStream",
      "version": 0,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "endpoint-stream",
        "factory.type.name": "PipeWire:Interface:EndpointStream",
        "factory.type.version": 0,
        "module.id": 21,
        "object.id": 26,
        "object.serial": 26
      }
    }
  },
  {
    "id": 27,
    "type": "PipeWire:Interface:Factory",
    "version": 3,
    "permissions": [ "r", "m" ],
    "info": {
      "name": "endpoint-link",
      "type": "PipeWire:Interface:EndpointLink",
      "version": 0,
      "change-mask": [ "props" ],
      "props": {
        "factory.name": "endpoint-link",
        "factory.type.name": "PipeWire:Interface:EndpointLink",
        "factory.type.version": 0,
        "module.id": 21,
        "object.id": 27,
        "object.serial": 27
      }
    }
  },
  {
    "id": 28,
    "type": "PipeWire:Interface:Node",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "max-input-ports": 0,
      "max-output-ports": 0,
      "change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
      "n-input-ports": 0,
      "n-output-ports": 0,
      "state": "suspended",
      "error": null,
      "props": {
        "clock.id": "monotonic",
        "clock.name": "clock.system.monotonic",
        "clock.quantum-limit": 8192,
        "factory.id": 10,
        "factory.name": "support.node.driver",
        "node.driver": true,
        "node.group": "pipewire.dummy",
        "node.name": "Dummy-Driver",
        "object.id": 28,
        "object.serial": 28,
        "priority.driver": 20000
      },
      "params": {
      }
    }
  },
  {
    "id": 29,
    "type": "PipeWire:Interface:Node",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "max-input-ports": 0,
      "max-output-ports": 0,
      "change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
      "n-input-ports": 0,
      "n-output-ports": 0,
      "state": "suspended",
      "error": null,
      "props": {
        "clock.id": "monotonic",
        "clock.name": "clock.system.monotonic",
        "clock.quantum-limit": 8192,
        "factory.id": 10,
        "factory.name": "support.node.driver",
        "node.driver": true,
        "node.freewheel": true,
        "node.group": "pipewire.freewheel",
        "node.name": "Freewheel-Driver",
        "object.id": 29,
        "object.serial": 29,
        "priority.driver": 19000
      },
      "params": {
      }
    }
  },
  {
    "id": 30,
    "type": "PipeWire:Interface:Metadata",
    "version": 3,
    "permissions": [ "r", "w", "x" ],
    "props": {
      "metadata.name": "settings",
      "object.serial": 30
    },
    "metadata": [
      { "subject": 0, "key": "log.level", "type": "", "value": 2 },
      { "subject": 0, "key": "clock.rate", "type": "", "value": 48000 },
      { "subject": 0, "key": "clock.allowed-rates", "type": "", "value": "[ 48000 ]" },
      { "subject": 0, "key": "clock.quantum", "type": "", "value": 1024 },
      { "subject": 0, "key": "clock.min-quantum", "type": "", "value": 32 },
      { "subject": 0, "key": "clock.max-quantum", "type": "", "value": 2048 },
      { "subject": 0, "key": "clock.force-quantum", "type": "", "value": 0 },
      { "subject": 0, "key": "clock.force-rate", "type": "", "value": 0 }
    ]
  },
  {
    "id": 32,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "WirePlumber",
        "application.process.binary": "wireplumber",
        "application.process.host": "p14s",
        "application.process.id": 1355,
        "application.process.user": "mvdan",
        "clock.power-of-two-quantum": true,
        "config.name": "/usr/share/wireplumber/wireplumber.conf",
        "core.name": "pipewire-mvdan-1355",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 2,
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 32,
        "object.serial": 32,
        "pipewire.access": "unrestricted",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:a5ccb9d6b15500006ea3294a747f0000c0eac34a747f00008954294a747f0000481f36d5fe7f000000bae0964d25d947b01e36d5fe7f0000b01e36d5fe7f0000b01e36d5fe7f00005955294a747f0000401f36d5fe7f0000195f294a747f00006c0000000000000068b6b9d6b15500006b0000000000000068b6b9d6b15500008500000000000000806c2c4a747f0000000000000000000000bae0964d25d947401f36d5fe7f00008500000000000000401f36d5fe7f0000bd5f294a747f0000401f36d5fe7f00005955294a747f0000502036d5fe7f00005961294a747f0000481f36d5fe7f0000ffaa294a720000006c01000000000000f06d2c4a747f00000b0000000000000068b6b9d6b15500008500000000000000406d2c4a747f0000000000000000000000bae0964d25d947f882b8d6b1550000502036d5fe7f0000f882b8d6b1550000502036d5fe7f0000842136d5fe7f0000d354294a747f0000502036d5fe7f000000bae0964d25d947e02036d5fe7f0000e02036d5fe7f0000e02036d5fe7f00005955294a747f0000a5ccb9d6b15500006ea3294a747f0000f01f0107500000004d0000006c000000d82036d5fe7f00005cccb9d6b15500006c00000000000000a5ccb9d6b1550000060000000000000068b6b9d6b15500000c00000000000000c06d2c4a747f00005cccb9d6b15500009deab04a747f0000c0eac34a747f00002003000000000000b00000000000000026a1a94a747f000085000000000000000ab3a94a747f000050dfbdd6b155000000e0bdd6b155000000000000000000006c00000000000000001002000000000000bae0964d25d947f882b8d6b15500002003000000000000c0ffffffffffffff00bae0964d25d947200300000000000090b4b9d6b155000080bab9d6b15500000000000000000000f082b8d6b1550000f082b8d6b155000078cc7dd6b155000000bae0964d25d94780b6b9d6b155000090b4b9d6b155000080bab9d6b15500000000000000000000f082b8d6b1550000f082b8d6b155000078cc7dd6b1550000f13fb04a747f0000a071b8d6b15500000800000000000000a02136d5fe7f00007a16b14a747f00000200000000000000c8c6e14a01000000a02136d5fe7f000020000000ffffffffa071b8d6b155000059cce14a747f000001000000d02bb9d6b15500004d25d94790bcb9d6b1550000010000000000000050c1ce4a747f00000182b8d6b155000070b2b9d6b155000004e0284a747f000090bcb9d6b15500000100000000000000a071b8d6b155000091d6284a747f000090bcb9d6b15500007c13294a747f0000502136d5fe7f0000f082b8d6b1550000c8bcb9d6b1550000682236d5fe7f000001000000747f0000d50000000000000020bfb9d6b1550000a42236d5fe7f0000",
        "pipewire.sec.pid": 1355,
        "pipewire.sec.uid": 1000,
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0",
        "wireplumber.daemon": true,
        "wireplumber.export-core": true,
        "wireplumber.script-engine": "lua-scripting"
      }
    }
  },
  {
    "id": 33,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "WirePlumber [export]",
        "application.process.binary": "wireplumber",
        "application.process.host": "p14s",
        "application.process.id": 1355,
        "application.process.user": "mvdan",
        "clock.power-of-two-quantum": true,
        "config.name": "/usr/share/wireplumber/wireplumber.conf",
        "core.name": "pipewire-mvdan-1355",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 2,
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 33,
        "object.serial": 33,
        "pipewire.access": "unrestricted",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:a5ccb9d6b15500006ea3294a747f0000c0eac34a747f00008954294a747f0000481f36d5fe7f000000bae0964d25d947b01e36d5fe7f0000b01e36d5fe7f0000b01e36d5fe7f00005955294a747f0000401f36d5fe7f0000195f294a747f00006c0000000000000068b6b9d6b15500006b0000000000000068b6b9d6b15500008500000000000000806c2c4a747f0000000000000000000000bae0964d25d947401f36d5fe7f00008500000000000000401f36d5fe7f0000bd5f294a747f0000401f36d5fe7f00005955294a747f0000502036d5fe7f00005961294a747f0000481f36d5fe7f0000ffaa294a720000006c01000000000000f06d2c4a747f00000b0000000000000068b6b9d6b15500008500000000000000406d2c4a747f0000000000000000000000bae0964d25d947f882b8d6b1550000502036d5fe7f0000f882b8d6b1550000502036d5fe7f0000842136d5fe7f0000d354294a747f0000502036d5fe7f000000bae0964d25d947e02036d5fe7f0000e02036d5fe7f0000e02036d5fe7f00005955294a747f0000a5ccb9d6b15500006ea3294a747f0000f01f0107500000004d0000006c000000d82036d5fe7f00005cccb9d6b15500006c00000000000000a5ccb9d6b1550000060000000000000068b6b9d6b15500000c00000000000000c06d2c4a747f00005cccb9d6b15500009deab04a747f0000c0eac34a747f00002003000000000000b00000000000000026a1a94a747f000085000000000000000ab3a94a747f000050dfbdd6b155000000e0bdd6b155000000000000000000006c00000000000000001002000000000000bae0964d25d947f882b8d6b15500002003000000000000c0ffffffffffffff00bae0964d25d947200300000000000090b4b9d6b155000080bab9d6b15500000000000000000000f082b8d6b1550000f082b8d6b155000078cc7dd6b155000000bae0964d25d94780b6b9d6b155000090b4b9d6b155000080bab9d6b15500000000000000000000f082b8d6b1550000f082b8d6b155000078cc7dd6b1550000f13fb04a747f0000a071b8d6b15500000800000000000000a02136d5fe7f00007a16b14a747f00000200000000000000c8c6e14a02000000a02136d5fe7f000020000000ffffffffa071b8d6b155000059cce14a747f000001000000d02bb9d6b15500000100000030f6bdd6b1550000010000000000000050c1ce4a747f00000182b8d6b155000070b2b9d6b155000004e0284a747f000090bcb9d6b15500000100000000000000a071b8d6b155000091d6284a747f000090bcb9d6b15500007c13294a747f0000502136d5fe7f0000f082b8d6b1550000c8bcb9d6b1550000682236d5fe7f000001000000747f0000d50000000000000020bfb9d6b1550000a42236d5fe7f0000",
        "pipewire.sec.pid": 1355,
        "pipewire.sec.uid": 1000,
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0",
        "wireplumber.daemon": true,
        "wireplumber.export-core": true,
        "wireplumber.script-engine": "lua-scripting"
      }
    }
  },
  {
    "id": 31,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "xdg-desktop-portal-wlr",
        "application.process.binary": "xdg-desktop-portal-wlr",
        "application.process.host": "p14s",
        "application.process.id": 1352,
        "application.process.user": "mvdan",
        "clock.power-of-two-quantum": true,
        "core.name": "pipewire-mvdan-1352",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 0,
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 31,
        "object.serial": 31,
        "pipewire.access": "unrestricted",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:02000000b155000000bae0964d25d947c0eac34a747f000040fbbad6b155000001000000000000001800000030000000102536d5fe7f0000502436d5fe7f0000d800bbd6b15500000001000000000000b8bcb4d6b1550000f01f36d5fe7f0000c01e36d5fe7f000000bae0964d25d947c01e36d5fe7f000040fbbad6b155000010a1df4a747f000000bae0964d25d947f01f36d5fe7f000030fbbad6b1550000402036d5fe7f000040fbbad6b15500002800bbd6b15500000000000000000000000000000000000038d7da4a747f0000f01f36d5fe7f0000b8bcb4d6b1550000002000000100000030bbb4d6b1550000f01f36d5fe7f0000f01f36d5fe7f0000200000000004000080bb0000000800001001bbd6b155000030bbb4d6b1550000000000d60100000080bb000080bb000000000000000000000000000000000000000000002000000028bdb4d6b1550000000000000004000000bae0964d25d94750bab4d6b1550000000800000000000000000000b1550000fc1ee10080bb000000000000747f00002800bbd6b15500001001bbd6b155000093fed74a747f0000f01f36d5fe7f000088c4a94a747f00000000000000000000c049b6d6b1550000000000000000000040fbbad6b155000050bab4d6b15500000200000000000000c0eac34a747f0000c0ffffffffffffff010000343230343000bae0964d25d9473050db4a747f0000902036d5fe7f0000c82136d5fe7f0000b82036d5fe7f00000100000000000000c82136d5fe7f0000b82036d5fe7f0000c511a84a747f0000b82036d5fe7f0000b92036d5fe7f0000802136d5fe7f000088c4a94a747f00000500000000000000c04cb6d6b1550000000000000000000088c4a94a747f0000f0203634383030300200000000000000c0eac34a747f0000c0ffffffffffffff0049b6d6b15500000049b6d6b15500000000000000000000000000000000000000000000000000000000000000000000020000000000000000bae0964d25d947dc4fdb4a747f00006049b6d6b155000090a0bcd6b155000000bae0964d25d9476049b6d6b155000088ffffffffffffff00000000000000007a16b14a747f00007806db4a747f00000500000003000000a02136d5fe7f000020000000ffffffff000000000000000059cce14a747f000001000000d02bb9d6b15500000100000070d7b9d6b155000001000000f0b2b9d6b1550000b1550000c049b6d6b15500003000000030000000d02236d5fe7f0000f02136d5fe7f000000bae0964d25d947002236d5fe7f000000bae0964d25d947014db6d6b15500005f53b6d6b1550000e02136d5fe7f0000000000000000000090b9ff48747f00007806db4a747f0000c0b6ff48747f0000702336d5fe7f0000662336d5fe7f00000000000000000000",
        "pipewire.sec.pid": 1352,
        "pipewire.sec.uid": 1000,
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0"
      }
    }
  },
  {
    "id": 34,
    "type": "PipeWire:Interface:Metadata",
    "version": 3,
    "permissions": [ "r", "w", "x" ],
    "props": {
      "client.id": 32,
      "factory.id": 6,
      "metadata.name": "default",
      "module.id": 5,
      "object.serial": 34
    },
    "metadata": [
      { "subject": 0, "key": "default.configured.audio.sink", "type": "Spa:String:JSON", "value": { "name": "alsa_output.pci-0000_07_00.6.HiFi__hw_Generic_1__sink" } },
      { "subject": 0, "key": "default.configured.audio.source", "type": "Spa:String:JSON", "value": { "name": "alsa_input.usb-R__DE_Microphones_R__DE_NT-USB_Mini_310955DD-00.5.mono-fallback.2" } },
      { "subject": 0, "key": "default.video.source", "type": "Spa:String:JSON", "value": { "name": "v4l2_input.pci-0000_06_00.0-usb-0_2_1.0" } },
      { "subject": 0, "key": "default.audio.sink", "type": "Spa:String:JSON", "value": { "name": "alsa_output.pci-0000_07_00.6.HiFi__hw_Generic_1__sink" } },
      { "subject": 0, "key": "default.audio.source", "type": "Spa:String:JSON", "value": { "name": "alsa_input.pci-0000_07_00.6.HiFi__hw_acp__source" } }
    ]
  },
  {
    "id": 35,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "xdg-desktop-portal",
        "application.process.binary": "xdg-desktop-portal",
        "application.process.host": "p14s",
        "application.process.id": 1283,
        "application.process.user": "mvdan",
        "clock.power-of-two-quantum": true,
        "core.name": "pipewire-mvdan-1283",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 0,
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 35,
        "object.serial": 35,
        "pipewire.access": "unrestricted",
        "pipewire.access.portal.is_portal": true,
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:8eccb9d6b15500006ea3294a747f000001000000b15500008954294a747f0000481f36d5fe7f000000bae0964d25d947b01e36d5fe7f0000b01e36d5fe7f0000b01e36d5fe7f00005955294a747f0000401f36d5fe7f0000195f294a747f00006c0000000000000068b6b9d6b155000093000000000000009bd72a4a747f0000502036d5fe7f0000735f294a747f0000000000000000000000bae0964d25d947401f36d5fe7f00009900000000000000401f36d5fe7f0000bd5f294a747f0000401f36d5fe7f000000bae0964d25d947502036d5fe7f00000000000000000000502036d5fe7f00005955294a747f0000000000000000000069ad294a747f00000b00000000000000502036d5fe7f0000402036d5fe7f00000000000000000000000000000000000003000000730000000000000000000000502036d5fe7f000008d5b9d6b1550000502036d5fe7f0000842136d5fe7f00007859294a747f0000502036d5fe7f000000bae0964d25d947402036d5fe7f000000bae0964d25d947502036d5fe7f000000d5b9d6b15500001800000030000000b02136d5fe7f0000e02036d5fe7f000000bae0964d25d94708d5b9d6b1550000000000000000000000d5b9d6b1550000402036d5fe7f0000c02036d5fe7f00007300000000000000000000000000000088b5294a747f000000d5b9d6b1550000000060000d0000006c0000000000000008d5b9d6b1550000980000000000000050d5b9d6b15500001e00000000000000c06d2c4a747f0000000000000000000000bae0964d25d947000000000000000000d5b9d6b1550000730000000000000000d5b9d6b1550000582236d5fe7f0000c5b6294a747f0000300000003000000000bae0964d25d947e02036d5fe7f000090b4b9d6b155000080bab9d6b1550000000000000000000000d5b9d6b155000000d5b9d6b155000000bfb9d6b155000000bae0964d25d94780b6b9d6b155000090b4b9d6b155000080bab9d6b1550000000000000000000000d5b9d6b155000000d5b9d6b155000000bfb9d6b1550000f13fb04a747f0000a071b8d6b15500000800000000000000a02136d5fe7f00007a16b14a747f00000200000000000000c8c6e14a01000000a02136d5fe7f000020000000ffffffffa071b8d6b155000059cce14a747f000001000000d02bb9d6b15500004d25d94790bcb9d6b1550000010000000000000050c1ce4a747f000001d5b9d6b155000070b2b9d6b155000004e0284a747f000090bcb9d6b15500000100000000000000a071b8d6b155000091d6284a747f000090bcb9d6b15500007c13294a747f0000502136d5fe7f000000d5b9d6b1550000c8bcb9d6b1550000682236d5fe7f000001000000747f0000be0000000000000020bfb9d6b1550000a42236d5fe7f0000",
        "pipewire.sec.pid": 1283,
        "pipewire.sec.uid": 1000,
        "portal.monitor": "Camera",
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0"
      }
    }
  },
  {
    "id": 36,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "pipewire",
        "application.process.binary": "pipewire",
        "application.process.host": "p14s",
        "application.process.id": 1394,
        "application.process.user": "mvdan",
        "clock.power-of-two-quantum": true,
        "config.name": "pipewire-pulse.conf",
        "core.name": "pipewire-mvdan-1394",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 2,
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 36,
        "object.serial": 36,
        "pipewire.access": "unrestricted",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:9eccb9d6b15500006ea3294a747f000000000000000000008954294a747f0000481f36d5fe7f000000bae0964d25d947b01e36d5fe7f0000b01e36d5fe7f0000b01e36d5fe7f00005955294a747f0000401f36d5fe7f0000195f294a747f00006c0000000000000068b6b9d6b155000093000000000000009bd72a4a747f0000502036d5fe7f0000735f294a747f0000000000000000000000bae0964d25d947401f36d5fe7f00009900000000000000401f36d5fe7f0000bd5f294a747f0000401f36d5fe7f000000bae0964d25d947502036d5fe7f00000000000000000000502036d5fe7f00005955294a747f0000000000000000000069ad294a747f00000b00000000000000502036d5fe7f0000402036d5fe7f00000000000000000000000000000000000003000000730000000000000000000000502036d5fe7f0000680ac1d6b1550000502036d5fe7f0000842136d5fe7f00007859294a747f0000502036d5fe7f000000bae0964d25d947402036d5fe7f000000bae0964d25d947502036d5fe7f0000600ac1d6b15500001800000030000000b02136d5fe7f0000e02036d5fe7f000000bae0964d25d947680ac1d6b15500000000000000000000600ac1d6b1550000402036d5fe7f0000c02036d5fe7f00007300000000000000000000000000000088b5294a747f0000600ac1d6b1550000000060000d0000006c00000000000000680ac1d6b15500009800000000000000b00ac1d6b15500002e00000000000000c06d2c4a747f0000000000000000000000bae0964d25d9470000000000000000600ac1d6b15500007300000000000000600ac1d6b1550000582236d5fe7f0000c5b6294a747f0000300000003000000000bae0964d25d947e02036d5fe7f000090b4b9d6b155000080bab9d6b15500000000000000000000600ac1d6b1550000600ac1d6b155000000bfb9d6b155000000bae0964d25d94780b6b9d6b155000090b4b9d6b155000080bab9d6b15500000000000000000000600ac1d6b1550000600ac1d6b155000000bfb9d6b1550000f13fb04a747f0000a071b8d6b15500000800000000000000a02136d5fe7f00007a16b14a747f00000200000000000000c8c6e14a01000000a02136d5fe7f000020000000ffffffffa071b8d6b155000059cce14a747f000001000000d02bb9d6b15500004d25d94790bcb9d6b1550000010000000000000050c1ce4a747f0000010ac1d6b155000070b2b9d6b155000004e0284a747f000090bcb9d6b15500000100000000000000a071b8d6b155000091d6284a747f000090bcb9d6b15500007c13294a747f0000502136d5fe7f0000600ac1d6b1550000c8bcb9d6b1550000682236d5fe7f000001000000747f0000ce0000000000000020bfb9d6b1550000a42236d5fe7f0000",
        "pipewire.sec.pid": 1394,
        "pipewire.sec.uid": 1000,
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0"
      }
    }
  },
  {
    "id": 37,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "waybar",
        "application.process.binary": "waybar",
        "application.process.host": "p14s",
        "application.process.id": 1174,
        "application.process.machine-id": "2e5c8c03be8a41a8b6d45b89909f98cd",
        "application.process.session-id": 1,
        "application.process.user": "mvdan",
        "client.api": "pipewire-pulse",
        "clock.power-of-two-quantum": true,
        "config.name": "pipewire-pulse.conf",
        "core.name": "pipewire-mvdan-1394",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 2,
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 37,
        "object.serial": 37,
        "pipewire.access": "unrestricted",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:605cc1d6b1550000000000000000000008000000050000002500000000000000a040c1d6b1550000280000000e00000000000000000000002800000000000000100000000e000000781e36d5fe7f000040000000000000000100000000000000000000000000000000bae0964d25d9479041c1d6b15500007018c1d6b1550000a8bcb4d6b155000050bab4d6b1550000e0a1df4a747f0000b335d74a747f000030602749747f000048bdb4d6b15500000000000000000000000000000000000000000000000000000000000000000000b02136d50200000000bae0964d25d947e018c1d6b155000048bdb4d6b15500007018c1d6b15500007018c1d6b15500000100000000000000b02136d5fe7f00005134fe43747f0000cf59d54a747f000030602749747f000042bafc43747f0000a040c1d6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000181ac1d60e00000019000000747f00007018c1d6010000005036c4d6b1550000000000000000000000bae0964d25d9475134fe43747f000042bafc43747f0000a040c1d6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000a040c1d60e000000280a000000000000181ac1d6b1550000d01fc1d6b1550000d81fc1d6b1550000c829fe43747f0000781ac1d6b1550000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000004000000030000400000000000000000000000007018c1d6b15500003000000030000000b02136d5fe7f0000c02036d5fe7f000000bae0964d25d9470300000000100000d01fc1d6b1550000a040c1d6b15500002800000000000000181ac1d6b1550000d01fc1d6b1550000d81fc1d6b1550000c829fe43747f0000781ac1d6b1550000d81fc1d6b155000000000000000000000000000000000000000000000000000000bae0964d25d947402136d5fe7f0000d01fc1d6b15500001000000000000000aa33b14a747f0000a02136d5fe7f00002300000040000040d01fc1d6b15500007a16b14a747f0000605cc1d6b1550000f01fc1d601000000a02136d5fe7f000020000000ffffffffa040c1d6b155000059cce14a747f000001000000d02bb9d6b1550000747f00001038bfd6b15500006800000000000000002236d5fe7f0000a0e5c0d6404000004000004000000000af11fe43747f0000a0f6c0d6b1550000a0f6c0d6b15500000000000000000000d01fc1d6b155000000000000000000000000000000000000402236d5fe7f0000010000000000000000000000000000000000000000000000000000000000000003000040000000002036c2d6b15500006800000000000000",
        "pipewire.sec.pid": 1394,
        "pipewire.sec.uid": 1000,
        "pulse.server.type": "unix",
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0"
      }
    }
  },
  {
    "id": 39,
    "type": "PipeWire:Interface:Metadata",
    "version": 3,
    "permissions": [ "r", "w", "x" ],
    "props": {
      "client.id": 32,
      "factory.id": 6,
      "metadata.name": "route-settings",
      "module.id": 5,
      "object.serial": 39
    },
    "metadata": [
      { "subject": 0, "key": "restore.stream.Output/Audio.media.role:Notification", "type": "Spa:String:JSON", "value": { "volume": 1.000000, "channels": [ "FL", "FR" ], "mute": true, "volumes": [ 0.064504, 0.064504 ] } }
    ]
  },
  {
    "id": 40,
    "type": "PipeWire:Interface:Node",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "max-input-ports": 256,
      "max-output-ports": 256,
      "change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
      "n-input-ports": 1,
      "n-output-ports": 1,
      "state": "suspended",
      "error": null,
      "props": {
        "client.id": 33,
        "clock.quantum-limit": 8192,
        "device.api": "alsa",
        "factory.id": 10,
        "factory.name": "api.alsa.seq.bridge",
        "media.class": "Midi/Bridge",
        "node.driver": true,
        "node.name": "Midi-Bridge",
        "object.id": 40,
        "object.serial": 40
      },
      "params": {
        "PropInfo": [
          {
            "id": "device",
            "description": "The ALSA device",
            "type": "default"
          }
        ],
        "Props": [
          {
            "device": "default"
          }
        ],
        "IO": [
          {
            "id": "Clock",
            "size": 160
          },
          {
            "id": "Position",
            "size": 1688
          }
        ]
      }
    }
  },
  {
    "id": 41,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "input",
      "change-mask": [ "props", "params" ],
      "props": {
        "format.dsp": "8 bit raw midi",
        "node.id": 40,
        "object.id": 41,
        "object.path": "alsa:seq:default:client_14:playback_0",
        "object.serial": 41,
        "port.alias": "Midi Through:Midi Through Port-0",
        "port.direction": "in",
        "port.id": 0,
        "port.name": "Midi Through:(playback_0) Midi Through Port-0",
        "port.physical": true,
        "port.terminal": true
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "application",
            "mediaSubtype": "control"
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 42,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "output",
      "change-mask": [ "props", "params" ],
      "props": {
        "format.dsp": "8 bit raw midi",
        "node.id": 40,
        "object.id": 42,
        "object.path": "alsa:seq:default:client_14:capture_0",
        "object.serial": 42,
        "port.alias": "Midi Through:Midi Through Port-0",
        "port.direction": "out",
        "port.id": 0,
        "port.name": "Midi Through:(capture_0) Midi Through Port-0",
        "port.physical": true,
        "port.terminal": true
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "application",
            "mediaSubtype": "control"
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 43,
    "type": "PipeWire:Interface:Device",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props", "params" ],
      "props": {
        "api.v4l2.cap.bus_info": "usb-0000:06:00.0-2",
        "api.v4l2.cap.capabilities": "84a00001",
        "api.v4l2.cap.card": "Integrated Camera: Integrated C",
        "api.v4l2.cap.device-caps": 4200001,
        "api.v4l2.cap.driver": "uvcvideo",
        "api.v4l2.cap.version": "6.4.8",
        "api.v4l2.path": "/dev/video0",
        "client.id": 33,
        "device.api": "v4l2",
        "device.bus": "usb",
        "device.bus-path": "pci-0000:06:00.0-usb-0:2:1.0",
        "device.capabilities": ":capture:",
        "device.description": "Integrated Camera",
        "device.devids": 20736,
        "device.enum.api": "udev",
        "device.name": "v4l2_device.pci-0000_06_00.0-usb-0_2_1.0",
        "device.plugged.usec": 6336272,
        "device.product.id": "0x541",
        "device.product.name": "Integrated Camera",
        "device.serial": "Azurewave_Integrated_Camera",
        "device.subsystem": "video4linux",
        "device.sysfs.path": "/devices/pci0000:00/0000:00:02.7/0000:06:00.0/usb1/1-2/1-2:1.0/video4linux/video0",
        "device.vendor.id": "0x13d",
        "device.vendor.name": "Azurewave",
        "factory.id": 14,
        "media.class": "Video/Device",
        "object.id": 43,
        "object.path": "v4l2:/dev/video0",
        "object.serial": 43
      },
      "params": {
      }
    }
  },
  {
    "id": 44,
    "type": "PipeWire:Interface:Device",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props", "params" ],
      "props": {
        "api.v4l2.cap.bus_info": "usb-0000:06:00.0-2",
        "api.v4l2.cap.capabilities": "84a00001",
        "api.v4l2.cap.card": "Integrated Camera: Integrated C",
        "api.v4l2.cap.device-caps": "04a00000",
        "api.v4l2.cap.driver": "uvcvideo",
        "api.v4l2.cap.version": "6.4.8",
        "api.v4l2.path": "/dev/video1",
        "client.id": 33,
        "device.api": "v4l2",
        "device.bus": "usb",
        "device.bus-path": "pci-0000:06:00.0-usb-0:2:1.0",
        "device.capabilities": ":",
        "device.description": "Integrated Camera",
        "device.devids": 20737,
        "device.enum.api": "udev",
        "device.name": "v4l2_device.pci-0000_06_00.0-usb-0_2_1.0.2",
        "device.plugged.usec": 6336309,
        "device.product.id": "0x541",
        "device.product.name": "Integrated Camera",
        "device.serial": "Azurewave_Integrated_Camera",
        "device.subsystem": "video4linux",
        "device.sysfs.path": "/devices/pci0000:00/0000:00:02.7/0000:06:00.0/usb1/1-2/1-2:1.0/video4linux/video1",
        "device.vendor.id": "0x13d",
        "device.vendor.name": "Azurewave",
        "factory.id": 14,
        "media.class": "Video/Device",
        "object.id": 44,
        "object.path": "v4l2:/dev/video1",
        "object.serial": 44
      },
      "params": {
      }
    }
  },
  {
    "id": 45,
    "type": "PipeWire:Interface:Device",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props", "params" ],
      "props": {
        "api.libcamera.location": "external",
        "api.libcamera.path": "\\_SB_.PCI0.GPP0.RESA.RHUB.HSCM-2:1.0-13d3:5415",
        "client.id": 33,
        "device.api": "libcamera",
        "device.description": "Integrated Camera: Integrated C",
        "device.devids": "20736 ",
        "device.enum.api": "libcamera.manager",
        "device.name": "libcamera_device.\\_SB_.PCI0.GPP0.RESA.RHUB.HSCM-2:1.0-13d3:5415",
        "device.product.name": "Integrated Camera: Integrated C",
        "factory.id": 14,
        "media.class": "Video/Device",
        "object.id": 45,
        "object.path": "libcamera:\\_SB_.PCI0.GPP0.RESA.RHUB.HSCM-2:1.0-13d3:5415",
        "object.serial": 45
      },
      "params": {
        "EnumProfile": [
        ],
        "Profile": [ ]
      }
    }
  },
  {
    "id": 46,
    "type": "PipeWire:Interface:Device",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props", "params" ],
      "props": {
        "alsa.card": 0,
        "alsa.card_name": "HD-Audio Generic",
        "alsa.driver_name": "snd_hda_intel",
        "alsa.long_card_name": "HD-Audio Generic at 0xfd3c8000 irq 106",
        "api.acp.auto-port": false,
        "api.acp.auto-profile": false,
        "api.alsa.card": 0,
        "api.alsa.card.longname": "HD-Audio Generic at 0xfd3c8000 irq 106",
        "api.alsa.card.name": "HD-Audio Generic",
        "api.alsa.path": "hw:0",
        "api.alsa.use-acp": true,
        "api.dbus.ReserveDevice1": "Audio0",
        "client.id": 33,
        "device.api": "alsa",
        "device.bus": "pci",
        "device.bus-path": "pci-0000:07:00.1",
        "device.description": "Renoir Radeon High Definition Audio Controller",
        "device.enum.api": "udev",
        "device.icon-name": "audio-card-analog-pci",
        "device.name": "alsa_card.pci-0000_07_00.1",
        "device.nick": "HD-Audio Generic",
        "device.plugged.usec": 5332096,
        "device.product.id": "0x1637",
        "device.product.name": "Renoir Radeon High Definition Audio Controller",
        "device.string": 0,
        "device.subsystem": "sound",
        "device.sysfs.path": "/devices/pci0000:00/0000:00:08.1/0000:07:00.1/sound/card0",
        "device.vendor.id": "0x1002",
        "device.vendor.name": "Advanced Micro Devices, Inc. [AMD/ATI]",
        "factory.id": 14,
        "media.class": "Audio/Device",
        "object.id": 46,
        "object.path": "alsa:pcm:0",
        "object.serial": 46
      },
      "params": {
        "EnumProfile": [
          {
            "index": 0,
            "name": "off",
            "description": "Off",
            "priority": 0,
            "available": "yes",
            "classes": [
              0
            ]
          },
          {
            "index": 1,
            "name": "HiFi",
            "description": "Play HiFi quality Music",
            "priority": 8000,
            "available": "no",
            "classes": [
              1,
              [
                "Audio/Sink",
                4,
                "card.profile.devices",
                [ 0, 1, 2, 3 ]
              ]
            ]
          },
          {
            "index": 2,
            "name": "pro-audio",
            "description": "Pro Audio",
            "priority": 1,
            "available": "unknown",
            "classes": [
              1,
              [
                "Audio/Sink",
                4,
                "card.profile.devices",
                [ 4, 5, 6, 7 ]
              ]
            ]
          }
        ],
        "Profile": [
          {
            "index": 0,
            "name": "off",
            "description": "Off",
            "priority": 0,
            "available": "yes",
            "classes": [
              0
            ],
            "save": false
          }
        ],
        "EnumRoute": [
          {
            "index": 0,
            "direction": "Output",
            "name": "[Out] HDMI4",
            "description": "HDMI / DisplayPort 4 Output",
            "priority": 1400,
            "available": "no",
            "info": [
              4,
              "port.type",
              "hdmi",
              "port.availability-group",
              "HDMI/DP,pcm=9",
              "device.icon_name",
              "video-display",
              "card.profile.port",
              "0"
            ],
            "profiles": [ 1 ],
            "devices": [ 0 ]
          },
          {
            "index": 1,
            "direction": "Output",
            "name": "[Out] HDMI3",
            "description": "HDMI / DisplayPort 3 Output",
            "priority": 1300,
            "available": "no",
            "info": [
              4,
              "port.type",
              "hdmi",
              "port.availability-group",
              "HDMI/DP,pcm=8",
              "device.icon_name",
              "video-display",
              "card.profile.port",
              "1"
            ],
            "profiles": [ 1 ],
            "devices": [ 1 ]
          },
          {
            "index": 2,
            "direction": "Output",
            "name": "[Out] HDMI2",
            "description": "HDMI / DisplayPort 2 Output",
            "priority": 1200,
            "available": "no",
            "info": [
              4,
              "port.type",
              "hdmi",
              "port.availability-group",
              "HDMI/DP,pcm=7",
              "device.icon_name",
              "video-display",
              "card.profile.port",
              "2"
            ],
            "profiles": [ 1 ],
            "devices": [ 2 ]
          },
          {
            "index": 3,
            "direction": "Output",
            "name": "[Out] HDMI1",
            "description": "HDMI / DisplayPort 1 Output",
            "priority": 1100,
            "available": "no",
            "info": [
              4,
              "port.type",
              "hdmi",
              "port.availability-group",
              "HDMI/DP,pcm=3",
              "device.icon_name",
              "video-display",
              "card.profile.port",
              "3"
            ],
            "profiles": [ 1 ],
            "devices": [ 3 ]
          }
        ],
        "Route": [
        ]
      }
    }
  },
  {
    "id": 47,
    "type": "PipeWire:Interface:Device",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props", "params" ],
      "props": {
        "alsa.card": 1,
        "alsa.card_name": "HD-Audio Generic",
        "alsa.driver_name": "snd_hda_intel",
        "alsa.long_card_name": "HD-Audio Generic at 0xfd3c0000 irq 107",
        "api.acp.auto-port": false,
        "api.acp.auto-profile": false,
        "api.alsa.card": 1,
        "api.alsa.card.longname": "HD-Audio Generic at 0xfd3c0000 irq 107",
        "api.alsa.card.name": "HD-Audio Generic",
        "api.alsa.path": "hw:1",
        "api.alsa.use-acp": true,
        "api.dbus.ReserveDevice1": "Audio1",
        "client.id": 33,
        "device.api": "alsa",
        "device.bus": "pci",
        "device.bus-path": "pci-0000:07:00.6",
        "device.description": "Family 17h/19h HD Audio Controller",
        "device.enum.api": "udev",
        "device.icon-name": "audio-card-analog-pci",
        "device.name": "alsa_card.pci-0000_07_00.6",
        "device.nick": "HD-Audio Generic",
        "device.plugged.usec": 5453490,
        "device.product.id": "0x15e3",
        "device.product.name": "Family 17h/19h HD Audio Controller",
        "device.string": 1,
        "device.subsystem": "sound",
        "device.sysfs.path": "/devices/pci0000:00/0000:00:08.1/0000:07:00.6/sound/card1",
        "device.vendor.id": "0x1022",
        "device.vendor.name": "Advanced Micro Devices, Inc. [AMD]",
        "factory.id": 14,
        "media.class": "Audio/Device",
        "object.id": 47,
        "object.path": "alsa:pcm:1",
        "object.serial": 47
      },
      "params": {
        "EnumProfile": [
          {
            "index": 0,
            "name": "off",
            "description": "Off",
            "priority": 0,
            "available": "yes",
            "classes": [
              0
            ]
          },
          {
            "index": 1,
            "name": "HiFi",
            "description": "Play HiFi quality Music",
            "priority": 8000,
            "available": "yes",
            "classes": [
              2,
              [
                "Audio/Source",
                2,
                "card.profile.devices",
                [ 1, 2 ]
              ],
              [
                "Audio/Sink",
                1,
                "card.profile.devices",
                [ 0 ]
              ]
            ]
          },
          {
            "index": 2,
            "name": "pro-audio",
            "description": "Pro Audio",
            "priority": 1,
            "available": "unknown",
            "classes": [
              2,
              [
                "Audio/Source",
                1,
                "card.profile.devices",
                [ 4 ]
              ],
              [
                "Audio/Sink",
                1,
                "card.profile.devices",
                [ 3 ]
              ]
            ]
          }
        ],
        "Profile": [
          {
            "index": 1,
            "name": "HiFi",
            "description": "Play HiFi quality Music",
            "priority": 8000,
            "available": "yes",
            "classes": [
              2,
              [
                "Audio/Source",
                2,
                "card.profile.devices",
                [ 1, 2 ]
              ],
              [
                "Audio/Sink",
                1,
                "card.profile.devices",
                [ 0 ]
              ]
            ],
            "save": false
          }
        ],
        "EnumRoute": [
          {
            "index": 0,
            "direction": "Output",
            "name": "[Out] Speaker",
            "description": "Speaker",
            "priority": 100,
            "available": "unknown",
            "info": [
              3,
              "port.type",
              "speaker",
              "device.icon_name",
              "audio-speakers",
              "card.profile.port",
              "0"
            ],
            "profiles": [ 1 ],
            "devices": [ 0 ]
          },
          {
            "index": 1,
            "direction": "Output",
            "name": "[Out] Headphones",
            "description": "Headphones",
            "priority": 200,
            "available": "no",
            "info": [
              4,
              "port.type",
              "headphones",
              "port.availability-group",
              "Headphone",
              "device.icon_name",
              "audio-headphones",
              "card.profile.port",
              "1"
            ],
            "profiles": [ 1 ],
            "devices": [ 0 ]
          },
          {
            "index": 2,
            "direction": "Input",
            "name": "[In] Mic2",
            "description": "Headphones Stereo Microphone",
            "priority": 200,
            "available": "no",
            "info": [
              4,
              "port.type",
              "mic",
              "port.availability-group",
              "Mic",
              "device.icon_name",
              "audio-input-microphone",
              "card.profile.port",
              "2"
            ],
            "profiles": [ 1 ],
            "devices": [ 1 ]
          },
          {
            "index": 3,
            "direction": "Input",
            "name": "[In] Mic1",
            "description": "Digital Microphone",
            "priority": 100,
            "available": "unknown",
            "info": [
              3,
              "port.type",
              "mic",
              "device.icon_name",
              "audio-input-microphone",
              "card.profile.port",
              "3"
            ],
            "profiles": [ 1 ],
            "devices": [ 2 ]
          }
        ],
        "Route": [
          {
            "index": 0,
            "direction": "Output",
            "name": "[Out] Speaker",
            "description": "Speaker",
            "priority": 100,
            "available": "unknown",
            "info": [
              5,
              "port.type",
              "speaker",
              "device.icon_name",
              "audio-speakers",
              "card.profile.port",
              "0",
              "route.hw-mute",
              "true",
              "route.hw-volume",
              "true"
            ],
            "profiles": [ 1 ],
            "device": 0,
            "props": {
              "mute": false,
              "channelVolumes": [ 0.130539, 0.130539 ],
              "volumeBase": 1.000000,
              "volumeStep": 0.000015,
              "channelMap": [ "FL", "FR" ],
              "softVolumes": [ 0.951106, 0.951106 ],
              "latencyOffsetNsec": 0
            },
            "devices": [ 0 ],
            "profile": 1,
            "save": true
          },
          {
            "index": 3,
            "direction": "Input",
            "name": "[In] Mic1",
            "description": "Digital Microphone",
            "priority": 100,
            "available": "unknown",
            "info": [
              5,
              "port.type",
              "mic",
              "device.icon_name",
              "audio-input-microphone",
              "card.profile.port",
              "3",
              "route.hw-mute",
              "false",
              "route.hw-volume",
              "false"
            ],
            "profiles": [ 1 ],
            "device": 2,
            "props": {
              "mute": false,
              "channelVolumes": [ 0.272861, 0.272861 ],
              "volumeBase": 1.000000,
              "volumeStep": 0.000015,
              "channelMap": [ "FL", "FR" ],
              "softVolumes": [ 0.272861, 0.272861 ],
              "latencyOffsetNsec": 0
            },
            "devices": [ 2 ],
            "profile": 1,
            "save": true
          }
        ]
      }
    }
  },
  {
    "id": 48,
    "type": "PipeWire:Interface:Node",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "max-input-ports": 0,
      "max-output-ports": 1,
      "change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
      "n-input-ports": 0,
      "n-output-ports": 1,
      "state": "suspended",
      "error": null,
      "props": {
        "api.v4l2.cap.bus_info": "usb-0000:06:00.0-2",
        "api.v4l2.cap.capabilities": "84a00001",
        "api.v4l2.cap.card": "Integrated Camera: Integrated C",
        "api.v4l2.cap.device-caps": 4200001,
        "api.v4l2.cap.driver": "uvcvideo",
        "api.v4l2.cap.version": "6.4.8",
        "api.v4l2.path": "/dev/video0",
        "client.id": 33,
        "clock.quantum-limit": 8192,
        "device.api": "v4l2",
        "device.devids": 20736,
        "device.id": 43,
        "device.product.id": "0x541",
        "device.vendor.id": "0x13d",
        "factory.id": 10,
        "factory.name": "api.v4l2.source",
        "media.class": "Video/Source",
        "media.role": "Camera",
        "node.description": "Integrated Camera (V4L2)",
        "node.driver": true,
        "node.name": "v4l2_input.pci-0000_06_00.0-usb-0_2_1.0",
        "node.nick": "Integrated Camera",
        "node.pause-on-idle": false,
        "object.id": 48,
        "object.path": "v4l2:/dev/video0",
        "object.serial": 48,
        "priority.session": 1000
      },
      "params": {
        "PropInfo": [
          {
            "id": "device",
            "description": "The V4L2 device",
            "type": "/dev/video0"
          },
          {
            "id": "deviceName",
            "description": "The V4L2 device name",
            "type": ""
          },
          {
            "id": "deviceFd",
            "description": "The V4L2 fd",
            "type": 0
          },
          {
            "id": "brightness",
            "type": { "default": 128, "min": 0, "max": 255, "step": 1 },
            "description": "Brightness"
          },
          {
            "id": "contrast",
            "type": { "default": 32, "min": 0, "max": 255, "step": 1 },
            "description": "Contrast"
          },
          {
            "id": "saturation",
            "type": { "default": 64, "min": 0, "max": 100, "step": 1 },
            "description": "Saturation"
          },
          {
            "id": "hue",
            "type": { "default": 0, "min": -180, "max": 180, "step": 1 },
            "description": "Hue"
          },
          {
            "id": "id-0198090c",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "description": "White Balance, Automatic"
          },
          {
            "id": "gamma",
            "type": { "default": 120, "min": 90, "max": 150, "step": 1 },
            "description": "Gamma"
          },
          {
            "id": "id-01980918",
            "type": {
              "default": 1
            },
            "description": "Power Line Frequency",
            "labels": [
              0,
              "Disabled",
              1,
              "50 Hz",
              2,
              "60 Hz"
            ]
          },
          {
            "id": "id-0198091a",
            "type": { "default": 4600, "min": 2800, "max": 6500, "step": 1 },
            "description": "White Balance Temperature"
          },
          {
            "id": "sharpness",
            "type": { "default": 3, "min": 0, "max": 7, "step": 1 },
            "description": "Sharpness"
          },
          {
            "id": "id-0198091c",
            "type": { "default": 1, "min": 0, "max": 2, "step": 1 },
            "description": "Backlight Compensation"
          },
          {
            "id": "id-019a0901",
            "type": {
              "default": 3
            },
            "description": "Auto Exposure",
            "labels": [
              1,
              "Manual Mode",
              3,
              "Aperture Priority Mode"
            ]
          },
          {
            "id": "id-019a0902",
            "type": { "default": 157, "min": 4, "max": 1250, "step": 1 },
            "description": "Exposure Time, Absolute"
          },
          {
            "id": "id-019a0903",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "description": "Exposure, Dynamic Framerate"
          }
        ],
        "Props": [
          {
            "device": "/dev/video0",
            "deviceName": "",
            "deviceFd": 0,
            "brightness": 128,
            "contrast": 32,
            "saturation": 64,
            "hue": 0,
            "id-0198090c": true,
            "gamma": 120,
            "id-01980918": 1,
            "id-0198091a": 4600,
            "sharpness": 3,
            "id-0198091c": 1,
            "id-019a0901": 3,
            "id-019a0902": 157,
            "id-019a0903": true
          }
        ],
        "EnumFormat": [
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 1280, "height": 720 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 960, "height": 540 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 848, "height": 480 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 640, "height": 480 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 640, "height": 360 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 424, "height": 240 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 352, "height": 288 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 320, "height": 240 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 320, "height": 180 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 1280, "height": 720 },
            "framerate": { "num": 10, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 960, "height": 540 },
            "framerate": { "num": 20, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 848, "height": 480 },
            "framerate": { "num": 20, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 640, "height": 480 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 640, "height": 360 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 424, "height": 240 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 352, "height": 288 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 320, "height": 240 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 320, "height": 180 },
            "framerate": { "num": 30, "denom": 1 }
          }
        ],
        "Format": [ ]
      }
    }
  },
  {
    "id": 49,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "output",
      "change-mask": [ "props", "params" ],
      "props": {
        "node.id": 48,
        "object.id": 49,
        "object.path": "v4l2:/dev/video0:capture_0",
        "object.serial": 49,
        "port.alias": "Integrated Camera:capture_1",
        "port.direction": "out",
        "port.id": 0,
        "port.name": "capture_1",
        "port.physical": true,
        "port.terminal": true
      },
      "params": {
        "PropInfo": [
          {
            "id": "brightness",
            "type": { "default": 128, "min": 0, "max": 255, "step": 1 },
            "description": "Brightness"
          },
          {
            "id": "contrast",
            "type": { "default": 32, "min": 0, "max": 255, "step": 1 },
            "description": "Contrast"
          },
          {
            "id": "saturation",
            "type": { "default": 64, "min": 0, "max": 100, "step": 1 },
            "description": "Saturation"
          },
          {
            "id": "hue",
            "type": { "default": 0, "min": -180, "max": 180, "step": 1 },
            "description": "Hue"
          },
          {
            "id": "id-0198090c",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "description": "White Balance, Automatic"
          },
          {
            "id": "gamma",
            "type": { "default": 120, "min": 90, "max": 150, "step": 1 },
            "description": "Gamma"
          },
          {
            "id": "id-01980918",
            "type": {
              "default": 1
            },
            "description": "Power Line Frequency",
            "labels": [
              0,
              "Disabled",
              1,
              "50 Hz",
              2,
              "60 Hz"
            ]
          },
          {
            "id": "id-0198091a",
            "type": { "default": 4600, "min": 2800, "max": 6500, "step": 1 },
            "description": "White Balance Temperature"
          },
          {
            "id": "sharpness",
            "type": { "default": 3, "min": 0, "max": 7, "step": 1 },
            "description": "Sharpness"
          },
          {
            "id": "id-0198091c",
            "type": { "default": 1, "min": 0, "max": 2, "step": 1 },
            "description": "Backlight Compensation"
          },
          {
            "id": "id-019a0901",
            "type": {
              "default": 3
            },
            "description": "Auto Exposure",
            "labels": [
              1,
              "Manual Mode",
              3,
              "Aperture Priority Mode"
            ]
          },
          {
            "id": "id-019a0902",
            "type": { "default": 157, "min": 4, "max": 1250, "step": 1 },
            "description": "Exposure Time, Absolute"
          },
          {
            "id": "id-019a0903",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "description": "Exposure, Dynamic Framerate"
          }
        ],
        "EnumFormat": [
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 1280, "height": 720 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 960, "height": 540 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 848, "height": 480 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 640, "height": 480 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 640, "height": 360 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 424, "height": 240 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 352, "height": 288 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 320, "height": 240 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 320, "height": 180 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 1280, "height": 720 },
            "framerate": { "num": 10, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 960, "height": 540 },
            "framerate": { "num": 20, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 848, "height": 480 },
            "framerate": { "num": 20, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 640, "height": 480 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 640, "height": 360 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 424, "height": 240 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 352, "height": 288 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 320, "height": 240 },
            "framerate": { "num": 30, "denom": 1 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 320, "height": 180 },
            "framerate": { "num": 30, "denom": 1 }
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          },
          {
            "id": "Clock",
            "size": 160
          },
          {
            "id": "Control",
            "size": 16
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 50,
    "type": "PipeWire:Interface:Node",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "max-input-ports": 0,
      "max-output-ports": 1,
      "change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
      "n-input-ports": 0,
      "n-output-ports": 1,
      "state": "suspended",
      "error": null,
      "props": {
        "api.libcamera.location": "external",
        "api.libcamera.path": "\\_SB_.PCI0.GPP0.RESA.RHUB.HSCM-2:1.0-13d3:5415",
        "client.id": 33,
        "clock.quantum-limit": 8192,
        "device.api": "libcamera",
        "device.description": "Integrated Camera: Integrated C",
        "device.devids": "20736 ",
        "device.id": 45,
        "device.name": "libcamera_device.\\_SB_.PCI0.GPP0.RESA.RHUB.HSCM-2:1.0-13d3:5415",
        "device.product.name": "Integrated Camera: Integrated C",
        "factory.id": 10,
        "factory.name": "api.libcamera.source",
        "media.class": "Video/Source",
        "media.role": "Camera",
        "node.description": "Integrated Camera  Integrated C",
        "node.driver": true,
        "node.name": "libcamera_input.__SB_.PCI0.GPP0.RESA.RHUB.HSCM-2_1.0-13d3_5415",
        "node.nick": "Integrated Camera  Integrated C",
        "node.pause-on-idle": false,
        "object.id": 50,
        "object.path": "libcamera:\\_SB_.PCI0.GPP0.RESA.RHUB.HSCM-2:1.0-13d3:5415",
        "object.serial": 50,
        "priority.session": 850
      },
      "params": {
        "PropInfo": [
          {
            "id": "device",
            "description": "The libcamera device",
            "type": "\\_SB_.PCI0.GPP0.RESA.RHUB.HSCM-2:1.0-13d3:5415"
          },
          {
            "id": "deviceName",
            "description": "The libcamera device name",
            "type": ""
          },
          {
            "id": "brightness",
            "description": "Brightness",
            "type": { "default": 0.000000, "min": -1.000000, "max": 0.992188 }
          },
          {
            "id": "contrast",
            "description": "Contrast",
            "type": { "default": 1.000000, "min": 0.569507, "max": 4.000000 }
          },
          {
            "id": "saturation",
            "description": "Saturation",
            "type": { "default": 1.000000, "min": 0.000000, "max": 1.562500 }
          },
          {
            "id": "exposure",
            "description": "ExposureTime",
            "type": { "default": 15700, "min": 400, "max": 125000 }
          },
          {
            "id": "id-01000001",
            "description": "AeEnable",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            }
          }
        ],
        "Props": [
          {
            "device": "\\_SB_.PCI0.GPP0.RESA.RHUB.HSCM-2:1.0-13d3:5415",
            "deviceName": ""
          }
        ],
        "EnumFormat": [
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 640, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 320, "height": 180 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 320, "height": 240 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 352, "height": 288 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 424, "height": 240 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 640, "height": 360 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 640, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 848, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 960, "height": 540 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 1280, "height": 720 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 640, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 320, "height": 180 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 320, "height": 240 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 352, "height": 288 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 424, "height": 240 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 640, "height": 360 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 640, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 848, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 960, "height": 540 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 1280, "height": 720 }
          }
        ],
        "Format": [ ]
      }
    }
  },
  {
    "id": 51,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "output",
      "change-mask": [ "props", "params" ],
      "props": {
        "node.id": 50,
        "object.id": 51,
        "object.path": "libcamera:\\_SB_.PCI0.GPP0.RESA.RHUB.HSCM-2:1.0-13d3:5415:capture_0",
        "object.serial": 51,
        "port.alias": "Integrated Camera  Integrated C:capture_1",
        "port.direction": "out",
        "port.id": 0,
        "port.name": "capture_1",
        "port.physical": true,
        "port.terminal": true
      },
      "params": {
        "PropInfo": [
          {
            "id": "brightness",
            "description": "Brightness",
            "type": { "default": 0.000000, "min": -1.000000, "max": 0.992188 }
          },
          {
            "id": "contrast",
            "description": "Contrast",
            "type": { "default": 1.000000, "min": 0.569507, "max": 4.000000 }
          },
          {
            "id": "saturation",
            "description": "Saturation",
            "type": { "default": 1.000000, "min": 0.000000, "max": 1.562500 }
          },
          {
            "id": "exposure",
            "description": "ExposureTime",
            "type": { "default": 15700, "min": 400, "max": 125000 }
          },
          {
            "id": "id-01000001",
            "description": "AeEnable",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            }
          }
        ],
        "EnumFormat": [
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 640, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 320, "height": 180 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 320, "height": 240 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 352, "height": 288 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 424, "height": 240 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 640, "height": 360 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 640, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 848, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 960, "height": 540 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "mjpg",
            "size": { "width": 1280, "height": 720 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 640, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 320, "height": 180 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 320, "height": 240 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 352, "height": 288 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 424, "height": 240 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 640, "height": 360 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 640, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 848, "height": 480 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 960, "height": 540 }
          },
          {
            "mediaType": "video",
            "mediaSubtype": "raw",
            "format": "YUY2",
            "size": { "width": 1280, "height": 720 }
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          },
          {
            "type": "VideoTransform",
            "size": 4
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          },
          {
            "id": "Clock",
            "size": 160
          },
          {
            "id": "Control",
            "size": 16
          }
        ],
        "Format": [ ],
        "Buffers": [ ]
      }
    }
  },
  {
    "id": 56,
    "type": "PipeWire:Interface:Node",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "max-input-ports": 65,
      "max-output-ports": 0,
      "change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
      "n-input-ports": 2,
      "n-output-ports": 2,
      "state": "suspended",
      "error": null,
      "props": {
        "alsa.card": 1,
        "alsa.card_name": "HD-Audio Generic",
        "alsa.class": "generic",
        "alsa.device": 0,
        "alsa.driver_name": "snd_hda_intel",
        "alsa.id": "ALC257 Analog",
        "alsa.long_card_name": "HD-Audio Generic at 0xfd3c0000 irq 107",
        "alsa.mixer_device": "_ucm0003.hw:Generic_1",
        "alsa.name": "ALC257 Analog",
        "alsa.resolution_bits": 16,
        "alsa.subclass": "generic-mix",
        "alsa.subdevice": 0,
        "alsa.subdevice_name": "subdevice #0",
        "api.alsa.card.longname": "HD-Audio Generic at 0xfd3c0000 irq 107",
        "api.alsa.card.name": "HD-Audio Generic",
        "api.alsa.headroom": 0,
        "api.alsa.open.ucm": true,
        "api.alsa.path": "hw:Generic_1",
        "api.alsa.pcm.card": 1,
        "api.alsa.pcm.stream": "playback",
        "api.alsa.period-num": 32,
        "api.alsa.period-size": 1024,
        "audio.adapt.follower": "",
        "audio.channels": 2,
        "audio.position": "FL,FR",
        "card.profile.device": 0,
        "client.id": 33,
        "clock.quantum-limit": 8192,
        "device.api": "alsa",
        "device.class": "sound",
        "device.id": 47,
        "device.profile.description": "Speaker + Headphones",
        "device.profile.name": "HiFi: hw:Generic_1: sink",
        "device.routes": 2,
        "factory.id": 18,
        "factory.mode": "merge",
        "factory.name": "api.alsa.pcm.sink",
        "library.name": "audioconvert/libspa-audioconvert",
        "media.class": "Audio/Sink",
        "node.description": "Family 17h/19h HD Audio Controller Speaker + Headphones",
        "node.driver": true,
        "node.max-latency": "16384/48000",
        "node.name": "alsa_output.pci-0000_07_00.6.HiFi__hw_Generic_1__sink",
        "node.nick": "ALC257 Analog",
        "node.pause-on-idle": false,
        "object.id": 56,
        "object.path": "alsa:pcm:1:hw:Generic_1:playback",
        "object.serial": 56,
        "priority.driver": 1000,
        "priority.session": 1000
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "raw",
            "format": {
              "default": "S32LE",
              "alt1": "S32LE",
              "alt2": "S16LE"
            },
            "rate": { "default": 48000, "min": 44100, "max": 48000 },
            "channels": 2,
            "position": [ "FL", "FR" ]
          }
        ],
        "PropInfo": [
          {
            "id": "volume",
            "description": "Volume",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
          },
          {
            "id": "mute",
            "description": "Mute",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          },
          {
            "id": "channelVolumes",
            "description": "Channel Volumes",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
            "container": "Array"
          },
          {
            "id": "channelMap",
            "description": "Channel Map",
            "type": "",
            "container": "Array"
          },
          {
            "id": "monitorMute",
            "description": "Monitor Mute",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          },
          {
            "id": "monitorVolumes",
            "description": "Monitor Volumes",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
            "container": "Array"
          },
          {
            "id": "softMute",
            "description": "Soft Mute",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          },
          {
            "id": "softVolumes",
            "description": "Soft Volumes",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
            "container": "Array"
          },
          {
            "name": "monitor.channel-volumes",
            "description": "Monitor channel volume",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "channelmix.disable",
            "description": "Disable Channel mixing",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "channelmix.min-volume",
            "description": "Minimum volume level",
            "type": { "default": 0.000000, "min": 0.000000, "max": 10.000000 },
            "params": true
          },
          {
            "name": "channelmix.max-volume",
            "description": "Maximum volume level",
            "type": { "default": 10.000000, "min": 0.000000, "max": 10.000000 },
            "params": true
          },
          {
            "name": "channelmix.normalize",
            "description": "Normalize Volumes",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "channelmix.mix-lfe",
            "description": "Mix LFE into channels",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "params": true
          },
          {
            "name": "channelmix.upmix",
            "description": "Enable upmixing",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "params": true
          },
          {
            "name": "channelmix.lfe-cutoff",
            "description": "LFE cutoff frequency",
            "type": { "default": 0.000000, "min": 0.000000, "max": 1000.000000 },
            "params": true
          },
          {
            "name": "channelmix.fc-cutoff",
            "description": "FC cutoff frequency (Hz)",
            "type": { "default": 0.000000, "min": 0.000000, "max": 48000.000000 },
            "params": true
          },
          {
            "name": "channelmix.rear-delay",
            "description": "Rear channels delay (ms)",
            "type": { "default": 0.000000, "min": 0.000000, "max": 1000.000000 },
            "params": true
          },
          {
            "name": "channelmix.stereo-widen",
            "description": "Stereo widen",
            "type": { "default": 0.000000, "min": 0.000000, "max": 1.000000 },
            "params": true
          },
          {
            "name": "channelmix.hilbert-taps",
            "description": "Taps for phase shift of rear",
            "type": { "default": 0, "min": 0, "max": 255 },
            "params": true
          },
          {
            "name": "channelmix.upmix-method",
            "description": "Upmix method to use",
            "type": "none",
            "params": true,
            "labels": [
              "none",
              "Disabled",
              "simple",
              "Simple upmixing",
              "psd",
              "Passive Surround Decoding"
            ]
          },
          {
            "id": "rate",
            "description": "Rate scaler",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
          },
          {
            "id": "quality",
            "name": "resample.quality",
            "description": "Resample Quality",
            "type": { "default": 4, "min": 0, "max": 14 },
            "params": true
          },
          {
            "name": "resample.disable",
            "description": "Disable Resampling",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "dither.noise",
            "description": "Add noise bits",
            "type": { "default": 0, "min": 0, "max": 16 },
            "params": true
          },
          {
            "name": "dither.method",
            "description": "The dithering method",
            "type": "none",
            "params": true,
            "labels": [
              "none",
              "Disabled",
              "rectangular",
              "Rectangular dithering",
              "triangular",
              "Triangular dithering",
              "triangular-hf",
              "Sloped Triangular dithering",
              "wannamaker3",
              "Wannamaker 3 dithering",
              "shaped5",
              "Lipshitz 5 dithering"
            ]
          },
          {
            "name": "debug.wav-path",
            "description": "Path to WAV file",
            "type": "",
            "params": true
          },
          {
            "name": "channelmix.lock-volumes",
            "description": "Disable volume updates",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "id": "device",
            "name": "api.alsa.path",
            "description": "The ALSA device",
            "type": "hw:Generic_1"
          },
          {
            "id": "deviceName",
            "description": "The ALSA device name",
            "type": ""
          },
          {
            "id": "cardName",
            "description": "The ALSA card name",
            "type": ""
          },
          {
            "id": "latencyOffsetNsec",
            "description": "Latency offset (ns)",
            "type": { "default": 0, "min": 0, "max": 2000000000 }
          },
          {
            "name": "audio.channels",
            "description": "Audio Channels",
            "type": 2,
            "params": true
          },
          {
            "name": "audio.rate",
            "description": "Audio Rate",
            "type": 0,
            "params": true
          },
          {
            "name": "audio.format",
            "description": "Audio Format",
            "type": "UNKNOWN",
            "params": true
          },
          {
            "name": "audio.position",
            "description": "Audio Position",
            "type": "[ FL, FR ]",
            "params": true
          },
          {
            "name": "audio.allowed-rates",
            "description": "Audio Allowed Rates",
            "type": "[  ]",
            "params": true
          },
          {
            "name": "api.alsa.period-size",
            "description": "Period Size",
            "type": { "default": 0, "min": 0, "max": 8192 },
            "params": true
          },
          {
            "name": "api.alsa.period-num",
            "description": "Number of Periods",
            "type": { "default": 0, "min": 0, "max": 1024 },
            "params": true
          },
          {
            "name": "api.alsa.headroom",
            "description": "Headroom",
            "type": { "default": 0, "min": 0, "max": 8192 },
            "params": true
          },
          {
            "name": "api.alsa.start-delay",
            "description": "Start Delay",
            "type": { "default": 0, "min": 0, "max": 8192 },
            "params": true
          },
          {
            "name": "api.alsa.disable-mmap",
            "description": "Disable MMAP",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.disable-batch",
            "description": "Disable Batch",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.disable-tsched",
            "description": "Disable timer based scheduling",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.use-chmap",
            "description": "Use the driver channelmap",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.multi-rate",
            "description": "Support multiple rates",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "params": true
          },
          {
            "name": "api.alsa.htimestamp",
            "description": "Use hires timestamps",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "latency.internal.rate",
            "description": "Internal latency in samples",
            "type": { "default": 0, "min": 0, "max": 65536 },
            "params": true
          },
          {
            "name": "latency.internal.ns",
            "description": "Internal latency in nanoseconds",
            "type": { "default": 0, "min": 0, "max": 2000000000 },
            "params": true
          },
          {
            "name": "clock.name",
            "description": "The name of the clock",
            "type": "api.alsa.p-1",
            "params": true
          }
        ],
        "Props": [
          {
            "volume": 1.000000,
            "mute": false,
            "channelVolumes": [ 0.130539, 0.130539 ],
            "channelMap": [ "FL", "FR" ],
            "softMute": false,
            "softVolumes": [ 0.951106, 0.951106 ],
            "monitorMute": false,
            "monitorVolumes": [ 1.000000, 1.000000 ],
            "params": [
              "monitor.channel-volumes",
              false,
              "channelmix.disable",
              false,
              "channelmix.min-volume",
              0.000000,
              "channelmix.max-volume",
              10.000000,
              "channelmix.normalize",
              false,
              "channelmix.mix-lfe",
              true,
              "channelmix.upmix",
              true,
              "channelmix.lfe-cutoff",
              0.000000,
              "channelmix.fc-cutoff",
              0.000000,
              "channelmix.rear-delay",
              0.000000,
              "channelmix.stereo-widen",
              0.000000,
              "channelmix.hilbert-taps",
              0,
              "channelmix.upmix-method",
              "none",
              "resample.quality",
              4,
              "resample.disable",
              false,
              "dither.noise",
              0,
              "dither.method",
              "none",
              "debug.wav-path",
              "",
              "channelmix.lock-volumes",
              false
            ]
          },
          {
            "device": "hw:Generic_1",
            "deviceName": "",
            "cardName": "",
            "latencyOffsetNsec": 0,
            "params": [
              "audio.channels",
              2,
              "audio.rate",
              0,
              "audio.format",
              "UNKNOWN",
              "audio.position",
              "[ FL, FR ]",
              "audio.allowed-rates",
              "[  ]",
              "api.alsa.period-size",
              0,
              "api.alsa.period-num",
              0,
              "api.alsa.headroom",
              0,
              "api.alsa.start-delay",
              0,
              "api.alsa.disable-mmap",
              false,
              "api.alsa.disable-batch",
              false,
              "api.alsa.disable-tsched",
              false,
              "api.alsa.use-chmap",
              false,
              "api.alsa.multi-rate",
              true,
              "api.alsa.htimestamp",
              false,
              "latency.internal.rate",
              0,
              "latency.internal.ns",
              0,
              "clock.name",
              "api.alsa.p-1"
            ]
          }
        ],
        "Format": [ ],
        "EnumPortConfig": [
          {
            "direction": "Input",
            "mode": {
              "default": "none",
              "alt1": "none",
              "alt2": "dsp",
              "alt3": "convert"
            },
            "monitor": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "control": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          }
        ],
        "PortConfig": [
          {
            "direction": "Input",
            "mode": "dsp",
            "monitor": true,
            "control": false,
            "format": {
              "mediaType": "audio",
              "mediaSubtype": "raw",
              "format": "F32P",
              "channels": 2,
              "position": [ "FL", "FR" ]
            }
          }
        ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ],
        "ProcessLatency": [
          {
            "quantum": 0.000000,
            "rate": 0,
            "ns": 0
          }
        ]
      }
    }
  },
  {
    "id": 57,
    "type": "PipeWire:Interface:Node",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "max-input-ports": 0,
      "max-output-ports": 65,
      "change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
      "n-input-ports": 0,
      "n-output-ports": 2,
      "state": "suspended",
      "error": null,
      "props": {
        "alsa.card": 1,
        "alsa.card_name": "HD-Audio Generic",
        "alsa.class": "generic",
        "alsa.device": 0,
        "alsa.driver_name": "snd_hda_intel",
        "alsa.id": "ALC257 Analog",
        "alsa.long_card_name": "HD-Audio Generic at 0xfd3c0000 irq 107",
        "alsa.mixer_device": "_ucm0003.hw:Generic_1",
        "alsa.name": "ALC257 Analog",
        "alsa.resolution_bits": 16,
        "alsa.subclass": "generic-mix",
        "alsa.subdevice": 0,
        "alsa.subdevice_name": "subdevice #0",
        "api.alsa.card.longname": "HD-Audio Generic at 0xfd3c0000 irq 107",
        "api.alsa.card.name": "HD-Audio Generic",
        "api.alsa.open.ucm": true,
        "api.alsa.path": "hw:Generic_1",
        "api.alsa.pcm.card": 1,
        "api.alsa.pcm.stream": "capture",
        "audio.adapt.follower": "",
        "audio.channels": 2,
        "audio.position": "FL,FR",
        "card.profile.device": 1,
        "client.id": 33,
        "clock.quantum-limit": 8192,
        "device.api": "alsa",
        "device.class": "sound",
        "device.id": 47,
        "device.profile.description": "Headphones Stereo Microphone",
        "device.profile.name": "HiFi: hw:Generic_1: source",
        "device.routes": 1,
        "factory.id": 18,
        "factory.mode": "split",
        "factory.name": "api.alsa.pcm.source",
        "library.name": "audioconvert/libspa-audioconvert",
        "media.class": "Audio/Source",
        "node.description": "Family 17h/19h HD Audio Controller Headphones Stereo Microphone",
        "node.driver": true,
        "node.name": "alsa_input.pci-0000_07_00.6.HiFi__hw_Generic_1__source",
        "node.nick": "ALC257 Analog",
        "node.pause-on-idle": false,
        "object.id": 57,
        "object.path": "alsa:pcm:1:hw:Generic_1:capture",
        "object.serial": 57,
        "priority.driver": 2000,
        "priority.session": 2000
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "raw",
            "format": {
              "default": "S32LE",
              "alt1": "S32LE",
              "alt2": "S16LE"
            },
            "rate": { "default": 48000, "min": 44100, "max": 192000 },
            "channels": 2,
            "position": [ "FL", "FR" ]
          }
        ],
        "PropInfo": [
          {
            "id": "volume",
            "description": "Volume",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
          },
          {
            "id": "mute",
            "description": "Mute",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          },
          {
            "id": "channelVolumes",
            "description": "Channel Volumes",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
            "container": "Array"
          },
          {
            "id": "channelMap",
            "description": "Channel Map",
            "type": "",
            "container": "Array"
          },
          {
            "id": "monitorMute",
            "description": "Monitor Mute",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          },
          {
            "id": "monitorVolumes",
            "description": "Monitor Volumes",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
            "container": "Array"
          },
          {
            "id": "softMute",
            "description": "Soft Mute",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          },
          {
            "id": "softVolumes",
            "description": "Soft Volumes",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
            "container": "Array"
          },
          {
            "name": "monitor.channel-volumes",
            "description": "Monitor channel volume",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "channelmix.disable",
            "description": "Disable Channel mixing",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "channelmix.min-volume",
            "description": "Minimum volume level",
            "type": { "default": 0.000000, "min": 0.000000, "max": 10.000000 },
            "params": true
          },
          {
            "name": "channelmix.max-volume",
            "description": "Maximum volume level",
            "type": { "default": 10.000000, "min": 0.000000, "max": 10.000000 },
            "params": true
          },
          {
            "name": "channelmix.normalize",
            "description": "Normalize Volumes",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "channelmix.mix-lfe",
            "description": "Mix LFE into channels",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "params": true
          },
          {
            "name": "channelmix.upmix",
            "description": "Enable upmixing",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "params": true
          },
          {
            "name": "channelmix.lfe-cutoff",
            "description": "LFE cutoff frequency",
            "type": { "default": 0.000000, "min": 0.000000, "max": 1000.000000 },
            "params": true
          },
          {
            "name": "channelmix.fc-cutoff",
            "description": "FC cutoff frequency (Hz)",
            "type": { "default": 0.000000, "min": 0.000000, "max": 48000.000000 },
            "params": true
          },
          {
            "name": "channelmix.rear-delay",
            "description": "Rear channels delay (ms)",
            "type": { "default": 0.000000, "min": 0.000000, "max": 1000.000000 },
            "params": true
          },
          {
            "name": "channelmix.stereo-widen",
            "description": "Stereo widen",
            "type": { "default": 0.000000, "min": 0.000000, "max": 1.000000 },
            "params": true
          },
          {
            "name": "channelmix.hilbert-taps",
            "description": "Taps for phase shift of rear",
            "type": { "default": 0, "min": 0, "max": 255 },
            "params": true
          },
          {
            "name": "channelmix.upmix-method",
            "description": "Upmix method to use",
            "type": "none",
            "params": true,
            "labels": [
              "none",
              "Disabled",
              "simple",
              "Simple upmixing",
              "psd",
              "Passive Surround Decoding"
            ]
          },
          {
            "id": "rate",
            "description": "Rate scaler",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
          },
          {
            "id": "quality",
            "name": "resample.quality",
            "description": "Resample Quality",
            "type": { "default": 4, "min": 0, "max": 14 },
            "params": true
          },
          {
            "name": "resample.disable",
            "description": "Disable Resampling",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "dither.noise",
            "description": "Add noise bits",
            "type": { "default": 0, "min": 0, "max": 16 },
            "params": true
          },
          {
            "name": "dither.method",
            "description": "The dithering method",
            "type": "none",
            "params": true,
            "labels": [
              "none",
              "Disabled",
              "rectangular",
              "Rectangular dithering",
              "triangular",
              "Triangular dithering",
              "triangular-hf",
              "Sloped Triangular dithering",
              "wannamaker3",
              "Wannamaker 3 dithering",
              "shaped5",
              "Lipshitz 5 dithering"
            ]
          },
          {
            "name": "debug.wav-path",
            "description": "Path to WAV file",
            "type": "",
            "params": true
          },
          {
            "name": "channelmix.lock-volumes",
            "description": "Disable volume updates",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "id": "device",
            "name": "api.alsa.path",
            "description": "The ALSA device",
            "type": "hw:Generic_1"
          },
          {
            "id": "deviceName",
            "description": "The ALSA device name",
            "type": ""
          },
          {
            "id": "cardName",
            "description": "The ALSA card name",
            "type": ""
          },
          {
            "id": "latencyOffsetNsec",
            "description": "Latency offset (ns)",
            "type": { "default": 0, "min": 0, "max": 2000000000 }
          },
          {
            "name": "audio.channels",
            "description": "Audio Channels",
            "type": 2,
            "params": true
          },
          {
            "name": "audio.rate",
            "description": "Audio Rate",
            "type": 0,
            "params": true
          },
          {
            "name": "audio.format",
            "description": "Audio Format",
            "type": "UNKNOWN",
            "params": true
          },
          {
            "name": "audio.position",
            "description": "Audio Position",
            "type": "[ FL, FR ]",
            "params": true
          },
          {
            "name": "audio.allowed-rates",
            "description": "Audio Allowed Rates",
            "type": "[  ]",
            "params": true
          },
          {
            "name": "api.alsa.period-size",
            "description": "Period Size",
            "type": { "default": 0, "min": 0, "max": 8192 },
            "params": true
          },
          {
            "name": "api.alsa.period-num",
            "description": "Number of Periods",
            "type": { "default": 0, "min": 0, "max": 1024 },
            "params": true
          },
          {
            "name": "api.alsa.headroom",
            "description": "Headroom",
            "type": { "default": 0, "min": 0, "max": 8192 },
            "params": true
          },
          {
            "name": "api.alsa.start-delay",
            "description": "Start Delay",
            "type": { "default": 0, "min": 0, "max": 8192 },
            "params": true
          },
          {
            "name": "api.alsa.disable-mmap",
            "description": "Disable MMAP",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.disable-batch",
            "description": "Disable Batch",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.disable-tsched",
            "description": "Disable timer based scheduling",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.use-chmap",
            "description": "Use the driver channelmap",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.multi-rate",
            "description": "Support multiple rates",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "params": true
          },
          {
            "name": "api.alsa.htimestamp",
            "description": "Use hires timestamps",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "latency.internal.rate",
            "description": "Internal latency in samples",
            "type": { "default": 0, "min": 0, "max": 65536 },
            "params": true
          },
          {
            "name": "latency.internal.ns",
            "description": "Internal latency in nanoseconds",
            "type": { "default": 0, "min": 0, "max": 2000000000 },
            "params": true
          },
          {
            "name": "clock.name",
            "description": "The name of the clock",
            "type": "api.alsa.c-1",
            "params": true
          }
        ],
        "Props": [
          {
            "volume": 1.000000,
            "mute": false,
            "channelVolumes": [ 1.000000, 1.000000 ],
            "channelMap": [ "FL", "FR" ],
            "softMute": false,
            "softVolumes": [ 1.000000, 1.000000 ],
            "monitorMute": false,
            "monitorVolumes": [ 1.000000, 1.000000 ],
            "params": [
              "monitor.channel-volumes",
              false,
              "channelmix.disable",
              false,
              "channelmix.min-volume",
              0.000000,
              "channelmix.max-volume",
              10.000000,
              "channelmix.normalize",
              false,
              "channelmix.mix-lfe",
              true,
              "channelmix.upmix",
              true,
              "channelmix.lfe-cutoff",
              0.000000,
              "channelmix.fc-cutoff",
              0.000000,
              "channelmix.rear-delay",
              0.000000,
              "channelmix.stereo-widen",
              0.000000,
              "channelmix.hilbert-taps",
              0,
              "channelmix.upmix-method",
              "none",
              "resample.quality",
              4,
              "resample.disable",
              false,
              "dither.noise",
              0,
              "dither.method",
              "none",
              "debug.wav-path",
              "",
              "channelmix.lock-volumes",
              false
            ]
          },
          {
            "device": "hw:Generic_1",
            "deviceName": "",
            "cardName": "",
            "latencyOffsetNsec": 0,
            "params": [
              "audio.channels",
              2,
              "audio.rate",
              0,
              "audio.format",
              "UNKNOWN",
              "audio.position",
              "[ FL, FR ]",
              "audio.allowed-rates",
              "[  ]",
              "api.alsa.period-size",
              0,
              "api.alsa.period-num",
              0,
              "api.alsa.headroom",
              0,
              "api.alsa.start-delay",
              0,
              "api.alsa.disable-mmap",
              false,
              "api.alsa.disable-batch",
              false,
              "api.alsa.disable-tsched",
              false,
              "api.alsa.use-chmap",
              false,
              "api.alsa.multi-rate",
              true,
              "api.alsa.htimestamp",
              false,
              "latency.internal.rate",
              0,
              "latency.internal.ns",
              0,
              "clock.name",
              "api.alsa.c-1"
            ]
          }
        ],
        "Format": [ ],
        "EnumPortConfig": [
          {
            "direction": "Output",
            "mode": {
              "default": "none",
              "alt1": "none",
              "alt2": "dsp",
              "alt3": "convert"
            },
            "monitor": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "control": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          }
        ],
        "PortConfig": [
          {
            "direction": "Output",
            "mode": "dsp",
            "monitor": true,
            "control": false,
            "format": {
              "mediaType": "audio",
              "mediaSubtype": "raw",
              "format": "F32P",
              "channels": 2,
              "position": [ "FL", "FR" ]
            }
          }
        ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ],
        "ProcessLatency": [
          {
            "quantum": 0.000000,
            "rate": 0,
            "ns": 0
          }
        ]
      }
    }
  },
  {
    "id": 58,
    "type": "PipeWire:Interface:Node",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "max-input-ports": 0,
      "max-output-ports": 65,
      "change-mask": [ "input-ports", "output-ports", "state", "props", "params" ],
      "n-input-ports": 0,
      "n-output-ports": 2,
      "state": "suspended",
      "error": null,
      "props": {
        "alsa.card": 2,
        "alsa.card_name": "acp",
        "alsa.class": "generic",
        "alsa.device": 0,
        "alsa.driver_name": "snd_acp3x_rn",
        "alsa.id": "DMIC capture dmic-hifi-0",
        "alsa.long_card_name": "LENOVO-21A0CTO1WW-ThinkPadP14sGen2a",
        "alsa.mixer_device": "_ucm0003.hw:Generic_1",
        "alsa.name": "",
        "alsa.resolution_bits": 32,
        "alsa.subclass": "generic-mix",
        "alsa.subdevice": 0,
        "alsa.subdevice_name": "subdevice #0",
        "api.alsa.card.longname": "HD-Audio Generic at 0xfd3c0000 irq 107",
        "api.alsa.card.name": "HD-Audio Generic",
        "api.alsa.open.ucm": true,
        "api.alsa.path": "hw:acp",
        "api.alsa.pcm.card": 1,
        "api.alsa.pcm.stream": "capture",
        "audio.adapt.follower": "",
        "audio.channels": 2,
        "audio.position": "FL,FR",
        "card.profile.device": 2,
        "client.id": 33,
        "clock.quantum-limit": 8192,
        "device.api": "alsa",
        "device.class": "sound",
        "device.id": 47,
        "device.profile.description": "Digital Microphone",
        "device.profile.name": "HiFi: hw:acp: source",
        "device.routes": 1,
        "factory.id": 18,
        "factory.mode": "split",
        "factory.name": "api.alsa.pcm.source",
        "library.name": "audioconvert/libspa-audioconvert",
        "media.class": "Audio/Source",
        "node.description": "Family 17h/19h HD Audio Controller Digital Microphone",
        "node.driver": true,
        "node.name": "alsa_input.pci-0000_07_00.6.HiFi__hw_acp__source",
        "node.nick": "Digital Microphone",
        "node.pause-on-idle": false,
        "object.id": 58,
        "object.path": "alsa:pcm:1:hw:acp:capture",
        "object.serial": 58,
        "priority.driver": 2000,
        "priority.session": 2000
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "raw",
            "format": "S32LE",
            "rate": 48000,
            "channels": 2,
            "position": [ "FL", "FR" ]
          }
        ],
        "PropInfo": [
          {
            "id": "volume",
            "description": "Volume",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
          },
          {
            "id": "mute",
            "description": "Mute",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          },
          {
            "id": "channelVolumes",
            "description": "Channel Volumes",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
            "container": "Array"
          },
          {
            "id": "channelMap",
            "description": "Channel Map",
            "type": "",
            "container": "Array"
          },
          {
            "id": "monitorMute",
            "description": "Monitor Mute",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          },
          {
            "id": "monitorVolumes",
            "description": "Monitor Volumes",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
            "container": "Array"
          },
          {
            "id": "softMute",
            "description": "Soft Mute",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          },
          {
            "id": "softVolumes",
            "description": "Soft Volumes",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 },
            "container": "Array"
          },
          {
            "name": "monitor.channel-volumes",
            "description": "Monitor channel volume",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "channelmix.disable",
            "description": "Disable Channel mixing",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "channelmix.min-volume",
            "description": "Minimum volume level",
            "type": { "default": 0.000000, "min": 0.000000, "max": 10.000000 },
            "params": true
          },
          {
            "name": "channelmix.max-volume",
            "description": "Maximum volume level",
            "type": { "default": 10.000000, "min": 0.000000, "max": 10.000000 },
            "params": true
          },
          {
            "name": "channelmix.normalize",
            "description": "Normalize Volumes",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "channelmix.mix-lfe",
            "description": "Mix LFE into channels",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "params": true
          },
          {
            "name": "channelmix.upmix",
            "description": "Enable upmixing",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "params": true
          },
          {
            "name": "channelmix.lfe-cutoff",
            "description": "LFE cutoff frequency",
            "type": { "default": 0.000000, "min": 0.000000, "max": 1000.000000 },
            "params": true
          },
          {
            "name": "channelmix.fc-cutoff",
            "description": "FC cutoff frequency (Hz)",
            "type": { "default": 0.000000, "min": 0.000000, "max": 48000.000000 },
            "params": true
          },
          {
            "name": "channelmix.rear-delay",
            "description": "Rear channels delay (ms)",
            "type": { "default": 0.000000, "min": 0.000000, "max": 1000.000000 },
            "params": true
          },
          {
            "name": "channelmix.stereo-widen",
            "description": "Stereo widen",
            "type": { "default": 0.000000, "min": 0.000000, "max": 1.000000 },
            "params": true
          },
          {
            "name": "channelmix.hilbert-taps",
            "description": "Taps for phase shift of rear",
            "type": { "default": 0, "min": 0, "max": 255 },
            "params": true
          },
          {
            "name": "channelmix.upmix-method",
            "description": "Upmix method to use",
            "type": "none",
            "params": true,
            "labels": [
              "none",
              "Disabled",
              "simple",
              "Simple upmixing",
              "psd",
              "Passive Surround Decoding"
            ]
          },
          {
            "id": "rate",
            "description": "Rate scaler",
            "type": { "default": 1.000000, "min": 0.000000, "max": 10.000000 }
          },
          {
            "id": "quality",
            "name": "resample.quality",
            "description": "Resample Quality",
            "type": { "default": 4, "min": 0, "max": 14 },
            "params": true
          },
          {
            "name": "resample.disable",
            "description": "Disable Resampling",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "dither.noise",
            "description": "Add noise bits",
            "type": { "default": 0, "min": 0, "max": 16 },
            "params": true
          },
          {
            "name": "dither.method",
            "description": "The dithering method",
            "type": "none",
            "params": true,
            "labels": [
              "none",
              "Disabled",
              "rectangular",
              "Rectangular dithering",
              "triangular",
              "Triangular dithering",
              "triangular-hf",
              "Sloped Triangular dithering",
              "wannamaker3",
              "Wannamaker 3 dithering",
              "shaped5",
              "Lipshitz 5 dithering"
            ]
          },
          {
            "name": "debug.wav-path",
            "description": "Path to WAV file",
            "type": "",
            "params": true
          },
          {
            "name": "channelmix.lock-volumes",
            "description": "Disable volume updates",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "id": "device",
            "name": "api.alsa.path",
            "description": "The ALSA device",
            "type": "hw:acp"
          },
          {
            "id": "deviceName",
            "description": "The ALSA device name",
            "type": ""
          },
          {
            "id": "cardName",
            "description": "The ALSA card name",
            "type": ""
          },
          {
            "id": "latencyOffsetNsec",
            "description": "Latency offset (ns)",
            "type": { "default": 0, "min": 0, "max": 2000000000 }
          },
          {
            "name": "audio.channels",
            "description": "Audio Channels",
            "type": 2,
            "params": true
          },
          {
            "name": "audio.rate",
            "description": "Audio Rate",
            "type": 0,
            "params": true
          },
          {
            "name": "audio.format",
            "description": "Audio Format",
            "type": "UNKNOWN",
            "params": true
          },
          {
            "name": "audio.position",
            "description": "Audio Position",
            "type": "[ FL, FR ]",
            "params": true
          },
          {
            "name": "audio.allowed-rates",
            "description": "Audio Allowed Rates",
            "type": "[  ]",
            "params": true
          },
          {
            "name": "api.alsa.period-size",
            "description": "Period Size",
            "type": { "default": 0, "min": 0, "max": 8192 },
            "params": true
          },
          {
            "name": "api.alsa.period-num",
            "description": "Number of Periods",
            "type": { "default": 0, "min": 0, "max": 1024 },
            "params": true
          },
          {
            "name": "api.alsa.headroom",
            "description": "Headroom",
            "type": { "default": 0, "min": 0, "max": 8192 },
            "params": true
          },
          {
            "name": "api.alsa.start-delay",
            "description": "Start Delay",
            "type": { "default": 0, "min": 0, "max": 8192 },
            "params": true
          },
          {
            "name": "api.alsa.disable-mmap",
            "description": "Disable MMAP",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.disable-batch",
            "description": "Disable Batch",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.disable-tsched",
            "description": "Disable timer based scheduling",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.use-chmap",
            "description": "Use the driver channelmap",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "api.alsa.multi-rate",
            "description": "Support multiple rates",
            "type": {
              "default": true,
              "alt1": true,
              "alt2": false
            },
            "params": true
          },
          {
            "name": "api.alsa.htimestamp",
            "description": "Use hires timestamps",
            "type": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "params": true
          },
          {
            "name": "latency.internal.rate",
            "description": "Internal latency in samples",
            "type": { "default": 0, "min": 0, "max": 65536 },
            "params": true
          },
          {
            "name": "latency.internal.ns",
            "description": "Internal latency in nanoseconds",
            "type": { "default": 0, "min": 0, "max": 2000000000 },
            "params": true
          },
          {
            "name": "clock.name",
            "description": "The name of the clock",
            "type": "api.alsa.c-1",
            "params": true
          }
        ],
        "Props": [
          {
            "volume": 1.000000,
            "mute": false,
            "channelVolumes": [ 0.272861, 0.272861 ],
            "channelMap": [ "FL", "FR" ],
            "softMute": false,
            "softVolumes": [ 0.272861, 0.272861 ],
            "monitorMute": false,
            "monitorVolumes": [ 1.000000, 1.000000 ],
            "params": [
              "monitor.channel-volumes",
              false,
              "channelmix.disable",
              false,
              "channelmix.min-volume",
              0.000000,
              "channelmix.max-volume",
              10.000000,
              "channelmix.normalize",
              false,
              "channelmix.mix-lfe",
              true,
              "channelmix.upmix",
              true,
              "channelmix.lfe-cutoff",
              0.000000,
              "channelmix.fc-cutoff",
              0.000000,
              "channelmix.rear-delay",
              0.000000,
              "channelmix.stereo-widen",
              0.000000,
              "channelmix.hilbert-taps",
              0,
              "channelmix.upmix-method",
              "none",
              "resample.quality",
              4,
              "resample.disable",
              false,
              "dither.noise",
              0,
              "dither.method",
              "none",
              "debug.wav-path",
              "",
              "channelmix.lock-volumes",
              false
            ]
          },
          {
            "device": "hw:acp",
            "deviceName": "",
            "cardName": "",
            "latencyOffsetNsec": 0,
            "params": [
              "audio.channels",
              2,
              "audio.rate",
              0,
              "audio.format",
              "UNKNOWN",
              "audio.position",
              "[ FL, FR ]",
              "audio.allowed-rates",
              "[  ]",
              "api.alsa.period-size",
              0,
              "api.alsa.period-num",
              0,
              "api.alsa.headroom",
              0,
              "api.alsa.start-delay",
              0,
              "api.alsa.disable-mmap",
              false,
              "api.alsa.disable-batch",
              false,
              "api.alsa.disable-tsched",
              false,
              "api.alsa.use-chmap",
              false,
              "api.alsa.multi-rate",
              true,
              "api.alsa.htimestamp",
              false,
              "latency.internal.rate",
              0,
              "latency.internal.ns",
              0,
              "clock.name",
              "api.alsa.c-1"
            ]
          }
        ],
        "Format": [ ],
        "EnumPortConfig": [
          {
            "direction": "Output",
            "mode": {
              "default": "none",
              "alt1": "none",
              "alt2": "dsp",
              "alt3": "convert"
            },
            "monitor": {
              "default": false,
              "alt1": false,
              "alt2": true
            },
            "control": {
              "default": false,
              "alt1": false,
              "alt2": true
            }
          }
        ],
        "PortConfig": [
          {
            "direction": "Output",
            "mode": "dsp",
            "monitor": true,
            "control": false,
            "format": {
              "mediaType": "audio",
              "mediaSubtype": "raw",
              "format": "F32P",
              "channels": 2,
              "position": [ "FL", "FR" ]
            }
          }
        ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ],
        "ProcessLatency": [
          {
            "quantum": 0.000000,
            "rate": 0,
            "ns": 0
          }
        ]
      }
    }
  },
  {
    "id": 38,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "input",
      "change-mask": [ "props", "params" ],
      "props": {
        "audio.channel": "FL",
        "format.dsp": "32 bit float mono audio",
        "node.id": 56,
        "object.id": 38,
        "object.path": "alsa:pcm:1:hw:Generic_1:playback:playback_0",
        "object.serial": 59,
        "port.alias": "ALC257 Analog:playback_FL",
        "port.direction": "in",
        "port.id": 0,
        "port.name": "playback_FL",
        "port.physical": true,
        "port.terminal": true
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "dsp",
            "format": "F32P"
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 55,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "output",
      "change-mask": [ "props", "params" ],
      "props": {
        "audio.channel": "FL",
        "format.dsp": "32 bit float mono audio",
        "node.id": 56,
        "object.id": 55,
        "object.path": "alsa:pcm:1:hw:Generic_1:playback:monitor_0",
        "object.serial": 60,
        "port.alias": "ALC257 Analog:monitor_FL",
        "port.direction": "out",
        "port.id": 0,
        "port.monitor": true,
        "port.name": "monitor_FL"
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "dsp",
            "format": "F32P"
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Output",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Input",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 53,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "input",
      "change-mask": [ "props", "params" ],
      "props": {
        "audio.channel": "FR",
        "format.dsp": "32 bit float mono audio",
        "node.id": 56,
        "object.id": 53,
        "object.path": "alsa:pcm:1:hw:Generic_1:playback:playback_1",
        "object.serial": 61,
        "port.alias": "ALC257 Analog:playback_FR",
        "port.direction": "in",
        "port.id": 1,
        "port.name": "playback_FR",
        "port.physical": true,
        "port.terminal": true
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "dsp",
            "format": "F32P"
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 54,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "output",
      "change-mask": [ "props", "params" ],
      "props": {
        "audio.channel": "FR",
        "format.dsp": "32 bit float mono audio",
        "node.id": 56,
        "object.id": 54,
        "object.path": "alsa:pcm:1:hw:Generic_1:playback:monitor_1",
        "object.serial": 62,
        "port.alias": "ALC257 Analog:monitor_FR",
        "port.direction": "out",
        "port.id": 1,
        "port.monitor": true,
        "port.name": "monitor_FR"
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "dsp",
            "format": "F32P"
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Output",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Input",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 52,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "output",
      "change-mask": [ "props", "params" ],
      "props": {
        "audio.channel": "FL",
        "format.dsp": "32 bit float mono audio",
        "node.id": 57,
        "object.id": 52,
        "object.path": "alsa:pcm:1:hw:Generic_1:capture:capture_0",
        "object.serial": 63,
        "port.alias": "ALC257 Analog:capture_FL",
        "port.direction": "out",
        "port.id": 0,
        "port.name": "capture_FL",
        "port.physical": true,
        "port.terminal": true
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "dsp",
            "format": "F32P"
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 59,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "output",
      "change-mask": [ "props", "params" ],
      "props": {
        "audio.channel": "FR",
        "format.dsp": "32 bit float mono audio",
        "node.id": 57,
        "object.id": 59,
        "object.path": "alsa:pcm:1:hw:Generic_1:capture:capture_1",
        "object.serial": 64,
        "port.alias": "ALC257 Analog:capture_FR",
        "port.direction": "out",
        "port.id": 1,
        "port.name": "capture_FR",
        "port.physical": true,
        "port.terminal": true
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "dsp",
            "format": "F32P"
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 60,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "output",
      "change-mask": [ "props", "params" ],
      "props": {
        "audio.channel": "FL",
        "format.dsp": "32 bit float mono audio",
        "node.id": 58,
        "object.id": 60,
        "object.path": "alsa:pcm:1:hw:acp:capture:capture_0",
        "object.serial": 65,
        "port.alias": "Digital Microphone:capture_FL",
        "port.direction": "out",
        "port.id": 0,
        "port.name": "capture_FL",
        "port.physical": true,
        "port.terminal": true
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "dsp",
            "format": "F32P"
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 61,
    "type": "PipeWire:Interface:Port",
    "version": 3,
    "permissions": [ "r", "x", "m" ],
    "info": {
      "direction": "output",
      "change-mask": [ "props", "params" ],
      "props": {
        "audio.channel": "FR",
        "format.dsp": "32 bit float mono audio",
        "node.id": 58,
        "object.id": 61,
        "object.path": "alsa:pcm:1:hw:acp:capture:capture_1",
        "object.serial": 66,
        "port.alias": "Digital Microphone:capture_FR",
        "port.direction": "out",
        "port.id": 1,
        "port.name": "capture_FR",
        "port.physical": true,
        "port.terminal": true
      },
      "params": {
        "EnumFormat": [
          {
            "mediaType": "audio",
            "mediaSubtype": "dsp",
            "format": "F32P"
          }
        ],
        "Meta": [
          {
            "type": "Header",
            "size": 32
          }
        ],
        "IO": [
          {
            "id": "Buffers",
            "size": 8
          }
        ],
        "Format": [ ],
        "Buffers": [ ],
        "Latency": [
          {
            "direction": "Input",
            "minQuantum": 0.000000,
            "maxQuantum": 0.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          },
          {
            "direction": "Output",
            "minQuantum": 1.000000,
            "maxQuantum": 1.000000,
            "minRate": 0,
            "maxRate": 0,
            "minNs": 0,
            "maxNs": 0
          }
        ]
      }
    }
  },
  {
    "id": 62,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "telegram-desktop",
        "application.process.binary": "telegram-desktop",
        "application.process.host": "p14s",
        "application.process.id": 4449,
        "application.process.user": "mvdan",
        "clock.power-of-two-quantum": true,
        "config.name": "client-rt.conf",
        "core.name": "pipewire-mvdan-4449",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 0,
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 62,
        "object.serial": 67,
        "pipewire.access": "unrestricted",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:8eccb9d6b15500006ea3294a747f000000000000000000008954294a747f0000481f36d5fe7f000000bae0964d25d947b01e36d5fe7f0000b01e36d5fe7f0000b01e36d5fe7f00005955294a747f0000401f36d5fe7f0000195f294a747f00006c0000000000000068b6b9d6b155000093000000000000009bd72a4a747f0000502036d5fe7f0000735f294a747f0000000000000000000000bae0964d25d947401f36d5fe7f00009900000000000000401f36d5fe7f0000bd5f294a747f0000401f36d5fe7f000000bae0964d25d947502036d5fe7f00000000000000000000502036d5fe7f00005955294a747f0000000000000000000069ad294a747f00000b00000000000000502036d5fe7f0000402036d5fe7f00000000000000000000000000000000000003000000730000000000000000000000502036d5fe7f0000680ac1d6b1550000502036d5fe7f0000842136d5fe7f00007859294a747f0000502036d5fe7f000000bae0964d25d947402036d5fe7f000000bae0964d25d947502036d5fe7f0000600ac1d6b15500001800000030000000b02136d5fe7f0000e02036d5fe7f000000bae0964d25d947680ac1d6b15500000000000000000000600ac1d6b1550000402036d5fe7f0000c02036d5fe7f00007300000000000000000000000000000088b5294a747f0000600ac1d6b1550000000060000d0000006c00000000000000680ac1d6b15500009800000000000000b00ac1d6b15500001e00000000000000c06d2c4a747f0000000000000000000000bae0964d25d9470000000000000000600ac1d6b15500007300000000000000600ac1d6b1550000582236d5fe7f0000c5b6294a747f0000300000003000000000bae0964d25d947e02036d5fe7f000090b4b9d6b155000080bab9d6b15500000000000000000000600ac1d6b1550000600ac1d6b155000000bfb9d6b155000000bae0964d25d94780b6b9d6b155000090b4b9d6b155000080bab9d6b15500000000000000000000600ac1d6b1550000600ac1d6b155000000bfb9d6b1550000f13fb04a747f000070dfbdd6b15500000800000000000000a02136d5fe7f00007a16b14a747f00000200000000000000c8c6e14a01000000a02136d5fe7f000020000000ffffffff70dfbdd6b155000059cce14a747f000001000000d02bb9d6b15500004d25d94790bcb9d6b1550000010000000000000050c1ce4a747f0000010ac1d6b155000070b2b9d6b155000004e0284a747f000090bcb9d6b1550000010000000000000070dfbdd6b155000091d6284a747f000090bcb9d6b15500007c13294a747f0000502136d5fe7f0000600ac1d6b1550000c8bcb9d6b1550000682236d5fe7f000001000000747f0000be0000000000000020bfb9d6b1550000a42236d5fe7f0000",
        "pipewire.sec.pid": 4449,
        "pipewire.sec.uid": 1000,
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0"
      }
    }
  },
  {
    "id": 63,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "WEBRTC VoiceEngine",
        "application.process.binary": "Discord",
        "application.process.host": "p14s",
        "application.process.id": 129,
        "application.process.machine-id": "2e5c8c03be8a41a8b6d45b89909f98cd",
        "application.process.session-id": 1,
        "application.process.user": "mvdan",
        "client.api": "pipewire-pulse",
        "clock.power-of-two-quantum": true,
        "config.name": "pipewire-pulse.conf",
        "core.name": "pipewire-mvdan-1394",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 2,
        "media.category": "Manager",
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 63,
        "object.serial": 68,
        "pipewire.access": "flatpak",
        "pipewire.access.portal.app_id": "com.discordapp.Discord",
        "pipewire.client.access": "flatpak",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:a6ccb9d6b15500006ea3294a747f000008000000050000008954294a747f0000481f36d5fe7f000000bae0964d25d947b01e36d5fe7f0000b01e36d5fe7f0000b01e36d5fe7f00005955294a747f0000401f36d5fe7f0000195f294a747f00006c0000000000000068b6b9d6b155000093000000000000009bd72a4a747f0000502036d5fe7f0000735f294a747f0000000000000000000000bae0964d25d947401f36d5fe7f00009900000000000000401f36d5fe7f0000bd5f294a747f0000401f36d5fe7f000000bae0964d25d947502036d5fe7f00000000000000000000502036d5fe7f00005955294a747f0000000000000000000069ad294a747f00000b00000000000000502036d5fe7f0000402036d5fe7f00000000000000000000000000000000000003000000730000000000000000000000502036d5fe7f0000680ac1d6b1550000502036d5fe7f0000842136d5fe7f00007859294a747f0000502036d5fe7f000000bae0964d25d947402036d5fe7f000000bae0964d25d947502036d5fe7f0000600ac1d6b15500001800000030000000b02136d5fe7f0000e02036d5fe7f000000bae0964d25d947680ac1d6b15500000000000000000000600ac1d6b1550000402036d5fe7f0000c02036d5fe7f00007300000000000000000000000000000088b5294a747f0000600ac1d6b1550000000060000d0000006c00000000000000680ac1d6b15500009800000000000000b00ac1d6b15500003600000000000000c06d2c4a747f0000000000000000000000bae0964d25d9470000000000000000600ac1d6b15500007300000000000000600ac1d6b1550000582236d5fe7f0000c5b6294a747f0000300000003000000000bae0964d25d947e02036d5fe7f000090b4b9d6b155000080bab9d6b15500000000000000000000600ac1d6b1550000600ac1d6b155000000bfb9d6b155000000bae0964d25d94780b6b9d6b155000090b4b9d6b155000080bab9d6b15500000000000000000000600ac1d6b1550000600ac1d6b155000000bfb9d6b1550000f13fb04a747f000070dfbdd6b15500000800000000000000a02136d5fe7f00007a16b14a747f00000200000000000000c8c6e14a01000000a02136d5fe7f000020000000ffffffff70dfbdd6b155000059cce14a747f000001000000d02bb9d6b15500004d25d94790bcb9d6b1550000010000000000000050c1ce4a747f0000010ac1d6b155000070b2b9d6b155000004e0284a747f000090bcb9d6b1550000010000000000000070dfbdd6b155000091d6284a747f000090bcb9d6b15500007c13294a747f0000502136d5fe7f0000600ac1d6b1550000c8bcb9d6b1550000682236d5fe7f000001000000747f0000d60000000000000020bfb9d6b1550000a42236d5fe7f0000",
        "pipewire.sec.pid": 1394,
        "pipewire.sec.uid": 1000,
        "pulse.server.type": "unix",
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0"
      }
    }
  },
  {
    "id": 64,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "WEBRTC VoiceEngine",
        "application.process.binary": "Discord",
        "application.process.host": "p14s",
        "application.process.id": 129,
        "application.process.machine-id": "2e5c8c03be8a41a8b6d45b89909f98cd",
        "application.process.session-id": 1,
        "application.process.user": "mvdan",
        "client.api": "pipewire-pulse",
        "clock.power-of-two-quantum": true,
        "config.name": "pipewire-pulse.conf",
        "core.name": "pipewire-mvdan-1394",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 2,
        "media.category": "Manager",
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 64,
        "object.serial": 69,
        "pipewire.access": "flatpak",
        "pipewire.access.portal.app_id": "com.discordapp.Discord",
        "pipewire.client.access": "flatpak",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:c08dcbd60e000000010000000000000001000000b15500009724d74a747f0000c08dcbd6b15500006e35d74a747f000030602749747f00000000000000000000000000000000000042bafc43747f0000e030c8d6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000300000000e00000042bafc43747f0000e030c8d6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f000060a6fe430e00000030d3fc43747f0000e030c8d60e0000001001000000000000788acbd6b155000042bafc43747f0000e030c8d6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000788acbd60e0000001010c8d6b15500001810c8d6b1550000c829fe43747f0000d88acbd6b15500001810c8d6b1550000000000000000000000bae0964d25d94700000000000000001010c8d6b1550000e030c8d6b1550000b810000000000000788acbd6b15500001010c8d6b15500001810c8d6b155000042bafc43747f0000e030c8d6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000130000000e00000000bae0964d25d9470000000000000000d088cbd6b1550000e030c8d6b15500004089cbd6b1550000788acbd6b15500000000000000000000601ecad600200000a07fcbd6b1550000b002000000000000a02036d5fe7f000004000000040000009a00004000000000000000000000000000000000000000003000000030000000b02136d5fe7f0000c02036d5fe7f000000bae0964d25d947b08bcbd6b15500001010c8d6b1550000e030c8d6b15500002800000000000000788acbd6b15500001010c8d6b15500001810c8d6b1550000c829fe43747f0000d88acbd6b15500001810c8d6b155000000000000000000000000000000000000000000000000000000bae0964d25d947402136d5fe7f00001010c8d6b15500001000000000000000aa33b14a747f0000a02136d5fe7f000026000000400000401010c8d6b15500007a16b14a747f0000601ecad6b15500003010c8d601000000a02136d5fe7f000020000000ffffffffe030c8d6b155000059cce14a747f000001000000d02bb9d6b1550000747f0000e02136d5fe7f00007000000000000000002236d5fe7f000080000000404000004000004000000000af11fe43747f0000a020c8d6b1550000a020c8d6b155000000000000000000001010c8d6b155000000000000000000000000000000000000402236d5fe7f000001000000000000000000000000000000000000000000000000000000000000009a000040000000006088e1d6b15500007000000000000000",
        "pipewire.sec.pid": 1394,
        "pipewire.sec.uid": 1000,
        "pulse.server.type": "unix",
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0"
      }
    }
  },
  {
    "id": 65,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "Chromium input",
        "application.process.binary": "Discord",
        "application.process.host": "p14s",
        "application.process.id": 184,
        "application.process.machine-id": "2e5c8c03be8a41a8b6d45b89909f98cd",
        "application.process.session-id": 1,
        "application.process.user": "mvdan",
        "client.api": "pipewire-pulse",
        "clock.power-of-two-quantum": true,
        "config.name": "pipewire-pulse.conf",
        "core.name": "pipewire-mvdan-1394",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 2,
        "media.category": "Manager",
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 65,
        "object.serial": 70,
        "pipewire.access": "flatpak",
        "pipewire.access.portal.app_id": "com.discordapp.Discord",
        "pipewire.client.access": "flatpak",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:0089c8d60e000000010000000000000001000000b15500009724d74a747f00000089c8d6b15500006e35d74a747f000030602749747f00000000000000000000000000000000000042bafc43747f000010a9e0d6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f000060a6fe430e00000030d3fc43747f00007017bed60e0000000c00000000000000000000000000000042bafc43747f000010a9e0d6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000b882c8d60e0000004088e0d6b15500004888e0d6b1550000c829fe43747f00001883c8d6b15500004888e0d6b1550000000000000000000000bae0964d25d94700000000000000004088e0d6b155000010a9e0d6b1550000b810000000000000b882c8d6b15500004088e0d6b15500004888e0d6b155000042bafc43747f000010a9e0d6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000130000000e00000042bafc43747f000010a9e0d6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000b08bc8d60e0000006077c8d6b1550000b002000000000000602036d5fe7f000004000000040000006600004000000000000000000000000000000000000000003000000030000000702136d5fe7f0000802036d5fe7f000000bae0964d25d94704000000040000009d0000400000000010a9e0d6b155000028000000000000003000000030000000b02136d5fe7f0000c02036d5fe7f000000bae0964d25d9470088c8d6b15500004088e0d6b155000010a9e0d6b15500002800000000000000b882c8d6b15500004088e0d6b15500004888e0d6b1550000c829fe43747f00001883c8d6b15500004888e0d6b155000000000000000000000000000000000000000000000000000000bae0964d25d947402136d5fe7f00004088e0d6b15500001000000000000000aa33b14a747f0000a02136d5fe7f000027000000400000404088e0d6b15500007a16b14a747f0000b08bc8d6b15500006088e0d601000000a02136d5fe7f000020000000ffffffff10a9e0d6b155000059cce14a747f000001000000d02bb9d6b1550000747f0000e02136d5fe7f00007000000000000000002236d5fe7f000080000000404000004000004000000000af11fe43747f0000d098e0d6b1550000d098e0d6b155000000000000000000004088e0d6b155000000000000000000000000000000000000402236d5fe7f000001000000000000000000000000000000000000000000000000000000000000009d000040000000009008e4d6b15500007000000000000000",
        "pipewire.sec.pid": 1394,
        "pipewire.sec.uid": 1000,
        "pulse.server.type": "unix",
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0"
      }
    }
  },
  {
    "id": 67,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "Firefox",
        "application.process.binary": "firefox",
        "application.process.host": "p14s",
        "application.process.id": 9302,
        "application.process.machine-id": "2e5c8c03be8a41a8b6d45b89909f98cd",
        "application.process.session-id": 1,
        "application.process.user": "mvdan",
        "client.api": "pipewire-pulse",
        "clock.power-of-two-quantum": true,
        "config.name": "pipewire-pulse.conf",
        "core.name": "pipewire-mvdan-1394",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 2,
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 67,
        "object.serial": 87,
        "pipewire.access": "unrestricted",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:0600000008000000363020487a00000001000000050000005700000000000000a082ecd6b1550000280000000e00000000000000000000000000000000000000100000000e00000042bafc43747f0000a082ecd6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000300000000e00000042bafc43747f0000a082ecd6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f000060a6fe430e00000030d3fc43747f0000a082ecd60e00000042bafc43747f0000a082ecd6b155000042bafc43747f0000a082ecd6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000a8a9ebd60e000000d061ecd6b1550000d861ecd6b155000042bafc43747f00007017bed6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000c2f8cc4a747f0000a082ecd60e000000200f000000000000a8a9ebd6b1550000d061ecd6b1550000d861ecd6b155000042bafc43747f0000a082ecd6b15500000000000001000000b038e3d6b15500000c0000000000000000000000000000000b65fe43747f000000000000000000004300000000000000000000000e00000000a8ebd6b15500003000000030000000702136d5fe7f0000602036d5fe7f000000bae0964d25d94730f6bdd6b15500009b33cd4a747f000043000000000000002d34cd4a747f000000000000000000002d34cd4a747f00000400000004000000430000000000000038efbdd6b1550000a8f6bdd6b15500002000000030000000c02136d5fe7f0000d02036d5fe7f000000bae0964d25d94750f6cbd6b1550000a0f6bdd6b15500007017bed6b15500003000000000000000d8eebdd6b1550000a0f6bdd6b1550000a8f6bdd6b1550000c829fe43747f000038efbdd6b1550000a8f6bdd6b15500000000000000000000000000000000000000000000000000000000000000000000000000000000000000bae0964d25d9470000000000000000f094a94a747f000020ebc34a747f00007a16b14a747f0000d0deecd6b15500004000000001000000a02136d5fe7f000020000000ffffffffc0eac34a747f000059cce14a747f000001000000d02bb9d6b1550000747f0000b08bcbd6b15500002800000000000000002236d5fe7f00007017e3d6404000000400000030f6bdd6af11fe43747f00005007ccd6b15500005007ccd6b1550000000000000000000050f6cbd6b155000000000000000000000000000000000000402236d5fe7f00000100000000000000000000000000000000000000000000000000000000000000dba8a94a747f00003010c9d6b15500002800000000000000",
        "pipewire.sec.pid": 1394,
        "pipewire.sec.uid": 1000,
        "pulse.server.type": "unix",
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0"
      }
    }
  },
  {
    "id": 66,
    "type": "PipeWire:Interface:Client",
    "version": 3,
    "permissions": [ "r", "w", "x", "m" ],
    "info": {
      "change-mask": [ "props" ],
      "props": {
        "application.language": "en_US.UTF-8",
        "application.name": "pw-dump",
        "application.process.binary": "pw-dump",
        "application.process.host": "p14s",
        "application.process.id": 11751,
        "application.process.session-id": 1,
        "application.process.user": "mvdan",
        "clock.power-of-two-quantum": true,
        "core.name": "pipewire-mvdan-11751",
        "core.version": "0.3.77",
        "cpu.max-align": 32,
        "default.clock.max-quantum": 2048,
        "default.clock.min-quantum": 32,
        "default.clock.quantum": 1024,
        "default.clock.quantum-limit": 8192,
        "default.clock.rate": 48000,
        "default.video.height": 480,
        "default.video.rate.denom": 1,
        "default.video.rate.num": 25,
        "default.video.width": 640,
        "link.max-buffers": 64,
        "log.level": 0,
        "mem.allow-mlock": true,
        "mem.warn-mlock": false,
        "module.id": 2,
        "object.id": 66,
        "object.serial": 101,
        "pipewire.access": "unrestricted",
        "pipewire.protocol": "protocol-native",
        "pipewire.sec.gid": 1000,
        "pipewire.sec.label": "hex:0600000008000000363020487a0000000100000005000000650000000000000010c3ecd6b1550000280000000e00000000000000000000000000000000000000100000000e00000042bafc43747f000010c3ecd6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000300000000e00000042bafc43747f000010c3ecd6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f000060a6fe430e00000030d3fc43747f000010c3ecd60e00000042bafc43747f000010c3ecd6b155000042bafc43747f000010c3ecd6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000a6c7fc43747f0000f8d3edd60e00000040a2ecd6b155000048a2ecd6b155000042bafc43747f00007017bed6b15500000c0000000000000000000000000000000b65fe43747f000060a6fe43747f0000c2f8cc4a747f000010c3ecd60e000000200f000000000000f8d3edd6b155000040a2ecd6b155000048a2ecd6b155000042bafc43747f000010c3ecd6b15500000000000001000000a082ecd6b15500000c0000000000000000000000000000000b65fe43747f000000000000000000004200000000000000000000000e00000050d2edd6b15500003000000030000000702136d5fe7f0000602036d5fe7f000000bae0964d25d94730f6bdd6b15500009b33cd4a747f000042000000000000002d34cd4a747f000000000000000000002d34cd4a747f00000400000004000000420000000000000038efbdd6b1550000a8f6bdd6b15500002000000030000000c02136d5fe7f0000d02036d5fe7f000000bae0964d25d94750f6cbd6b1550000a0f6bdd6b15500007017bed6b15500003000000000000000d8eebdd6b1550000a0f6bdd6b1550000a8f6bdd6b1550000c829fe43747f000038efbdd6b1550000a8f6bdd6b15500000000000000000000000000000000000000000000000000000000000000000000000000000000000000bae0964d25d9470000000000000000f094a94a747f000020ebc34a747f00007a16b14a747f0000d071f1d6b15500002000000001000000a02136d5fe7f000020000000ffffffffc0eac34a747f000059cce14a747f000001000000d02bb9d6b1550000747f0000b08bcbd6b15500002800000000000000002236d5fe7f00007017e3d64040000004000000d0a9d8d6af11fe43747f00005007ccd6b15500005007ccd6b15500000000000000000000601fc1d6b155000000000000000000000000000000000000402236d5fe7f00000100000000000000000000000000000000000000000000000000000000000000dba8a94a747f00003010c9d6b15500002800000000000000",
        "pipewire.sec.pid": 11751,
        "pipewire.sec.uid": 1000,
        "settings.check-quantum": false,
        "settings.check-rate": false,
        "window.x11.display": ":0"
      }
    }
  }
]

@rpigott
Copy link

rpigott commented Aug 10, 2023

@mvdan You should be screensharing when running the script. E.g. After correcting the above, if I visit https://webrtc.github.io/samples/src/content/getusermedia/getdisplaymedia/ in firefox, start a screenshare, accept the browser permissions, and complete output selection, I get the following output from the script:

gojq script output
{
  "firefox": {
    "formats": [
      {
        "format": "BGRA",
        "modifiers": [
          "0x0000000000000000",
          "0x0100000000000001",
          "0x0100000000000002",
          "0x0100000000000006",
          "0x0100000000000007",
          "0x0100000000000008",
          "0x00ffffffffffffff"
        ]
      },
      {
        "format": "RGBA",
        "modifiers": [
          "0x0000000000000000",
          "0x0100000000000001",
          "0x0100000000000002",
          "0x0100000000000006",
          "0x0100000000000007",
          "0x0100000000000008",
          "0x00ffffffffffffff"
        ]
      },
      {
        "format": "BGRx",
        "modifiers": [
          "0x0000000000000000",
          "0x0100000000000001",
          "0x0100000000000002",
          "0x0100000000000006",
          "0x0100000000000007",
          "0x0100000000000008",
          "0x00ffffffffffffff"
        ]
      }
    ],
    "id": 59,
    "type": "PipeWire:Interface:Node"
  },
  "xdg-desktop-portal-wlr": {
    "formats": [
      {
        "format": "BGRx",
        "modifiers": [
          "0x0100000000000002"
        ]
      },
      {
        "format": "BGRx",
        "modifiers": [
          "0x0000000000000000",
          "0x0100000000000001",
          "0x0100000000000002"
        ]
      }
    ],
    "id": 58,
    "type": "PipeWire:Interface:Node"
  }
}

BGRx+0x01000000000002 is I915_FORMAT_MOD_Y_TILED and supported by both applications. The xpdw formats are those offered by sway, the firefox ones are those currently supported in webrtc on my platform.

@mvdan
Copy link

mvdan commented Aug 10, 2023

Thanks for clarifying. To be clear, I had checked both with and without an active screenshare, and the output was the same. I just checked again. I already went through the rest of the troubleshooting steps, so I can at least verify that all the pieces are running.

I assume that for some reason the screenshare isn't even starting properly. I tried seeing if firefox or xdg-desktop-portal-wlr showed any errors, because they did with previous issues I had before, but there's nothing I can see. I did capture wlr's debug logs, in case they shed any light - clearly it's trying to do something:

wlr debug logs
$ /usr/lib/xdg-desktop-portal-wlr -l DEBUG
2023/08/10 22:37:07 [INFO] - config: no config file found, using the default config
2023/08/10 22:37:07 [DEBUG] - config: outputname:  (null)
2023/08/10 22:37:07 [DEBUG] - config: max_fps:  0.000000
2023/08/10 22:37:07 [DEBUG] - config: exec_before:  (null)
2023/08/10 22:37:07 [DEBUG] - config: exec_after:  (null)
2023/08/10 22:37:07 [DEBUG] - config: chooser_cmd: (null)
2023/08/10 22:37:07 [DEBUG] - config: chooser_type: default
2023/08/10 22:37:07 [DEBUG] - config: force_mod_linear: 0
2023/08/10 22:37:07 [DEBUG] - dbus: connected
2023/08/10 22:37:07 [DEBUG] - wlroots: wl_display connected
2023/08/10 22:37:07 [DEBUG] - pipewire: pw_loop created
2023/08/10 22:37:07 [DEBUG] - pipewire: establishing connection to core
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wl_shm  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: |-- registered to interface wl_shm (Version 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wl_drm  (Version: 2)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_linux_dmabuf_v1  (Version: 4)
2023/08/10 22:37:07 [DEBUG] - wlroots: |-- registered to interface zwp_linux_dmabuf_v1 (Version 4)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wl_compositor  (Version: 5)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wl_subcompositor  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wl_data_device_manager  (Version: 3)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwlr_gamma_control_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zxdg_output_manager_v1  (Version: 3)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register org_kde_kwin_idle  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register ext_idle_notifier_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_idle_inhibit_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwlr_layer_shell_v1  (Version: 4)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register xdg_wm_base  (Version: 2)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_tablet_manager_v2  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register org_kde_kwin_server_decoration_manager  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zxdg_decoration_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_relative_pointer_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_pointer_constraints_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wp_presentation  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwlr_output_manager_v1  (Version: 4)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwlr_output_power_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_input_method_manager_v2  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_text_input_manager_v3  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwlr_foreign_toplevel_manager_v1  (Version: 3)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register ext_session_lock_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wp_drm_lease_device_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwlr_export_dmabuf_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwlr_screencopy_manager_v1  (Version: 3)
2023/08/10 22:37:07 [DEBUG] - wlroots: |-- registered to interface zwlr_screencopy_manager_v1 (Version 3)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwlr_data_control_manager_v1  (Version: 2)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_primary_selection_device_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wp_viewporter  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wp_single_pixel_buffer_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zxdg_exporter_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zxdg_importer_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zxdg_exporter_v2  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zxdg_importer_v2  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register xdg_activation_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_virtual_keyboard_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwlr_virtual_pointer_manager_v1  (Version: 2)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwlr_input_inhibit_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_keyboard_shortcuts_inhibit_manager_v1  (Version: 1)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wl_seat  (Version: 8)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register zwp_pointer_gestures_v1  (Version: 3)
2023/08/10 22:37:07 [DEBUG] - wlroots: interface to register wl_output  (Version: 4)
2023/08/10 22:37:07 [DEBUG] - wlroots: |-- registered to interface wl_output (Version 4)
2023/08/10 22:37:07 [DEBUG] - wayland: registry listeners run
2023/08/10 22:37:07 [DEBUG] - wlroots: linux_dmabuf_feedback_handle_main_device called
2023/08/10 22:37:07 [INFO] - xdpw: Using render node /dev/dri/renderD128
2023/08/10 22:37:07 [DEBUG] - wlroots: linux_dmabuf_feedback_format_table called
2023/08/10 22:37:07 [DEBUG] - wlroots: linux_dmabuf_feedback_tranche_target_devices called
2023/08/10 22:37:07 [DEBUG] - wlroots: linux_dmabuf_feedback_tranche_flags called
2023/08/10 22:37:07 [DEBUG] - wlroots: linux_dmabuf_feedback_tranche_formats called
2023/08/10 22:37:07 [DEBUG] - wlroots: linux_dmabuf_feedback_tranche_done called
2023/08/10 22:37:07 [DEBUG] - wlroots: linux_dmabuf_feedback_handle_done called
2023/08/10 22:37:07 [DEBUG] - wayland: dmabuf_feedback listeners run
2023/08/10 22:37:15 [INFO] - dbus: create session method invoked
2023/08/10 22:37:15 [INFO] - dbus: request_handle: /org/freedesktop/portal/desktop/request/1_28/webrtc_107886671
2023/08/10 22:37:15 [INFO] - dbus: session_handle: /org/freedesktop/portal/desktop/session/1_28/webrtc_session557058456
2023/08/10 22:37:15 [INFO] - dbus: app_id: 
2023/08/10 22:37:15 [INFO] - dbus: select sources method invoked
2023/08/10 22:37:15 [INFO] - dbus: request_handle: /org/freedesktop/portal/desktop/request/1_28/webrtc1001353819
2023/08/10 22:37:15 [INFO] - dbus: session_handle: /org/freedesktop/portal/desktop/session/1_28/webrtc_session557058456
2023/08/10 22:37:15 [INFO] - dbus: app_id: 
2023/08/10 22:37:15 [DEBUG] - dbus: select sources: found matching session /org/freedesktop/portal/desktop/session/1_28/webrtc_session557058456
2023/08/10 22:37:15 [INFO] - dbus: option types:3
2023/08/10 22:37:15 [INFO] - dbus: option multiple: 0
2023/08/10 22:37:15 [INFO] - dbus: option persist_mode:1
2023/08/10 22:37:15 [INFO] - wlroots: capturable output: Chimei Innolux Corporation model: 0x140A: id: 44 name: eDP-1
2023/08/10 22:37:15 [DEBUG] - wlroots: output chooser called
2023/08/10 22:37:15 [DEBUG] - wlroots: output chooser called
2023/08/10 22:37:16 [DEBUG] - wlroots: output chooser selects eDP-1
2023/08/10 22:37:16 [INFO] - xdpw: screencast instance 0x55664db234b0 has 1 references
2023/08/10 22:37:16 [INFO] - xdpw: 1 active screencast instances
2023/08/10 22:37:16 [INFO] - wlroots: output: eDP-1
2023/08/10 22:37:16 [INFO] - dbus: session closed
2023/08/10 22:37:16 [DEBUG] - dbus: destroying session 0x55664db0db00
2023/08/10 22:37:16 [DEBUG] - xdpw: screencast instance 0x55664db234b0 now has 0 references
2023/08/10 22:37:16 [DEBUG] - xdpw: destroying cast instance

@mvdan
Copy link

mvdan commented Aug 10, 2023

What's really interesting is that Chromium's "share entire screen" preview works - I can see the small screen there after selecting it. But then, once I start the screenshare, nothing - just like on Firefox.

@mvdan
Copy link

mvdan commented Aug 12, 2023

Finally found the culprit: an assertion is failing over on PipeWire:

'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:426 pw_thread_loop_wait()

I also found that OBS can screenshare just fine. It seems like jumping from the "preview" to the actual screenshare on firefox/chromium is what causes the error. I filed a pipewire issue to see if the failed assertion can get us anywhere: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3428

@mvdan
Copy link

mvdan commented Aug 17, 2023

Ah, this is fixed in Firefox Beta 117.0b8, so it was clearly a problem on their side. I initially thought it was https://bugzilla.mozilla.org/show_bug.cgi?id=1841851, but updating regular firefox to 116.0.3 did not fix it. Either way, apologies for the noise, I was just frantically trying to debug the breakage :)

@rpigott
Copy link

rpigott commented Aug 17, 2023

Nice. Glad you got it sorted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment