76 #define SPA_STATUS_OK 0 77 #define SPA_STATUS_NEED_DATA (1<<0) 78 #define SPA_STATUS_HAVE_DATA (1<<1) 79 #define SPA_STATUS_STOPPED (1<<2) 80 #define SPA_STATUS_DRAINED (1<<3) 85 #define SPA_IO_BUFFERS_INIT ((struct spa_io_buffers) { SPA_STATUS_OK, SPA_ID_INVALID, }) 95 #define SPA_IO_MEMORY_INIT ((struct spa_io_memory) { SPA_STATUS_OK, 0, NULL, }) 128 #define SPA_IO_CLOCK_FLAG_FREEWHEEL (1u<<0) 129 #define SPA_IO_CLOCK_FLAG_XRUN_RECOVER (1u<<1) 130 #define SPA_IO_CLOCK_FLAG_LAZY (1u<<2) 131 #define SPA_IO_CLOCK_FLAG_NO_RATE (1u<<3) 163 #define SPA_IO_VIDEO_SIZE_VALID (1<<0) 191 #define SPA_IO_SEGMENT_BAR_FLAG_VALID (1<<0) 205 #define SPA_IO_SEGMENT_VIDEO_FLAG_VALID (1<<0) 206 #define SPA_IO_SEGMENT_VIDEO_FLAG_DROP_FRAME (1<<1) 207 #define SPA_IO_SEGMENT_VIDEO_FLAG_PULL_DOWN (1<<2) 208 #define SPA_IO_SEGMENT_VIDEO_FLAG_INTERLACED (1<<3) 242 #define SPA_IO_SEGMENT_FLAG_LOOPING (1<<0) 243 #define SPA_IO_SEGMENT_FLAG_NO_POSITION (1<<1) 263 struct spa_io_segment_bar bar; 274 #define SPA_IO_POSITION_MAX_SEGMENTS 8 347 #define SPA_IO_RATE_MATCH_FLAG_ACTIVE (1 << 0) double rate_diff
Rate difference between clock and monotonic time, as a ratio of clock speeds.
Definition: io.h:162
A range, suitable for input ports that can suggest a range to output ports.
Definition: io.h:110
uint32_t max_size
maximum size of data
Definition: io.h:113
area to exchange buffers, struct spa_io_buffers
Definition: io.h:38
struct spa_fraction rate
rate for min/max
Definition: io.h:196
uint32_t min_size
minimum size of data
Definition: io.h:112
uint32_t size
the size of data
Definition: io.h:103
int64_t offset
an offset to subtract from the clock position to get a running time.
Definition: io.h:325
float signature_denom
time signature denominator
Definition: io.h:213
Latency reporting.
Definition: io.h:195
int32_t status
the status code
Definition: io.h:91
uint32_t minutes
Definition: io.h:235
async buffers
Definition: io.h:384
float signature_num
time signature numerator
Definition: io.h:212
area to update clock information, struct spa_io_clock
Definition: io.h:40
int32_t delay_frac
resampling delay fractional part, in units of nanosamples (1/10^9 sample) at node rate ...
Definition: io.h:378
struct spa_pod_sequence sequence
sequence of timed events
Definition: io.h:203
uint32_t flags
optional flags
Definition: io.h:181
latency reporting, struct spa_io_latency (currently not used in PipeWire).
Definition: io.h:41
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:184
uint64_t next_nsec
Estimated next wakeup time in nanoseconds.
Definition: io.h:164
IO area to exchange buffers.
Definition: io.h:80
#define SPA_IO_POSITION_MAX_SEGMENTS
the maximum number of segments visible in the future
Definition: io.h:302
uint64_t offset
offset in range
Definition: io.h:111
async area to exchange buffers, struct spa_io_async_buffers
Definition: io.h:48
uint32_t id
Unique clock id, set by host application.
Definition: io.h:151
void * data
a memory pointer
Definition: io.h:104
uint64_t duration
Duration of current cycle, in samples @ rate.
Definition: io.h:160
Absolute time reporting.
Definition: io.h:139
uint32_t padding[4]
Definition: io.h:187
uint32_t target_seq
Seq counter.
Definition: io.h:171
uint32_t flags
flags
Definition: io.h:231
double ticks_per_beat
Definition: io.h:217
area for notify messages, struct spa_io_sequence
Definition: io.h:44
uint32_t field_count
0 for progressive, 1 and 2 for interlaced
Definition: io.h:238
uint32_t frames
Definition: io.h:237
uint32_t padding[6]
Definition: io.h:380
int64_t delay
Delay between position and hardware, in samples @ rate.
Definition: io.h:161
struct spa_io_clock clock
clock position of driver, always valid and read only
Definition: io.h:322
uint32_t delay
resampling delay, in samples at node rate
Definition: io.h:371
struct spa_fraction target_rate
Target rate of next cycle.
Definition: io.h:169
uint32_t seconds
Definition: io.h:236
uint32_t size
requested input size for resampler
Definition: io.h:373
Rate matching.
Definition: io.h:370
double beat
current beat in segment
Definition: io.h:215
uint32_t hours
Definition: io.h:234
control stream, io area for SPA_IO_Control and SPA_IO_Notify
Definition: io.h:202
uint64_t target_duration
Target duration of next cycle.
Definition: io.h:170
uint64_t position
Current position, in samples @ rate.
Definition: io.h:159
struct spa_fraction rate
Rate for position/duration/delay/xrun.
Definition: io.h:158
uint32_t stride
video stride in bytes
Definition: io.h:182
uint32_t cycle
incremented each time the graph is started
Definition: io.h:173
area for control messages, struct spa_io_sequence
Definition: io.h:43
double rate
rate for resampler (set by node)
Definition: io.h:374
struct spa_rectangle size
the video size
Definition: io.h:183
struct spa_io_segment segments[SPA_IO_POSITION_MAX_SEGMENTS]
segments
Definition: io.h:333
uint32_t state
one of enum spa_io_position_state
Definition: io.h:330
rate matching between nodes, struct spa_io_rate_match
Definition: io.h:46
uint32_t offset
offset in segment
Definition: io.h:232
memory pointer, struct spa_io_memory (currently not used in PipeWire)
Definition: io.h:47
double bar_start_tick
Definition: io.h:216
struct spa_io_video_size video
size of the video in the current cycle
Definition: io.h:324
The position information adds extra meaning to the raw clock times.
Definition: io.h:321
bar and beat segment
Definition: io.h:207
uint32_t offset
offset in segment of this beat
Definition: io.h:211
spa_io_type
IO areas.
Definition: io.h:36
struct spa_io_segment_video video
Definition: io.h:291
uint64_t max
max latency
Definition: io.h:198
double bpm
beats per minute
Definition: io.h:214
uint32_t flags
extra flags
Definition: io.h:210
position information in the graph, struct spa_io_position
Definition: io.h:45
A segment converts a running time to a segment (stream) position.
Definition: io.h:262
expected byte range, struct spa_io_range (currently not used in PipeWire)
Definition: io.h:39
struct spa_fraction framerate
Definition: io.h:233
uint32_t version
Definition: io.h:263
video frame segment
Definition: io.h:222
uint64_t min
min latency
Definition: io.h:197
spa_io_position_state
Definition: io.h:294
uint32_t flags
Clock flags.
Definition: io.h:150
uint64_t nsec
Time in nanoseconds against monotonic clock (CLOCK_MONOTONIC).
Definition: io.h:155
uint32_t padding[4]
Definition: io.h:218
uint64_t xrun
Estimated accumulated xrun duration.
Definition: io.h:174
uint32_t n_segments
number of segments
Definition: io.h:332
uint32_t padding[11]
Definition: io.h:239
uint32_t flags
extra flags (set by node)
Definition: io.h:377
IO area to exchange a memory region.
Definition: io.h:101
struct spa_io_buffers buffers[2]
async buffers, writers write to current (cycle+1)&1, readers read from (cycle)&1
Definition: io.h:385
a sequence of timed controls
Definition: pod.h:252
uint32_t buffer_id
a buffer id
Definition: io.h:92