PipeWire
0.3.33
|
A spa_node is a component that can consume and produce buffers. More...
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_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) SPA_COMMAND_ID(cmd, SPA_TYPE_COMMAND_Node) |
#define | SPA_NODE_COMMAND_INIT(id) SPA_COMMAND_INIT(SPA_TYPE_COMMAND_Node, id) |
#define | SPA_NODE_EVENT_ID(ev) SPA_EVENT_ID(ev, SPA_TYPE_EVENT_Node) |
#define | SPA_NODE_EVENT_INIT(id) SPA_EVENT_INIT(SPA_TYPE_EVENT_Node, id) |
#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_POSITION_MAX_SEGMENTS 8 |
the maximum number of segments visible in the future More... | |
#define | SPA_KEY_NODE_NAME "node.name" |
node keys More... | |
#define | SPA_KEY_NODE_LATENCY "node.latency" |
the requested node latency More... | |
#define | SPA_KEY_NODE_MAX_LATENCY "node.max-latency" |
maximum supported latency More... | |
#define | SPA_KEY_NODE_DRIVER "node.driver" |
the node can be a driver More... | |
#define | SPA_KEY_NODE_ALWAYS_PROCESS "node.always-process" |
call the process function even if not linked. More... | |
#define | SPA_KEY_NODE_PAUSE_ON_IDLE "node.pause-on-idle" |
if the node should be paused immediately when idle. More... | |
#define | SPA_KEY_NODE_MONITOR "node.monitor" |
the node has monitor ports More... | |
#define | SPA_KEY_PORT_NAME "port.name" |
port keys More... | |
#define | SPA_KEY_PORT_ALIAS "port.alias" |
a port alias More... | |
#define | SPA_KEY_PORT_MONITOR "port.monitor" |
this port is a monitor port More... | |
#define | SPA_TYPE_INTERFACE_Node SPA_TYPE_INFO_INTERFACE_BASE "Node" |
#define | SPA_VERSION_NODE 0 |
#define | SPA_NODE_INFO_INIT() (struct spa_node_info) { 0, } |
#define | SPA_PORT_INFO_INIT() (struct spa_port_info) { 0, } |
#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_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_NODE_PARAM_FLAG_TEST_ONLY (1 << 0) |
flags that can be passed to set_param and port_set_param functions More... | |
#define | SPA_NODE_PARAM_FLAG_FIXATE (1 << 1) |
Fixate the non-optional unset fields. More... | |
#define | SPA_NODE_PARAM_FLAG_NEAREST (1 << 2) |
Allow set fields to be rounded to the nearest allowed field value. More... | |
#define | SPA_NODE_BUFFERS_FLAG_ALLOC (1 << 0) |
flags to pass to the use_buffers functions More... | |
#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_node_method(o, method, version, ...) |
#define | spa_node_add_listener(n, ...) spa_node_method(n, add_listener, 0, __VA_ARGS__) |
#define | spa_node_set_callbacks(n, ...) spa_node_method(n, set_callbacks, 0, __VA_ARGS__) |
#define | spa_node_sync(n, ...) spa_node_method(n, sync, 0, __VA_ARGS__) |
#define | spa_node_enum_params(n, ...) spa_node_method(n, enum_params, 0, __VA_ARGS__) |
#define | spa_node_set_param(n, ...) spa_node_method(n, set_param, 0, __VA_ARGS__) |
#define | spa_node_set_io(n, ...) spa_node_method(n, set_io, 0, __VA_ARGS__) |
#define | spa_node_send_command(n, ...) spa_node_method(n, send_command, 0, __VA_ARGS__) |
#define | spa_node_add_port(n, ...) spa_node_method(n, add_port, 0, __VA_ARGS__) |
#define | spa_node_remove_port(n, ...) spa_node_method(n, remove_port, 0, __VA_ARGS__) |
#define | spa_node_port_enum_params(n, ...) spa_node_method(n, port_enum_params, 0, __VA_ARGS__) |
#define | spa_node_port_set_param(n, ...) spa_node_method(n, port_set_param, 0, __VA_ARGS__) |
#define | spa_node_port_use_buffers(n, ...) spa_node_method(n, port_use_buffers, 0, __VA_ARGS__) |
#define | spa_node_port_set_io(n, ...) spa_node_method(n, port_set_io, 0, __VA_ARGS__) |
#define | spa_node_port_reuse_buffer(n, ...) spa_node_method(n, port_reuse_buffer, 0, __VA_ARGS__) |
#define | spa_node_process(n) spa_node_method(n, process, 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_node_emit(hooks, method, version, ...) |
#define | spa_node_emit_info(hooks, ...) spa_node_emit(hooks,info, 0, __VA_ARGS__) |
#define | spa_node_emit_port_info(hooks, ...) spa_node_emit(hooks,port_info, 0, __VA_ARGS__) |
#define | spa_node_emit_result(hooks, ...) spa_node_emit(hooks,result, 0, __VA_ARGS__) |
#define | spa_node_emit_event(hooks, ...) spa_node_emit(hooks,event, 0, __VA_ARGS__) |
#define | spa_node_call(callbacks, method, version, ...) |
#define | spa_node_call_ready(hook, ...) spa_node_call(hook, ready, 0, __VA_ARGS__) |
#define | spa_node_call_reuse_buffer(hook, ...) spa_node_call(hook, reuse_buffer, 0, __VA_ARGS__) |
#define | spa_node_call_xrun(hook, ...) spa_node_call(hook, xrun, 0, __VA_ARGS__) |
Functions | |
void | spa_result_func_node_params (void *data, int seq, int res, uint32_t type, const void *result) |
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) |
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 | |
const struct spa_type_info | spa_type_io [] |
const struct spa_type_info | spa_type_node_event_id [] |
const struct spa_type_info | spa_type_node_event [] |
const struct spa_type_info | spa_type_node_command_id [] |
const struct spa_type_info | spa_type_node_command [] |
A spa_node is a component that can consume and produce buffers.
#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_POSITION_MAX_SEGMENTS 8 |
the maximum number of segments visible in the future
#define SPA_KEY_NODE_ALWAYS_PROCESS "node.always-process" |
call the process function even if not linked.
#define SPA_KEY_NODE_DRIVER "node.driver" |
the node can be a driver
#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_MONITOR "node.monitor" |
the node has monitor ports
#define SPA_KEY_NODE_NAME "node.name" |
node keys
a node name
#define SPA_KEY_NODE_PAUSE_ON_IDLE "node.pause-on-idle" |
if the node should be paused immediately when idle.
#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_NAME "port.name" |
port keys
a port name
#define spa_node_add_listener | ( | n, | |
... | |||
) | spa_node_method(n, add_listener, 0, __VA_ARGS__) |
#define spa_node_add_port | ( | n, | |
... | |||
) | spa_node_method(n, add_port, 0, __VA_ARGS__) |
#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_call | ( | callbacks, | |
method, | |||
version, | |||
... | |||
) |
#define spa_node_call_ready | ( | hook, | |
... | |||
) | spa_node_call(hook, ready, 0, __VA_ARGS__) |
#define spa_node_call_reuse_buffer | ( | hook, | |
... | |||
) | spa_node_call(hook, reuse_buffer, 0, __VA_ARGS__) |
#define spa_node_call_xrun | ( | hook, | |
... | |||
) | spa_node_call(hook, xrun, 0, __VA_ARGS__) |
#define SPA_NODE_CALLBACK_NUM 3 |
#define SPA_NODE_CALLBACK_READY 0 |
#define SPA_NODE_CALLBACK_REUSE_BUFFER 1 |
#define SPA_NODE_CALLBACK_XRUN 2 |
#define SPA_NODE_COMMAND_ID | ( | cmd | ) | SPA_COMMAND_ID(cmd, SPA_TYPE_COMMAND_Node) |
#define SPA_NODE_COMMAND_INIT | ( | id | ) | SPA_COMMAND_INIT(SPA_TYPE_COMMAND_Node, id) |
#define spa_node_emit | ( | hooks, | |
method, | |||
version, | |||
... | |||
) |
#define spa_node_emit_event | ( | hooks, | |
... | |||
) | spa_node_emit(hooks,event, 0, __VA_ARGS__) |
#define spa_node_emit_info | ( | hooks, | |
... | |||
) | spa_node_emit(hooks,info, 0, __VA_ARGS__) |
#define spa_node_emit_port_info | ( | hooks, | |
... | |||
) | spa_node_emit(hooks,port_info, 0, __VA_ARGS__) |
#define spa_node_emit_result | ( | hooks, | |
... | |||
) | spa_node_emit(hooks,result, 0, __VA_ARGS__) |
#define spa_node_enum_params | ( | n, | |
... | |||
) | spa_node_method(n, enum_params, 0, __VA_ARGS__) |
#define SPA_NODE_EVENT_EVENT 3 |
#define SPA_NODE_EVENT_ID | ( | ev | ) | SPA_EVENT_ID(ev, SPA_TYPE_EVENT_Node) |
#define SPA_NODE_EVENT_INFO 0 |
#define SPA_NODE_EVENT_INIT | ( | id | ) | SPA_EVENT_INIT(SPA_TYPE_EVENT_Node, id) |
#define SPA_NODE_EVENT_NUM 4 |
#define SPA_NODE_EVENT_PORT_INFO 1 |
#define SPA_NODE_EVENT_RESULT 2 |
#define SPA_NODE_INFO_INIT | ( | ) | (struct spa_node_info) { 0, } |
#define spa_node_method | ( | o, | |
method, | |||
version, | |||
... | |||
) |
#define SPA_NODE_METHOD_ADD_LISTENER 0 |
#define SPA_NODE_METHOD_ADD_PORT 7 |
#define SPA_NODE_METHOD_ENUM_PARAMS 3 |
#define SPA_NODE_METHOD_NUM 15 |
#define SPA_NODE_METHOD_PORT_ENUM_PARAMS 9 |
#define SPA_NODE_METHOD_PORT_REUSE_BUFFER 13 |
#define SPA_NODE_METHOD_PORT_SET_IO 12 |
#define SPA_NODE_METHOD_PORT_SET_PARAM 10 |
#define SPA_NODE_METHOD_PORT_USE_BUFFERS 11 |
#define SPA_NODE_METHOD_PROCESS 14 |
#define SPA_NODE_METHOD_REMOVE_PORT 8 |
#define SPA_NODE_METHOD_SEND_COMMAND 6 |
#define SPA_NODE_METHOD_SET_CALLBACKS 1 |
#define SPA_NODE_METHOD_SET_IO 5 |
#define SPA_NODE_METHOD_SET_PARAM 4 |
#define SPA_NODE_METHOD_SYNC 2 |
#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_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_port_enum_params | ( | n, | |
... | |||
) | spa_node_method(n, port_enum_params, 0, __VA_ARGS__) |
#define spa_node_port_reuse_buffer | ( | n, | |
... | |||
) | spa_node_method(n, port_reuse_buffer, 0, __VA_ARGS__) |
#define spa_node_port_set_io | ( | n, | |
... | |||
) | spa_node_method(n, port_set_io, 0, __VA_ARGS__) |
#define spa_node_port_set_param | ( | n, | |
... | |||
) | spa_node_method(n, port_set_param, 0, __VA_ARGS__) |
#define spa_node_port_use_buffers | ( | n, | |
... | |||
) | spa_node_method(n, port_use_buffers, 0, __VA_ARGS__) |
#define spa_node_process | ( | n | ) | spa_node_method(n, process, 0) |
#define spa_node_remove_port | ( | n, | |
... | |||
) | spa_node_method(n, remove_port, 0, __VA_ARGS__) |
#define spa_node_send_command | ( | n, | |
... | |||
) | spa_node_method(n, send_command, 0, __VA_ARGS__) |
#define spa_node_set_callbacks | ( | n, | |
... | |||
) | spa_node_method(n, set_callbacks, 0, __VA_ARGS__) |
#define spa_node_set_io | ( | n, | |
... | |||
) | spa_node_method(n, set_io, 0, __VA_ARGS__) |
#define spa_node_set_param | ( | n, | |
... | |||
) | spa_node_method(n, set_param, 0, __VA_ARGS__) |
#define spa_node_sync | ( | n, | |
... | |||
) | spa_node_method(n, sync, 0, __VA_ARGS__) |
#define SPA_PORT_INFO_INIT | ( | ) | (struct spa_port_info) { 0, } |
#define SPA_RESULT_TYPE_NODE_ERROR 1 |
#define SPA_RESULT_TYPE_NODE_PARAMS 2 |
#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_NODE_COMMAND_BASE SPA_TYPE_INFO_NodeCommand ":" |
#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_NodeEvent SPA_TYPE_INFO_EVENT_BASE "Node" |
#define SPA_TYPE_INTERFACE_Node SPA_TYPE_INFO_INTERFACE_BASE "Node" |
#define SPA_VERSION_NODE 0 |
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 |
SPA_IO_Clock | area to update clock information, struct spa_io_clock |
SPA_IO_Latency | latency reporting, struct spa_io_latency |
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 |
enum spa_node_command |
enum spa_node_event |
|
inline |
References spa_result_node_params_data::builder.
|
inline |
References spa_result_node_params_data::builder.
Referenced by pw_context_debug_port_params(), and pw_context_find_format().
|
inline |
const struct spa_type_info spa_type_io[] |
Referenced by pw_control_add_link(), and pw_control_new().
const struct spa_type_info spa_type_node_command[] |
const struct spa_type_info spa_type_node_command_id[] |
const struct spa_type_info spa_type_node_event[] |
const struct spa_type_info spa_type_node_event_id[] |