74#define SPA_STATUS_OK                   0 
   75#define SPA_STATUS_NEED_DATA            (1<<0) 
   76#define SPA_STATUS_HAVE_DATA            (1<<1) 
   77#define SPA_STATUS_STOPPED              (1<<2) 
   78#define SPA_STATUS_DRAINED              (1<<3) 
   83#define SPA_IO_BUFFERS_INIT  ((struct spa_io_buffers) { SPA_STATUS_OK, SPA_ID_INVALID, }) 
   93#define SPA_IO_MEMORY_INIT  ((struct spa_io_memory) { SPA_STATUS_OK, 0, NULL, }) 
  113#define SPA_IO_CLOCK_FLAG_FREEWHEEL (1u<<0) 
  138#define SPA_IO_VIDEO_SIZE_VALID         (1<<0) 
  162#define SPA_IO_SEGMENT_BAR_FLAG_VALID           (1<<0) 
  174#define SPA_IO_SEGMENT_VIDEO_FLAG_VALID         (1<<0) 
  175#define SPA_IO_SEGMENT_VIDEO_FLAG_DROP_FRAME    (1<<1) 
  176#define SPA_IO_SEGMENT_VIDEO_FLAG_PULL_DOWN     (1<<2) 
  177#define SPA_IO_SEGMENT_VIDEO_FLAG_INTERLACED    (1<<3) 
  211#define SPA_IO_SEGMENT_FLAG_LOOPING     (1<<0)   
  212#define SPA_IO_SEGMENT_FLAG_NO_POSITION (1<<1)   
  243#define SPA_IO_POSITION_MAX_SEGMENTS    8 
  277#define SPA_IO_RATE_MATCH_FLAG_ACTIVE   (1 << 0) 
spa_io_position_state
Definition: io.h:257
 
spa_io_type
IO areas.
Definition: io.h:36
 
#define SPA_IO_POSITION_MAX_SEGMENTS
the maximum number of segments visible in the future
Definition: io.h:265
 
@ SPA_IO_POSITION_STATE_RUNNING
Definition: io.h:260
 
@ SPA_IO_POSITION_STATE_STOPPED
Definition: io.h:258
 
@ SPA_IO_POSITION_STATE_STARTING
Definition: io.h:259
 
@ SPA_IO_Notify
area for notify messages, struct spa_io_sequence
Definition: io.h:43
 
@ SPA_IO_Memory
memory pointer, struct spa_io_memory
Definition: io.h:46
 
@ SPA_IO_Clock
area to update clock information, struct spa_io_clock
Definition: io.h:40
 
@ SPA_IO_Control
area for control messages, struct spa_io_sequence
Definition: io.h:42
 
@ SPA_IO_Latency
latency reporting, struct spa_io_latency
Definition: io.h:41
 
@ SPA_IO_Range
expected byte range, struct spa_io_range
Definition: io.h:39
 
@ SPA_IO_Invalid
Definition: io.h:37
 
@ SPA_IO_Position
position information in the graph, struct spa_io_position
Definition: io.h:44
 
@ SPA_IO_Buffers
area to exchange buffers, struct spa_io_buffers
Definition: io.h:38
 
@ SPA_IO_RateMatch
rate matching between nodes, struct spa_io_rate_match
Definition: io.h:45
 
IO area to exchange buffers.
Definition: io.h:78
 
int32_t status
the status code
Definition: io.h:89
 
uint32_t buffer_id
a buffer id
Definition: io.h:90
 
Absolute time reporting.
Definition: io.h:124
 
struct spa_fraction target_rate
target rate of next cycle
Definition: io.h:141
 
uint64_t next_nsec
estimated next wakeup time in nanoseconds
Definition: io.h:139
 
uint64_t position
current position
Definition: io.h:134
 
uint64_t nsec
time in nanoseconds against monotonic clock
Definition: io.h:132
 
struct spa_fraction rate
rate for position/duration/delay
Definition: io.h:133
 
double rate_diff
rate difference between clock and monotonic time
Definition: io.h:138
 
uint32_t flags
clock flags
Definition: io.h:127
 
uint32_t id
unique clock id, set by application
Definition: io.h:128
 
uint64_t target_duration
target duration of next cycle
Definition: io.h:142
 
uint32_t padding[3]
Definition: io.h:146
 
uint64_t duration
duration of current cycle
Definition: io.h:135
 
int64_t delay
delay between position and hardware, positive for capture, negative for playback
Definition: io.h:136
 
uint32_t target_seq
seq counter.
Definition: io.h:143
 
latency reporting
Definition: io.h:163
 
uint64_t min
min latency
Definition: io.h:165
 
uint64_t max
max latency
Definition: io.h:166
 
struct spa_fraction rate
rate for min/max
Definition: io.h:164
 
IO area to exchange a memory region.
Definition: io.h:99
 
void * data
a memory pointer
Definition: io.h:102
 
uint32_t size
the size of data
Definition: io.h:101
 
The position information adds extra meaning to the raw clock times.
Definition: io.h:279
 
struct spa_io_clock clock
clock position of driver, always valid and read only
Definition: io.h:280
 
struct spa_io_video_size video
size of the video in the current cycle
Definition: io.h:282
 
uint32_t state
one of enum spa_io_position_state
Definition: io.h:288
 
uint32_t n_segments
number of segments
Definition: io.h:290
 
struct spa_io_segment segments[SPA_IO_POSITION_MAX_SEGMENTS]
segments
Definition: io.h:291
 
int64_t offset
an offset to subtract from the clock position to get a running time.
Definition: io.h:283
 
A range, suitable for input ports that can suggest a range to output ports.
Definition: io.h:108
 
uint64_t offset
offset in range
Definition: io.h:109
 
uint32_t max_size
maximum size of data
Definition: io.h:111
 
uint32_t min_size
minimum size of data
Definition: io.h:110
 
rate matching
Definition: io.h:295
 
uint32_t padding[7]
Definition: io.h:302
 
uint32_t flags
extra flags
Definition: io.h:301
 
double rate
rate for resampler
Definition: io.h:298
 
uint32_t delay
extra delay in samples for resampler
Definition: io.h:296
 
uint32_t size
requested input size for resampler
Definition: io.h:297
 
bar and beat segment
Definition: io.h:175
 
double beat
current beat in segment
Definition: io.h:183
 
uint32_t padding[8]
Definition: io.h:184
 
double bpm
beats per minute
Definition: io.h:182
 
float signature_denom
time signature denominator
Definition: io.h:181
 
uint32_t offset
offset in segment of this beat
Definition: io.h:179
 
float signature_num
time signature numerator
Definition: io.h:180
 
uint32_t flags
extra flags
Definition: io.h:178
 
video frame segment
Definition: io.h:188
 
uint32_t seconds
Definition: io.h:202
 
struct spa_fraction framerate
Definition: io.h:199
 
uint32_t field_count
0 for progressive, 1 and 2 for interlaced
Definition: io.h:204
 
uint32_t hours
Definition: io.h:200
 
uint32_t minutes
Definition: io.h:201
 
uint32_t padding[11]
Definition: io.h:205
 
uint32_t frames
Definition: io.h:203
 
A segment converts a running time to a segment (stream) position.
Definition: io.h:228
 
uint64_t duration
duration when this info becomes invalid expressed in running time.
Definition: io.h:242
 
uint32_t flags
extra flags
Definition: io.h:237
 
uint64_t position
The position when the running time == start.
Definition: io.h:249
 
double rate
overall rate of the segment, can be negative for backwards time reporting.
Definition: io.h:247
 
struct spa_io_segment_video video
Definition: io.h:254
 
struct spa_io_segment_bar bar
Definition: io.h:253
 
uint32_t version
Definition: io.h:229
 
control stream, io area for SPA_IO_Control and SPA_IO_Notify
Definition: io.h:170
 
struct spa_pod_sequence sequence
sequence of timed events
Definition: io.h:171
 
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
 
uint32_t padding[4]
Definition: io.h:159
 
uint32_t stride
video stride in bytes
Definition: io.h:154
 
uint32_t flags
optional flags
Definition: io.h:153
 
struct spa_rectangle size
the video size
Definition: io.h:155
 
a sequence of timed controls
Definition: pod/pod.h:248