PipeWire  0.3.33
io.h File Reference

Go to the source code of this file.

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...
 

Macros

#define SPA_STATUS_OK   0
 
#define SPA_STATUS_NEED_DATA   (1<<0)
 
#define SPA_STATUS_HAVE_DATA   (1<<1)
 
#define SPA_STATUS_STOPPED   (1<<2)
 
#define SPA_STATUS_DRAINED   (1<<3)
 
#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_CLOCK_FLAG_FREEWHEEL   (1u<<0)
 
#define SPA_IO_VIDEO_SIZE_VALID   (1<<0)
 
#define SPA_IO_SEGMENT_BAR_FLAG_VALID   (1<<0)
 
#define SPA_IO_SEGMENT_VIDEO_FLAG_VALID   (1<<0)
 
#define SPA_IO_SEGMENT_VIDEO_FLAG_DROP_FRAME   (1<<1)
 
#define SPA_IO_SEGMENT_VIDEO_FLAG_PULL_DOWN   (1<<2)
 
#define SPA_IO_SEGMENT_VIDEO_FLAG_INTERLACED   (1<<3)
 
#define SPA_IO_SEGMENT_FLAG_LOOPING   (1<<0)
 after the duration, the segment repeats More...
 
#define SPA_IO_SEGMENT_FLAG_NO_POSITION   (1<<1)
 position is invalid. More...
 
#define SPA_IO_POSITION_MAX_SEGMENTS   8
 the maximum number of segments visible in the future More...
 
#define SPA_IO_RATE_MATCH_FLAG_ACTIVE   (1 << 0)
 

Enumerations

enum  spa_io_type {
  SPA_IO_Invalid, SPA_IO_Buffers, SPA_IO_Range, SPA_IO_Clock,
  SPA_IO_Latency, SPA_IO_Control, SPA_IO_Notify, SPA_IO_Position,
  SPA_IO_RateMatch, SPA_IO_Memory
}
 IO areas. More...
 
enum  spa_io_position_state { SPA_IO_POSITION_STATE_STOPPED, SPA_IO_POSITION_STATE_STARTING, SPA_IO_POSITION_STATE_RUNNING }
 

Macro Definition Documentation

◆ SPA_IO_CLOCK_FLAG_FREEWHEEL

#define SPA_IO_CLOCK_FLAG_FREEWHEEL   (1u<<0)

◆ SPA_IO_RATE_MATCH_FLAG_ACTIVE

#define SPA_IO_RATE_MATCH_FLAG_ACTIVE   (1 << 0)

◆ SPA_IO_SEGMENT_BAR_FLAG_VALID

#define SPA_IO_SEGMENT_BAR_FLAG_VALID   (1<<0)

◆ SPA_IO_SEGMENT_FLAG_LOOPING

#define SPA_IO_SEGMENT_FLAG_LOOPING   (1<<0)

after the duration, the segment repeats

◆ SPA_IO_SEGMENT_FLAG_NO_POSITION

#define SPA_IO_SEGMENT_FLAG_NO_POSITION   (1<<1)

position is invalid.

The position can be invalid after a seek, for example, when the exact mapping of the extra segment info (bar, video, ...) to position has not been determined yet

◆ SPA_IO_SEGMENT_VIDEO_FLAG_DROP_FRAME

#define SPA_IO_SEGMENT_VIDEO_FLAG_DROP_FRAME   (1<<1)

◆ SPA_IO_SEGMENT_VIDEO_FLAG_INTERLACED

#define SPA_IO_SEGMENT_VIDEO_FLAG_INTERLACED   (1<<3)

◆ SPA_IO_SEGMENT_VIDEO_FLAG_PULL_DOWN

#define SPA_IO_SEGMENT_VIDEO_FLAG_PULL_DOWN   (1<<2)

◆ SPA_IO_SEGMENT_VIDEO_FLAG_VALID

#define SPA_IO_SEGMENT_VIDEO_FLAG_VALID   (1<<0)

◆ SPA_IO_VIDEO_SIZE_VALID

#define SPA_IO_VIDEO_SIZE_VALID   (1<<0)

◆ SPA_STATUS_DRAINED

#define SPA_STATUS_DRAINED   (1<<3)

◆ SPA_STATUS_HAVE_DATA

#define SPA_STATUS_HAVE_DATA   (1<<1)

◆ SPA_STATUS_NEED_DATA

#define SPA_STATUS_NEED_DATA   (1<<0)

◆ SPA_STATUS_OK

#define SPA_STATUS_OK   0

◆ SPA_STATUS_STOPPED

#define SPA_STATUS_STOPPED   (1<<2)