| 
    PipeWire
    0.3.64
    
   | 
 
PipeWire filter object class. More...
Files | |
| file | filter.h | 
pipewire/filter.h  | |
Data Structures | |
| struct | pw_filter_events | 
| Events for a filter.  More... | |
| struct | pw_filter | 
Macros | |
| #define | PW_VERSION_FILTER_EVENTS 1 | 
Enumerations | |
| enum | pw_filter_state {  PW_FILTER_STATE_ERROR = -1 , PW_FILTER_STATE_UNCONNECTED = 0 , PW_FILTER_STATE_CONNECTING = 1 , PW_FILTER_STATE_PAUSED = 2 , PW_FILTER_STATE_STREAMING = 3 }  | 
| The state of a filter  More...  | |
| enum | pw_filter_flags {  PW_FILTER_FLAG_NONE = 0 , PW_FILTER_FLAG_INACTIVE = (1 << 0) , PW_FILTER_FLAG_DRIVER = (1 << 1) , PW_FILTER_FLAG_RT_PROCESS = (1 << 2) , PW_FILTER_FLAG_CUSTOM_LATENCY = (1 << 3) }  | 
| Extra flags that can be used in pw_filter_connect()  More...  | |
| enum | pw_filter_port_flags { PW_FILTER_PORT_FLAG_NONE = 0 , PW_FILTER_PORT_FLAG_MAP_BUFFERS = (1 << 0) , PW_FILTER_PORT_FLAG_ALLOC_BUFFERS = (1 << 1) } | 
Functions | |
| const char * | pw_filter_state_as_string (enum pw_filter_state state) | 
| Convert a filter state to a readable string  More...  | |
| struct pw_filter * | pw_filter_new (struct pw_core *core, const char *name, struct pw_properties *props) | 
| Create a new unconneced Filter.  More... | |
| struct pw_filter * | pw_filter_new_simple (struct pw_loop *loop, const char *name, struct pw_properties *props, const struct pw_filter_events *events, void *data) | 
| void | pw_filter_destroy (struct pw_filter *filter) | 
| Destroy a filter  More...  | |
| void | pw_filter_add_listener (struct pw_filter *filter, struct spa_hook *listener, const struct pw_filter_events *events, void *data) | 
| enum pw_filter_state | pw_filter_get_state (struct pw_filter *filter, const char **error) | 
| const char * | pw_filter_get_name (struct pw_filter *filter) | 
| struct pw_core * | pw_filter_get_core (struct pw_filter *filter) | 
| int | pw_filter_connect (struct pw_filter *filter, enum pw_filter_flags flags, const struct spa_pod **params, uint32_t n_params) | 
| Connect a filter for processing.  More... | |
| uint32_t | pw_filter_get_node_id (struct pw_filter *filter) | 
| Get the node ID of the filter.  More... | |
| int | pw_filter_disconnect (struct pw_filter *filter) | 
| Disconnect filter  More...  | |
| void * | pw_filter_add_port (struct pw_filter *filter, enum pw_direction direction, enum pw_filter_port_flags flags, size_t port_data_size, struct pw_properties *props, const struct spa_pod **params, uint32_t n_params) | 
| add a port to the filter, returns user data of port_data_size.  More... | |
| int | pw_filter_remove_port (void *port_data) | 
| remove a port from the filter  More... | |
| const struct pw_properties * | pw_filter_get_properties (struct pw_filter *filter, void *port_data) | 
| get properties, port_data of NULL will give global properties  More... | |
| int | pw_filter_update_properties (struct pw_filter *filter, void *port_data, const struct spa_dict *dict) | 
| Update properties, use NULL port_data for global filter properties.  More... | |
| int | pw_filter_set_error (struct pw_filter *filter, int res, const char *error,...) 1(3 | 
| Set the filter in error state.  More... | |
| int int | pw_filter_update_params (struct pw_filter *filter, void *port_data, const struct spa_pod **params, uint32_t n_params) | 
| Update params, use NULL port_data for global filter params.  More... | |
| int | pw_filter_get_time (struct pw_filter *filter, struct pw_time *time) | 
| Query the time on the filter, deprecated, use the spa_io_position in the process() method for timing information.  More... | |
| struct pw_buffer * | pw_filter_dequeue_buffer (void *port_data) | 
| Get a buffer that can be filled for output ports or consumed for input ports.  More... | |
| int | pw_filter_queue_buffer (void *port_data, struct pw_buffer *buffer) | 
| Submit a buffer for playback or recycle a buffer for capture.  More... | |
| void * | pw_filter_get_dsp_buffer (void *port_data, uint32_t n_samples) | 
| Get a data pointer to the buffer data.  More... | |
| int | pw_filter_set_active (struct pw_filter *filter, bool active) | 
| Activate or deactivate the filter  More...  | |
| int | pw_filter_flush (struct pw_filter *filter, bool drain) | 
| Flush a filter.  More... | |
PipeWire filter object class.
The filter object provides a convenient way to implement processing filters.
See also Core API
| #define PW_VERSION_FILTER_EVENTS 1 | 
| enum pw_filter_state | 
| enum pw_filter_flags | 
Extra flags that can be used in pw_filter_connect() 
 
| Enumerator | |
|---|---|
| PW_FILTER_FLAG_NONE | no flags  | 
| PW_FILTER_FLAG_INACTIVE | start the filter inactive, pw_filter_set_active() needs to be called explicitly  | 
| PW_FILTER_FLAG_DRIVER | be a driver  | 
| PW_FILTER_FLAG_RT_PROCESS | call process from the realtime thread  | 
| PW_FILTER_FLAG_CUSTOM_LATENCY | don't call the default latency algorithm but emit the param_changed event for the ports when Latency params are received.  | 
| enum pw_filter_port_flags | 
| const char* pw_filter_state_as_string | ( | enum pw_filter_state | state | ) | 
Convert a filter state to a readable string 
 
| struct pw_filter* pw_filter_new | ( | struct pw_core * | core, | 
| const char * | name, | ||
| struct pw_properties * | props | ||
| ) | 
| struct pw_filter* pw_filter_new_simple | ( | struct pw_loop * | loop, | 
| const char * | name, | ||
| struct pw_properties * | props, | ||
| const struct pw_filter_events * | events, | ||
| void * | data | ||
| ) | 
| loop | a Loop to use | 
| name | a filter media name | 
| props | filter properties, ownership is taken | 
| events | filter events | 
| data | data passed to events | 
| void pw_filter_destroy | ( | struct pw_filter * | filter | ) | 
Destroy a filter 
 
| void pw_filter_add_listener | ( | struct pw_filter * | filter, | 
| struct spa_hook * | listener, | ||
| const struct pw_filter_events * | events, | ||
| void * | data | ||
| ) | 
| enum pw_filter_state pw_filter_get_state | ( | struct pw_filter * | filter, | 
| const char ** | error | ||
| ) | 
| const char* pw_filter_get_name | ( | struct pw_filter * | filter | ) | 
| int pw_filter_connect | ( | struct pw_filter * | filter, | 
| enum pw_filter_flags | flags, | ||
| const struct spa_pod ** | params, | ||
| uint32_t | n_params | ||
| ) | 
Connect a filter for processing.
You should connect to the process event and use pw_filter_dequeue_buffer() to get the latest metadata and data.
| filter | a Filter | 
| flags | filter flags | 
| params | an array with params. | 
| n_params | number of items in params | 
| uint32_t pw_filter_get_node_id | ( | struct pw_filter * | filter | ) | 
Get the node ID of the filter.
| int pw_filter_disconnect | ( | struct pw_filter * | filter | ) | 
Disconnect filter 
 
| void* pw_filter_add_port | ( | struct pw_filter * | filter, | 
| enum pw_direction | direction, | ||
| enum pw_filter_port_flags | flags, | ||
| size_t | port_data_size, | ||
| struct pw_properties * | props, | ||
| const struct spa_pod ** | params, | ||
| uint32_t | n_params | ||
| ) | 
add a port to the filter, returns user data of port_data_size.
| filter | a Filter | 
| direction | port direction | 
| flags | port flags | 
| port_data_size | allocated and given to the user as port_data | 
| props | port properties, ownership is taken | 
| params | an array of params. The params should ideally contain the supported formats | 
| n_params | number of elements in params | 
| int pw_filter_remove_port | ( | void * | port_data | ) | 
remove a port from the filter
| port_data | data associated with port | 
| const struct pw_properties* pw_filter_get_properties | ( | struct pw_filter * | filter, | 
| void * | port_data | ||
| ) | 
get properties, port_data of NULL will give global properties
| int pw_filter_update_properties | ( | struct pw_filter * | filter, | 
| void * | port_data, | ||
| const struct spa_dict * | dict | ||
| ) | 
Update properties, use NULL port_data for global filter properties.
| int pw_filter_set_error | ( | struct pw_filter * | filter, | 
| int | res, | ||
| const char * | error, | ||
| ... | |||
| ) | 
Set the filter in error state.
| filter | a Filter | 
| res | a result code | 
| error | an error message | 
| int int pw_filter_update_params | ( | struct pw_filter * | filter, | 
| void * | port_data, | ||
| const struct spa_pod ** | params, | ||
| uint32_t | n_params | ||
| ) | 
Update params, use NULL port_data for global filter params.
| filter | a Filter | 
| port_data | data associated with port | 
| params | an array of params. | 
| n_params | number of elements in params | 
Query the time on the filter, deprecated, use the spa_io_position in the process() method for timing information.
| struct pw_buffer* pw_filter_dequeue_buffer | ( | void * | port_data | ) | 
Get a buffer that can be filled for output ports or consumed for input ports.
 
| int pw_filter_queue_buffer | ( | void * | port_data, | 
| struct pw_buffer * | buffer | ||
| ) | 
Submit a buffer for playback or recycle a buffer for capture.
| void* pw_filter_get_dsp_buffer | ( | void * | port_data, | 
| uint32_t | n_samples | ||
| ) | 
Get a data pointer to the buffer data.
| int pw_filter_set_active | ( | struct pw_filter * | filter, | 
| bool | active | ||
| ) | 
Activate or deactivate the filter 
 
| int pw_filter_flush | ( | struct pw_filter * | filter, | 
| bool | drain | ||
| ) | 
Flush a filter.
When drain is true, the drained callback will be called when all data is played or recorded