| PipeWire 1.4.6
    | 
A spa_node is a component that can consume and produce buffers. More...
| Files | |
| file | command.h | 
| spa/node/command.h | |
| file | event.h | 
| spa/node/event.h | |
| file | io.h | 
| spa/node/io.h | |
| file | keys.h | 
| spa/node/keys.h | |
| file | node.h | 
| spa/node/node.h | |
| file | type-info.h | 
| spa/node/type-info.h | |
| Data Structures | |
| struct | spa_io_buffers | 
| IO area to exchange buffers.  More... | |
| struct | spa_io_memory | 
| IO area to exchange a memory region.  More... | |
| struct | spa_io_range | 
| A range, suitable for input ports that can suggest a range to output ports.  More... | |
| struct | spa_io_clock | 
| Absolute time reporting.  More... | |
| struct | spa_io_video_size | 
| struct | spa_io_latency | 
| Latency reporting.  More... | |
| struct | spa_io_sequence | 
| control stream, io area for SPA_IO_Control and SPA_IO_Notify  More... | |
| struct | spa_io_segment_bar | 
| bar and beat segment  More... | |
| struct | spa_io_segment_video | 
| video frame segment  More... | |
| struct | spa_io_segment | 
| A segment converts a running time to a segment (stream) position.  More... | |
| struct | spa_io_position | 
| The position information adds extra meaning to the raw clock times.  More... | |
| struct | spa_io_rate_match | 
| Rate matching.  More... | |
| struct | spa_io_async_buffers | 
| async buffers  More... | |
| struct | spa_node | 
| struct | spa_node_info | 
| Node information structure.  More... | |
| struct | spa_port_info | 
| Port information structure.  More... | |
| struct | spa_result_node_error | 
| an error result  More... | |
| struct | spa_result_node_params | 
| the result of enum_params or port_enum_params.  More... | |
| struct | spa_node_events | 
| events from the spa_node.  More... | |
| struct | spa_node_callbacks | 
| Node callbacks.  More... | |
| struct | spa_node_methods | 
| Node methods.  More... | |
| struct | spa_result_node_params_data | 
| Macros | |
| #define | SPA_NODE_COMMAND_ID(cmd) | 
| #define | SPA_NODE_COMMAND_INIT(id) | 
| #define | SPA_NODE_EVENT_ID(ev) | 
| #define | SPA_NODE_EVENT_INIT(id) | 
| #define | SPA_STATUS_OK 0 | 
| #define | SPA_STATUS_NEED_DATA (1<<0) | 
| #define | SPA_STATUS_HAVE_DATA (1<<1) | 
| #define | SPA_STATUS_STOPPED (1<<2) | 
| #define | SPA_STATUS_DRAINED (1<<3) | 
| #define | SPA_IO_BUFFERS_INIT ((struct spa_io_buffers) { SPA_STATUS_OK, SPA_ID_INVALID, }) | 
| #define | SPA_IO_MEMORY_INIT ((struct spa_io_memory) { SPA_STATUS_OK, 0, NULL, }) | 
| #define | SPA_IO_CLOCK_FLAG_FREEWHEEL (1u<<0) /* graph is freewheeling */ | 
| #define | SPA_IO_CLOCK_FLAG_XRUN_RECOVER (1u<<1) /* recovering from xrun */ | 
| #define | SPA_IO_CLOCK_FLAG_LAZY (1u<<2) /* lazy scheduling */ | 
| #define | SPA_IO_CLOCK_FLAG_NO_RATE | 
| #define | SPA_IO_VIDEO_SIZE_VALID (1<<0) | 
| #define | SPA_IO_SEGMENT_BAR_FLAG_VALID (1<<0) | 
| #define | SPA_IO_SEGMENT_VIDEO_FLAG_VALID (1<<0) | 
| #define | SPA_IO_SEGMENT_VIDEO_FLAG_DROP_FRAME (1<<1) | 
| #define | SPA_IO_SEGMENT_VIDEO_FLAG_PULL_DOWN (1<<2) | 
| #define | SPA_IO_SEGMENT_VIDEO_FLAG_INTERLACED (1<<3) | 
| #define | SPA_IO_SEGMENT_FLAG_LOOPING (1<<0) | 
| after the duration, the segment repeats | |
| #define | SPA_IO_SEGMENT_FLAG_NO_POSITION (1<<1) | 
| position is invalid. | |
| #define | SPA_IO_POSITION_MAX_SEGMENTS 8 | 
| the maximum number of segments visible in the future | |
| #define | SPA_IO_RATE_MATCH_FLAG_ACTIVE (1 << 0) | 
| #define | SPA_KEY_NODE_NAME "node.name" | 
| node keys | |
| #define | SPA_KEY_NODE_DESCRIPTION "node.description" | 
| localized human readable node one-line description. | |
| #define | SPA_KEY_NODE_LATENCY "node.latency" | 
| the requested node latency | |
| #define | SPA_KEY_NODE_MAX_LATENCY "node.max-latency" | 
| maximum supported latency | |
| #define | SPA_KEY_NODE_DRIVER "node.driver" | 
| the node can be a driver | |
| #define | SPA_KEY_NODE_ALWAYS_PROCESS "node.always-process" | 
| call the process function even if not linked. | |
| #define | SPA_KEY_NODE_PAUSE_ON_IDLE "node.pause-on-idle" | 
| if the node should be paused immediately when idle. | |
| #define | SPA_KEY_NODE_MONITOR "node.monitor" | 
| the node has monitor ports | |
| #define | SPA_KEY_PORT_NAME "port.name" | 
| port keys | |
| #define | SPA_KEY_PORT_ALIAS "port.alias" | 
| a port alias | |
| #define | SPA_KEY_PORT_MONITOR "port.monitor" | 
| this port is a monitor port | |
| #define | SPA_KEY_PORT_IGNORE_LATENCY "port.ignore-latency" | 
| latency ignored by peers | |
| #define | SPA_KEY_PORT_GROUP "port.group" | 
| the port group this port belongs to | |
| #define | SPA_API_NODE static inline | 
| #define | SPA_TYPE_INTERFACE_Node SPA_TYPE_INFO_INTERFACE_BASE "Node" | 
| #define | SPA_VERSION_NODE 0 | 
| #define | SPA_NODE_CHANGE_MASK_FLAGS (1u<<0) | 
| #define | SPA_NODE_CHANGE_MASK_PROPS (1u<<1) | 
| #define | SPA_NODE_CHANGE_MASK_PARAMS (1u<<2) | 
| #define | SPA_NODE_FLAG_RT (1u<<0) | 
| node can do real-time processing | |
| #define | SPA_NODE_FLAG_IN_DYNAMIC_PORTS (1u<<1) | 
| input ports can be added/removed | |
| #define | SPA_NODE_FLAG_OUT_DYNAMIC_PORTS (1u<<2) | 
| output ports can be added/removed | |
| #define | SPA_NODE_FLAG_IN_PORT_CONFIG (1u<<3) | 
| input ports can be reconfigured with PortConfig parameter | |
| #define | SPA_NODE_FLAG_OUT_PORT_CONFIG (1u<<4) | 
| output ports can be reconfigured with PortConfig parameter | |
| #define | SPA_NODE_FLAG_NEED_CONFIGURE (1u<<5) | 
| node needs configuration before it can be started. | |
| #define | SPA_NODE_FLAG_ASYNC (1u<<6) | 
| the process function might not immediately produce or consume data but might offload the work to a worker thread. | |
| #define | SPA_NODE_INFO_INIT() | 
| #define | SPA_PORT_CHANGE_MASK_FLAGS (1u<<0) | 
| #define | SPA_PORT_CHANGE_MASK_RATE (1u<<1) | 
| #define | SPA_PORT_CHANGE_MASK_PROPS (1u<<2) | 
| #define | SPA_PORT_CHANGE_MASK_PARAMS (1u<<3) | 
| #define | SPA_PORT_FLAG_REMOVABLE (1u<<0) | 
| port can be removed | |
| #define | SPA_PORT_FLAG_OPTIONAL (1u<<1) | 
| processing on port is optional | |
| #define | SPA_PORT_FLAG_CAN_ALLOC_BUFFERS (1u<<2) | 
| the port can allocate buffer data | |
| #define | SPA_PORT_FLAG_IN_PLACE (1u<<3) | 
| the port can process data in-place and will need a writable input buffer | |
| #define | SPA_PORT_FLAG_NO_REF (1u<<4) | 
| the port does not keep a ref on the buffer. | |
| #define | SPA_PORT_FLAG_LIVE (1u<<5) | 
| output buffers from this port are timestamped against a live clock. | |
| #define | SPA_PORT_FLAG_PHYSICAL (1u<<6) | 
| connects to some device | |
| #define | SPA_PORT_FLAG_TERMINAL (1u<<7) | 
| data was not created from this port or will not be made available on another port | |
| #define | SPA_PORT_FLAG_DYNAMIC_DATA (1u<<8) | 
| data pointer on buffers can be changed. | |
| #define | SPA_PORT_INFO_INIT() | 
| #define | SPA_RESULT_TYPE_NODE_ERROR 1 | 
| #define | SPA_RESULT_TYPE_NODE_PARAMS 2 | 
| #define | SPA_NODE_EVENT_INFO 0 | 
| #define | SPA_NODE_EVENT_PORT_INFO 1 | 
| #define | SPA_NODE_EVENT_RESULT 2 | 
| #define | SPA_NODE_EVENT_EVENT 3 | 
| #define | SPA_NODE_EVENT_NUM 4 | 
| #define | SPA_VERSION_NODE_EVENTS 0 | 
| #define | SPA_NODE_CALLBACK_READY 0 | 
| #define | SPA_NODE_CALLBACK_REUSE_BUFFER 1 | 
| #define | SPA_NODE_CALLBACK_XRUN 2 | 
| #define | SPA_NODE_CALLBACK_NUM 3 | 
| #define | SPA_VERSION_NODE_CALLBACKS 0 | 
| #define | SPA_NODE_PARAM_FLAG_TEST_ONLY (1 << 0) | 
| flags that can be passed to set_param and port_set_param functions | |
| #define | SPA_NODE_PARAM_FLAG_FIXATE (1 << 1) | 
| Fixate the non-optional unset fields. | |
| #define | SPA_NODE_PARAM_FLAG_NEAREST (1 << 2) | 
| Allow set fields to be rounded to the nearest allowed field value. | |
| #define | SPA_NODE_BUFFERS_FLAG_ALLOC (1 << 0) | 
| flags to pass to the use_buffers functions | |
| #define | SPA_NODE_METHOD_ADD_LISTENER 0 | 
| #define | SPA_NODE_METHOD_SET_CALLBACKS 1 | 
| #define | SPA_NODE_METHOD_SYNC 2 | 
| #define | SPA_NODE_METHOD_ENUM_PARAMS 3 | 
| #define | SPA_NODE_METHOD_SET_PARAM 4 | 
| #define | SPA_NODE_METHOD_SET_IO 5 | 
| #define | SPA_NODE_METHOD_SEND_COMMAND 6 | 
| #define | SPA_NODE_METHOD_ADD_PORT 7 | 
| #define | SPA_NODE_METHOD_REMOVE_PORT 8 | 
| #define | SPA_NODE_METHOD_PORT_ENUM_PARAMS 9 | 
| #define | SPA_NODE_METHOD_PORT_SET_PARAM 10 | 
| #define | SPA_NODE_METHOD_PORT_USE_BUFFERS 11 | 
| #define | SPA_NODE_METHOD_PORT_SET_IO 12 | 
| #define | SPA_NODE_METHOD_PORT_REUSE_BUFFER 13 | 
| #define | SPA_NODE_METHOD_PROCESS 14 | 
| #define | SPA_NODE_METHOD_NUM 15 | 
| #define | SPA_VERSION_NODE_METHODS 0 | 
| #define | SPA_TYPE_INFO_IO SPA_TYPE_INFO_ENUM_BASE "IO" | 
| #define | SPA_TYPE_INFO_IO_BASE SPA_TYPE_INFO_IO ":" | 
| #define | SPA_TYPE_INFO_NodeEvent SPA_TYPE_INFO_EVENT_BASE "Node" | 
| #define | SPA_TYPE_INFO_NODE_EVENT_BASE SPA_TYPE_INFO_NodeEvent ":" | 
| #define | SPA_TYPE_INFO_NodeCommand SPA_TYPE_INFO_COMMAND_BASE "Node" | 
| #define | SPA_TYPE_INFO_NODE_COMMAND_BASE SPA_TYPE_INFO_NodeCommand ":" | 
| #define | SPA_API_NODE_UTILS static inline | 
| #define | spa_node_emit(hooks, method, version, ...) | 
| #define | spa_node_emit_info(hooks, ...) | 
| #define | spa_node_emit_port_info(hooks, ...) | 
| #define | spa_node_emit_result(hooks, ...) | 
| #define | spa_node_emit_event(hooks, ...) | 
| #define | spa_node_call(callbacks, method, version, ...) | 
| #define | spa_node_call_ready(hook, ...) | 
| #define | spa_node_call_reuse_buffer(hook, ...) | 
| #define | spa_node_call_xrun(hook, ...) | 
| Functions | |
| SPA_API_NODE int | spa_node_add_listener (struct spa_node *object, struct spa_hook *listener, const struct spa_node_events *events, void *data) | 
| SPA_API_NODE int | spa_node_set_callbacks (struct spa_node *object, const struct spa_node_callbacks *callbacks, void *data) | 
| SPA_API_NODE int | spa_node_sync (struct spa_node *object, int seq) | 
| SPA_API_NODE int | spa_node_enum_params (struct spa_node *object, int seq, uint32_t id, uint32_t start, uint32_t max, const struct spa_pod *filter) | 
| SPA_API_NODE int | spa_node_set_param (struct spa_node *object, uint32_t id, uint32_t flags, const struct spa_pod *param) | 
| SPA_API_NODE int | spa_node_set_io (struct spa_node *object, uint32_t id, void *data, size_t size) | 
| SPA_API_NODE int | spa_node_send_command (struct spa_node *object, const struct spa_command *command) | 
| SPA_API_NODE int | spa_node_add_port (struct spa_node *object, enum spa_direction direction, uint32_t port_id, const struct spa_dict *props) | 
| SPA_API_NODE int | spa_node_remove_port (struct spa_node *object, enum spa_direction direction, uint32_t port_id) | 
| SPA_API_NODE int | spa_node_port_enum_params (struct spa_node *object, int seq, enum spa_direction direction, uint32_t port_id, uint32_t id, uint32_t start, uint32_t max, const struct spa_pod *filter) | 
| SPA_API_NODE int | spa_node_port_set_param (struct spa_node *object, enum spa_direction direction, uint32_t port_id, uint32_t id, uint32_t flags, const struct spa_pod *param) | 
| SPA_API_NODE int | spa_node_port_use_buffers (struct spa_node *object, enum spa_direction direction, uint32_t port_id, uint32_t flags, struct spa_buffer **buffers, uint32_t n_buffers) | 
| SPA_API_NODE int | spa_node_port_set_io (struct spa_node *object, enum spa_direction direction, uint32_t port_id, uint32_t id, void *data, size_t size) | 
| SPA_API_NODE int | spa_node_port_reuse_buffer (struct spa_node *object, uint32_t port_id, uint32_t buffer_id) | 
| SPA_API_NODE int | spa_node_port_reuse_buffer_fast (struct spa_node *object, uint32_t port_id, uint32_t buffer_id) | 
| SPA_API_NODE int | spa_node_process (struct spa_node *object) | 
| SPA_API_NODE int | spa_node_process_fast (struct spa_node *object) | 
| SPA_API_NODE_UTILS void | spa_result_func_node_params (void *data, int seq, int res 1, uint32_t type 1, const void *result) | 
| SPA_API_NODE_UTILS int | spa_node_enum_params_sync (struct spa_node *node, uint32_t id, uint32_t *index, const struct spa_pod *filter, struct spa_pod **param, struct spa_pod_builder *builder) | 
| SPA_API_NODE_UTILS int | spa_node_port_enum_params_sync (struct spa_node *node, enum spa_direction direction, uint32_t port_id, uint32_t id, uint32_t *index, const struct spa_pod *filter, struct spa_pod **param, struct spa_pod_builder *builder) | 
| Variables | |
| static const struct spa_type_info | spa_type_io [] | 
| static const struct spa_type_info | spa_type_node_event_id [] | 
| static const struct spa_type_info | spa_type_node_event [] | 
| static const struct spa_type_info | spa_type_node_command_id [] | 
| static const struct spa_type_info | spa_type_node_command [] | 
A spa_node is a component that can consume and produce buffers.
| enum spa_node_command | 
| enum spa_node_event | 
| enum spa_event_node | 
| enum spa_io_type | 
IO areas.
IO information for a port on a node. This is allocated by the host and configured on a node or all ports for which IO is requested.
The plugin will communicate with the host through the IO areas. Different IO area types
| Enumerator | |
|---|---|
| SPA_IO_Invalid | |
| SPA_IO_Buffers | area to exchange buffers, struct spa_io_buffers | 
| SPA_IO_Range | expected byte range, struct spa_io_range (currently not used in PipeWire) | 
| SPA_IO_Clock | area to update clock information, struct spa_io_clock | 
| SPA_IO_Latency | latency reporting, struct spa_io_latency (currently not used in PipeWire). 
 | 
| SPA_IO_Control | area for control messages, struct spa_io_sequence | 
| SPA_IO_Notify | area for notify messages, struct spa_io_sequence | 
| SPA_IO_Position | position information in the graph, struct spa_io_position | 
| SPA_IO_RateMatch | rate matching between nodes, struct spa_io_rate_match | 
| SPA_IO_Memory | memory pointer, struct spa_io_memory (currently not used in PipeWire) | 
| SPA_IO_AsyncBuffers | async area to exchange buffers, struct spa_io_async_buffers | 
| #define SPA_NODE_COMMAND_ID | ( | cmd | ) | 
| #define SPA_NODE_COMMAND_INIT | ( | id | ) | 
| #define SPA_NODE_EVENT_ID | ( | ev | ) | 
| #define SPA_NODE_EVENT_INIT | ( | id | ) | 
| #define SPA_STATUS_OK 0 | 
| #define SPA_STATUS_NEED_DATA (1<<0) | 
| #define SPA_STATUS_HAVE_DATA (1<<1) | 
| #define SPA_STATUS_STOPPED (1<<2) | 
| #define SPA_STATUS_DRAINED (1<<3) | 
| #define SPA_IO_BUFFERS_INIT ((struct spa_io_buffers) { SPA_STATUS_OK, SPA_ID_INVALID, }) | 
| #define SPA_IO_MEMORY_INIT ((struct spa_io_memory) { SPA_STATUS_OK, 0, NULL, }) | 
| #define SPA_IO_CLOCK_FLAG_FREEWHEEL (1u<<0) /* graph is freewheeling */ | 
| #define SPA_IO_CLOCK_FLAG_XRUN_RECOVER (1u<<1) /* recovering from xrun */ | 
| #define SPA_IO_CLOCK_FLAG_LAZY (1u<<2) /* lazy scheduling */ | 
| #define SPA_IO_CLOCK_FLAG_NO_RATE | 
| #define SPA_IO_VIDEO_SIZE_VALID (1<<0) | 
| #define SPA_IO_SEGMENT_BAR_FLAG_VALID (1<<0) | 
| #define SPA_IO_SEGMENT_VIDEO_FLAG_VALID (1<<0) | 
| #define SPA_IO_SEGMENT_VIDEO_FLAG_DROP_FRAME (1<<1) | 
| #define SPA_IO_SEGMENT_VIDEO_FLAG_PULL_DOWN (1<<2) | 
| #define SPA_IO_SEGMENT_VIDEO_FLAG_INTERLACED (1<<3) | 
| #define SPA_IO_SEGMENT_FLAG_LOOPING (1<<0) | 
after the duration, the segment repeats
| #define SPA_IO_SEGMENT_FLAG_NO_POSITION (1<<1) | 
position is invalid.
The position can be invalid after a seek, for example, when the exact mapping of the extra segment info (bar, video, ...) to position has not been determined yet
| #define SPA_IO_POSITION_MAX_SEGMENTS 8 | 
the maximum number of segments visible in the future
| #define SPA_IO_RATE_MATCH_FLAG_ACTIVE (1 << 0) | 
| #define SPA_KEY_NODE_NAME "node.name" | 
node keys
a node name
| #define SPA_KEY_NODE_DESCRIPTION "node.description" | 
localized human readable node one-line description.
Ex. "Foobar USB Headset"
| #define SPA_KEY_NODE_LATENCY "node.latency" | 
the requested node latency
| #define SPA_KEY_NODE_MAX_LATENCY "node.max-latency" | 
maximum supported latency
| #define SPA_KEY_NODE_DRIVER "node.driver" | 
the node can be a driver
| #define SPA_KEY_NODE_ALWAYS_PROCESS "node.always-process" | 
call the process function even if not linked.
| #define SPA_KEY_NODE_PAUSE_ON_IDLE "node.pause-on-idle" | 
if the node should be paused immediately when idle.
| #define SPA_KEY_NODE_MONITOR "node.monitor" | 
the node has monitor ports
| #define SPA_KEY_PORT_NAME "port.name" | 
port keys
a port name
| #define SPA_KEY_PORT_ALIAS "port.alias" | 
a port alias
| #define SPA_KEY_PORT_MONITOR "port.monitor" | 
this port is a monitor port
| #define SPA_KEY_PORT_IGNORE_LATENCY "port.ignore-latency" | 
latency ignored by peers
| #define SPA_KEY_PORT_GROUP "port.group" | 
the port group this port belongs to
| #define SPA_API_NODE static inline | 
| #define SPA_TYPE_INTERFACE_Node SPA_TYPE_INFO_INTERFACE_BASE "Node" | 
| #define SPA_VERSION_NODE 0 | 
| #define SPA_NODE_CHANGE_MASK_FLAGS (1u<<0) | 
| #define SPA_NODE_CHANGE_MASK_PROPS (1u<<1) | 
| #define SPA_NODE_CHANGE_MASK_PARAMS (1u<<2) | 
| #define SPA_NODE_FLAG_RT (1u<<0) | 
node can do real-time processing
| #define SPA_NODE_FLAG_IN_DYNAMIC_PORTS (1u<<1) | 
input ports can be added/removed
| #define SPA_NODE_FLAG_OUT_DYNAMIC_PORTS (1u<<2) | 
output ports can be added/removed
| #define SPA_NODE_FLAG_IN_PORT_CONFIG (1u<<3) | 
input ports can be reconfigured with PortConfig parameter
| #define SPA_NODE_FLAG_OUT_PORT_CONFIG (1u<<4) | 
output ports can be reconfigured with PortConfig parameter
| #define SPA_NODE_FLAG_NEED_CONFIGURE (1u<<5) | 
node needs configuration before it can be started.
| #define SPA_NODE_FLAG_ASYNC (1u<<6) | 
the process function might not immediately produce or consume data but might offload the work to a worker thread.
| #define SPA_NODE_INFO_INIT | ( | ) | 
| #define SPA_PORT_CHANGE_MASK_FLAGS (1u<<0) | 
| #define SPA_PORT_CHANGE_MASK_RATE (1u<<1) | 
| #define SPA_PORT_CHANGE_MASK_PROPS (1u<<2) | 
| #define SPA_PORT_CHANGE_MASK_PARAMS (1u<<3) | 
| #define SPA_PORT_FLAG_REMOVABLE (1u<<0) | 
port can be removed
| #define SPA_PORT_FLAG_OPTIONAL (1u<<1) | 
processing on port is optional
| #define SPA_PORT_FLAG_CAN_ALLOC_BUFFERS (1u<<2) | 
the port can allocate buffer data
| #define SPA_PORT_FLAG_IN_PLACE (1u<<3) | 
the port can process data in-place and will need a writable input buffer
| #define SPA_PORT_FLAG_NO_REF (1u<<4) | 
the port does not keep a ref on the buffer.
This means the node will always completely consume the input buffer and it will be recycled after process.
| #define SPA_PORT_FLAG_LIVE (1u<<5) | 
output buffers from this port are timestamped against a live clock.
| #define SPA_PORT_FLAG_PHYSICAL (1u<<6) | 
connects to some device
| #define SPA_PORT_FLAG_TERMINAL (1u<<7) | 
data was not created from this port or will not be made available on another port
| #define SPA_PORT_FLAG_DYNAMIC_DATA (1u<<8) | 
data pointer on buffers can be changed.
Only the buffer data marked as DYNAMIC can be changed.
| #define SPA_PORT_INFO_INIT | ( | ) | 
| #define SPA_RESULT_TYPE_NODE_ERROR 1 | 
| #define SPA_RESULT_TYPE_NODE_PARAMS 2 | 
| #define SPA_NODE_EVENT_INFO 0 | 
| #define SPA_NODE_EVENT_PORT_INFO 1 | 
| #define SPA_NODE_EVENT_RESULT 2 | 
| #define SPA_NODE_EVENT_EVENT 3 | 
| #define SPA_NODE_EVENT_NUM 4 | 
| #define SPA_VERSION_NODE_EVENTS 0 | 
| #define SPA_NODE_CALLBACK_READY 0 | 
| #define SPA_NODE_CALLBACK_REUSE_BUFFER 1 | 
| #define SPA_NODE_CALLBACK_XRUN 2 | 
| #define SPA_NODE_CALLBACK_NUM 3 | 
| #define SPA_VERSION_NODE_CALLBACKS 0 | 
| #define SPA_NODE_PARAM_FLAG_TEST_ONLY (1 << 0) | 
flags that can be passed to set_param and port_set_param functions
Just check if the param is accepted
| #define SPA_NODE_PARAM_FLAG_FIXATE (1 << 1) | 
Fixate the non-optional unset fields.
| #define SPA_NODE_PARAM_FLAG_NEAREST (1 << 2) | 
Allow set fields to be rounded to the nearest allowed field value.
| #define SPA_NODE_BUFFERS_FLAG_ALLOC (1 << 0) | 
flags to pass to the use_buffers functions
Allocate memory for the buffers. This flag is ignored when the port does not have the SPA_PORT_FLAG_CAN_ALLOC_BUFFERS set.
| #define SPA_NODE_METHOD_ADD_LISTENER 0 | 
| #define SPA_NODE_METHOD_SET_CALLBACKS 1 | 
| #define SPA_NODE_METHOD_SYNC 2 | 
| #define SPA_NODE_METHOD_ENUM_PARAMS 3 | 
| #define SPA_NODE_METHOD_SET_PARAM 4 | 
| #define SPA_NODE_METHOD_SET_IO 5 | 
| #define SPA_NODE_METHOD_SEND_COMMAND 6 | 
| #define SPA_NODE_METHOD_ADD_PORT 7 | 
| #define SPA_NODE_METHOD_REMOVE_PORT 8 | 
| #define SPA_NODE_METHOD_PORT_ENUM_PARAMS 9 | 
| #define SPA_NODE_METHOD_PORT_SET_PARAM 10 | 
| #define SPA_NODE_METHOD_PORT_USE_BUFFERS 11 | 
| #define SPA_NODE_METHOD_PORT_SET_IO 12 | 
| #define SPA_NODE_METHOD_PORT_REUSE_BUFFER 13 | 
| #define SPA_NODE_METHOD_PROCESS 14 | 
| #define SPA_NODE_METHOD_NUM 15 | 
| #define SPA_VERSION_NODE_METHODS 0 | 
| #define SPA_TYPE_INFO_IO SPA_TYPE_INFO_ENUM_BASE "IO" | 
| #define SPA_TYPE_INFO_IO_BASE SPA_TYPE_INFO_IO ":" | 
| #define SPA_TYPE_INFO_NodeEvent SPA_TYPE_INFO_EVENT_BASE "Node" | 
| #define SPA_TYPE_INFO_NODE_EVENT_BASE SPA_TYPE_INFO_NodeEvent ":" | 
| #define SPA_TYPE_INFO_NodeCommand SPA_TYPE_INFO_COMMAND_BASE "Node" | 
| #define SPA_TYPE_INFO_NODE_COMMAND_BASE SPA_TYPE_INFO_NodeCommand ":" | 
| #define SPA_API_NODE_UTILS static inline | 
| #define spa_node_emit | ( | hooks, | |
| method, | |||
| version, | |||
| ... ) | 
| #define spa_node_emit_info | ( | hooks, | |
| ... ) | 
| #define spa_node_emit_port_info | ( | hooks, | |
| ... ) | 
| #define spa_node_emit_result | ( | hooks, | |
| ... ) | 
| #define spa_node_emit_event | ( | hooks, | |
| ... ) | 
| #define spa_node_call | ( | callbacks, | |
| method, | |||
| version, | |||
| ... ) | 
| #define spa_node_call_ready | ( | hook, | |
| ... ) | 
| #define spa_node_call_reuse_buffer | ( | hook, | |
| ... ) | 
| #define spa_node_call_xrun | ( | hook, | |
| ... ) | 
| SPA_API_NODE int spa_node_add_listener | ( | struct spa_node * | object, | 
| struct spa_hook * | listener, | ||
| const struct spa_node_events * | events, | ||
| void * | data ) | 
| SPA_API_NODE int spa_node_set_callbacks | ( | struct spa_node * | object, | 
| const struct spa_node_callbacks * | callbacks, | ||
| void * | data ) | 
| SPA_API_NODE int spa_node_sync | ( | struct spa_node * | object, | 
| int | seq ) | 
| SPA_API_NODE int spa_node_enum_params | ( | struct spa_node * | object, | 
| int | seq, | ||
| uint32_t | id, | ||
| uint32_t | start, | ||
| uint32_t | max, | ||
| const struct spa_pod * | filter ) | 
| SPA_API_NODE int spa_node_set_param | ( | struct spa_node * | object, | 
| uint32_t | id, | ||
| uint32_t | flags, | ||
| const struct spa_pod * | param ) | 
| SPA_API_NODE int spa_node_set_io | ( | struct spa_node * | object, | 
| uint32_t | id, | ||
| void * | data, | ||
| size_t | size ) | 
| SPA_API_NODE int spa_node_send_command | ( | struct spa_node * | object, | 
| const struct spa_command * | command ) | 
| SPA_API_NODE int spa_node_add_port | ( | struct spa_node * | object, | 
| enum spa_direction | direction, | ||
| uint32_t | port_id, | ||
| const struct spa_dict * | props ) | 
| SPA_API_NODE int spa_node_remove_port | ( | struct spa_node * | object, | 
| enum spa_direction | direction, | ||
| uint32_t | port_id ) | 
| SPA_API_NODE int spa_node_port_enum_params | ( | struct spa_node * | object, | 
| int | seq, | ||
| enum spa_direction | direction, | ||
| uint32_t | port_id, | ||
| uint32_t | id, | ||
| uint32_t | start, | ||
| uint32_t | max, | ||
| const struct spa_pod * | filter ) | 
| SPA_API_NODE int spa_node_port_set_param | ( | struct spa_node * | object, | 
| enum spa_direction | direction, | ||
| uint32_t | port_id, | ||
| uint32_t | id, | ||
| uint32_t | flags, | ||
| const struct spa_pod * | param ) | 
| SPA_API_NODE int spa_node_port_use_buffers | ( | struct spa_node * | object, | 
| enum spa_direction | direction, | ||
| uint32_t | port_id, | ||
| uint32_t | flags, | ||
| struct spa_buffer ** | buffers, | ||
| uint32_t | n_buffers ) | 
| SPA_API_NODE int spa_node_port_set_io | ( | struct spa_node * | object, | 
| enum spa_direction | direction, | ||
| uint32_t | port_id, | ||
| uint32_t | id, | ||
| void * | data, | ||
| size_t | size ) | 
| SPA_API_NODE int spa_node_port_reuse_buffer | ( | struct spa_node * | object, | 
| uint32_t | port_id, | ||
| uint32_t | buffer_id ) | 
| SPA_API_NODE int spa_node_port_reuse_buffer_fast | ( | struct spa_node * | object, | 
| uint32_t | port_id, | ||
| uint32_t | buffer_id ) | 
| SPA_API_NODE int spa_node_process | ( | struct spa_node * | object | ) | 
| SPA_API_NODE int spa_node_process_fast | ( | struct spa_node * | object | ) | 
| SPA_API_NODE_UTILS void spa_result_func_node_params | ( | void * | data, | 
| int | seq, | ||
| int res | 1, | ||
| uint32_t type | 1, | ||
| const void * | result ) | 
| SPA_API_NODE_UTILS int spa_node_enum_params_sync | ( | struct spa_node * | node, | 
| uint32_t | id, | ||
| uint32_t * | index, | ||
| const struct spa_pod * | filter, | ||
| struct spa_pod ** | param, | ||
| struct spa_pod_builder * | builder ) | 
| SPA_API_NODE_UTILS int spa_node_port_enum_params_sync | ( | struct spa_node * | node, | 
| enum spa_direction | direction, | ||
| uint32_t | port_id, | ||
| uint32_t | id, | ||
| uint32_t * | index, | ||
| const struct spa_pod * | filter, | ||
| struct spa_pod ** | param, | ||
| struct spa_pod_builder * | builder ) | 
| 
 | static | 
| 
 | static | 
| 
 | static | 
| 
 | static | 
| 
 | static |