pw_stream_events Struct Reference
Stream

Events for a stream. More...

## Data Fields

uint32_t | version
void(* | destroy )(void *data)
void(* | state_changed )(void *data, enum pw_stream_state old, enum pw_stream_state state, const char *error)
| when the stream state changes More...
void(* | control_info )(void *data, uint32_t id, const struct pw_stream_control *control)
| Notify information about a control. More...
void(* | io_changed )(void *data, uint32_t id, void *area, uint32_t size)
| when io changed on the stream. More...
void(* | param_changed )(void *data, uint32_t id, const struct spa_pod *param)
| when a parameter changed More...
void(* | add_buffer )(void *data, struct pw_buffer *buffer)
| when a new buffer was created for this stream More...
void(* | remove_buffer )(void *data, struct pw_buffer *buffer)
| when a buffer was destroyed for this stream More...
void(* | process )(void *data)
| when a buffer can be queued (for playback streams) or dequeued (for capture streams). More...
void(* | drained )(void *data)
| The stream is drained. More...
void(* | command )(void *data, const struct spa_command *command)
| A command notify, Since 0.3.39:1. More...
void(* | trigger_done )(void *data)
| a trigger_process completed. More...

## Detailed Description

Events for a stream.

These events are always called from the mainloop unless explicitly documented otherwise.

Examples
  audio-src.c, tutorial4.c, tutorial5.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, video-play.c, video-src-alloc.c, video-src-fixate.c, video-src-reneg.c, and video-src.c.

## Field Documentation

## version

uint32_t pw_stream_events::version

## destroy

void(* pw_stream_events::destroy) (void *data)

## state_changed

void(* pw_stream_events::state_changed) (void *data, enum pw_stream_state old, enum pw_stream_state state, const char *error)

when the stream state changes

## control_info

void(* pw_stream_events::control_info) (void *data, uint32_t id, const struct pw_stream_control *control)

Notify information about a control.

## io_changed

void(* pw_stream_events::io_changed) (void *data, uint32_t id, void *area, uint32_t size)

when io changed on the stream.

## param_changed

void(* pw_stream_events::param_changed) (void *data, uint32_t id, const struct spa_pod *param)

when a parameter changed

## add_buffer

void(* pw_stream_events::add_buffer) (void *data, struct pw_buffer *buffer)

when a new buffer was created for this stream

## remove_buffer

void(* pw_stream_events::remove_buffer) (void *data, struct pw_buffer *buffer)

when a buffer was destroyed for this stream

## process

void(* pw_stream_events::process) (void *data)

when a buffer can be queued (for playback streams) or dequeued (for capture streams).

This is normally called from the mainloop but can also be called directly from the realtime data thread if the user is prepared to deal with this.

## drained

void(* pw_stream_events::drained) (void *data)

The stream is drained.

## command

void(* pw_stream_events::command) (void *data, const struct spa_command *command)

A command notify, Since 0.3.39:1.

## trigger_done

void(* pw_stream_events::trigger_done) (void *data)

a trigger_process completed.

Since version 0.3.40:2

The documentation for this struct was generated from the following file:

- pipewire/stream.h