PipeWire 1.2.7
Loading...
Searching...
No Matches
filter.h File Reference

pipewire/filter.h More...

Go to the source code of this file.

Data Structures

struct  pw_filter_events
 Events for a filter. More...
 

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) , PW_FILTER_FLAG_TRIGGER = (1 << 4) , PW_FILTER_FLAG_ASYNC = (1 << 5)
}
 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

 
struct pw_filterpw_filter_new (struct pw_core *core, const char *name, struct pw_properties *props)
 Create a new unconnected Filter.
 
struct pw_filterpw_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

 
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_corepw_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.
 
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.
 
int pw_filter_remove_port (void *port_data)
 remove a port from the filter
 
const struct pw_propertiespw_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.
 
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.
 
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.
 
uint64_t pw_filter_get_nsec (struct pw_filter *filter)
 Get the current time in nanoseconds.
 
struct pw_looppw_filter_get_data_loop (struct pw_filter *filter)
 Get the data loop that is doing the processing of this filter.
 
struct pw_bufferpw_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.
 
bool pw_filter_is_driving (struct pw_filter *filter)
 Check if the filter is driving.
 
bool pw_filter_is_lazy (struct pw_filter *filter)
 Check if the graph is using lazy scheduling.
 
int pw_filter_trigger_process (struct pw_filter *filter)
 Trigger a push/pull on the filter.
 

Detailed Description