PipeWire  0.3.33
io.h
Go to the documentation of this file.
1 /* Simple Plugin API
2  *
3  * Copyright © 2018 Wim Taymans
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 
25 #ifndef SPA_IO_H
26 #define SPA_IO_H
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
37 #include <spa/utils/defs.h>
38 #include <spa/pod/pod.h>
39 
62 };
63 
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)
99  int32_t status;
100  uint32_t buffer_id;
101 };
102 
103 #define SPA_IO_BUFFERS_INIT (struct spa_io_buffers) { SPA_STATUS_OK, SPA_ID_INVALID, }
104 
109  int32_t status;
110  uint32_t size;
111  void *data;
112 };
113 #define SPA_IO_MEMORY_INIT (struct spa_io_memory) { SPA_STATUS_OK, 0, NULL, }
114 
116 struct spa_io_range {
117  uint64_t offset;
118  uint32_t min_size;
119  uint32_t max_size;
120 };
121 
132 struct spa_io_clock {
133 #define SPA_IO_CLOCK_FLAG_FREEWHEEL (1u<<0)
134  uint32_t flags;
135  uint32_t id;
136  char name[64];
139  uint64_t nsec;
140  struct spa_fraction rate;
141  uint64_t position;
142  uint64_t duration;
143  int64_t delay;
145  double rate_diff;
146  uint64_t next_nsec;
147  uint32_t padding[8];
148 };
149 
150 /* the size of the video in this cycle */
152 #define SPA_IO_VIDEO_SIZE_VALID (1<<0)
153  uint32_t flags;
154  uint32_t stride;
155  struct spa_rectangle size;
156  struct spa_fraction framerate;
159  uint32_t padding[4];
160 };
161 
164  struct spa_fraction rate;
165  uint64_t min;
166  uint64_t max;
167 };
168 
171  struct spa_pod_sequence sequence;
172 };
173 
176 #define SPA_IO_SEGMENT_BAR_FLAG_VALID (1<<0)
177  uint32_t flags;
178  uint32_t offset;
181  double bpm;
182  double beat;
183  uint32_t padding[8];
184 };
185 
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)
192  uint32_t flags;
193  uint32_t offset;
194  struct spa_fraction framerate;
195  uint32_t hours;
196  uint32_t minutes;
197  uint32_t seconds;
198  uint32_t frames;
199  uint32_t field_count;
200  uint32_t padding[11];
201 };
202 
224  uint32_t version;
225 #define SPA_IO_SEGMENT_FLAG_LOOPING (1<<0)
226 #define SPA_IO_SEGMENT_FLAG_NO_POSITION (1<<1)
230  uint32_t flags;
231  uint64_t start;
235  uint64_t duration;
240  double rate;
242  uint64_t position;
246  struct spa_io_segment_bar bar;
248 };
249 
254 };
255 
257 #define SPA_IO_POSITION_MAX_SEGMENTS 8
258 
272  struct spa_io_clock clock;
274  struct spa_io_video_size video;
275  int64_t offset;
280  uint32_t state;
282  uint32_t n_segments;
284 };
285 
288  uint32_t delay;
289  uint32_t size;
290  double rate;
291 #define SPA_IO_RATE_MATCH_FLAG_ACTIVE (1 << 0)
292  uint32_t flags;
293  uint32_t padding[7];
294 };
295 
300 #ifdef __cplusplus
301 } /* extern "C" */
302 #endif
303 
304 #endif /* SPA_IO_H */
spa_io_segment_bar::signature_num
float signature_num
time signature numerator
Definition: io.h:179
PW_DIRECTION_INPUT
#define PW_DIRECTION_INPUT
Definition: port.h:57
pw_node_info::props
struct spa_dict * props
the properties of the node
Definition: src/pipewire/node.h:85
pw_node_info_update
struct pw_node_info * pw_node_info_update(struct pw_node_info *info, const struct pw_node_info *update)
Definition: introspect.c:168
spa_io_segment::version
uint32_t version
Definition: io.h:224
pw_device_info_free
void pw_device_info_free(struct pw_device_info *info)
Free a pw_device_info.
Definition: introspect.c:412
spa_io_buffers::status
int32_t status
the status code
Definition: io.h:99
spa_io_segment_video::minutes
uint32_t minutes
Definition: io.h:196
pw_node_info::n_params
uint32_t n_params
number of items in params
Definition: src/pipewire/node.h:87
spa_io_latency
latency reporting
Definition: io.h:163
pw_device_info::props
struct spa_dict * props
extra properties
Definition: src/pipewire/device.h:49
spa_io_clock::padding
uint32_t padding[8]
Definition: io.h:147
SPA_IO_Position
@ SPA_IO_Position
position information in the graph, struct spa_io_position
Definition: io.h:59
spa_io_latency::rate
struct spa_fraction rate
rate for min/max
Definition: io.h:164
spa_io_range
A range, suitable for input ports that can suggest a range to output ports.
Definition: io.h:116
spa_dict_item::key
const char * key
Definition: utils/dict.h:42
pw_node_info::params
struct spa_param_info * params
parameters
Definition: src/pipewire/node.h:86
pw_core_info
The core information.
Definition: core.h:73
spa_io_video_size
Definition: io.h:151
pw_factory_info::change_mask
uint64_t change_mask
bitfield of changed fields since last call
Definition: factory.h:53
SPA_IO_POSITION_MAX_SEGMENTS
#define SPA_IO_POSITION_MAX_SEGMENTS
the maximum number of segments visible in the future
Definition: io.h:257
pw_port_info::change_mask
uint64_t change_mask
bitfield of changed fields since last call
Definition: port.h:69
pw_port_info::direction
enum pw_direction direction
port direction
Definition: port.h:65
spa_io_video_size::flags
uint32_t flags
optional flags
Definition: io.h:153
pw_port_info_free
void pw_port_info_free(struct pw_port_info *info)
Definition: introspect.c:283
pw_device_info_update
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
pw_port_info::n_params
uint32_t n_params
number of items in params
Definition: port.h:72
PW_NODE_STATE_RUNNING
@ PW_NODE_STATE_RUNNING
the node is running
Definition: src/pipewire/node.h:63
spa_io_rate_match::delay
uint32_t delay
extra delay in samples for resampler
Definition: io.h:288
string.h
pw_factory_info::type
const char * type
type of the objects created by this factory
Definition: factory.h:49
pw_node_state_as_string
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_module_info::args
const char * args
arguments passed to the module
Definition: module.h:47
pw_device_info::change_mask
uint64_t change_mask
bitfield of changed fields since last call
Definition: src/pipewire/device.h:48
SPA_EXPORT
#define SPA_EXPORT
Definition: defs.h:208
PW_NODE_STATE_IDLE
@ PW_NODE_STATE_IDLE
the node is running but there is no active port
Definition: src/pipewire/node.h:61
spa_io_rate_match::flags
uint32_t flags
extra flags
Definition: io.h:292
spa_io_clock::flags
uint32_t flags
clock flags
Definition: io.h:134
PW_NODE_STATE_CREATING
@ PW_NODE_STATE_CREATING
the node is being created
Definition: src/pipewire/node.h:58
spa_fraction
Definition: defs.h:104
spa_io_position::video
struct spa_io_video_size video
size of the video in the current cycle
Definition: io.h:274
spa_io_segment_bar::signature_denom
float signature_denom
time signature denominator
Definition: io.h:180
spa_io_position
The position information adds extra meaning to the raw clock times.
Definition: io.h:271
PW_NODE_STATE_ERROR
@ PW_NODE_STATE_ERROR
error state
Definition: src/pipewire/node.h:57
pw_factory_info_update
struct pw_factory_info * pw_factory_info_update(struct pw_factory_info *info, const struct pw_factory_info *update)
Definition: introspect.c:293
pw_factory_info::id
uint32_t id
id of the global
Definition: factory.h:47
PW_NODE_CHANGE_MASK_STATE
#define PW_NODE_CHANGE_MASK_STATE
Definition: src/pipewire/node.h:76
spa_io_sequence
control stream, io area for SPA_IO_Control and SPA_IO_Notify
Definition: io.h:170
pw_core_info::user_name
const char * user_name
name of the user that started the core
Definition: core.h:76
SPA_IO_Invalid
@ SPA_IO_Invalid
Definition: io.h:52
pw_core_info::version
const char * version
version of the core
Definition: core.h:78
SPA_IO_RateMatch
@ SPA_IO_RateMatch
rate matching between nodes, struct spa_io_rate_match
Definition: io.h:60
pw_module_info::id
uint32_t id
id of the global
Definition: module.h:44
SPA_IO_Control
@ SPA_IO_Control
area for control messages, struct spa_io_sequence
Definition: io.h:57
spa_io_segment_video::flags
uint32_t flags
flags
Definition: io.h:192
PW_NODE_CHANGE_MASK_PARAMS
#define PW_NODE_CHANGE_MASK_PARAMS
Definition: src/pipewire/node.h:78
spa_io_memory::size
uint32_t size
the size of data
Definition: io.h:110
spa_io_clock
Absolute time reporting.
Definition: io.h:132
spa_io_range::offset
uint64_t offset
offset in range
Definition: io.h:117
spa_dict_item
Definition: utils/dict.h:41
spa_io_clock::rate_diff
double rate_diff
rate difference between clock and monotonic time
Definition: io.h:145
pw_port_info::props
struct spa_dict * props
the properties of the port
Definition: port.h:70
SPA_IO_POSITION_STATE_STARTING
@ SPA_IO_POSITION_STATE_STARTING
Definition: io.h:252
pw_core_info::host_name
const char * host_name
name of the machine the core is running on
Definition: core.h:77
spa_param_info::flags
uint32_t flags
Definition: param.h:71
pw_module_info_free
void pw_module_info_free(struct pw_module_info *info)
Free a pw_module_info.
Definition: introspect.c:357
item
Definition: impl-metadata.c:49
pw_node_info::n_input_ports
uint32_t n_input_ports
number of inputs
Definition: src/pipewire/node.h:81
spa_io_buffers
IO area to exchange buffers.
Definition: io.h:93
spa_pod_copy
struct spa_pod * spa_pod_copy(const struct spa_pod *pod)
Copy a pod structure.
Definition: builder.h:676
pw_client_info::id
uint32_t id
id of the global
Definition: client.h:56
spa_rectangle
Definition: defs.h:86
pw_port_info
Definition: port.h:63
spa_io_segment_video::seconds
uint32_t seconds
Definition: io.h:197
spa_io_position::segments
struct spa_io_segment segments[SPA_IO_POSITION_MAX_SEGMENTS]
segments
Definition: io.h:283
pw_module_info_update
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
@ SPA_IO_Buffers
area to exchange buffers, struct spa_io_buffers
Definition: io.h:53
spa_io_segment_video::hours
uint32_t hours
Definition: io.h:195
spa_io_rate_match
rate matching
Definition: io.h:287
spa_io_rate_match::rate
double rate
rate for resampler
Definition: io.h:290
spa_io_clock::id
uint32_t id
unique clock id, set by application
Definition: io.h:135
spa_io_video_size::stride
uint32_t stride
video stride in bytes
Definition: io.h:154
PW_DIRECTION_OUTPUT
#define PW_DIRECTION_OUTPUT
Definition: port.h:58
PW_PORT_CHANGE_MASK_PROPS
#define PW_PORT_CHANGE_MASK_PROPS
Definition: port.h:66
pw_node_info::id
uint32_t id
id of the global
Definition: src/pipewire/node.h:71
SPA_IO_POSITION_STATE_RUNNING
@ SPA_IO_POSITION_STATE_RUNNING
Definition: io.h:253
pw_client_info_update
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
spa_io_video_size::padding
uint32_t padding[4]
Definition: io.h:159
spa_io_segment_video::frames
uint32_t frames
Definition: io.h:198
pw_core_info::change_mask
uint64_t change_mask
bitfield of changed fields since last call
Definition: core.h:82
spa_io_segment_video
video frame segment
Definition: io.h:187
spa_io_rate_match::size
uint32_t size
requested input size for resampler
Definition: io.h:289
pw_device_info::params
struct spa_param_info * params
parameters
Definition: src/pipewire/device.h:50
spa_dict_for_each
#define spa_dict_for_each(item, dict)
Definition: utils/dict.h:58
spa_dict::items
const struct spa_dict_item * items
Definition: utils/dict.h:52
pw_core_info::props
struct spa_dict * props
extra properties
Definition: core.h:83
pw_client_info::change_mask
uint64_t change_mask
bitfield of changed fields since last call
Definition: client.h:59
PW_CLIENT_CHANGE_MASK_PROPS
#define PW_CLIENT_CHANGE_MASK_PROPS
Definition: client.h:57
spa_io_clock::position
uint64_t position
current position
Definition: io.h:141
spa_io_video_size::size
struct spa_rectangle size
the video size
Definition: io.h:155
pw_client_info
The client information.
Definition: client.h:55
spa_io_segment_bar
bar and beat segment
Definition: io.h:175
pw_port_info::params
struct spa_param_info * params
parameters
Definition: port.h:71
pw_client_info::props
struct spa_dict * props
extra properties
Definition: client.h:60
SPA_IO_Clock
@ SPA_IO_Clock
area to update clock information, struct spa_io_clock
Definition: io.h:55
spa_io_clock::name
char name[64]
clock name prefixed with API, set by node.
Definition: io.h:136
spa_io_clock::duration
uint64_t duration
duration of current cycle
Definition: io.h:142
spa_io_position::state
uint32_t state
one of enum spa_io_position_state
Definition: io.h:280
spa_param_info
information about a parameter
Definition: param.h:64
SPA_IO_Range
@ SPA_IO_Range
expected byte range, struct spa_io_range
Definition: io.h:54
pw_node_info_free
void pw_node_info_free(struct pw_node_info *info)
Definition: introspect.c:226
spa_dict
Definition: utils/dict.h:48
SPA_IO_Notify
@ SPA_IO_Notify
area for notify messages, struct spa_io_sequence
Definition: io.h:58
spa_io_position::n_segments
uint32_t n_segments
number of segments
Definition: io.h:282
spa_io_video_size::framerate
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
pw_module_info
The module information.
Definition: module.h:43
pw_node_info::n_output_ports
uint32_t n_output_ports
number of outputs
Definition: src/pipewire/node.h:82
spa_io_segment_video::offset
uint32_t offset
offset in segment
Definition: io.h:193
PW_NODE_STATE_SUSPENDED
@ PW_NODE_STATE_SUSPENDED
the node is suspended, the device might be closed
Definition: src/pipewire/node.h:59
pw_device_info::n_params
uint32_t n_params
number of items in params
Definition: src/pipewire/device.h:51
item::key
char * key
Definition: impl-metadata.c:51
pw_node_info::max_input_ports
uint32_t max_input_ports
maximum number of inputs
Definition: src/pipewire/node.h:72
spa_io_position::clock
struct spa_io_clock clock
clock position of driver, always valid and read only
Definition: io.h:272
spa_io_segment_bar::beat
double beat
current beat in segment
Definition: io.h:182
pw_device_info
The device information.
Definition: src/pipewire/device.h:43
spa_dict_item::value
const char * value
Definition: utils/dict.h:43
pw_module_info::props
struct spa_dict * props
extra properties
Definition: module.h:51
pw_core_info_free
void pw_core_info_free(struct pw_core_info *info)
Free a pw_core_info
Definition: introspect.c:156
pw_factory_info::version
uint32_t version
version of the objects
Definition: factory.h:50
spa_io_segment_bar::offset
uint32_t offset
offset in segment of this beat
Definition: io.h:178
PW_NODE_CHANGE_MASK_OUTPUT_PORTS
#define PW_NODE_CHANGE_MASK_OUTPUT_PORTS
Definition: src/pipewire/node.h:75
spa_io_sequence::sequence
struct spa_pod_sequence sequence
sequence of timed events
Definition: io.h:171
PW_MODULE_CHANGE_MASK_PROPS
#define PW_MODULE_CHANGE_MASK_PROPS
Definition: module.h:48
spa_pod_sequence
a sequence of timed controls
Definition: pod/pod.h:233
spa_io_segment_video::field_count
uint32_t field_count
0 for progressive, 1 and 2 for interlaced
Definition: io.h:199
spa_io_range::max_size
uint32_t max_size
maximum size of data
Definition: io.h:119
spa_io_type
spa_io_type
IO areas.
Definition: io.h:51
pw_client_info_free
void pw_client_info_free(struct pw_client_info *info)
Free a pw_client_info.
Definition: introspect.c:445
SPA_MIN
#define SPA_MIN(a, b)
Definition: defs.h:123
SPA_IO_POSITION_STATE_STOPPED
@ SPA_IO_POSITION_STATE_STOPPED
Definition: io.h:251
spa_param_info::user
uint32_t user
private user field.
Definition: param.h:72
spa_io_segment_bar::bpm
double bpm
beats per minute
Definition: io.h:181
pw_factory_info
The factory information.
Definition: factory.h:46
pw_core_info_update
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
PW_PORT_CHANGE_MASK_PARAMS
#define PW_PORT_CHANGE_MASK_PARAMS
Definition: port.h:67
spa_io_rate_match::padding
uint32_t padding[7]
Definition: io.h:293
PW_CORE_CHANGE_MASK_PROPS
#define PW_CORE_CHANGE_MASK_PROPS
Definition: core.h:80
pw_core_info::name
const char * name
name of the core
Definition: core.h:79
pw_port_info::id
uint32_t id
id of the global
Definition: port.h:64
PW_NODE_CHANGE_MASK_PROPS
#define PW_NODE_CHANGE_MASK_PROPS
Definition: src/pipewire/node.h:77
PW_NODE_CHANGE_MASK_INPUT_PORTS
#define PW_NODE_CHANGE_MASK_INPUT_PORTS
Definition: src/pipewire/node.h:74
pw_core_info::cookie
uint32_t cookie
a random cookie for identifying this instance of PipeWire
Definition: core.h:75
pw_module_info::name
const char * name
name of the module
Definition: module.h:45
pw_module_info::change_mask
uint64_t change_mask
bitfield of changed fields since last call
Definition: module.h:50
pw_node_state
pw_node_state
The different node states.
Definition: src/pipewire/node.h:56
spa_io_segment_video::framerate
struct spa_fraction framerate
Definition: io.h:194
item::value
char * value
Definition: impl-metadata.c:53
spa_io_clock::rate
struct spa_fraction rate
rate for position/duration/delay
Definition: io.h:140
core.h
pw_node_info::state
enum pw_node_state state
the current state of the node
Definition: src/pipewire/node.h:83
spa_io_segment
A segment converts a running time to a segment (stream) position.
Definition: io.h:223
spa_io_segment::video
struct spa_io_segment_video video
Definition: io.h:247
pw_factory_info::props
struct spa_dict * props
the properties of the factory
Definition: factory.h:54
spa_io_clock::delay
int64_t delay
delay between position and hardware, positive for capture, negative for playback
Definition: io.h:143
defs.h
spa_io_latency::min
uint64_t min
min latency
Definition: io.h:165
spa_io_buffers::buffer_id
uint32_t buffer_id
a buffer id
Definition: io.h:100
spa_io_latency::max
uint64_t max
max latency
Definition: io.h:166
SPA_IO_Latency
@ SPA_IO_Latency
latency reporting, struct spa_io_latency
Definition: io.h:56
pw_factory_info_free
void pw_factory_info_free(struct pw_factory_info *info)
Definition: introspect.c:320
pipewire.h
spa_io_memory
IO area to exchange a memory region.
Definition: io.h:108
pw_node_info::error
const char * error
an error reason if state is error
Definition: src/pipewire/node.h:84
spa_io_segment_bar::flags
uint32_t flags
extra flags
Definition: io.h:177
spa_dict::n_items
uint32_t n_items
Definition: utils/dict.h:51
spa_io_range::min_size
uint32_t min_size
minimum size of data
Definition: io.h:118
pw_factory_info::name
const char * name
name the factory
Definition: factory.h:48
spa_io_memory::data
void * data
a memory pointer
Definition: io.h:111
spa_io_position::offset
int64_t offset
an offset to subtract from the clock position to get a running time.
Definition: io.h:275
pw_direction_as_string
const char * pw_direction_as_string(enum pw_direction direction)
Convert a pw_direction to a readable string.
Definition: introspect.c:52
pw_device_info::id
uint32_t id
id of the global
Definition: src/pipewire/device.h:44
spa_io_clock::next_nsec
uint64_t next_nsec
estimated next wakeup time in nanoseconds
Definition: io.h:146
pw_core_info::id
uint32_t id
id of the global
Definition: core.h:74
spa_io_clock::nsec
uint64_t nsec
time in nanoseconds against monotonic clock
Definition: io.h:139
spa_io_memory::status
int32_t status
the status code
Definition: io.h:109
pw_node_info::change_mask
uint64_t change_mask
bitfield of changed fields since last call
Definition: src/pipewire/node.h:80
PW_DEVICE_CHANGE_MASK_PROPS
#define PW_DEVICE_CHANGE_MASK_PROPS
Definition: src/pipewire/device.h:45
spa_io_position_state
spa_io_position_state
Definition: io.h:250
pw_port_info_update
struct pw_port_info * pw_port_info_update(struct pw_port_info *info, const struct pw_port_info *update)
Definition: introspect.c:237
pw_node_info
The node information.
Definition: src/pipewire/node.h:70
SPA_IO_Memory
@ SPA_IO_Memory
memory pointer, struct spa_io_memory
Definition: io.h:61
PW_FACTORY_CHANGE_MASK_PROPS
#define PW_FACTORY_CHANGE_MASK_PROPS
Definition: factory.h:51
pw_direction
#define pw_direction
The direction of a port.
Definition: port.h:56
spa_io_segment_video::padding
uint32_t padding[11]
Definition: io.h:200
pod.h
pw_module_info::filename
const char * filename
filename of the module
Definition: module.h:46
builder.h
PW_DEVICE_CHANGE_MASK_PARAMS
#define PW_DEVICE_CHANGE_MASK_PARAMS
Definition: src/pipewire/device.h:46
spa_io_segment_bar::padding
uint32_t padding[8]
Definition: io.h:183
pw_node_info::max_output_ports
uint32_t max_output_ports
maximum number of outputs
Definition: src/pipewire/node.h:73