Go to the documentation of this file.
94 #define SPA_STATUS_OK 0
95 #define SPA_STATUS_NEED_DATA (1<<0)
96 #define SPA_STATUS_HAVE_DATA (1<<1)
97 #define SPA_STATUS_STOPPED (1<<2)
98 #define SPA_STATUS_DRAINED (1<<3)
103 #define SPA_IO_BUFFERS_INIT (struct spa_io_buffers) { SPA_STATUS_OK, SPA_ID_INVALID, }
113 #define SPA_IO_MEMORY_INIT (struct spa_io_memory) { SPA_STATUS_OK, 0, NULL, }
133 #define SPA_IO_CLOCK_FLAG_FREEWHEEL (1u<<0)
152 #define SPA_IO_VIDEO_SIZE_VALID (1<<0)
176 #define SPA_IO_SEGMENT_BAR_FLAG_VALID (1<<0)
188 #define SPA_IO_SEGMENT_VIDEO_FLAG_VALID (1<<0)
189 #define SPA_IO_SEGMENT_VIDEO_FLAG_DROP_FRAME (1<<1)
190 #define SPA_IO_SEGMENT_VIDEO_FLAG_PULL_DOWN (1<<2)
191 #define SPA_IO_SEGMENT_VIDEO_FLAG_INTERLACED (1<<3)
225 #define SPA_IO_SEGMENT_FLAG_LOOPING (1<<0)
226 #define SPA_IO_SEGMENT_FLAG_NO_POSITION (1<<1)
246 struct spa_io_segment_bar bar;
257 #define SPA_IO_POSITION_MAX_SEGMENTS 8
291 #define SPA_IO_RATE_MATCH_FLAG_ACTIVE (1 << 0)
float signature_num
time signature numerator
Definition: io.h:179
#define PW_DIRECTION_INPUT
Definition: port.h:57
struct spa_dict * props
the properties of the node
Definition: src/pipewire/node.h:85
struct pw_node_info * pw_node_info_update(struct pw_node_info *info, const struct pw_node_info *update)
Definition: introspect.c:168
uint32_t version
Definition: io.h:224
#define PW_LINK_CHANGE_MASK_STATE
Definition: link.h:77
void pw_device_info_free(struct pw_device_info *info)
Free a pw_device_info.
Definition: introspect.c:412
int32_t status
the status code
Definition: io.h:99
struct pw_link_info * pw_link_info_update(struct pw_link_info *info, const struct pw_link_info *update)
Definition: introspect.c:453
uint32_t minutes
Definition: io.h:196
uint32_t n_params
number of items in params
Definition: src/pipewire/node.h:87
latency reporting
Definition: io.h:163
struct spa_dict * props
extra properties
Definition: src/pipewire/device.h:49
uint32_t padding[8]
Definition: io.h:147
uint32_t input_port_id
input port id
Definition: link.h:76
@ SPA_IO_Position
position information in the graph, struct spa_io_position
Definition: io.h:59
uint32_t id
id of the global
Definition: link.h:72
struct spa_fraction rate
rate for min/max
Definition: io.h:164
A range, suitable for input ports that can suggest a range to output ports.
Definition: io.h:116
const char * key
Definition: utils/dict.h:42
struct spa_param_info * params
parameters
Definition: src/pipewire/node.h:86
The core information.
Definition: core.h:73
uint64_t change_mask
bitfield of changed fields since last call
Definition: factory.h:53
#define SPA_IO_POSITION_MAX_SEGMENTS
the maximum number of segments visible in the future
Definition: io.h:257
uint64_t change_mask
bitfield of changed fields since last call
Definition: port.h:69
@ PW_LINK_STATE_NEGOTIATING
the link is negotiating formats
Definition: link.h:62
enum pw_direction direction
port direction
Definition: port.h:65
uint32_t flags
optional flags
Definition: io.h:153
void pw_port_info_free(struct pw_port_info *info)
Definition: introspect.c:283
struct pw_device_info * pw_device_info_update(struct pw_device_info *info, const struct pw_device_info *update)
Update and existing pw_device_info with update.
Definition: introspect.c:368
uint32_t n_params
number of items in params
Definition: port.h:72
@ PW_NODE_STATE_RUNNING
the node is running
Definition: src/pipewire/node.h:63
uint32_t delay
extra delay in samples for resampler
Definition: io.h:288
const char * type
type of the objects created by this factory
Definition: factory.h:49
const char * pw_node_state_as_string(enum pw_node_state state)
Convert a pw_node_state to a readable string.
Definition: introspect.c:34
@ PW_LINK_STATE_PAUSED
the link is paused
Definition: link.h:64
const char * args
arguments passed to the module
Definition: module.h:47
uint64_t change_mask
bitfield of changed fields since last call
Definition: src/pipewire/device.h:48
const char * error
an error reason if state is error
Definition: link.h:83
uint64_t change_mask
bitfield of changed fields since last call
Definition: link.h:81
#define SPA_EXPORT
Definition: defs.h:208
@ PW_NODE_STATE_IDLE
the node is running but there is no active port
Definition: src/pipewire/node.h:61
uint32_t flags
extra flags
Definition: io.h:292
uint32_t flags
clock flags
Definition: io.h:134
@ PW_NODE_STATE_CREATING
the node is being created
Definition: src/pipewire/node.h:58
struct spa_io_video_size video
size of the video in the current cycle
Definition: io.h:274
float signature_denom
time signature denominator
Definition: io.h:180
The position information adds extra meaning to the raw clock times.
Definition: io.h:271
@ PW_NODE_STATE_ERROR
error state
Definition: src/pipewire/node.h:57
struct pw_factory_info * pw_factory_info_update(struct pw_factory_info *info, const struct pw_factory_info *update)
Definition: introspect.c:293
uint32_t id
id of the global
Definition: factory.h:47
#define PW_NODE_CHANGE_MASK_STATE
Definition: src/pipewire/node.h:76
control stream, io area for SPA_IO_Control and SPA_IO_Notify
Definition: io.h:170
const char * user_name
name of the user that started the core
Definition: core.h:76
@ SPA_IO_Invalid
Definition: io.h:52
const char * version
version of the core
Definition: core.h:78
@ SPA_IO_RateMatch
rate matching between nodes, struct spa_io_rate_match
Definition: io.h:60
uint32_t id
id of the global
Definition: module.h:44
@ SPA_IO_Control
area for control messages, struct spa_io_sequence
Definition: io.h:57
uint32_t flags
flags
Definition: io.h:192
#define PW_NODE_CHANGE_MASK_PARAMS
Definition: src/pipewire/node.h:78
uint32_t size
the size of data
Definition: io.h:110
Absolute time reporting.
Definition: io.h:132
uint64_t offset
offset in range
Definition: io.h:117
Definition: utils/dict.h:41
double rate_diff
rate difference between clock and monotonic time
Definition: io.h:145
struct spa_dict * props
the properties of the port
Definition: port.h:70
@ SPA_IO_POSITION_STATE_STARTING
Definition: io.h:252
const char * host_name
name of the machine the core is running on
Definition: core.h:77
uint32_t flags
Definition: param.h:71
void pw_module_info_free(struct pw_module_info *info)
Free a pw_module_info.
Definition: introspect.c:357
Definition: impl-metadata.c:49
uint32_t n_input_ports
number of inputs
Definition: src/pipewire/node.h:81
IO area to exchange buffers.
Definition: io.h:93
struct spa_pod * spa_pod_copy(const struct spa_pod *pod)
Copy a pod structure.
Definition: builder.h:676
uint32_t id
id of the global
Definition: client.h:56
uint32_t seconds
Definition: io.h:197
struct spa_io_segment segments[SPA_IO_POSITION_MAX_SEGMENTS]
segments
Definition: io.h:283
struct pw_module_info * pw_module_info_update(struct pw_module_info *info, const struct pw_module_info *update)
Update and existing pw_module_info with update.
Definition: introspect.c:330
@ SPA_IO_Buffers
area to exchange buffers, struct spa_io_buffers
Definition: io.h:53
uint32_t hours
Definition: io.h:195
rate matching
Definition: io.h:287
double rate
rate for resampler
Definition: io.h:290
uint32_t id
unique clock id, set by application
Definition: io.h:135
uint32_t stride
video stride in bytes
Definition: io.h:154
#define PW_DIRECTION_OUTPUT
Definition: port.h:58
@ PW_LINK_STATE_ERROR
the link is in error
Definition: link.h:59
#define PW_PORT_CHANGE_MASK_PROPS
Definition: port.h:66
uint32_t id
id of the global
Definition: src/pipewire/node.h:71
@ SPA_IO_POSITION_STATE_RUNNING
Definition: io.h:253
struct pw_client_info * pw_client_info_update(struct pw_client_info *info, const struct pw_client_info *update)
Update and existing pw_client_info with update.
Definition: introspect.c:421
uint32_t padding[4]
Definition: io.h:159
uint32_t frames
Definition: io.h:198
@ PW_LINK_STATE_ALLOCATING
the link is allocating buffers
Definition: link.h:63
uint64_t change_mask
bitfield of changed fields since last call
Definition: core.h:82
video frame segment
Definition: io.h:187
const char * pw_link_state_as_string(enum pw_link_state state)
Convert a pw_link_state to a readable string.
Definition: introspect.c:64
enum pw_link_state state
the current state of the link
Definition: link.h:82
uint32_t size
requested input size for resampler
Definition: io.h:289
struct spa_param_info * params
parameters
Definition: src/pipewire/device.h:50
#define spa_dict_for_each(item, dict)
Definition: utils/dict.h:58
const struct spa_dict_item * items
Definition: utils/dict.h:52
uint32_t input_node_id
server side input node id
Definition: link.h:75
struct spa_dict * props
extra properties
Definition: core.h:83
void pw_link_info_free(struct pw_link_info *info)
Definition: introspect.c:491
uint64_t change_mask
bitfield of changed fields since last call
Definition: client.h:59
#define PW_CLIENT_CHANGE_MASK_PROPS
Definition: client.h:57
uint64_t position
current position
Definition: io.h:141
struct spa_rectangle size
the video size
Definition: io.h:155
The client information.
Definition: client.h:55
bar and beat segment
Definition: io.h:175
struct spa_param_info * params
parameters
Definition: port.h:71
struct spa_dict * props
extra properties
Definition: client.h:60
@ SPA_IO_Clock
area to update clock information, struct spa_io_clock
Definition: io.h:55
#define PW_LINK_CHANGE_MASK_PROPS
Definition: link.h:79
char name[64]
clock name prefixed with API, set by node.
Definition: io.h:136
@ PW_LINK_STATE_INIT
the link is initialized
Definition: link.h:61
uint64_t duration
duration of current cycle
Definition: io.h:142
uint32_t state
one of enum spa_io_position_state
Definition: io.h:280
information about a parameter
Definition: param.h:64
@ SPA_IO_Range
expected byte range, struct spa_io_range
Definition: io.h:54
void pw_node_info_free(struct pw_node_info *info)
Definition: introspect.c:226
Definition: utils/dict.h:48
@ SPA_IO_Notify
area for notify messages, struct spa_io_sequence
Definition: io.h:58
uint32_t n_segments
number of segments
Definition: io.h:282
struct spa_fraction framerate
the minimum framerate, the cycle duration is always smaller to ensure there is only one video frame p...
Definition: io.h:156
The module information.
Definition: module.h:43
uint32_t n_output_ports
number of outputs
Definition: src/pipewire/node.h:82
uint32_t offset
offset in segment
Definition: io.h:193
@ PW_NODE_STATE_SUSPENDED
the node is suspended, the device might be closed
Definition: src/pipewire/node.h:59
uint32_t n_params
number of items in params
Definition: src/pipewire/device.h:51
char * key
Definition: impl-metadata.c:51
uint32_t max_input_ports
maximum number of inputs
Definition: src/pipewire/node.h:72
struct spa_io_clock clock
clock position of driver, always valid and read only
Definition: io.h:272
double beat
current beat in segment
Definition: io.h:182
The device information.
Definition: src/pipewire/device.h:43
const char * value
Definition: utils/dict.h:43
struct spa_dict * props
extra properties
Definition: module.h:51
void pw_core_info_free(struct pw_core_info *info)
Free a pw_core_info
Definition: introspect.c:156
uint32_t version
version of the objects
Definition: factory.h:50
uint32_t offset
offset in segment of this beat
Definition: io.h:178
#define PW_NODE_CHANGE_MASK_OUTPUT_PORTS
Definition: src/pipewire/node.h:75
struct spa_pod_sequence sequence
sequence of timed events
Definition: io.h:171
#define PW_MODULE_CHANGE_MASK_PROPS
Definition: module.h:48
a sequence of timed controls
Definition: pod/pod.h:233
uint32_t field_count
0 for progressive, 1 and 2 for interlaced
Definition: io.h:199
uint32_t max_size
maximum size of data
Definition: io.h:119
spa_io_type
IO areas.
Definition: io.h:51
@ PW_LINK_STATE_ACTIVE
the link is active
Definition: link.h:65
void pw_client_info_free(struct pw_client_info *info)
Free a pw_client_info.
Definition: introspect.c:445
#define SPA_MIN(a, b)
Definition: defs.h:123
@ SPA_IO_POSITION_STATE_STOPPED
Definition: io.h:251
uint32_t user
private user field.
Definition: param.h:72
#define PW_LINK_CHANGE_MASK_FORMAT
Definition: link.h:78
double bpm
beats per minute
Definition: io.h:181
The factory information.
Definition: factory.h:46
struct pw_core_info * pw_core_info_update(struct pw_core_info *info, const struct pw_core_info *update)
Update and existing pw_core_info with update.
Definition: introspect.c:127
#define PW_PORT_CHANGE_MASK_PARAMS
Definition: port.h:67
uint32_t padding[7]
Definition: io.h:293
#define PW_CORE_CHANGE_MASK_PROPS
Definition: core.h:80
const char * name
name of the core
Definition: core.h:79
uint32_t id
id of the global
Definition: port.h:64
#define PW_NODE_CHANGE_MASK_PROPS
Definition: src/pipewire/node.h:77
#define PW_NODE_CHANGE_MASK_INPUT_PORTS
Definition: src/pipewire/node.h:74
uint32_t cookie
a random cookie for identifying this instance of PipeWire
Definition: core.h:75
const char * name
name of the module
Definition: module.h:45
uint64_t change_mask
bitfield of changed fields since last call
Definition: module.h:50
pw_node_state
The different node states.
Definition: src/pipewire/node.h:56
struct spa_fraction framerate
Definition: io.h:194
char * value
Definition: impl-metadata.c:53
struct spa_fraction rate
rate for position/duration/delay
Definition: io.h:140
enum pw_node_state state
the current state of the node
Definition: src/pipewire/node.h:83
A segment converts a running time to a segment (stream) position.
Definition: io.h:223
struct spa_io_segment_video video
Definition: io.h:247
The link information.
Definition: link.h:71
struct spa_dict * props
the properties of the factory
Definition: factory.h:54
int64_t delay
delay between position and hardware, positive for capture, negative for playback
Definition: io.h:143
uint64_t min
min latency
Definition: io.h:165
uint32_t buffer_id
a buffer id
Definition: io.h:100
uint64_t max
max latency
Definition: io.h:166
@ SPA_IO_Latency
latency reporting, struct spa_io_latency
Definition: io.h:56
void pw_factory_info_free(struct pw_factory_info *info)
Definition: introspect.c:320
uint32_t output_node_id
server side output node id
Definition: link.h:73
IO area to exchange a memory region.
Definition: io.h:108
const char * error
an error reason if state is error
Definition: src/pipewire/node.h:84
pw_link_state
The different link states.
Definition: link.h:58
uint32_t flags
extra flags
Definition: io.h:177
uint32_t output_port_id
output port id
Definition: link.h:74
uint32_t n_items
Definition: utils/dict.h:51
uint32_t min_size
minimum size of data
Definition: io.h:118
const char * name
name the factory
Definition: factory.h:48
void * data
a memory pointer
Definition: io.h:111
int64_t offset
an offset to subtract from the clock position to get a running time.
Definition: io.h:275
const char * pw_direction_as_string(enum pw_direction direction)
Convert a pw_direction to a readable string.
Definition: introspect.c:52
uint32_t id
id of the global
Definition: src/pipewire/device.h:44
uint64_t next_nsec
estimated next wakeup time in nanoseconds
Definition: io.h:146
uint32_t id
id of the global
Definition: core.h:74
struct spa_pod * format
format over link
Definition: link.h:84
uint64_t nsec
time in nanoseconds against monotonic clock
Definition: io.h:139
int32_t status
the status code
Definition: io.h:109
@ PW_LINK_STATE_UNLINKED
the link is unlinked
Definition: link.h:60
uint64_t change_mask
bitfield of changed fields since last call
Definition: src/pipewire/node.h:80
struct spa_dict * props
the properties of the link
Definition: link.h:85
#define PW_DEVICE_CHANGE_MASK_PROPS
Definition: src/pipewire/device.h:45
spa_io_position_state
Definition: io.h:250
struct pw_port_info * pw_port_info_update(struct pw_port_info *info, const struct pw_port_info *update)
Definition: introspect.c:237
The node information.
Definition: src/pipewire/node.h:70
@ SPA_IO_Memory
memory pointer, struct spa_io_memory
Definition: io.h:61
#define PW_FACTORY_CHANGE_MASK_PROPS
Definition: factory.h:51
#define pw_direction
The direction of a port.
Definition: port.h:56
uint32_t padding[11]
Definition: io.h:200
const char * filename
filename of the module
Definition: module.h:46
#define PW_DEVICE_CHANGE_MASK_PARAMS
Definition: src/pipewire/device.h:46
uint32_t padding[8]
Definition: io.h:183
uint32_t max_output_ports
maximum number of outputs
Definition: src/pipewire/node.h:73