Crate pipewire_sys

Source

Structs§

_IO_FILE
_IO_codecvt
_IO_marker
_IO_wide_data
__BindgenBitfieldUnit
__va_list_tag
pw_array
\addtogroup pw_array {
pw_buffer
a buffer structure obtained from pw_stream_dequeue_buffer(). The size of this structure can grow as more fields are added in the future
pw_buffers
pw_client
pw_client_endpoint
pw_client_endpoint_events
pw_client_endpoint_methods
pw_client_events
Client events
pw_client_info
The client information. Extra information can be added in later versions
pw_client_methods
Client methods
pw_client_node
pw_client_node_buffer
information about a buffer
pw_client_node_events
\ref pw_client_node events
pw_client_node_methods
\ref pw_client_node methods
pw_client_session
pw_client_session_events
pw_client_session_methods
pw_context
\addtogroup pw_context @{
pw_context_events
context events emitted by the context object added with \ref pw_context_add_listener
pw_control
\addtogroup pw_control {
pw_control_events
Port events, use \ref pw_control_add_listener
pw_core
pw_core_events
\struct pw_core_events \brief Core events
pw_core_info
The core information. Extra information may be added in later versions, clients must not assume a constant struct size
pw_core_methods
\struct pw_core_methods \brief Core methods
pw_data_loop
\addtogroup pw_data_loop {
pw_data_loop_events
Loop events, use \ref pw_data_loop_add_listener to add a listener
pw_device
pw_device_events
Device events
pw_device_info
The device information. Extra information can be added in later versions
pw_device_methods
Device methods
pw_endpoint
pw_endpoint_events
pw_endpoint_info
pw_endpoint_link
pw_endpoint_link_events
pw_endpoint_link_info
pw_endpoint_link_methods
pw_endpoint_methods
pw_endpoint_stream
pw_endpoint_stream_events
pw_endpoint_stream_info
pw_endpoint_stream_methods
pw_export_type
data for registering export functions
pw_factory
pw_factory_events
Factory events
pw_factory_info
The factory information. Extra information can be added in later versions
pw_factory_methods
Factory methods
pw_filter
\addtogroup pw_filter {
pw_filter_events
Events for a filter. These events are always called from the mainloop unless explicitly documented otherwise.
pw_global
\addtogroup pw_global {
pw_global_events
Global events, use \ref pw_global_add_listener
pw_impl_client
\addtogroup api_pw_impl
pw_impl_client_events
The events that a client can emit
pw_impl_core
\addtogroup pw_impl_core {
pw_impl_core_events
Factory events, listen to them with \ref pw_impl_core_add_listener
pw_impl_device
\addtogroup pw_impl_device {
pw_impl_device_events
Device events, listen to them with \ref pw_impl_device_add_listener
pw_impl_factory
\addtogroup pw_impl_factory {
pw_impl_factory_events
Factory events, listen to them with \ref pw_impl_factory_add_listener
pw_impl_factory_implementation
pw_impl_link
\addtogroup pw_impl_link {
pw_impl_link_events
link events added with \ref pw_impl_link_add_listener
pw_impl_metadata
\addtogroup pw_impl_metadata {
pw_impl_metadata_events
Metadata events, listen to them with \ref pw_impl_metadata_add_listener
pw_impl_module
\addtogroup pw_impl_module {
pw_impl_module_events
Module events added with \ref pw_impl_module_add_listener
pw_impl_node
\defgroup pw_impl_node Node Impl
pw_impl_node_events
Node events, listen to them with \ref pw_impl_node_add_listener
pw_impl_node_rt_events
pw_impl_port
\addtogroup pw_impl_port {
pw_impl_port_events
Port events, use \ref pw_impl_port_add_listener
pw_link
pw_link_events
Link events
pw_link_info
The link information. Extra information can be added in later versions
pw_link_methods
Link methods
pw_loop
\addtogroup pw_loop {
pw_main_loop
A main loop object
pw_main_loop_events
Events of the main loop
pw_map
A map. This struct should be treated as opaque by the caller.
pw_map_range
parameters to map a memory range
pw_memblock
Memory block structure
pw_memchunk
pw_memmap
a mapped region of a pw_memblock
pw_mempool
A memory pool is a collection of pw_memblocks
pw_mempool_events
pw_metadata
pw_metadata_events
\ref pw_metadata events
pw_metadata_methods
\ref pw_metadata methods
pw_module
pw_module_events
Module events
pw_module_info
The module information. Extra information can be added in later versions
pw_module_methods
Module methods
pw_node
pw_node_events
Node events
pw_node_info
The node information. Extra information can be added in later versions
pw_node_methods
Node methods
pw_permission
pw_port
pw_port_events
Port events
pw_port_info
pw_port_methods
Port methods
pw_profiler
pw_profiler_events
\ref pw_profiler events
pw_profiler_methods
\ref pw_profiler methods
pw_properties
\addtogroup pw_properties {
pw_protocol
\addtogroup pw_protocol {
pw_protocol_client
pw_protocol_events
pw_protocol_implementation
pw_protocol_marshal
pw_protocol_native_demarshal
pw_protocol_native_ext
\ref pw_protocol_native_ext methods
pw_protocol_native_message
pw_protocol_server
pw_proxy
\addtogroup pw_proxy {
pw_proxy_events
Proxy events, use \ref pw_proxy_add_listener
pw_registry
pw_registry_events
Registry events
pw_registry_methods
Registry methods
pw_resource
\addtogroup pw_resource {
pw_resource_events
Resource events
pw_session
pw_session_events
pw_session_info
pw_session_methods
pw_stream
\addtogroup pw_stream {
pw_stream_control
pw_stream_events
Events for a stream. These events are always called from the mainloop unless explicitly documented otherwise.
pw_thread_loop
\addtogroup pw_thread_loop {
pw_thread_loop_events
Thread loop events
pw_time
A time structure.
pw_work_queue
\addtogroup pw_work_queue {
timespec

Constants§

PW_API_VERSION
PW_BUFFERS_FLAG_ASYNC
PW_BUFFERS_FLAG_DYNAMIC
PW_BUFFERS_FLAG_IN_PRIORITY
PW_BUFFERS_FLAG_NONE
PW_BUFFERS_FLAG_NO_MEM
PW_BUFFERS_FLAG_SHARED
PW_BUFFERS_FLAG_SHARED_MEM
PW_CLIENT_CHANGE_MASK_ALL
PW_CLIENT_CHANGE_MASK_PROPS
PW_CLIENT_ENDPOINT_EVENT_CREATE_LINK
PW_CLIENT_ENDPOINT_EVENT_NUM
PW_CLIENT_ENDPOINT_EVENT_SET_PARAM
PW_CLIENT_ENDPOINT_EVENT_SET_SESSION_ID
PW_CLIENT_ENDPOINT_EVENT_STREAM_SET_PARAM
PW_CLIENT_ENDPOINT_METHOD_ADD_LISTENER
PW_CLIENT_ENDPOINT_METHOD_NUM
PW_CLIENT_ENDPOINT_METHOD_STREAM_UPDATE
PW_CLIENT_ENDPOINT_METHOD_UPDATE
PW_CLIENT_ENDPOINT_STREAM_UPDATE_DESTROYED
PW_CLIENT_ENDPOINT_STREAM_UPDATE_INFO
PW_CLIENT_ENDPOINT_STREAM_UPDATE_PARAMS
PW_CLIENT_ENDPOINT_UPDATE_INFO
PW_CLIENT_ENDPOINT_UPDATE_PARAMS
PW_CLIENT_EVENT_INFO
PW_CLIENT_EVENT_NUM
PW_CLIENT_EVENT_PERMISSIONS
PW_CLIENT_METHOD_ADD_LISTENER
PW_CLIENT_METHOD_ERROR
PW_CLIENT_METHOD_GET_PERMISSIONS
PW_CLIENT_METHOD_NUM
PW_CLIENT_METHOD_UPDATE_PERMISSIONS
PW_CLIENT_METHOD_UPDATE_PROPERTIES
PW_CLIENT_NODE_EVENT_ADD_PORT
PW_CLIENT_NODE_EVENT_COMMAND
PW_CLIENT_NODE_EVENT_EVENT
PW_CLIENT_NODE_EVENT_NUM
PW_CLIENT_NODE_EVENT_PORT_SET_IO
PW_CLIENT_NODE_EVENT_PORT_SET_MIX_INFO
PW_CLIENT_NODE_EVENT_PORT_SET_PARAM
PW_CLIENT_NODE_EVENT_PORT_USE_BUFFERS
PW_CLIENT_NODE_EVENT_REMOVE_PORT
PW_CLIENT_NODE_EVENT_SET_ACTIVATION
PW_CLIENT_NODE_EVENT_SET_IO
PW_CLIENT_NODE_EVENT_SET_PARAM
PW_CLIENT_NODE_EVENT_TRANSPORT
PW_CLIENT_NODE_METHOD_ADD_LISTENER
PW_CLIENT_NODE_METHOD_EVENT
PW_CLIENT_NODE_METHOD_GET_NODE
PW_CLIENT_NODE_METHOD_NUM
PW_CLIENT_NODE_METHOD_PORT_BUFFERS
PW_CLIENT_NODE_METHOD_PORT_UPDATE
PW_CLIENT_NODE_METHOD_SET_ACTIVE
PW_CLIENT_NODE_METHOD_UPDATE
PW_CLIENT_NODE_PORT_UPDATE_INFO
PW_CLIENT_NODE_PORT_UPDATE_PARAMS
PW_CLIENT_NODE_UPDATE_INFO
PW_CLIENT_NODE_UPDATE_PARAMS
PW_CLIENT_PERM_MASK
PW_CLIENT_SESSION_EVENT_LINK_REQUEST_STATE
PW_CLIENT_SESSION_EVENT_LINK_SET_PARAM
PW_CLIENT_SESSION_EVENT_NUM
PW_CLIENT_SESSION_EVENT_SET_PARAM
PW_CLIENT_SESSION_LINK_UPDATE_DESTROYED
PW_CLIENT_SESSION_LINK_UPDATE_INFO
PW_CLIENT_SESSION_LINK_UPDATE_PARAMS
PW_CLIENT_SESSION_METHOD_ADD_LISTENER
PW_CLIENT_SESSION_METHOD_LINK_UPDATE
PW_CLIENT_SESSION_METHOD_NUM
PW_CLIENT_SESSION_METHOD_UPDATE
PW_CLIENT_SESSION_UPDATE_INFO
PW_CLIENT_SESSION_UPDATE_PARAMS
PW_CORE_CHANGE_MASK_ALL
PW_CORE_CHANGE_MASK_PROPS
PW_CORE_EVENT_ADD_MEM
PW_CORE_EVENT_BOUND_ID
PW_CORE_EVENT_BOUND_PROPS
PW_CORE_EVENT_DONE
PW_CORE_EVENT_ERROR
PW_CORE_EVENT_INFO
PW_CORE_EVENT_NUM
PW_CORE_EVENT_PING
PW_CORE_EVENT_REMOVE_ID
PW_CORE_EVENT_REMOVE_MEM
PW_CORE_METHOD_ADD_LISTENER
PW_CORE_METHOD_CREATE_OBJECT
PW_CORE_METHOD_DESTROY
PW_CORE_METHOD_ERROR
PW_CORE_METHOD_GET_REGISTRY
PW_CORE_METHOD_HELLO
PW_CORE_METHOD_NUM
PW_CORE_METHOD_PONG
PW_CORE_METHOD_SYNC
PW_CORE_PERM_MASK
PW_DEFAULT_REMOTE
PW_DEVICE_CHANGE_MASK_ALL
PW_DEVICE_CHANGE_MASK_PARAMS
PW_DEVICE_CHANGE_MASK_PROPS
PW_DEVICE_EVENT_INFO
PW_DEVICE_EVENT_NUM
PW_DEVICE_EVENT_PARAM
PW_DEVICE_METHOD_ADD_LISTENER
PW_DEVICE_METHOD_ENUM_PARAMS
PW_DEVICE_METHOD_NUM
PW_DEVICE_METHOD_SET_PARAM
PW_DEVICE_METHOD_SUBSCRIBE_PARAMS
PW_DEVICE_PERM_MASK
PW_DIRECTION_INPUT
PW_DIRECTION_OUTPUT
PW_ENDPOINT_CHANGE_MASK_ALL
PW_ENDPOINT_CHANGE_MASK_PARAMS
PW_ENDPOINT_CHANGE_MASK_PROPS
PW_ENDPOINT_CHANGE_MASK_SESSION
PW_ENDPOINT_CHANGE_MASK_STREAMS
PW_ENDPOINT_EVENT_INFO
PW_ENDPOINT_EVENT_NUM
PW_ENDPOINT_EVENT_PARAM
PW_ENDPOINT_FLAG_PROVIDES_SESSION
PW_ENDPOINT_LINK_CHANGE_MASK_ALL
PW_ENDPOINT_LINK_CHANGE_MASK_PARAMS
PW_ENDPOINT_LINK_CHANGE_MASK_PROPS
PW_ENDPOINT_LINK_CHANGE_MASK_STATE
PW_ENDPOINT_LINK_EVENT_INFO
PW_ENDPOINT_LINK_EVENT_NUM
PW_ENDPOINT_LINK_EVENT_PARAM
PW_ENDPOINT_LINK_METHOD_ADD_LISTENER
PW_ENDPOINT_LINK_METHOD_DESTROY
PW_ENDPOINT_LINK_METHOD_ENUM_PARAMS
PW_ENDPOINT_LINK_METHOD_NUM
PW_ENDPOINT_LINK_METHOD_REQUEST_STATE
PW_ENDPOINT_LINK_METHOD_SET_PARAM
PW_ENDPOINT_LINK_METHOD_SUBSCRIBE_PARAMS
PW_ENDPOINT_LINK_PERM_MASK
PW_ENDPOINT_METHOD_ADD_LISTENER
PW_ENDPOINT_METHOD_CREATE_LINK
PW_ENDPOINT_METHOD_ENUM_PARAMS
PW_ENDPOINT_METHOD_NUM
PW_ENDPOINT_METHOD_SET_PARAM
PW_ENDPOINT_METHOD_SUBSCRIBE_PARAMS
PW_ENDPOINT_PERM_MASK
PW_ENDPOINT_STREAM_CHANGE_MASK_ALL
PW_ENDPOINT_STREAM_CHANGE_MASK_LINK_PARAMS
PW_ENDPOINT_STREAM_CHANGE_MASK_PARAMS
PW_ENDPOINT_STREAM_CHANGE_MASK_PROPS
PW_ENDPOINT_STREAM_EVENT_INFO
PW_ENDPOINT_STREAM_EVENT_NUM
PW_ENDPOINT_STREAM_EVENT_PARAM
PW_ENDPOINT_STREAM_METHOD_ADD_LISTENER
PW_ENDPOINT_STREAM_METHOD_ENUM_PARAMS
PW_ENDPOINT_STREAM_METHOD_NUM
PW_ENDPOINT_STREAM_METHOD_SET_PARAM
PW_ENDPOINT_STREAM_METHOD_SUBSCRIBE_PARAMS
PW_ENDPOINT_STREAM_PERM_MASK
PW_FACTORY_CHANGE_MASK_ALL
PW_FACTORY_CHANGE_MASK_PROPS
PW_FACTORY_EVENT_INFO
PW_FACTORY_EVENT_NUM
PW_FACTORY_METHOD_ADD_LISTENER
PW_FACTORY_METHOD_NUM
PW_FACTORY_PERM_MASK
PW_ID_ANY
PW_ID_CLIENT
PW_ID_CORE
PW_KEY_ACCESS
PW_KEY_APP_ICON
PW_KEY_APP_ICON_NAME
PW_KEY_APP_ID
PW_KEY_APP_LANGUAGE
PW_KEY_APP_NAME
PW_KEY_APP_PROCESS_BINARY
PW_KEY_APP_PROCESS_HOST
PW_KEY_APP_PROCESS_ID
PW_KEY_APP_PROCESS_MACHINE_ID
PW_KEY_APP_PROCESS_SESSION_ID
PW_KEY_APP_PROCESS_USER
PW_KEY_APP_VERSION
PW_KEY_AUDIO_ALLOWED_RATES
PW_KEY_AUDIO_CHANNEL
PW_KEY_AUDIO_CHANNELS
PW_KEY_AUDIO_FORMAT
PW_KEY_AUDIO_RATE
PW_KEY_CLIENT_ACCESS
PW_KEY_CLIENT_API
PW_KEY_CLIENT_ID
PW_KEY_CLIENT_NAME
PW_KEY_CONFIG_NAME
PW_KEY_CONFIG_OVERRIDE_NAME
PW_KEY_CONFIG_OVERRIDE_PREFIX
PW_KEY_CONFIG_PREFIX
PW_KEY_CONTEXT_PROFILE_MODULES
PW_KEY_CORE_DAEMON
PW_KEY_CORE_ID
PW_KEY_CORE_MONITORS
PW_KEY_CORE_NAME
PW_KEY_CORE_VERSION
PW_KEY_CPU_CORES
PW_KEY_CPU_MAX_ALIGN
PW_KEY_DEVICE_API
PW_KEY_DEVICE_BUS
PW_KEY_DEVICE_BUS_PATH
PW_KEY_DEVICE_CACHE_PARAMS
PW_KEY_DEVICE_CLASS
PW_KEY_DEVICE_DESCRIPTION
PW_KEY_DEVICE_FORM_FACTOR
PW_KEY_DEVICE_ICON
PW_KEY_DEVICE_ICON_NAME
PW_KEY_DEVICE_ID
PW_KEY_DEVICE_INTENDED_ROLES
PW_KEY_DEVICE_NAME
PW_KEY_DEVICE_NICK
PW_KEY_DEVICE_PLUGGED
PW_KEY_DEVICE_PRODUCT_ID
PW_KEY_DEVICE_PRODUCT_NAME
PW_KEY_DEVICE_SERIAL
PW_KEY_DEVICE_STRING
PW_KEY_DEVICE_SUBSYSTEM
PW_KEY_DEVICE_SYSFS_PATH
PW_KEY_DEVICE_VENDOR_ID
PW_KEY_DEVICE_VENDOR_NAME
PW_KEY_ENDPOINT_AUTOCONNECT
PW_KEY_ENDPOINT_CLIENT_ID
PW_KEY_ENDPOINT_ICON_NAME
PW_KEY_ENDPOINT_ID
PW_KEY_ENDPOINT_LINK_INPUT_ENDPOINT
PW_KEY_ENDPOINT_LINK_INPUT_STREAM
PW_KEY_ENDPOINT_LINK_OUTPUT_ENDPOINT
PW_KEY_ENDPOINT_LINK_OUTPUT_STREAM
PW_KEY_ENDPOINT_MONITOR
PW_KEY_ENDPOINT_NAME
PW_KEY_ENDPOINT_STREAM_DESCRIPTION
PW_KEY_ENDPOINT_STREAM_ID
PW_KEY_ENDPOINT_STREAM_NAME
PW_KEY_ENDPOINT_TARGET
PW_KEY_FACTORY_ID
PW_KEY_FACTORY_NAME
PW_KEY_FACTORY_TYPE_NAME
PW_KEY_FACTORY_TYPE_VERSION
PW_KEY_FACTORY_USAGE
PW_KEY_FORMAT_DSP
PW_KEY_HOST_NAME
PW_KEY_LIBRARY_NAME_DBUS
PW_KEY_LIBRARY_NAME_LOOP
PW_KEY_LIBRARY_NAME_SYSTEM
PW_KEY_LINK_ASYNC
PW_KEY_LINK_FEEDBACK
PW_KEY_LINK_ID
PW_KEY_LINK_INPUT_NODE
PW_KEY_LINK_INPUT_PORT
PW_KEY_LINK_OUTPUT_NODE
PW_KEY_LINK_OUTPUT_PORT
PW_KEY_LINK_PASSIVE
PW_KEY_LOOP_CANCEL
PW_KEY_LOOP_CLASS
PW_KEY_LOOP_NAME
PW_KEY_LOOP_RT_PRIO
PW_KEY_MEDIA_ALBUM
PW_KEY_MEDIA_ARTIST
PW_KEY_MEDIA_CATEGORY
PW_KEY_MEDIA_CLASS
PW_KEY_MEDIA_COMMENT
PW_KEY_MEDIA_COPYRIGHT
PW_KEY_MEDIA_DATE
PW_KEY_MEDIA_FILENAME
PW_KEY_MEDIA_FORMAT
PW_KEY_MEDIA_ICON
PW_KEY_MEDIA_ICON_NAME
PW_KEY_MEDIA_LANGUAGE
PW_KEY_MEDIA_NAME
PW_KEY_MEDIA_ROLE
PW_KEY_MEDIA_SOFTWARE
PW_KEY_MEDIA_TITLE
PW_KEY_MEDIA_TYPE
PW_KEY_METADATA_NAME
PW_KEY_METADATA_VALUES
PW_KEY_MODULE_AUTHOR
PW_KEY_MODULE_DEPRECATED
PW_KEY_MODULE_DESCRIPTION
PW_KEY_MODULE_ID
PW_KEY_MODULE_NAME
PW_KEY_MODULE_USAGE
PW_KEY_MODULE_VERSION
PW_KEY_NODE_ALWAYS_PROCESS
PW_KEY_NODE_ASYNC
PW_KEY_NODE_AUTOCONNECT
PW_KEY_NODE_CACHE_PARAMS
PW_KEY_NODE_CHANNELNAMES
PW_KEY_NODE_DESCRIPTION
PW_KEY_NODE_DEVICE_PORT_NAME_PREFIX
PW_KEY_NODE_DONT_RECONNECT
PW_KEY_NODE_DRIVER
PW_KEY_NODE_DRIVER_ID
PW_KEY_NODE_EXCLUSIVE
PW_KEY_NODE_FORCE_QUANTUM
PW_KEY_NODE_FORCE_RATE
PW_KEY_NODE_GROUP
PW_KEY_NODE_ID
PW_KEY_NODE_LATENCY
PW_KEY_NODE_LINK_GROUP
PW_KEY_NODE_LOCK_QUANTUM
PW_KEY_NODE_LOCK_RATE
PW_KEY_NODE_LOOP_CLASS
PW_KEY_NODE_LOOP_NAME
PW_KEY_NODE_MAX_LATENCY
PW_KEY_NODE_NAME
PW_KEY_NODE_NETWORK
PW_KEY_NODE_NICK
PW_KEY_NODE_PASSIVE
PW_KEY_NODE_PAUSE_ON_IDLE
PW_KEY_NODE_PLUGGED
PW_KEY_NODE_RATE
PW_KEY_NODE_SESSION
PW_KEY_NODE_STREAM
PW_KEY_NODE_SUPPORTS_LAZY
PW_KEY_NODE_SUPPORTS_REQUEST
PW_KEY_NODE_SUSPEND_ON_IDLE
PW_KEY_NODE_SYNC
PW_KEY_NODE_SYNC_GROUP
PW_KEY_NODE_TRANSPORT
PW_KEY_NODE_TRANSPORT_SYNC
PW_KEY_NODE_TRIGGER
PW_KEY_NODE_VIRTUAL
PW_KEY_NODE_WANT_DRIVER
PW_KEY_OBJECT_EXPORT
PW_KEY_OBJECT_ID
PW_KEY_OBJECT_LINGER
PW_KEY_OBJECT_PATH
PW_KEY_OBJECT_REGISTER
PW_KEY_OBJECT_SERIAL
PW_KEY_PORT_ALIAS
PW_KEY_PORT_CACHE_PARAMS
PW_KEY_PORT_CONTROL
PW_KEY_PORT_DIRECTION
PW_KEY_PORT_EXTRA
PW_KEY_PORT_GROUP
PW_KEY_PORT_ID
PW_KEY_PORT_IGNORE_LATENCY
PW_KEY_PORT_MONITOR
PW_KEY_PORT_NAME
PW_KEY_PORT_PASSIVE
PW_KEY_PORT_PHYSICAL
PW_KEY_PORT_TERMINAL
PW_KEY_PRIORITY_DRIVER
PW_KEY_PRIORITY_SESSION
PW_KEY_PROFILER_NAME
PW_KEY_PROTOCOL
PW_KEY_REMOTE_INTENTION
PW_KEY_REMOTE_NAME
PW_KEY_SEC_APP_ID
PW_KEY_SEC_ENGINE
PW_KEY_SEC_GID
PW_KEY_SEC_INSTANCE_ID
PW_KEY_SEC_LABEL
PW_KEY_SEC_PID
PW_KEY_SEC_SOCKET
PW_KEY_SEC_UID
PW_KEY_SESSION_ID
PW_KEY_STREAM_CAPTURE_SINK
PW_KEY_STREAM_DONT_REMIX
PW_KEY_STREAM_IS_LIVE
PW_KEY_STREAM_LATENCY_MAX
PW_KEY_STREAM_LATENCY_MIN
PW_KEY_STREAM_MONITOR
PW_KEY_TARGET_OBJECT
PW_KEY_USER_NAME
PW_KEY_VIDEO_FORMAT
PW_KEY_VIDEO_RATE
PW_KEY_VIDEO_SIZE
PW_KEY_WINDOW_X11_DISPLAY
PW_LINK_CHANGE_MASK_ALL
PW_LINK_CHANGE_MASK_FORMAT
PW_LINK_CHANGE_MASK_PROPS
PW_LINK_CHANGE_MASK_STATE
PW_LINK_EVENT_INFO
PW_LINK_EVENT_NUM
PW_LINK_METHOD_ADD_LISTENER
PW_LINK_METHOD_NUM
PW_LINK_PERM_MASK
PW_MAJOR
PW_METADATA_EVENT_NUM
PW_METADATA_EVENT_PROPERTY
PW_METADATA_METHOD_ADD_LISTENER
PW_METADATA_METHOD_CLEAR
PW_METADATA_METHOD_NUM
PW_METADATA_METHOD_SET_PROPERTY
PW_METADATA_PERM_MASK
PW_MICRO
PW_MINOR
PW_MODULE_CHANGE_MASK_ALL
PW_MODULE_CHANGE_MASK_PROPS
PW_MODULE_EVENT_INFO
PW_MODULE_EVENT_NUM
PW_MODULE_METHOD_ADD_LISTENER
PW_MODULE_METHOD_NUM
PW_MODULE_PERM_MASK
PW_NODE_CHANGE_MASK_ALL
PW_NODE_CHANGE_MASK_INPUT_PORTS
PW_NODE_CHANGE_MASK_OUTPUT_PORTS
PW_NODE_CHANGE_MASK_PARAMS
PW_NODE_CHANGE_MASK_PROPS
PW_NODE_CHANGE_MASK_STATE
PW_NODE_EVENT_INFO
PW_NODE_EVENT_NUM
PW_NODE_EVENT_PARAM
PW_NODE_METHOD_ADD_LISTENER
PW_NODE_METHOD_ENUM_PARAMS
PW_NODE_METHOD_NUM
PW_NODE_METHOD_SEND_COMMAND
PW_NODE_METHOD_SET_PARAM
PW_NODE_METHOD_SUBSCRIBE_PARAMS
PW_NODE_PERM_MASK
PW_PERMISSION_FORMAT
PW_PERM_ALL
PW_PERM_INVALID
PW_PERM_L
PW_PERM_M
PW_PERM_R
PW_PERM_RW
PW_PERM_RWX
PW_PERM_RWXM
PW_PERM_RWXML
PW_PERM_W
PW_PERM_X
PW_PORT_CHANGE_MASK_ALL
PW_PORT_CHANGE_MASK_PARAMS
PW_PORT_CHANGE_MASK_PROPS
PW_PORT_EVENT_INFO
PW_PORT_EVENT_NUM
PW_PORT_EVENT_PARAM
PW_PORT_METHOD_ADD_LISTENER
PW_PORT_METHOD_ENUM_PARAMS
PW_PORT_METHOD_NUM
PW_PORT_METHOD_SUBSCRIBE_PARAMS
PW_PORT_PERM_MASK
PW_PROFILER_EVENT_NUM
PW_PROFILER_EVENT_PROFILE
PW_PROFILER_METHOD_ADD_LISTENER
PW_PROFILER_METHOD_NUM
PW_PROFILER_PERM_MASK
PW_PROPERTIES_FLAG_ARRAY
PW_PROPERTIES_FLAG_COLORS
PW_PROPERTIES_FLAG_ENCLOSE
PW_PROPERTIES_FLAG_NL
PW_PROPERTIES_FLAG_RECURSE
PW_PROTOCOL_MARSHAL_FLAG_IMPL
PW_REGISTRY_EVENT_GLOBAL
PW_REGISTRY_EVENT_GLOBAL_REMOVE
PW_REGISTRY_EVENT_NUM
PW_REGISTRY_METHOD_ADD_LISTENER
PW_REGISTRY_METHOD_BIND
PW_REGISTRY_METHOD_DESTROY
PW_REGISTRY_METHOD_NUM
PW_SESSION_CHANGE_MASK_ALL
PW_SESSION_CHANGE_MASK_PARAMS
PW_SESSION_CHANGE_MASK_PROPS
PW_SESSION_EVENT_INFO
PW_SESSION_EVENT_NUM
PW_SESSION_EVENT_PARAM
PW_SESSION_METHOD_ADD_LISTENER
PW_SESSION_METHOD_CREATE_LINK
PW_SESSION_METHOD_ENUM_PARAMS
PW_SESSION_METHOD_NUM
PW_SESSION_METHOD_SET_PARAM
PW_SESSION_METHOD_SUBSCRIBE_PARAMS
PW_SESSION_PERM_MASK
PW_TYPE_FIRST
PW_TYPE_INFO_BASE
PW_TYPE_INFO_INTERFACE_BASE
PW_TYPE_INFO_Interface
PW_TYPE_INFO_OBJECT_BASE
PW_TYPE_INFO_Object
PW_TYPE_INFO_PROTOCOL_BASE
PW_TYPE_INFO_PROTOCOL_Native
PW_TYPE_INFO_Protocol
PW_TYPE_INTERFACE_Client
PW_TYPE_INTERFACE_ClientEndpoint
PW_TYPE_INTERFACE_ClientNode
PW_TYPE_INTERFACE_ClientSession
PW_TYPE_INTERFACE_Core
PW_TYPE_INTERFACE_Device
PW_TYPE_INTERFACE_Endpoint
PW_TYPE_INTERFACE_EndpointLink
PW_TYPE_INTERFACE_EndpointStream
PW_TYPE_INTERFACE_Factory
PW_TYPE_INTERFACE_Link
PW_TYPE_INTERFACE_Metadata
PW_TYPE_INTERFACE_Module
PW_TYPE_INTERFACE_Node
PW_TYPE_INTERFACE_Port
PW_TYPE_INTERFACE_Profiler
PW_TYPE_INTERFACE_Registry
PW_TYPE_INTERFACE_Session
PW_VERSION_CLIENT
PW_VERSION_CLIENT_ENDPOINT
PW_VERSION_CLIENT_ENDPOINT_EVENTS
PW_VERSION_CLIENT_ENDPOINT_METHODS
PW_VERSION_CLIENT_EVENTS
PW_VERSION_CLIENT_METHODS
PW_VERSION_CLIENT_NODE
PW_VERSION_CLIENT_NODE_EVENTS
PW_VERSION_CLIENT_NODE_METHODS
PW_VERSION_CLIENT_SESSION
PW_VERSION_CLIENT_SESSION_EVENTS
PW_VERSION_CLIENT_SESSION_METHODS
PW_VERSION_CONTEXT_EVENTS
PW_VERSION_CONTROL_EVENTS
PW_VERSION_CORE
PW_VERSION_CORE_EVENTS
PW_VERSION_CORE_METHODS
PW_VERSION_DATA_LOOP_EVENTS
PW_VERSION_DEVICE
PW_VERSION_DEVICE_EVENTS
PW_VERSION_DEVICE_METHODS
PW_VERSION_ENDPOINT
PW_VERSION_ENDPOINT_EVENTS
PW_VERSION_ENDPOINT_INFO
PW_VERSION_ENDPOINT_LINK
PW_VERSION_ENDPOINT_LINK_EVENTS
PW_VERSION_ENDPOINT_LINK_INFO
PW_VERSION_ENDPOINT_LINK_METHODS
PW_VERSION_ENDPOINT_METHODS
PW_VERSION_ENDPOINT_STREAM
PW_VERSION_ENDPOINT_STREAM_EVENTS
PW_VERSION_ENDPOINT_STREAM_INFO
PW_VERSION_ENDPOINT_STREAM_METHODS
PW_VERSION_FACTORY
PW_VERSION_FACTORY_EVENTS
PW_VERSION_FACTORY_METHODS
PW_VERSION_FILTER_EVENTS
PW_VERSION_GLOBAL_EVENTS
PW_VERSION_IMPL_CLIENT_EVENTS
PW_VERSION_IMPL_CORE_EVENTS
PW_VERSION_IMPL_DEVICE_EVENTS
PW_VERSION_IMPL_FACTORY_EVENTS
PW_VERSION_IMPL_FACTORY_IMPLEMENTATION
PW_VERSION_IMPL_LINK_EVENTS
PW_VERSION_IMPL_METADATA_EVENTS
PW_VERSION_IMPL_MODULE_EVENTS
PW_VERSION_IMPL_NODE_EVENTS
PW_VERSION_IMPL_NODE_RT_EVENTS
PW_VERSION_IMPL_PORT_EVENTS
PW_VERSION_LINK
PW_VERSION_LINK_EVENTS
PW_VERSION_LINK_METHODS
PW_VERSION_MAIN_LOOP_EVENTS
PW_VERSION_MEMPOOL_EVENTS
PW_VERSION_METADATA
PW_VERSION_METADATA_EVENTS
PW_VERSION_METADATA_METHODS
PW_VERSION_MODULE
PW_VERSION_MODULE_EVENTS
PW_VERSION_MODULE_METHODS
PW_VERSION_NODE
PW_VERSION_NODE_EVENTS
PW_VERSION_NODE_METHODS
PW_VERSION_PORT
PW_VERSION_PORT_EVENTS
PW_VERSION_PORT_METHODS
PW_VERSION_PROFILER
PW_VERSION_PROFILER_EVENTS
PW_VERSION_PROFILER_METHODS
PW_VERSION_PROTOCOL_EVENTS
PW_VERSION_PROTOCOL_IMPLEMENTATION
PW_VERSION_PROTOCOL_NATIVE_EXT
PW_VERSION_PROXY_EVENTS
PW_VERSION_REGISTRY
PW_VERSION_REGISTRY_EVENTS
PW_VERSION_REGISTRY_METHODS
PW_VERSION_RESOURCE_EVENTS
PW_VERSION_SESSION
PW_VERSION_SESSION_EVENTS
PW_VERSION_SESSION_INFO
PW_VERSION_SESSION_METHODS
PW_VERSION_STREAM_EVENTS
PW_VERSION_THREAD_LOOP_EVENTS
pw_endpoint_link_state_PW_ENDPOINT_LINK_STATE_ACTIVE
pw_endpoint_link_state_PW_ENDPOINT_LINK_STATE_ERROR
pw_endpoint_link_state_PW_ENDPOINT_LINK_STATE_INACTIVE
pw_endpoint_link_state_PW_ENDPOINT_LINK_STATE_PREPARING
pw_filter_flags_PW_FILTER_FLAG_ASYNC
< Buffers will not be dequeued/queued from the realtime process() function. This is assumed when RT_PROCESS is unset but can also be the case when the process() function does a trigger_process() that will then dequeue/queue a buffer from another process() function. since 0.3.73
pw_filter_flags_PW_FILTER_FLAG_CUSTOM_LATENCY
< don’t call the default latency algorithm but emit the param_changed event for the ports when Latency params are received.
pw_filter_flags_PW_FILTER_FLAG_DRIVER
< be a driver
pw_filter_flags_PW_FILTER_FLAG_INACTIVE
< start the filter inactive, pw_filter_set_active() needs to be called explicitly
pw_filter_flags_PW_FILTER_FLAG_NONE
< no flags
pw_filter_flags_PW_FILTER_FLAG_RT_PROCESS
< call process from the realtime thread. Only call methods marked as RT safe.
pw_filter_flags_PW_FILTER_FLAG_TRIGGER
< the filter will not be scheduled automatically but _trigger_process() needs to be called. This can be used when the filter depends on processing of other filters.
pw_filter_port_flags_PW_FILTER_PORT_FLAG_ALLOC_BUFFERS
< the application will allocate buffer memory. In the add_buffer event, the data of the buffer should be set
pw_filter_port_flags_PW_FILTER_PORT_FLAG_MAP_BUFFERS
< mmap the buffers except DmaBuf that is not explicitly marked as mappable.
pw_filter_port_flags_PW_FILTER_PORT_FLAG_NONE
< no flags
pw_filter_state_PW_FILTER_STATE_CONNECTING
< connection is in progress
pw_filter_state_PW_FILTER_STATE_ERROR
< the stream is in error
pw_filter_state_PW_FILTER_STATE_PAUSED
< filter is connected and paused
pw_filter_state_PW_FILTER_STATE_STREAMING
< filter is streaming
pw_filter_state_PW_FILTER_STATE_UNCONNECTED
< unconnected
pw_impl_port_state_PW_IMPL_PORT_STATE_CONFIGURE
< the port is ready for format negotiation
pw_impl_port_state_PW_IMPL_PORT_STATE_ERROR
< the port is in error
pw_impl_port_state_PW_IMPL_PORT_STATE_INIT
< the port is being created
pw_impl_port_state_PW_IMPL_PORT_STATE_PAUSED
< the port is paused
pw_impl_port_state_PW_IMPL_PORT_STATE_READY
< the port is ready for buffer allocation
pw_link_state_PW_LINK_STATE_ACTIVE
< the link is active
pw_link_state_PW_LINK_STATE_ALLOCATING
< the link is allocating buffers
pw_link_state_PW_LINK_STATE_ERROR
< the link is in error
pw_link_state_PW_LINK_STATE_INIT
< the link is initialized
pw_link_state_PW_LINK_STATE_NEGOTIATING
< the link is negotiating formats
pw_link_state_PW_LINK_STATE_PAUSED
< the link is paused
pw_link_state_PW_LINK_STATE_UNLINKED
< the link is unlinked
pw_memblock_flags_PW_MEMBLOCK_FLAG_DONT_CLOSE
< don’t close fd
pw_memblock_flags_PW_MEMBLOCK_FLAG_DONT_NOTIFY
< don’t notify events
pw_memblock_flags_PW_MEMBLOCK_FLAG_MAP
< mmap the fd
pw_memblock_flags_PW_MEMBLOCK_FLAG_NONE
pw_memblock_flags_PW_MEMBLOCK_FLAG_READABLE
< memory is readable
pw_memblock_flags_PW_MEMBLOCK_FLAG_READWRITE
pw_memblock_flags_PW_MEMBLOCK_FLAG_SEAL
< seal the fd
pw_memblock_flags_PW_MEMBLOCK_FLAG_UNMAPPABLE
< the fd can not be mmapped
pw_memblock_flags_PW_MEMBLOCK_FLAG_WRITABLE
< memory is writable
pw_memmap_flags_PW_MEMMAP_FLAG_LOCKED
< lock the memory into RAM
pw_memmap_flags_PW_MEMMAP_FLAG_NONE
pw_memmap_flags_PW_MEMMAP_FLAG_PRIVATE
< writes will be private
pw_memmap_flags_PW_MEMMAP_FLAG_READ
< map in read mode
pw_memmap_flags_PW_MEMMAP_FLAG_READWRITE
pw_memmap_flags_PW_MEMMAP_FLAG_TWICE
< map the same area twice after each other, creating a circular ringbuffer
pw_memmap_flags_PW_MEMMAP_FLAG_WRITE
< map in write mode
pw_node_state_PW_NODE_STATE_CREATING
< the node is being created
pw_node_state_PW_NODE_STATE_ERROR
< error state
pw_node_state_PW_NODE_STATE_IDLE
< the node is running but there is no active port
pw_node_state_PW_NODE_STATE_RUNNING
< the node is running
pw_node_state_PW_NODE_STATE_SUSPENDED
< the node is suspended, the device might be closed
pw_stream_flags_PW_STREAM_FLAG_ALLOC_BUFFERS
< the application will allocate buffer memory. In the add_buffer event, the data of the buffer should be set
pw_stream_flags_PW_STREAM_FLAG_ASYNC
< Buffers will not be dequeued/queued from the realtime process() function. This is assumed when RT_PROCESS is unset but can also be the case when the process() function does a trigger_process() that will then dequeue/queue a buffer from another process() function. since 0.3.73
pw_stream_flags_PW_STREAM_FLAG_AUTOCONNECT
< try to automatically connect this stream
pw_stream_flags_PW_STREAM_FLAG_DONT_RECONNECT
< don’t try to reconnect this stream when the sink/source is removed
pw_stream_flags_PW_STREAM_FLAG_DRIVER
< be a driver
pw_stream_flags_PW_STREAM_FLAG_EARLY_PROCESS
< Call process as soon as there is a buffer to dequeue. This is only relevant for playback and when not using RT_PROCESS. It can be used to keep the maximum number of buffers queued. Since 0.3.81
pw_stream_flags_PW_STREAM_FLAG_EXCLUSIVE
< require exclusive access to the device
pw_stream_flags_PW_STREAM_FLAG_INACTIVE
< start the stream inactive, pw_stream_set_active() needs to be called explicitly
pw_stream_flags_PW_STREAM_FLAG_MAP_BUFFERS
< mmap the buffers except DmaBuf that is not explicitly marked as mappable.
pw_stream_flags_PW_STREAM_FLAG_NONE
< no flags
pw_stream_flags_PW_STREAM_FLAG_NO_CONVERT
< don’t convert format
pw_stream_flags_PW_STREAM_FLAG_RT_PROCESS
< call process from the realtime thread. You MUST use RT safe functions in the process callback.
pw_stream_flags_PW_STREAM_FLAG_RT_TRIGGER_DONE
< Call trigger_done from the realtime thread. You MUST use RT safe functions in the trigger_done callback. Since 1.1.0
pw_stream_flags_PW_STREAM_FLAG_TRIGGER
< the output stream will not be scheduled automatically but _trigger_process() needs to be called. This can be used when the output of the stream depends on input from other streams.
pw_stream_state_PW_STREAM_STATE_CONNECTING
< connection is in progress
pw_stream_state_PW_STREAM_STATE_ERROR
< the stream is in error
pw_stream_state_PW_STREAM_STATE_PAUSED
< paused
pw_stream_state_PW_STREAM_STATE_STREAMING
< streaming
pw_stream_state_PW_STREAM_STATE_UNCONNECTED
< unconnected

Statics§

PW_LOG_TOPIC_DEFAULT⚠
pw_log_level⚠
\addtogroup pw_log { / /** The global log level

Functions§

pw_buffers_clear⚠
pw_buffers_negotiate⚠
pw_check_library_version⚠
Return TRUE if the currently linked PipeWire library version is equal or newer than the specified version. Since 0.3.75
pw_check_option⚠
pw_client_info_free⚠
Free a \ref pw_client_info
pw_client_info_merge⚠
Merge an existing \ref pw_client_info with \a update
pw_client_info_update⚠
Update an existing \ref pw_client_info with \a update with reset
pw_conf_find_match⚠
pw_conf_load_conf⚠
pw_conf_load_conf_for_context⚠
\addtogroup pw_conf {
pw_conf_load_state⚠
pw_conf_match_rules⚠
pw_conf_save_state⚠
pw_conf_section_for_each⚠
pw_conf_section_match_rules⚠
pw_conf_section_update_props⚠
pw_conf_section_update_props_rules⚠
pw_context_acquire_loop⚠
Get a data-loop. Since 1.1.0
pw_context_add_listener⚠
Add a new event listener to a context
pw_context_add_spa_lib⚠
add a spa library for the given factory_name regex
pw_context_conf_section_for_each⚠
emit callback for all config sections. Since 0.3.45
pw_context_conf_section_match_rules⚠
emit callback for all matched properties. Since 0.3.46
pw_context_conf_update_props⚠
update properties from a section into props. Since 0.3.45
pw_context_connect⚠
Connect to a PipeWire instance
pw_context_connect_fd⚠
Connect to a PipeWire instance on the given socket
pw_context_connect_self⚠
Connect to a given PipeWire instance
pw_context_create_client⚠
Create a new client. This is mainly used by protocols.
pw_context_create_core⚠
pw_context_create_device⚠
pw_context_create_factory⚠
pw_context_create_link⚠
Make a new link between two ports \return a newly allocated link
pw_context_create_metadata⚠
pw_context_create_node⚠
Create a new node
pw_context_create_port⚠
Create a new port \return a newly allocated port
pw_context_destroy⚠
destroy a context object, all resources except the main_loop will be destroyed
pw_context_find_export_type⚠
find information about registered export type
pw_context_find_factory⚠
Find a factory by name
pw_context_find_global⚠
Find a context global by id.
pw_context_find_protocol⚠
pw_context_find_spa_lib⚠
find the library name for a spa factory
pw_context_for_each_global⚠
Iterate the globals of the context. The callback should return 0 to fetch the next item, any other value stops the iteration and returns the value. When all callbacks return 0, this function returns 0 when all globals are iterated.
pw_context_get_conf_section⚠
Get a config section for this context. Since 0.3.22, deprecated, use pw_context_conf_section_for_each().
pw_context_get_data_loop⚠
Get the context data loop. This loop runs on the realtime thread. This acquires a loop from the generic data.rt class. Use pw_context_acquire_loop() instead. Since 0.3.56
pw_context_get_default_core⚠
pw_context_get_main_loop⚠
Get the context main loop. Returns the value passed to pw_context_new().
pw_context_get_mempool⚠
Get the memory pool from the context: Since 0.3.74
pw_context_get_object⚠
get an object from the context
pw_context_get_properties⚠
Get the context properties
pw_context_get_support⚠
Get the context support objects
pw_context_get_user_data⚠
Get the context user data
pw_context_get_work_queue⚠
Get the work queue from the context: Since 0.3.26
pw_context_load_module⚠
pw_context_load_spa_handle⚠
Load a SPA handle from a context. On failure returns NULL and sets errno.
pw_context_new⚠
Make a new context object for a given main_loop. Ownership of the properties is taken, even if the function returns NULL.
pw_context_parse_conf_section⚠
Parse a standard config section for this context. Since 0.3.22
pw_context_register_export_type⚠
register a type that can be exported on a context_proxy. This is usually used by extension modules
pw_context_release_loop⚠
Release a data-loop. Since 1.1.0
pw_context_set_object⚠
add an object to the context
pw_context_update_properties⚠
Update the context properties
pw_control_add_listener⚠
Add an event listener on the control. May be called multiple times. Each listener must be removed, but they may be removed in any order.
pw_control_get_port⚠
Get the control parent port or NULL when not set
pw_core_disconnect⚠
disconnect and destroy a core
pw_core_export⚠
Export an object into the PipeWire instance associated with core
pw_core_find_proxy⚠
Get the proxy with the given id
pw_core_get_client⚠
Get the client proxy of the connected core. This will have the id of PW_ID_CLIENT (1)
pw_core_get_context⚠
Get the context object used to created this core
pw_core_get_mempool⚠
Get the core mempool object
pw_core_get_properties⚠
Get properties from the core
pw_core_get_user_data⚠
Get the user_data. It is of the size specified when this object was constructed
pw_core_info_free⚠
Free a \ref pw_core_info
pw_core_info_merge⚠
Update an existing \ref pw_core_info with \a update. When info is NULL, a new one will be allocated. Returns NULL on failure
pw_core_info_update⚠
Update an existing \ref pw_core_info with \a update with reset. When info is NULL, a new one will be allocated. Returns NULL on failure.
pw_core_set_paused⚠
Pause or resume the core. When the core is paused, no new events will be dispatched until the core is resumed again.
pw_core_steal_fd⚠
Steal the fd of the core connection or < 0 on error. The core will be disconnected after this call.
pw_core_update_properties⚠
Update the core properties. This updates the properties of the associated client. \return the number of properties that were updated
pw_data_loop_add_listener⚠
Add an event listener to loop
pw_data_loop_destroy⚠
Destroy the loop
pw_data_loop_exit⚠
make sure the thread will exit. Can be called from a loop callback
pw_data_loop_get_class⚠
Get the loop class. Since 1.1.0
pw_data_loop_get_loop⚠
Get the loop implementation of this data loop
pw_data_loop_get_name⚠
Get the loop name. Since 1.1.0
pw_data_loop_get_thread⚠
Get the thread object
pw_data_loop_in_thread⚠
Check if the current thread is the processing thread. May be called from any thread.
pw_data_loop_invoke⚠
invoke func in the context of the thread or in the caller thread when the loop is not running. May be called from the loop’s thread, but otherwise can only be called by a single thread at a time. If called from the loop’s thread, all callbacks previously queued with pw_data_loop_invoke() will be run synchronously, which might cause unexpected reentrancy problems.
pw_data_loop_new⚠
Make a new loop.
pw_data_loop_set_thread_utils⚠
Set a custom spa_thread_utils for this loop. Setting NULL restores the system default implementation. Since 0.3.50
pw_data_loop_start⚠
Start the processing thread
pw_data_loop_stop⚠
Stop the processing thread
pw_data_loop_wait⚠
wait for activity on the loop up to \a timeout milliseconds. Should be called from the loop function
pw_debug_is_category_enabled⚠
pw_deinit⚠
pw_device_info_free⚠
Free a \ref pw_device_info
pw_device_info_merge⚠
Merge and existing \ref pw_device_info with \a update
pw_device_info_update⚠
Update and existing \ref pw_device_info with \a update and reset
pw_direction_as_string⚠
Convert a \ref pw_direction to a readable string
pw_direction_reverse⚠
pw_factory_info_free⚠
pw_factory_info_merge⚠
pw_factory_info_update⚠
pw_filter_add_listener⚠
pw_filter_add_port⚠
add a port to the filter, returns user data of port_data_size.
pw_filter_connect⚠
Connect a filter for processing. \return 0 on success < 0 on error.
pw_filter_dequeue_buffer⚠
Get a buffer that can be filled for output ports or consumed for input ports. RT safe.
pw_filter_destroy⚠
Destroy a filter
pw_filter_disconnect⚠
Disconnect \a filter
pw_filter_emit_event⚠
Emit an event from this filter. RT safe. Since 1.2.6
pw_filter_flush⚠
Flush a filter. When \a drain is true, the drained callback will be called when all data is played or recorded. The filter can be resumed after the drain by setting it active again with \ref pw_filter_set_active(). A flush without a drain is mostly useful afer a state change to PAUSED, to flush any remaining data from the queues. RT safe.
pw_filter_get_core⚠
pw_filter_get_data_loop⚠
Get the data loop that is doing the processing of this filter. This loop is assigned after pw_filter_connect(). Since 1.1.0
pw_filter_get_dsp_buffer⚠
Get a data pointer to the buffer data. RT safe.
pw_filter_get_name⚠
pw_filter_get_node_id⚠
Get the node ID of the filter. \return node ID.
pw_filter_get_nsec⚠
Get the current time in nanoseconds. This value can be compared with the nsec value in the spa_io_position. RT safe. Since 1.1.0
pw_filter_get_properties⚠
get properties, port_data of NULL will give global properties
pw_filter_get_state⚠
Get the current filter state. Since 1.4 this also sets errno when the state is PW_FILTER_STATE_ERROR
pw_filter_get_time⚠
Query the time on the filter, deprecated, use the spa_io_position in the process() method for timing information. RT safe.
pw_filter_is_driving⚠
Check if the filter is driving. The filter needs to have the PW_FILTER_FLAG_DRIVER set. When the filter is driving, pw_filter_trigger_process() needs to be called when data is available (output) or needed (input). Since 0.3.66
pw_filter_is_lazy⚠
Check if the graph is using lazy scheduling. Since 1.4.0
pw_filter_new⚠
Create a new unconnected \ref pw_filter \return a newly allocated \ref pw_filter
pw_filter_new_simple⚠
pw_filter_queue_buffer⚠
Submit a buffer for playback or recycle a buffer for capture. RT safe.
pw_filter_remove_port⚠
remove a port from the filter
pw_filter_set_active⚠
Activate or deactivate the filter
pw_filter_set_error⚠
Set the filter in error state
pw_filter_state_as_string⚠
Convert a filter state to a readable string
pw_filter_trigger_process⚠
Trigger a push/pull on the filter. One iteration of the graph will be scheduled and process() will be called. RT safe. Since 0.3.66
pw_filter_update_params⚠
Update params, use NULL port_data for global filter params
pw_filter_update_properties⚠
Update properties, use NULL port_data for global filter properties
pw_free_strv⚠
pw_get_application_name⚠
pw_get_client_name⚠
pw_get_domain⚠
pw_get_host_name⚠
pw_get_library_version⚠
Return the version of the library the current application is linked to.
pw_get_prgname⚠
pw_get_support⚠
pw_get_user_name⚠
pw_getrandom⚠
pw_global_add_listener⚠
Add an event listener on the global
pw_global_add_resource⚠
Add a resource to a global
pw_global_bind⚠
Let a client bind to a global
pw_global_destroy⚠
Destroy a global
pw_global_for_each_resource⚠
Iterate all resources added to the global The callback should return 0 to fetch the next item, any other value stops the iteration and returns the value. When all callbacks return 0, this function returns 0 when all items are iterated.
pw_global_get_context⚠
Get the context object of this global
pw_global_get_id⚠
Get the unique id of the global
pw_global_get_object⚠
Get the object associated with the global. This depends on the type of the global
pw_global_get_permissions⚠
Get the permissions of the global for a given client
pw_global_get_properties⚠
Get the global properties
pw_global_get_serial⚠
Get the serial number of the global
pw_global_get_type⚠
Get the global type
pw_global_get_version⚠
Get the global version
pw_global_is_type⚠
Check a global type
pw_global_new⚠
Create a new global object
pw_global_register⚠
Register a global object to the context registry
pw_global_update_keys⚠
Update the global properties, must be done when unregistered
pw_global_update_permissions⚠
pw_impl_client_add_listener⚠
listen to events from this client
pw_impl_client_check_permissions⚠
check if a client has permissions for global_id, Since 0.3.9
pw_impl_client_destroy⚠
Destroy a previously created client
pw_impl_client_find_resource⚠
Get a resource with the given id
pw_impl_client_get_context⚠
Get the context used to create this client
pw_impl_client_get_core_resource⚠
Get the client core resource
pw_impl_client_get_global⚠
Get the global associated with this client
pw_impl_client_get_info⚠
Get the client information
pw_impl_client_get_mempool⚠
Get the mempool associated with this client, Since 0.3.74
pw_impl_client_get_properties⚠
Get the client properties
pw_impl_client_get_protocol⚠
Get the protocol used to create this client
pw_impl_client_get_user_data⚠
Get the client user data
pw_impl_client_register⚠
Finish configuration and register a client
pw_impl_client_set_busy⚠
Mark the client busy. This can be used when an asynchronous operation is started and no further processing is allowed to happen for the client
pw_impl_client_update_permissions⚠
Update the client permissions
pw_impl_client_update_properties⚠
Update the client properties
pw_impl_core_add_listener⚠
Add an event listener
pw_impl_core_destroy⚠
pw_impl_core_get_global⚠
Get the global of this core
pw_impl_core_get_info⚠
Get the core information
pw_impl_core_get_properties⚠
Get the core properties
pw_impl_core_get_user_data⚠
pw_impl_core_register⚠
pw_impl_core_update_properties⚠
Update the core properties
pw_impl_device_add_listener⚠
Add an event listener
pw_impl_device_destroy⚠
pw_impl_device_for_each_param⚠
pw_impl_device_get_global⚠
Get the global of this device
pw_impl_device_get_implementation⚠
Get the device implementation
pw_impl_device_get_properties⚠
pw_impl_device_get_user_data⚠
pw_impl_device_register⚠
pw_impl_device_set_implementation⚠
Set the device implementation
pw_impl_device_update_properties⚠
pw_impl_factory_add_listener⚠
Add an event listener
pw_impl_factory_create_object⚠
pw_impl_factory_destroy⚠
pw_impl_factory_get_global⚠
Get the global of this factory
pw_impl_factory_get_info⚠
Get the factory info
pw_impl_factory_get_properties⚠
Get the factory properties
pw_impl_factory_get_user_data⚠
pw_impl_factory_register⚠
pw_impl_factory_set_implementation⚠
pw_impl_factory_update_properties⚠
Update the factory properties
pw_impl_link_add_listener⚠
Add an event listener to \a link
pw_impl_link_destroy⚠
Destroy a link
pw_impl_link_find⚠
Find the link between 2 ports
pw_impl_link_get_context⚠
Get the context of a link
pw_impl_link_get_global⚠
Get the global of the link
pw_impl_link_get_info⚠
Get the link info
pw_impl_link_get_input⚠
Get the input port of the link
pw_impl_link_get_output⚠
Get the output port of the link
pw_impl_link_get_user_data⚠
Get the user_data of a link, the size of the memory is given when constructing the link
pw_impl_link_register⚠
Finish link configuration and register
pw_impl_metadata_add_listener⚠
Add an event listener
pw_impl_metadata_destroy⚠
pw_impl_metadata_get_global⚠
Get the global of this metadata
pw_impl_metadata_get_implementation⚠
pw_impl_metadata_get_properties⚠
Get the metadata properties
pw_impl_metadata_get_user_data⚠
pw_impl_metadata_register⚠
pw_impl_metadata_set_implementation⚠
pw_impl_metadata_set_property⚠
Set a property
pw_impl_metadata_set_propertyf⚠
pw_impl_module_add_listener⚠
Add an event listener to a module
pw_impl_module_destroy⚠
Destroy a module
pw_impl_module_get_context⚠
Get the context of a module
pw_impl_module_get_global⚠
Get the global of a module
pw_impl_module_get_info⚠
Get the module info
pw_impl_module_get_properties⚠
Get the module properties
pw_impl_module_schedule_destroy⚠
Schedule a destroy later on the main thread
pw_impl_module_update_properties⚠
Update the module properties
pw_impl_node_add_listener⚠
Add an event listener
pw_impl_node_add_rt_listener⚠
Add an rt_event listener
pw_impl_node_destroy⚠
Destroy a node
pw_impl_node_find_port⚠
Find the port with direction and port_id or NULL when not found. Passing PW_ID_ANY for port_id will return any port, preferably an unlinked one.
pw_impl_node_for_each_param⚠
pw_impl_node_for_each_port⚠
Iterate the ports in the given direction. The callback should return 0 to fetch the next item, any other value stops the iteration and returns the value. When all callbacks return 0, this function returns 0 when all items are iterated.
pw_impl_node_get_context⚠
Get the context of this node
pw_impl_node_get_free_port_id⚠
Get a free unused port_id from the node
pw_impl_node_get_global⚠
Get the global of this node
pw_impl_node_get_implementation⚠
Get the node implementation
pw_impl_node_get_info⚠
Get the node info
pw_impl_node_get_properties⚠
Get the node properties
pw_impl_node_get_user_data⚠
Get node user_data. The size of the memory was given in \ref pw_context_create_node
pw_impl_node_initialized⚠
pw_impl_node_is_active⚠
Check if a node is active
pw_impl_node_register⚠
Complete initialization of the node and register
pw_impl_node_remove_rt_listener⚠
pw_impl_node_send_command⚠
Check if a node is active, Since 0.3.39
pw_impl_node_set_active⚠
Set a node active. This will start negotiation with all linked active nodes and start data transport
pw_impl_node_set_implementation⚠
Set the node implementation
pw_impl_node_set_param⚠
Set a param on the node, Since 0.3.65
pw_impl_node_update_properties⚠
Update the node properties
pw_impl_port_add⚠
Add a port to a node
pw_impl_port_add_listener⚠
Add an event listener on the port
pw_impl_port_get_direction⚠
Get the port direction
pw_impl_port_get_id⚠
Get the port id
pw_impl_port_get_info⚠
Get the port info
pw_impl_port_get_node⚠
Get the port parent node or NULL when not yet set
pw_impl_port_get_properties⚠
Get the port properties
pw_impl_port_is_linked⚠
check is a port has links, return 0 if not, 1 if it is linked
pw_impl_port_state_as_string⚠
Get the port state as a string
pw_impl_port_update_properties⚠
Update the port properties
pw_init⚠
\addtogroup pw_pipewire {
pw_link_info_free⚠
pw_link_info_merge⚠
pw_link_info_update⚠
pw_link_state_as_string⚠
Convert a \ref pw_link_state to a readable string
pw_load_spa_handle⚠
pw_log_get⚠
Get the log interface
pw_log_log⚠
Log a message for the default topic
pw_log_logt⚠
Log a message for a topic
pw_log_logtv⚠
Log a message for a topic
pw_log_logv⚠
Log a message for the default topic
pw_log_set⚠
Configure a logging module. This is usually done automatically in pw_init() but you can install a custom logger before calling pw_init().
pw_log_set_level⚠
Configure the logging level
pw_log_set_level_string⚠
Configure the logging level using a string in PIPEWIRE_DEBUG format.
pw_log_topic_register⚠
Register log topic with the logger, to enable dynamic log levels. Topic must be unregistered before freeing it or plugin unload. May be used instead of \ref PW_LOG_TOPIC_INIT This function is threadsafe.
pw_log_topic_unregister⚠
Unregister log topic. This function is threadsafe.
pw_loop_destroy⚠
pw_loop_new⚠
pw_loop_set_name⚠
pw_main_loop_add_listener⚠
Add an event listener
pw_main_loop_destroy⚠
Destroy a loop
pw_main_loop_get_loop⚠
Get the loop implementation
pw_main_loop_new⚠
Create a new main loop.
pw_main_loop_quit⚠
Quit a main loop
pw_main_loop_run⚠
Run a main loop. This blocks until \ref pw_main_loop_quit is called.
pw_memblock_free⚠
Free a memblock regardless of the refcount and destroy all mappings
pw_memblock_map⚠
Map a region of a memory block
pw_memmap_free⚠
Unmap a region
pw_mempool_add_listener⚠
Listen for events
pw_mempool_alloc⚠
Allocate a memory block from the pool
pw_mempool_clear⚠
Clear a pool
pw_mempool_destroy⚠
Clear and destroy a pool
pw_mempool_find_fd⚠
Find memblock for given \a fd
pw_mempool_find_id⚠
Find memblock for given \a id
pw_mempool_find_ptr⚠
Find memblock for given \a ptr
pw_mempool_find_tag⚠
find a map with the given tag
pw_mempool_import⚠
Import an fd into the pool
pw_mempool_import_block⚠
Import a block from another pool
pw_mempool_import_map⚠
pw_mempool_map_id⚠
Map a region of a memory block with \a id
pw_mempool_new⚠
Create a new memory pool
pw_mempool_remove_id⚠
Remove a memblock for given \a id
pw_module_info_free⚠
Free a \ref pw_module_info
pw_module_info_merge⚠
Merge and existing \ref pw_module_info with \a update
pw_module_info_update⚠
Update and existing \ref pw_module_info with \a update with reset
pw_node_info_free⚠
pw_node_info_merge⚠
pw_node_info_update⚠
pw_node_state_as_string⚠
Convert a \ref pw_node_state to a readable string
pw_port_info_free⚠
pw_port_info_merge⚠
pw_port_info_update⚠
pw_properties_add⚠
pw_properties_add_keys⚠
pw_properties_clear⚠
pw_properties_copy⚠
pw_properties_fetch_bool⚠
pw_properties_fetch_int32⚠
pw_properties_fetch_int64⚠
pw_properties_fetch_uint32⚠
pw_properties_fetch_uint64⚠
pw_properties_free⚠
pw_properties_get⚠
pw_properties_iterate⚠
pw_properties_new⚠
pw_properties_new_dict⚠
pw_properties_new_string⚠
pw_properties_new_string_checked⚠
pw_properties_serialize_dict⚠
pw_properties_set⚠
pw_properties_setf⚠
pw_properties_setva⚠
pw_properties_update⚠
pw_properties_update_ignore⚠
pw_properties_update_keys⚠
pw_properties_update_string⚠
pw_properties_update_string_checked⚠
pw_protocol_add_listener⚠
pw_protocol_add_marshal⚠
pw_protocol_destroy⚠
pw_protocol_get_context⚠
pw_protocol_get_extension⚠
pw_protocol_get_implementation⚠
pw_protocol_get_marshal⚠
pw_protocol_get_user_data⚠
pw_protocol_new⚠
pw_proxy_add_listener⚠
Add an event listener to proxy
pw_proxy_add_object_listener⚠
Add a listener for the events received from the remote object. The events depend on the type of the remote object type.
pw_proxy_destroy⚠
destroy a proxy
pw_proxy_error⚠
Generate an error for a proxy
pw_proxy_errorf⚠
pw_proxy_get_bound_id⚠
Get the global id bound to this proxy of SPA_ID_INVALID when not bound to a global
pw_proxy_get_id⚠
Get the local id of the proxy
pw_proxy_get_marshal⚠
Get the marshal functions for the proxy
pw_proxy_get_object_listeners⚠
Get the listener of proxy
pw_proxy_get_protocol⚠
Get the protocol used for the proxy
pw_proxy_get_type⚠
Get the type and version of the proxy
pw_proxy_get_user_data⚠
Get the user_data. The size was given in \ref pw_proxy_new
pw_proxy_install_marshal⚠
Install a marshal function on a proxy
pw_proxy_new⚠
pw_proxy_ref⚠
pw_proxy_set_bound_id⚠
Set the global id this proxy is bound to. This is usually used internally and will also emit the bound event
pw_proxy_sync⚠
Generate an sync method for a proxy. This will generate a done event with the same seq number of the reply.
pw_proxy_unref⚠
pw_random⚠
pw_reallocarray⚠
pw_resource_add_listener⚠
Add an event listener
pw_resource_add_object_listener⚠
Set the resource implementation.
pw_resource_destroy⚠
Destroy a resource
pw_resource_error⚠
Generate an error for a resource
pw_resource_errorf⚠
pw_resource_errorf_id⚠
pw_resource_get_bound_id⚠
Get the global id this resource is bound to or SPA_ID_INVALID when not bound
pw_resource_get_client⚠
Get the client owning this resource
pw_resource_get_id⚠
Get the unique id of this resource
pw_resource_get_marshal⚠
Get the marshal functions for the resource
pw_resource_get_object_listeners⚠
Get the list of object listeners from a resource
pw_resource_get_permissions⚠
Get the permissions of this resource
pw_resource_get_protocol⚠
Get the protocol used for this resource
pw_resource_get_type⚠
Get the type and optionally the version of this resource
pw_resource_get_user_data⚠
Get the user data for the resource, the size was given in \ref pw_resource_new
pw_resource_install_marshal⚠
install a marshal function on a resource
pw_resource_new⚠
Make a new resource for client
pw_resource_ping⚠
Generate an ping event for a resource. This will generate a pong event with the same \a sequence number in the return value.
pw_resource_ref⚠
ref/unref a resource, Since 0.3.52
pw_resource_remove⚠
Remove a resource, like pw_resource_destroy but without sending a remove_id message to the client
pw_resource_set_bound_id⚠
Notify global id this resource is bound to
pw_resource_unref⚠
pw_set_domain⚠
pw_split_ip⚠
pw_split_strv⚠
pw_split_walk⚠
pw_stream_add_listener⚠
pw_stream_connect⚠
Connect a stream for input or output on \a port_path. \return 0 on success < 0 on error.
pw_stream_dequeue_buffer⚠
Get a buffer that can be filled for playback streams or consumed for capture streams. RT safe.
pw_stream_destroy⚠
Destroy a stream
pw_stream_disconnect⚠
Disconnect \a stream
pw_stream_emit_event⚠
Emit an event from this stream. RT safe. Since 1.2.6
pw_stream_flush⚠
Flush a stream. When \a drain is true, the drained callback will be called when all data is played or recorded. The stream can be resumed after the drain by setting it active again with \ref pw_stream_set_active(). A flush without a drain is mostly useful afer a state change to PAUSED, to flush any remaining data from the queues and the converters. RT safe.
pw_stream_get_control⚠
Get control values
pw_stream_get_core⚠
pw_stream_get_data_loop⚠
Get the data loop that is doing the processing of this stream. This loop is assigned after pw_stream_connect(). * Since 1.1.0
pw_stream_get_name⚠
pw_stream_get_node_id⚠
Get the node ID of the stream. \return node ID.
pw_stream_get_nsec⚠
Get the current time in nanoseconds. This value can be compared with the \ref pw_time.now value. RT safe. Since 1.1.0
pw_stream_get_properties⚠
pw_stream_get_state⚠
Get the current stream state. Since 1.4 this also sets errno when the state is PW_STREAM_STATE_ERROR
pw_stream_get_time⚠
Query the time on the stream, deprecated since 0.3.50, use pw_stream_get_time_n() to get the fields added since 0.3.50. RT safe.
pw_stream_get_time_n⚠
Query the time on the stream, RT safe
pw_stream_is_driving⚠
Check if the stream is driving. The stream needs to have the PW_STREAM_FLAG_DRIVER set. When the stream is driving, pw_stream_trigger_process() needs to be called when data is available (output) or needed (input). Since 0.3.34
pw_stream_is_lazy⚠
Check if the graph is using lazy scheduling. If the stream is driving according to \ref pw_stream_is_driving(), then it should consider taking into account the RequestProcess commands when driving the graph.
pw_stream_new⚠
Create a new unconnected \ref pw_stream \return a newly allocated \ref pw_stream
pw_stream_new_simple⚠
pw_stream_queue_buffer⚠
Submit a buffer for playback or recycle a buffer for capture. RT safe.
pw_stream_return_buffer⚠
Return a buffer to the queue without using it. This makes the buffer immediately available to dequeue again. RT safe.
pw_stream_set_active⚠
Activate or deactivate the stream
pw_stream_set_control⚠
Set control values
pw_stream_set_error⚠
Set the stream in error state
pw_stream_set_param⚠
Set a parameter on the stream. This is like pw_stream_set_control() but with a complete spa_pod param. It can also be called from the param_changed event handler to intercept and modify the param for the adapter. Since 0.3.70
pw_stream_set_rate⚠
Adjust the rate of the stream. When the stream is using an adaptive resampler, adjust the resampler rate. When there is no resampler, -ENOTSUP is returned. Activating the adaptive resampler will add a small amount of delay to the samples, you can deactivate it again by setting a value <= 0.0. RT safe. Since 1.4.0
pw_stream_state_as_string⚠
Convert a stream state to a readable string
pw_stream_trigger_process⚠
Trigger a push/pull on the stream. One iteration of the graph will be scheduled when the stream is driving according to \ref pw_stream_is_driving(). If it successfully finishes, process() will be called and the trigger_done event will be emitted. It is possible for the graph iteration to not finish, so pw_stream_trigger_process() needs to be called again even if process() and trigger_done is not called.
pw_stream_update_params⚠
Update the param exposed on the stream.
pw_stream_update_properties⚠
pw_strip⚠
pw_strv_find⚠
pw_strv_find_common⚠
pw_strv_parse⚠
pw_thread_loop_accept⚠
Signal all threads executing \ref pw_thread_loop_signal with wait_for_accept
pw_thread_loop_add_listener⚠
Add an event listener
pw_thread_loop_destroy⚠
Destroy a thread loop
pw_thread_loop_get_loop⚠
Get the loop implementation of the thread loop
pw_thread_loop_get_time⚠
Get a struct timespec suitable for \ref pw_thread_loop_timed_wait_full. Since: 0.3.7
pw_thread_loop_in_thread⚠
Check if inside the thread
pw_thread_loop_lock⚠
Lock the loop. This ensures exclusive ownership of the loop
pw_thread_loop_new⚠
Make a new thread loop with the given name and optional properties.
pw_thread_loop_new_full⚠
Make a new thread loop with the given loop, name and optional properties. When \a loop is NULL, a new loop will be created.
pw_thread_loop_signal⚠
Signal all threads waiting with \ref pw_thread_loop_wait
pw_thread_loop_start⚠
Start the thread loop
pw_thread_loop_stop⚠
Stop the thread loop
pw_thread_loop_timed_wait⚠
Release the lock and wait a maximum of ‘wait_max_sec’ seconds until some thread calls \ref pw_thread_loop_signal or time out
pw_thread_loop_timed_wait_full⚠
Release the lock and wait up to \a abstime until some thread calls \ref pw_thread_loop_signal. Use \ref pw_thread_loop_get_time to make a timeout. Since: 0.3.7
pw_thread_loop_unlock⚠
Unlock the loop
pw_thread_loop_wait⚠
Release the lock and wait until some thread calls \ref pw_thread_loop_signal
pw_type_info⚠
pw_unload_spa_handle⚠
pw_work_queue_add⚠
pw_work_queue_cancel⚠
pw_work_queue_complete⚠
pw_work_queue_destroy⚠
pw_work_queue_new⚠

Type Aliases§

FILE
_IO_lock_t
__builtin_va_list
__gnuc_va_list
__off64_t
__off_t
__syscall_slong_t
__time_t
_bindgen_ty_11
\addtogroup pw_type {
pw_destroy_t
a function to destroy an item
pw_endpoint_link_state
\addtogroup pw_session_manager {
pw_filter_flags
\enum pw_filter_flags Extra flags that can be used in \ref pw_filter_connect()
pw_filter_port_flags
pw_filter_state
\enum pw_filter_state The state of a filter
pw_global_bind_func_t
pw_impl_module_init_func_t
Module init function signature
pw_impl_port_state
pw_link_state
\enum pw_link_state The different link states
pw_memblock_flags
Flags passed to \ref pw_mempool_alloc()
pw_memmap_flags
pw_node_state
\enum pw_node_state The different node states
pw_stream_flags
\enum pw_stream_flags Extra flags that can be used in \ref pw_stream_connect()
pw_stream_state
\enum pw_stream_state The state of a stream
pw_work_func_t
va_list

Unions§

pw_map_item
\private An entry in the map. This is used internally only. Each element in the backing pw_array is a union pw_map_item. For real items, the data pointer points to the item. If an element has been removed, pw_map->free_list is the index of the most recently removed item. That item contains the index of the next removed item until item->next is SPA_ID_INVALID.