Loading...
Searching...
No Matches
pw_filter_events Struct Reference
Filter

Events for a filter. More...

`#include <pipewire/filter.h>`

## Data Fields

uint32_t | version
void(* | destroy )(void *data)
void(* | state_changed )(void *data, enum pw_filter_state old, enum pw_filter_state state, const char *error)
| when the filter state changes.
void(* | io_changed )(void *data, void *port_data, uint32_t id, void *area, uint32_t size)
| when io changed on a port of the filter (when port_data is NULL).
void(* | param_changed )(void *data, void *port_data, uint32_t id, const struct spa_pod *param)
| when a parameter changed on a port of the filter (when port_data is NULL).
void(* | add_buffer )(void *data, void *port_data, struct pw_buffer *buffer)
| when a new buffer was created for a port
void(* | remove_buffer )(void *data, void *port_data, struct pw_buffer *buffer)
| when a buffer was destroyed for a port
void(* | process )(void *data, struct spa_io_position *position)
| do processing.
void(* | drained )(void *data)
| The filter is drained.
void(* | command )(void *data, const struct spa_command *command)
| A command notify, Since 0.3.39:1.

## Detailed Description

Events for a filter.

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

Examples
  audio-dsp-filter.c, audio-dsp-sink.c, audio-dsp-sink2.c, audio-dsp-src.c, midi-src.c, tutorial7.c, and video-dsp-play.c.

## Field Documentation

## version

uint32_t pw_filter_events::version

## destroy

void(* pw_filter_events::destroy) (void *data)

## state_changed

void(* pw_filter_events::state_changed) (void *data, enum pw_filter_state old, enum pw_filter_state state, const char *error)

when the filter state changes.

Since 1.4 this also sets errno when the new state is PW_FILTER_STATE_ERROR

Examples
  midi-src.c.

## io_changed

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

when io changed on a port of the filter (when port_data is NULL).

## param_changed

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

when a parameter changed on a port of the filter (when port_data is NULL).

## add_buffer

void(* pw_filter_events::add_buffer) (void *data, void *port_data, struct pw_buffer *buffer)

when a new buffer was created for a port

## remove_buffer

void(* pw_filter_events::remove_buffer) (void *data, void *port_data, struct pw_buffer *buffer)

when a buffer was destroyed for a port

## process

void(* pw_filter_events::process) (void *data, struct spa_io_position *position)

do processing.

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 with the PW_FILTER_FLAG_RT_PROCESS. Only call methods marked with RT safe from this event when called from the realtime thread.

## drained

void(* pw_filter_events::drained) (void *data)

The filter is drained.

## command

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

A command notify, Since 0.3.39:1.

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

- pipewire/filter.h