PipeWire 1.0.5

Loading...
Searching...
No Matches
Files | Macros
Key Names
Core API

## Files
file | keys.h
| `pipewire/keys.h`

## Macros
#define | PW_KEY_PROTOCOL "pipewire.protocol"
| protocol used for connection
#define | PW_KEY_ACCESS "pipewire.access"
| how the client access is controlled
#define | PW_KEY_CLIENT_ACCESS "pipewire.client.access
| how the client wants to be access controlled
#define | PW_KEY_SEC_PID "pipewire.sec.pid"
| Various keys related to the identity of a client process and its security.
#define | PW_KEY_SEC_UID "pipewire.sec.uid"
| Client uid, set by protocol.
#define | PW_KEY_SEC_GID "pipewire.sec.gid"
| client gid, set by protocol
#define | PW_KEY_SEC_LABEL "pipewire.sec.label"
| client security label, set by protocol
#define | PW_KEY_SEC_SOCKET "pipewire.sec.socket"
| client socket name, set by protocol
#define | PW_KEY_LIBRARY_NAME_SYSTEM "library.name.system"
| name of the system library to use
#define | PW_KEY_LIBRARY_NAME_LOOP "library.name.loop"
| name of the loop library to use
#define | PW_KEY_LIBRARY_NAME_DBUS "library.name.dbus"
| name of the dbus library to use
#define | PW_KEY_OBJECT_PATH "object.path"
| object properties
#define | PW_KEY_OBJECT_ID "object.id"
| a global object id
#define | PW_KEY_OBJECT_SERIAL "object.serial"
| a 64 bit object serial number.
#define | PW_KEY_OBJECT_LINGER "object.linger"
| the object lives on even after the client that created it has been destroyed
#define | PW_KEY_OBJECT_REGISTER "object.register"
| If the object should be registered.
#define | PW_KEY_OBJECT_EXPORT "object.export"
| If the object should be exported, since 0.3.72.
#define | PW_KEY_CONFIG_PREFIX "config.prefix"
| a config prefix directory
#define | PW_KEY_CONFIG_NAME "config.name"
| a config file name
#define | PW_KEY_CONFIG_OVERRIDE_PREFIX "config.override.prefix"
| a config override prefix directory
#define | PW_KEY_CONFIG_OVERRIDE_NAME "config.override.name"
| a config override file name
#define | PW_KEY_CONTEXT_PROFILE_MODULES "context.profile.modules"
| a context profile for modules, deprecated
#define | PW_KEY_USER_NAME "context.user-name"
| The user name that runs pipewire.
#define | PW_KEY_HOST_NAME "context.host-name"
| The host name of the machine.
#define | PW_KEY_CORE_NAME "core.name"
| The name of the core.
#define | PW_KEY_CORE_VERSION "core.version"
| The version of the core.
#define | PW_KEY_CORE_DAEMON "core.daemon"
| If the core is listening for connections.
#define | PW_KEY_CORE_ID "core.id"
| the core id
#define | PW_KEY_CORE_MONITORS "core.monitors"
| the apis monitored by core.
#define | PW_KEY_CPU_MAX_ALIGN "cpu.max-align"
| maximum alignment needed to support all CPU optimizations
#define | PW_KEY_CPU_CORES "cpu.cores"
| number of cores
#define | PW_KEY_PRIORITY_SESSION "priority.session"
| priority in session manager
#define | PW_KEY_PRIORITY_DRIVER "priority.driver"
| priority to be a driver
#define | PW_KEY_REMOTE_NAME "remote.name"
| The name of the remote to connect to, default pipewire-0, overwritten by env(PIPEWIRE_REMOTE).
#define | PW_KEY_REMOTE_INTENTION "remote.intention"
| The intention of the remote connection, "generic", "screencast".
#define | PW_KEY_APP_NAME "application.name"
| application keys
#define | PW_KEY_APP_ID "application.id"
| a textual id for identifying an application logically.
#define | PW_KEY_APP_VERSION "application.version"
| application version.
#define | PW_KEY_APP_ICON "application.icon"
| aa base64 blob with PNG image data
#define | PW_KEY_APP_ICON_NAME "application.icon-name"
| an XDG icon name for the application.
#define | PW_KEY_APP_LANGUAGE "application.language"
| application language if applicable, in standard POSIX format.
#define | PW_KEY_APP_PROCESS_ID "application.process.id"
| process id (pid)
#define | PW_KEY_APP_PROCESS_BINARY "application.process.binary"
| binary name
#define | PW_KEY_APP_PROCESS_USER "application.process.user"
| user name
#define | PW_KEY_APP_PROCESS_HOST "application.process.host"
| host name
#define | PW_KEY_APP_PROCESS_MACHINE_ID "application.process.machine-id"
| the D-Bus host id the application runs on
#define | PW_KEY_APP_PROCESS_SESSION_ID "application.process.session-id"
| login session of the application, on Unix the value of $XDG_SESSION_ID.
#define | PW_KEY_WINDOW_X11_DISPLAY "window.x11.display"
| window system
#define | PW_KEY_CLIENT_ID "client.id"
| Client properties.
#define | PW_KEY_CLIENT_NAME "client.name"
| the client name
#define | PW_KEY_CLIENT_API "client.api"
| the client api used to access PipeWire
#define | PW_KEY_NODE_ID "node.id"
| Node keys.
#define | PW_KEY_NODE_NAME "node.name"
| node name
#define | PW_KEY_NODE_NICK "node.nick"
| short node name
#define | PW_KEY_NODE_DESCRIPTION "node.description"
| localized human readable node one-line description.
#define | PW_KEY_NODE_PLUGGED "node.plugged"
| when the node was created.
#define | PW_KEY_NODE_SESSION "node.session"
| the session id this node is part of
#define | PW_KEY_NODE_GROUP "node.group"
| the group id this node is part of.
#define | PW_KEY_NODE_EXCLUSIVE "node.exclusive"
| node wants exclusive access to resources
#define | PW_KEY_NODE_AUTOCONNECT "node.autoconnect"
| node wants to be automatically connected to a compatible node
#define | PW_KEY_NODE_LATENCY "node.latency"
| the requested latency of the node as a fraction.
#define | PW_KEY_NODE_MAX_LATENCY "node.max-latency"
| the maximum supported latency of the node as a fraction.
#define | PW_KEY_NODE_LOCK_QUANTUM "node.lock-quantum"
| don't change quantum when this node is active
#define | PW_KEY_NODE_FORCE_QUANTUM "node.force-quantum"
| force a quantum while the node is active
#define | PW_KEY_NODE_RATE "node.rate"
| the requested rate of the graph as a fraction.
#define | PW_KEY_NODE_LOCK_RATE "node.lock-rate"
| don't change rate when this node is active
#define | PW_KEY_NODE_FORCE_RATE "node.force-rate"
| force a rate while the node is active.
#define | PW_KEY_NODE_DONT_RECONNECT "node.dont-reconnect"
| don't reconnect this node.
#define | PW_KEY_NODE_ALWAYS_PROCESS "node.always-process"
| process even when unlinked
#define | PW_KEY_NODE_WANT_DRIVER "node.want-driver"
| the node wants to be grouped with a driver node in order to schedule the graph.
#define | PW_KEY_NODE_PAUSE_ON_IDLE "node.pause-on-idle"
| pause the node when idle
#define | PW_KEY_NODE_SUSPEND_ON_IDLE "node.suspend-on-idle"
| suspend the node when idle
#define | PW_KEY_NODE_CACHE_PARAMS "node.cache-params"
| cache the node params
#define | PW_KEY_NODE_TRANSPORT_SYNC "node.transport.sync"
| the node handles transport sync
#define | PW_KEY_NODE_DRIVER "node.driver"
| node can drive the graph
#define | PW_KEY_NODE_STREAM "node.stream"
| node is a stream, the server side should add a converter
#define | PW_KEY_NODE_VIRTUAL "node.virtual"
| the node is some sort of virtual object
#define | PW_KEY_NODE_PASSIVE "node.passive"
| indicate that a node wants passive links on output/input/all ports when the value is "out"/"in"/"true" respectively
#define | PW_KEY_NODE_LINK_GROUP "node.link-group"
| the node is internally linked to nodes with the same link-group.
#define | PW_KEY_NODE_NETWORK "node.network"
| the node is on a network
#define | PW_KEY_NODE_TRIGGER "node.trigger"
| the node is not scheduled automatically based on the dependencies in the graph but it will be triggered explicitly.
#define | PW_KEY_NODE_CHANNELNAMES "node.channel-names"
| names of node's channels (unrelated to positions)
#define | PW_KEY_NODE_DEVICE_PORT_NAME_PREFIX
#define | PW_KEY_PORT_ID "port.id"
| Port keys.
#define | PW_KEY_PORT_NAME "port.name"
| port name
#define | PW_KEY_PORT_DIRECTION "port.direction"
| the port direction, one of "in" or "out" or "control" and "notify" for control ports
#define | PW_KEY_PORT_ALIAS "port.alias"
| port alias
#define | PW_KEY_PORT_PHYSICAL "port.physical"
| if this is a physical port
#define | PW_KEY_PORT_TERMINAL "port.terminal"
| if this port consumes the data
#define | PW_KEY_PORT_CONTROL "port.control"
| if this port is a control port
#define | PW_KEY_PORT_MONITOR "port.monitor"
| if this port is a monitor port
#define | PW_KEY_PORT_CACHE_PARAMS "port.cache-params"
| cache the node port params
#define | PW_KEY_PORT_EXTRA "port.extra"
| api specific extra port info, API name should be prefixed.
#define | PW_KEY_PORT_PASSIVE "port.passive"
| the ports wants passive links, since 0.3.67
#define | PW_KEY_PORT_IGNORE_LATENCY "port.ignore-latency"
| latency ignored by peers, since 0.3.71
#define | PW_KEY_LINK_ID "link.id"
| link properties
#define | PW_KEY_LINK_INPUT_NODE "link.input.node"
| input node id of a link
#define | PW_KEY_LINK_INPUT_PORT "link.input.port"
| input port id of a link
#define | PW_KEY_LINK_OUTPUT_NODE "link.output.node"
| output node id of a link
#define | PW_KEY_LINK_OUTPUT_PORT "link.output.port"
| output port id of a link
#define | PW_KEY_LINK_PASSIVE "link.passive"
| indicate that a link is passive and does not cause the graph to be runnable.
#define | PW_KEY_LINK_FEEDBACK "link.feedback"
| indicate that a link is a feedback link and the target will receive data in the next cycle
#define | PW_KEY_DEVICE_ID "device.id"
| device properties
#define | PW_KEY_DEVICE_NAME "device.name"
| device name
#define | PW_KEY_DEVICE_PLUGGED "device.plugged"
| when the device was created.
#define | PW_KEY_DEVICE_NICK "device.nick"
| a short device nickname
#define | PW_KEY_DEVICE_STRING "device.string"
| device string in the underlying layer's format.
#define | PW_KEY_DEVICE_API "device.api"
| API this device is accessed with.
#define | PW_KEY_DEVICE_DESCRIPTION "device.description"
| localized human readable device one-line description.
#define | PW_KEY_DEVICE_BUS_PATH "device.bus-path"
| bus path to the device in the OS' format.
#define | PW_KEY_DEVICE_SERIAL "device.serial"
| Serial number if applicable.
#define | PW_KEY_DEVICE_VENDOR_ID "device.vendor.id"
| vendor ID if applicable
#define | PW_KEY_DEVICE_VENDOR_NAME "device.vendor.name"
| vendor name if applicable
#define | PW_KEY_DEVICE_PRODUCT_ID "device.product.id"
| product ID if applicable
#define | PW_KEY_DEVICE_PRODUCT_NAME "device.product.name"
| product name if applicable
#define | PW_KEY_DEVICE_CLASS "device.class"
| device class
#define | PW_KEY_DEVICE_FORM_FACTOR "device.form-factor"
| form factor if applicable.
#define | PW_KEY_DEVICE_BUS "device.bus"
| bus of the device if applicable.
#define | PW_KEY_DEVICE_SUBSYSTEM "device.subsystem"
| device subsystem
#define | PW_KEY_DEVICE_SYSFS_PATH "device.sysfs.path"
| device sysfs path
#define | PW_KEY_DEVICE_ICON "device.icon"
| icon for the device.
#define | PW_KEY_DEVICE_ICON_NAME "device.icon-name"
| an XDG icon name for the device.
#define | PW_KEY_DEVICE_INTENDED_ROLES "device.intended-roles"
| intended use.
#define | PW_KEY_DEVICE_CACHE_PARAMS "device.cache-params"
| cache the device spa params
#define | PW_KEY_MODULE_ID "module.id"
| module properties
#define | PW_KEY_MODULE_NAME "module.name"
| the name of the module
#define | PW_KEY_MODULE_AUTHOR "module.author"
| the author's name
#define | PW_KEY_MODULE_DESCRIPTION "module.description"
| a human readable one-line description of the module's purpose.
#define | PW_KEY_MODULE_USAGE "module.usage"
| a human readable usage description of the module's arguments.
#define | PW_KEY_MODULE_VERSION "module.version"
| a version string for the module.
#define | PW_KEY_FACTORY_ID "factory.id"
| Factory properties.
#define | PW_KEY_FACTORY_NAME "factory.name"
| the name of the factory
#define | PW_KEY_FACTORY_USAGE "factory.usage"
| the usage of the factory
#define | PW_KEY_FACTORY_TYPE_NAME "factory.type.name"
| the name of the type created by a factory
#define | PW_KEY_FACTORY_TYPE_VERSION "factory.type.version"
| the version of the type created by a factory
#define | PW_KEY_STREAM_IS_LIVE "stream.is-live"
| Stream properties.
#define | PW_KEY_STREAM_LATENCY_MIN "stream.latency.min"
| The minimum latency of the stream.
#define | PW_KEY_STREAM_LATENCY_MAX "stream.latency.max"
| The maximum latency of the stream.
#define | PW_KEY_STREAM_MONITOR "stream.monitor"
| Indicates that the stream is monitoring and might select a less accurate but faster conversion algorithm.
#define | PW_KEY_STREAM_DONT_REMIX "stream.dont-remix"
| don't remix channels
#define | PW_KEY_STREAM_CAPTURE_SINK "stream.capture.sink"
| Try to capture the sink output instead of source output.
#define | PW_KEY_MEDIA_TYPE "media.type"
| Media.
#define | PW_KEY_MEDIA_CATEGORY "media.category"
| Media Category: Playback, Capture, Duplex, Monitor, Manager.
#define | PW_KEY_MEDIA_ROLE "media.role"
| Role: Movie, Music, Camera, Screen, Communication, Game, Notification, DSP, Production, Accessibility, Test.
#define | PW_KEY_MEDIA_CLASS "media.class"
| class Ex: "Video/Source"
#define | PW_KEY_MEDIA_NAME "media.name"
| media name.
#define | PW_KEY_MEDIA_TITLE "media.title"
| title.
#define | PW_KEY_MEDIA_ARTIST "media.artist"
| artist.
#define | PW_KEY_MEDIA_COPYRIGHT "media.copyright"
| copyright string
#define | PW_KEY_MEDIA_SOFTWARE "media.software"
| generator software
#define | PW_KEY_MEDIA_LANGUAGE "media.language"
| language in POSIX format.
#define | PW_KEY_MEDIA_FILENAME "media.filename"
| filename
#define | PW_KEY_MEDIA_ICON "media.icon"
| icon for the media, a base64 blob with PNG image data
#define | PW_KEY_MEDIA_ICON_NAME "media.icon-name"
| an XDG icon name for the media.
#define | PW_KEY_MEDIA_COMMENT "media.comment"
| extra comment
#define | PW_KEY_MEDIA_DATE "media.date"
| date of the media
#define | PW_KEY_MEDIA_FORMAT "media.format"
| format of the media
#define | PW_KEY_FORMAT_DSP "format.dsp"
| format related properties
#define | PW_KEY_AUDIO_CHANNEL "audio.channel"
| audio related properties
#define | PW_KEY_AUDIO_RATE "audio.rate"
| an audio samplerate
#define | PW_KEY_AUDIO_CHANNELS "audio.channels"
| number of audio channels
#define | PW_KEY_AUDIO_FORMAT "audio.format"
| an audio format.
#define | PW_KEY_AUDIO_ALLOWED_RATES "audio.allowed-rates"
| a list of allowed samplerates ex.
#define | PW_KEY_VIDEO_RATE "video.framerate"
| video related properties
#define | PW_KEY_VIDEO_FORMAT "video.format"
| a video format
#define | PW_KEY_VIDEO_SIZE "video.size"
| a video size as "<width>x<height"
#define | PW_KEY_TARGET_OBJECT "target.object"
| a target object to link to.
#define | PW_KEY_PRIORITY_MASTER PW_DEPRECATED("priority.master")
#define | PW_KEY_NODE_TARGET PW_DEPRECATED("node.target")

## Detailed Description

A collection of keys that are used to add extra information on objects.

Keys that start with "pipewire." are in general set-once and then read-only. They are usually used for security sensitive information that needs to be fixed.

Properties from other objects can also appear. This usually suggests some sort of parent/child or owner/owned relationship.

## Macro Definition Documentation

## ◆ PW_KEY_PROTOCOL

#define PW_KEY_PROTOCOL "pipewire.protocol"

protocol used for connection

## ◆ PW_KEY_ACCESS

#define PW_KEY_ACCESS "pipewire.access"

how the client access is controlled

## ◆ PW_KEY_CLIENT_ACCESS

#define PW_KEY_CLIENT_ACCESS "pipewire.client.access

how the client wants to be access controlled

## ◆ PW_KEY_SEC_PID

#define PW_KEY_SEC_PID "pipewire.sec.pid"

Various keys related to the identity of a client process and its security.

Must be obtained from trusted sources by the protocol and placed as read-only properties. Client pid, set by protocol

## ◆ PW_KEY_SEC_UID

#define PW_KEY_SEC_UID "pipewire.sec.uid"

Client uid, set by protocol.

## ◆ PW_KEY_SEC_GID

#define PW_KEY_SEC_GID "pipewire.sec.gid"

client gid, set by protocol

## ◆ PW_KEY_SEC_LABEL

#define PW_KEY_SEC_LABEL "pipewire.sec.label"

client security label, set by protocol

## ◆ PW_KEY_SEC_SOCKET

#define PW_KEY_SEC_SOCKET "pipewire.sec.socket"

client socket name, set by protocol

## ◆ PW_KEY_LIBRARY_NAME_SYSTEM

#define PW_KEY_LIBRARY_NAME_SYSTEM "library.name.system"

name of the system library to use

## ◆ PW_KEY_LIBRARY_NAME_LOOP

#define PW_KEY_LIBRARY_NAME_LOOP "library.name.loop"

name of the loop library to use

## ◆ PW_KEY_LIBRARY_NAME_DBUS

#define PW_KEY_LIBRARY_NAME_DBUS "library.name.dbus"

name of the dbus library to use

## ◆ PW_KEY_OBJECT_PATH

#define PW_KEY_OBJECT_PATH "object.path"

object properties

unique path to construct the object

## ◆ PW_KEY_OBJECT_ID

#define PW_KEY_OBJECT_ID "object.id"

a global object id

## ◆ PW_KEY_OBJECT_SERIAL

#define PW_KEY_OBJECT_SERIAL "object.serial"

a 64 bit object serial number.

This is a number incremented for each object that is created. The lower 32 bits are guaranteed to never be SPA_ID_INVALID.

## ◆ PW_KEY_OBJECT_LINGER

#define PW_KEY_OBJECT_LINGER "object.linger"

the object lives on even after the client that created it has been destroyed

## ◆ PW_KEY_OBJECT_REGISTER

#define PW_KEY_OBJECT_REGISTER "object.register"

If the object should be registered.

## ◆ PW_KEY_OBJECT_EXPORT

#define PW_KEY_OBJECT_EXPORT "object.export"

If the object should be exported, since 0.3.72.

## ◆ PW_KEY_CONFIG_PREFIX

#define PW_KEY_CONFIG_PREFIX "config.prefix"

a config prefix directory

## ◆ PW_KEY_CONFIG_NAME

#define PW_KEY_CONFIG_NAME "config.name"

a config file name

Examples
  audio-capture.c, and internal.c.

## ◆ PW_KEY_CONFIG_OVERRIDE_PREFIX

#define PW_KEY_CONFIG_OVERRIDE_PREFIX "config.override.prefix"

a config override prefix directory

## ◆ PW_KEY_CONFIG_OVERRIDE_NAME

#define PW_KEY_CONFIG_OVERRIDE_NAME "config.override.name"

a config override file name

## ◆ PW_KEY_CONTEXT_PROFILE_MODULES

#define PW_KEY_CONTEXT_PROFILE_MODULES "context.profile.modules"

a context profile for modules, deprecated

## ◆ PW_KEY_USER_NAME

#define PW_KEY_USER_NAME "context.user-name"

The user name that runs pipewire.

## ◆ PW_KEY_HOST_NAME

#define PW_KEY_HOST_NAME "context.host-name"

The host name of the machine.

## ◆ PW_KEY_CORE_NAME

#define PW_KEY_CORE_NAME "core.name"

The name of the core.

Default is `pipewire-<username>-<pid>`, overwritten by env(PIPEWIRE_CORE)

## ◆ PW_KEY_CORE_VERSION

#define PW_KEY_CORE_VERSION "core.version"

The version of the core.

## ◆ PW_KEY_CORE_DAEMON

#define PW_KEY_CORE_DAEMON "core.daemon"

If the core is listening for connections.

## ◆ PW_KEY_CORE_ID

#define PW_KEY_CORE_ID "core.id"

the core id

## ◆ PW_KEY_CORE_MONITORS

#define PW_KEY_CORE_MONITORS "core.monitors"

the apis monitored by core.

## ◆ PW_KEY_CPU_MAX_ALIGN

#define PW_KEY_CPU_MAX_ALIGN "cpu.max-align"

maximum alignment needed to support all CPU optimizations

## ◆ PW_KEY_CPU_CORES

#define PW_KEY_CPU_CORES "cpu.cores"

number of cores

## ◆ PW_KEY_PRIORITY_SESSION

#define PW_KEY_PRIORITY_SESSION "priority.session"

priority in session manager

## ◆ PW_KEY_PRIORITY_DRIVER

#define PW_KEY_PRIORITY_DRIVER "priority.driver"

priority to be a driver

Examples
  video-play-pull.c.

## ◆ PW_KEY_REMOTE_NAME

#define PW_KEY_REMOTE_NAME "remote.name"

The name of the remote to connect to, default pipewire-0, overwritten by env(PIPEWIRE_REMOTE).

May also be a SPA-JSON array of sockets, to be tried in order.

## ◆ PW_KEY_REMOTE_INTENTION

#define PW_KEY_REMOTE_INTENTION "remote.intention"

The intention of the remote connection, "generic", "screencast".

## ◆ PW_KEY_APP_NAME

#define PW_KEY_APP_NAME "application.name"

application keys

application name. Ex: "Totem Music Player"

## ◆ PW_KEY_APP_ID

#define PW_KEY_APP_ID "application.id"

a textual id for identifying an application logically.

Ex: "org.gnome.Totem"

## ◆ PW_KEY_APP_VERSION

#define PW_KEY_APP_VERSION "application.version"

application version.

Ex: "1.2.0"

## ◆ PW_KEY_APP_ICON

#define PW_KEY_APP_ICON "application.icon"

aa base64 blob with PNG image data

## ◆ PW_KEY_APP_ICON_NAME

#define PW_KEY_APP_ICON_NAME "application.icon-name"

an XDG icon name for the application.

Ex: "totem"

## ◆ PW_KEY_APP_LANGUAGE

#define PW_KEY_APP_LANGUAGE "application.language"

application language if applicable, in standard POSIX format.

Ex: "en_GB"

## ◆ PW_KEY_APP_PROCESS_ID

#define PW_KEY_APP_PROCESS_ID "application.process.id"

process id (pid)

## ◆ PW_KEY_APP_PROCESS_BINARY

#define PW_KEY_APP_PROCESS_BINARY "application.process.binary"

binary name

## ◆ PW_KEY_APP_PROCESS_USER

#define PW_KEY_APP_PROCESS_USER "application.process.user"

user name

## ◆ PW_KEY_APP_PROCESS_HOST

#define PW_KEY_APP_PROCESS_HOST "application.process.host"

host name

## ◆ PW_KEY_APP_PROCESS_MACHINE_ID

#define PW_KEY_APP_PROCESS_MACHINE_ID "application.process.machine-id"

the D-Bus host id the application runs on

## ◆ PW_KEY_APP_PROCESS_SESSION_ID

#define PW_KEY_APP_PROCESS_SESSION_ID "application.process.session-id"

login session of the application, on Unix the value of $XDG_SESSION_ID.

## ◆ PW_KEY_WINDOW_X11_DISPLAY

#define PW_KEY_WINDOW_X11_DISPLAY "window.x11.display"

window system

the X11 display string. Ex. ":0.0"

## ◆ PW_KEY_CLIENT_ID

#define PW_KEY_CLIENT_ID "client.id"

Client properties.

a client id

## ◆ PW_KEY_CLIENT_NAME

#define PW_KEY_CLIENT_NAME "client.name"

the client name

## ◆ PW_KEY_CLIENT_API

#define PW_KEY_CLIENT_API "client.api"

the client api used to access PipeWire

## ◆ PW_KEY_NODE_ID

#define PW_KEY_NODE_ID "node.id"

Node keys.

node id

## ◆ PW_KEY_NODE_NAME

#define PW_KEY_NODE_NAME "node.name"

node name

Examples
  internal.c.

## ◆ PW_KEY_NODE_NICK

#define PW_KEY_NODE_NICK "node.nick"

short node name

## ◆ PW_KEY_NODE_DESCRIPTION

#define PW_KEY_NODE_DESCRIPTION "node.description"

localized human readable node one-line description.

Ex. "Foobar USB Headset"

## ◆ PW_KEY_NODE_PLUGGED

#define PW_KEY_NODE_PLUGGED "node.plugged"

when the node was created.

As a uint64 in nanoseconds.

## ◆ PW_KEY_NODE_SESSION

#define PW_KEY_NODE_SESSION "node.session"

the session id this node is part of

## ◆ PW_KEY_NODE_GROUP

#define PW_KEY_NODE_GROUP "node.group"

the group id this node is part of.

Nodes in the same group are always scheduled with the same driver. Can be an array of group names.

## ◆ PW_KEY_NODE_EXCLUSIVE

#define PW_KEY_NODE_EXCLUSIVE "node.exclusive"

node wants exclusive access to resources

Examples
  export-source.c.

## ◆ PW_KEY_NODE_AUTOCONNECT

#define PW_KEY_NODE_AUTOCONNECT "node.autoconnect"

node wants to be automatically connected to a compatible node

Examples
  audio-dsp-src.c, export-sink.c, export-source.c, export-spa.c, and video-dsp-play.c.

## ◆ PW_KEY_NODE_LATENCY

#define PW_KEY_NODE_LATENCY "node.latency"

the requested latency of the node as a fraction.

Ex: 128/48000

## ◆ PW_KEY_NODE_MAX_LATENCY

#define PW_KEY_NODE_MAX_LATENCY "node.max-latency"

the maximum supported latency of the node as a fraction.

Ex: 1024/48000

## ◆ PW_KEY_NODE_LOCK_QUANTUM

#define PW_KEY_NODE_LOCK_QUANTUM "node.lock-quantum"

don't change quantum when this node is active

## ◆ PW_KEY_NODE_FORCE_QUANTUM

#define PW_KEY_NODE_FORCE_QUANTUM "node.force-quantum"

force a quantum while the node is active

## ◆ PW_KEY_NODE_RATE

#define PW_KEY_NODE_RATE "node.rate"

the requested rate of the graph as a fraction.

Ex: 1/48000

## ◆ PW_KEY_NODE_LOCK_RATE

#define PW_KEY_NODE_LOCK_RATE "node.lock-rate"

don't change rate when this node is active

## ◆ PW_KEY_NODE_FORCE_RATE

#define PW_KEY_NODE_FORCE_RATE "node.force-rate"

force a rate while the node is active.

A value of 0 takes the denominator of node.rate

## ◆ PW_KEY_NODE_DONT_RECONNECT

#define PW_KEY_NODE_DONT_RECONNECT "node.dont-reconnect"

don't reconnect this node.

The node is initially linked to target.object or the default node. If the target is removed, the node is destroyed

## ◆ PW_KEY_NODE_ALWAYS_PROCESS

#define PW_KEY_NODE_ALWAYS_PROCESS "node.always-process"

process even when unlinked

## ◆ PW_KEY_NODE_WANT_DRIVER

#define PW_KEY_NODE_WANT_DRIVER "node.want-driver"

the node wants to be grouped with a driver node in order to schedule the graph.

## ◆ PW_KEY_NODE_PAUSE_ON_IDLE

#define PW_KEY_NODE_PAUSE_ON_IDLE "node.pause-on-idle"

pause the node when idle

## ◆ PW_KEY_NODE_SUSPEND_ON_IDLE

#define PW_KEY_NODE_SUSPEND_ON_IDLE "node.suspend-on-idle"

suspend the node when idle

## ◆ PW_KEY_NODE_CACHE_PARAMS

#define PW_KEY_NODE_CACHE_PARAMS "node.cache-params"

cache the node params

## ◆ PW_KEY_NODE_TRANSPORT_SYNC

#define PW_KEY_NODE_TRANSPORT_SYNC "node.transport.sync"

the node handles transport sync

## ◆ PW_KEY_NODE_DRIVER

#define PW_KEY_NODE_DRIVER "node.driver"

node can drive the graph

## ◆ PW_KEY_NODE_STREAM

#define PW_KEY_NODE_STREAM "node.stream"

node is a stream, the server side should add a converter

## ◆ PW_KEY_NODE_VIRTUAL

#define PW_KEY_NODE_VIRTUAL "node.virtual"

the node is some sort of virtual object

## ◆ PW_KEY_NODE_PASSIVE

#define PW_KEY_NODE_PASSIVE "node.passive"

indicate that a node wants passive links on output/input/all ports when the value is "out"/"in"/"true" respectively

## ◆ PW_KEY_NODE_LINK_GROUP

#define PW_KEY_NODE_LINK_GROUP "node.link-group"

the node is internally linked to nodes with the same link-group.

Can be an array of group names.

## ◆ PW_KEY_NODE_NETWORK

#define PW_KEY_NODE_NETWORK "node.network"

the node is on a network

## ◆ PW_KEY_NODE_TRIGGER

#define PW_KEY_NODE_TRIGGER "node.trigger"

the node is not scheduled automatically based on the dependencies in the graph but it will be triggered explicitly.

## ◆ PW_KEY_NODE_CHANNELNAMES

#define PW_KEY_NODE_CHANNELNAMES "node.channel-names"

names of node's channels (unrelated to positions)

## ◆ PW_KEY_NODE_DEVICE_PORT_NAME_PREFIX

#define PW_KEY_NODE_DEVICE_PORT_NAME_PREFIX

## ◆ PW_KEY_PORT_ID

#define PW_KEY_PORT_ID "port.id"

Port keys.

port id

## ◆ PW_KEY_PORT_NAME

#define PW_KEY_PORT_NAME "port.name"

port name

Examples
  audio-dsp-filter.c, audio-dsp-src.c, and video-dsp-play.c.

## ◆ PW_KEY_PORT_DIRECTION

#define PW_KEY_PORT_DIRECTION "port.direction"

the port direction, one of "in" or "out" or "control" and "notify" for control ports

## ◆ PW_KEY_PORT_ALIAS

#define PW_KEY_PORT_ALIAS "port.alias"

port alias

## ◆ PW_KEY_PORT_PHYSICAL

#define PW_KEY_PORT_PHYSICAL "port.physical"

if this is a physical port

## ◆ PW_KEY_PORT_TERMINAL

#define PW_KEY_PORT_TERMINAL "port.terminal"

if this port consumes the data

## ◆ PW_KEY_PORT_CONTROL

#define PW_KEY_PORT_CONTROL "port.control"

if this port is a control port

## ◆ PW_KEY_PORT_MONITOR

#define PW_KEY_PORT_MONITOR "port.monitor"

if this port is a monitor port

## ◆ PW_KEY_PORT_CACHE_PARAMS

#define PW_KEY_PORT_CACHE_PARAMS "port.cache-params"

cache the node port params

## ◆ PW_KEY_PORT_EXTRA

#define PW_KEY_PORT_EXTRA "port.extra"

api specific extra port info, API name should be prefixed.

"jack:flags:56"

## ◆ PW_KEY_PORT_PASSIVE

#define PW_KEY_PORT_PASSIVE "port.passive"

the ports wants passive links, since 0.3.67

## ◆ PW_KEY_PORT_IGNORE_LATENCY

#define PW_KEY_PORT_IGNORE_LATENCY "port.ignore-latency"

latency ignored by peers, since 0.3.71

## ◆ PW_KEY_LINK_ID

#define PW_KEY_LINK_ID "link.id"

link properties

a link id

## ◆ PW_KEY_LINK_INPUT_NODE

#define PW_KEY_LINK_INPUT_NODE "link.input.node"

input node id of a link

Examples
  internal.c.

## ◆ PW_KEY_LINK_INPUT_PORT

#define PW_KEY_LINK_INPUT_PORT "link.input.port"

input port id of a link

## ◆ PW_KEY_LINK_OUTPUT_NODE

#define PW_KEY_LINK_OUTPUT_NODE "link.output.node"

output node id of a link

Examples
  internal.c.

## ◆ PW_KEY_LINK_OUTPUT_PORT

#define PW_KEY_LINK_OUTPUT_PORT "link.output.port"

output port id of a link

## ◆ PW_KEY_LINK_PASSIVE

#define PW_KEY_LINK_PASSIVE "link.passive"

indicate that a link is passive and does not cause the graph to be runnable.

## ◆ PW_KEY_LINK_FEEDBACK

#define PW_KEY_LINK_FEEDBACK "link.feedback"

indicate that a link is a feedback link and the target will receive data in the next cycle

## ◆ PW_KEY_DEVICE_ID

#define PW_KEY_DEVICE_ID "device.id"

device properties

device id

## ◆ PW_KEY_DEVICE_NAME

#define PW_KEY_DEVICE_NAME "device.name"

device name

## ◆ PW_KEY_DEVICE_PLUGGED

#define PW_KEY_DEVICE_PLUGGED "device.plugged"

when the device was created.

As a uint64 in nanoseconds.

## ◆ PW_KEY_DEVICE_NICK

#define PW_KEY_DEVICE_NICK "device.nick"

a short device nickname

## ◆ PW_KEY_DEVICE_STRING

#define PW_KEY_DEVICE_STRING "device.string"

device string in the underlying layer's format.

Ex. "surround51:0"

## ◆ PW_KEY_DEVICE_API

#define PW_KEY_DEVICE_API "device.api"

API this device is accessed with.

Ex. "alsa", "v4l2"

## ◆ PW_KEY_DEVICE_DESCRIPTION

#define PW_KEY_DEVICE_DESCRIPTION "device.description"

localized human readable device one-line description.

Ex. "Foobar USB Headset"

## ◆ PW_KEY_DEVICE_BUS_PATH

#define PW_KEY_DEVICE_BUS_PATH "device.bus-path"

bus path to the device in the OS' format.

Ex. "pci-0000:00:14.0-usb-0:3.2:1.0"

## ◆ PW_KEY_DEVICE_SERIAL

#define PW_KEY_DEVICE_SERIAL "device.serial"

Serial number if applicable.

## ◆ PW_KEY_DEVICE_VENDOR_ID

#define PW_KEY_DEVICE_VENDOR_ID "device.vendor.id"

vendor ID if applicable

## ◆ PW_KEY_DEVICE_VENDOR_NAME

#define PW_KEY_DEVICE_VENDOR_NAME "device.vendor.name"

vendor name if applicable

## ◆ PW_KEY_DEVICE_PRODUCT_ID

#define PW_KEY_DEVICE_PRODUCT_ID "device.product.id"

product ID if applicable

## ◆ PW_KEY_DEVICE_PRODUCT_NAME

#define PW_KEY_DEVICE_PRODUCT_NAME "device.product.name"

product name if applicable

## ◆ PW_KEY_DEVICE_CLASS

#define PW_KEY_DEVICE_CLASS "device.class"

device class

## ◆ PW_KEY_DEVICE_FORM_FACTOR

#define PW_KEY_DEVICE_FORM_FACTOR "device.form-factor"

form factor if applicable.

One of "internal", "speaker", "handset", "tv", "webcam", "microphone", "headset", "headphone", "hands-free", "car", "hifi", "computer", "portable"

## ◆ PW_KEY_DEVICE_BUS

#define PW_KEY_DEVICE_BUS "device.bus"

bus of the device if applicable.

One of "isa", "pci", "usb", "firewire", "bluetooth"

## ◆ PW_KEY_DEVICE_SUBSYSTEM

#define PW_KEY_DEVICE_SUBSYSTEM "device.subsystem"

device subsystem

## ◆ PW_KEY_DEVICE_SYSFS_PATH

#define PW_KEY_DEVICE_SYSFS_PATH "device.sysfs.path"

device sysfs path

## ◆ PW_KEY_DEVICE_ICON

#define PW_KEY_DEVICE_ICON "device.icon"

icon for the device.

A base64 blob containing PNG image data

## ◆ PW_KEY_DEVICE_ICON_NAME

#define PW_KEY_DEVICE_ICON_NAME "device.icon-name"

an XDG icon name for the device.

Ex. "sound-card-speakers-usb"

## ◆ PW_KEY_DEVICE_INTENDED_ROLES

#define PW_KEY_DEVICE_INTENDED_ROLES "device.intended-roles"

intended use.

A space separated list of roles (see PW_KEY_MEDIA_ROLE) this device is particularly well suited for, due to latency, quality or form factor.

## ◆ PW_KEY_DEVICE_CACHE_PARAMS

#define PW_KEY_DEVICE_CACHE_PARAMS "device.cache-params"

cache the device spa params

## ◆ PW_KEY_MODULE_ID

#define PW_KEY_MODULE_ID "module.id"

module properties

the module id

## ◆ PW_KEY_MODULE_NAME

#define PW_KEY_MODULE_NAME "module.name"

the name of the module

## ◆ PW_KEY_MODULE_AUTHOR

#define PW_KEY_MODULE_AUTHOR "module.author"

the author's name

## ◆ PW_KEY_MODULE_DESCRIPTION

#define PW_KEY_MODULE_DESCRIPTION "module.description"

a human readable one-line description of the module's purpose.

## ◆ PW_KEY_MODULE_USAGE

#define PW_KEY_MODULE_USAGE "module.usage"

a human readable usage description of the module's arguments.

## ◆ PW_KEY_MODULE_VERSION

#define PW_KEY_MODULE_VERSION "module.version"

a version string for the module.

## ◆ PW_KEY_FACTORY_ID

#define PW_KEY_FACTORY_ID "factory.id"

Factory properties.

the factory id

## ◆ PW_KEY_FACTORY_NAME

#define PW_KEY_FACTORY_NAME "factory.name"

the name of the factory

## ◆ PW_KEY_FACTORY_USAGE

#define PW_KEY_FACTORY_USAGE "factory.usage"

the usage of the factory

## ◆ PW_KEY_FACTORY_TYPE_NAME

#define PW_KEY_FACTORY_TYPE_NAME "factory.type.name"

the name of the type created by a factory

## ◆ PW_KEY_FACTORY_TYPE_VERSION

#define PW_KEY_FACTORY_TYPE_VERSION "factory.type.version"

the version of the type created by a factory

## ◆ PW_KEY_STREAM_IS_LIVE

#define PW_KEY_STREAM_IS_LIVE "stream.is-live"

Stream properties.

Indicates that the stream is live.

## ◆ PW_KEY_STREAM_LATENCY_MIN

#define PW_KEY_STREAM_LATENCY_MIN "stream.latency.min"

The minimum latency of the stream.

## ◆ PW_KEY_STREAM_LATENCY_MAX

#define PW_KEY_STREAM_LATENCY_MAX "stream.latency.max"

The maximum latency of the stream.

## ◆ PW_KEY_STREAM_MONITOR

#define PW_KEY_STREAM_MONITOR "stream.monitor"

Indicates that the stream is monitoring and might select a less accurate but faster conversion algorithm.

Monitor streams are also ignored when calculating the latency of their peer ports (since 0.3.71).

## ◆ PW_KEY_STREAM_DONT_REMIX

#define PW_KEY_STREAM_DONT_REMIX "stream.dont-remix"

don't remix channels

## ◆ PW_KEY_STREAM_CAPTURE_SINK

#define PW_KEY_STREAM_CAPTURE_SINK "stream.capture.sink"

Try to capture the sink output instead of source output.

## ◆ PW_KEY_MEDIA_TYPE

#define PW_KEY_MEDIA_TYPE "media.type"

Media.

Media type, one of Audio, Video, Midi

Examples
  audio-capture.c, audio-dsp-filter.c, audio-dsp-src.c, audio-src.c, export-sink.c, export-source.c, tutorial4.c, tutorial5.c, video-dsp-play.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, and video-play.c.

## ◆ PW_KEY_MEDIA_CATEGORY

#define PW_KEY_MEDIA_CATEGORY "media.category"

Media Category: Playback, Capture, Duplex, Monitor, Manager.

Examples
  audio-capture.c, audio-dsp-filter.c, audio-dsp-src.c, audio-src.c, export-sink.c, export-source.c, tutorial4.c, tutorial5.c, video-dsp-play.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, and video-play.c.

## ◆ PW_KEY_MEDIA_ROLE

#define PW_KEY_MEDIA_ROLE "media.role"

Role: Movie, Music, Camera, Screen, Communication, Game, Notification, DSP, Production, Accessibility, Test.

Examples
  audio-capture.c, audio-dsp-filter.c, audio-dsp-src.c, audio-src.c, export-sink.c, export-source.c, tutorial4.c, tutorial5.c, video-dsp-play.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, and video-play.c.

## ◆ PW_KEY_MEDIA_CLASS

#define PW_KEY_MEDIA_CLASS "media.class"

class Ex: "Video/Source"

Examples
  audio-dsp-src.c, export-sink.c, video-dsp-play.c, video-src-alloc.c, video-src-fixate.c, video-src-reneg.c, and video-src.c.

## ◆ PW_KEY_MEDIA_NAME

#define PW_KEY_MEDIA_NAME "media.name"

media name.

Ex: "Pink Floyd: Time"

## ◆ PW_KEY_MEDIA_TITLE

#define PW_KEY_MEDIA_TITLE "media.title"

title.

Ex: "Time"

## ◆ PW_KEY_MEDIA_ARTIST

#define PW_KEY_MEDIA_ARTIST "media.artist"

artist.

Ex: "Pink Floyd"

## ◆ PW_KEY_MEDIA_COPYRIGHT

#define PW_KEY_MEDIA_COPYRIGHT "media.copyright"

copyright string

## ◆ PW_KEY_MEDIA_SOFTWARE

#define PW_KEY_MEDIA_SOFTWARE "media.software"

generator software

## ◆ PW_KEY_MEDIA_LANGUAGE

#define PW_KEY_MEDIA_LANGUAGE "media.language"

language in POSIX format.

Ex: en_GB

## ◆ PW_KEY_MEDIA_FILENAME

#define PW_KEY_MEDIA_FILENAME "media.filename"

filename

## ◆ PW_KEY_MEDIA_ICON

#define PW_KEY_MEDIA_ICON "media.icon"

icon for the media, a base64 blob with PNG image data

## ◆ PW_KEY_MEDIA_ICON_NAME

#define PW_KEY_MEDIA_ICON_NAME "media.icon-name"

an XDG icon name for the media.

Ex: "audio-x-mp3"

## ◆ PW_KEY_MEDIA_COMMENT

#define PW_KEY_MEDIA_COMMENT "media.comment"

extra comment

## ◆ PW_KEY_MEDIA_DATE

#define PW_KEY_MEDIA_DATE "media.date"

date of the media

## ◆ PW_KEY_MEDIA_FORMAT

#define PW_KEY_MEDIA_FORMAT "media.format"

format of the media

## ◆ PW_KEY_FORMAT_DSP

#define PW_KEY_FORMAT_DSP "format.dsp"

format related properties

a dsp format. Ex: "32 bit float mono audio"

Examples
  audio-dsp-filter.c, audio-dsp-src.c, export-source.c, and video-dsp-play.c.

## ◆ PW_KEY_AUDIO_CHANNEL

#define PW_KEY_AUDIO_CHANNEL "audio.channel"

audio related properties

an audio channel. Ex: "FL"

## ◆ PW_KEY_AUDIO_RATE

#define PW_KEY_AUDIO_RATE "audio.rate"

an audio samplerate

## ◆ PW_KEY_AUDIO_CHANNELS

#define PW_KEY_AUDIO_CHANNELS "audio.channels"

number of audio channels

## ◆ PW_KEY_AUDIO_FORMAT

#define PW_KEY_AUDIO_FORMAT "audio.format"

an audio format.

Ex: "S16LE"

## ◆ PW_KEY_AUDIO_ALLOWED_RATES

#define PW_KEY_AUDIO_ALLOWED_RATES "audio.allowed-rates"

a list of allowed samplerates ex.

"[ 44100 48000 ]"

## ◆ PW_KEY_VIDEO_RATE

#define PW_KEY_VIDEO_RATE "video.framerate"

video related properties

a video framerate

## ◆ PW_KEY_VIDEO_FORMAT

#define PW_KEY_VIDEO_FORMAT "video.format"

a video format

## ◆ PW_KEY_VIDEO_SIZE

#define PW_KEY_VIDEO_SIZE "video.size"

a video size as "<width>x<height"

## ◆ PW_KEY_TARGET_OBJECT

#define PW_KEY_TARGET_OBJECT "target.object"

a target object to link to.

This can be and object name or object.serial

Examples
  audio-capture.c, audio-src.c, export-sink.c, export-source.c, export-spa.c, tutorial5.c, video-dsp-play.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, and video-play.c.

## ◆ PW_KEY_PRIORITY_MASTER

#define PW_KEY_PRIORITY_MASTER PW_DEPRECATED("priority.master")

## ◆ PW_KEY_NODE_TARGET

#define PW_KEY_NODE_TARGET PW_DEPRECATED("node.target")