PipeWire: pw_stream Class Reference

PipeWire 0.1.5.1

Public Member Functions
pw_stream Class Reference

PipeWire stream object class. More...

## Public Member Functions
const char * | pw_stream_state_as_string (enum pw_stream_state state)
| Convert a stream state to a readable string. More...
struct pw_stream * | pw_stream_new (struct pw_remote *remote, const char *name, struct pw_properties *props)
| Create a new unconneced pw_stream. More...
void | pw_stream_destroy (struct pw_stream *stream)
| Destroy a stream. More...
bool | pw_stream_connect (struct pw_stream *stream, enum pw_direction direction, enum pw_stream_mode mode, const char *port_path, enum pw_stream_flags flags, uint32_t n_possible_formats, const struct spa_format **possible_formats)
| Connect a stream for input or output on port_path. More...
uint32_t | pw_stream_get_node_id (struct pw_stream *stream)
| Get the node ID of the stream. More...
void | pw_stream_disconnect (struct pw_stream *stream)
| Disconnect stream. More...
void | pw_stream_finish_format (struct pw_stream *stream, int res, struct spa_param **params, uint32_t n_params)
| Complete the negotiation process with result code res. More...
bool | pw_stream_get_time (struct pw_stream *stream, struct pw_time *time)
| Query the time on the stream. More...
uint32_t | pw_stream_get_empty_buffer (struct pw_stream *stream)
| Get the id of an empty buffer that can be filled. More...
bool | pw_stream_recycle_buffer (struct pw_stream *stream, uint32_t id)
| Recycle the buffer with id. More...
struct spa_buffer * | pw_stream_peek_buffer (struct pw_stream *stream, uint32_t id)
| Get the buffer with id from stream. More...
bool | pw_stream_send_buffer (struct pw_stream *stream, uint32_t id)
| Send a buffer with id to stream. More...

## Detailed Description

PipeWire stream object class.

The stream object provides a convenient way to send and receive data streams from/to PipeWire.

See also Media Streams and Core API

## Member Function Documentation

## ◆ pw_stream_connect()

bool pw_stream_connect | ( | struct pw_stream * | stream,
|  | enum pw_direction | direction,
|  | enum pw_stream_mode | mode,
|  | const char * | port_path,
|  | enum pw_stream_flags | flags,
|  | uint32_t | n_possible_formats,
|  | const struct spa_format ** | possible_formats
| ) |  |

Connect a stream for input or output on port_path.

Returns
  true on success.

When mode is PW_STREAM_MODE_BUFFER, you should connect to the new-buffer event and use pw_stream_peek_buffer() to get the latest metadata and data.

Parameters

  stream | a pw_stream
  direction | the stream direction
  mode | a pw_stream_mode
  port_path | the port path to connect to or NULL to let the server choose a port
  flags | stream flags
  n_possible_formats | number of items in possible_formats
  possible_formats | an array with possible accepted formats

## ◆ pw_stream_destroy()

void pw_stream_destroy | ( | struct pw_stream * | stream | ) |

Destroy a stream.

## ◆ pw_stream_disconnect()

void pw_stream_disconnect | ( | struct pw_stream * | stream | ) |

Disconnect stream.

## ◆ pw_stream_finish_format()

void pw_stream_finish_format | ( | struct pw_stream * | stream,
|  | int | res,
|  | struct spa_param ** | params,
|  | uint32_t | n_params
| ) |  |

Complete the negotiation process with result code res.

This function should be called after notification of the format.

When res indicates success, params contain the parameters for the allocation state.

Parameters

  stream | a pw_stream
  res | a result code
  params | an array of pointers to spa_param
  n_params | number of elements in params

## ◆ pw_stream_get_empty_buffer()

uint32_t pw_stream_get_empty_buffer | ( | struct pw_stream * | stream | ) |

Get the id of an empty buffer that can be filled.

Returns
  the id of an empty buffer or SPA_ID_INVALID when no buffer is available.

## ◆ pw_stream_get_node_id()

uint32_t pw_stream_get_node_id | ( | struct pw_stream * | stream | ) |

Get the node ID of the stream.

Returns
  node ID.

## ◆ pw_stream_get_time()

bool pw_stream_get_time | ( | struct pw_stream * | stream,
|  | struct pw_time * | time
| ) |  |

Query the time on the stream.

## ◆ pw_stream_new()

struct pw_stream * pw_stream_new | ( | struct pw_remote * | remote,
|  | const char * | name,
|  | struct pw_properties * | props
| ) |  |

Create a new unconneced pw_stream.

Returns
  a newly allocated pw_stream

Parameters

  remote | a pw_remote
  name | a stream name
  props | stream properties, ownership is taken

## ◆ pw_stream_peek_buffer()

struct spa_buffer * pw_stream_peek_buffer | ( | struct pw_stream * | stream,
|  | uint32_t | id
| ) |  |

Get the buffer with id from stream.

Returns
  a spa_buffer or NULL when there is no buffer

This function should be called from the new-buffer event.

## ◆ pw_stream_recycle_buffer()

bool pw_stream_recycle_buffer | ( | struct pw_stream * | stream,
|  | uint32_t | id
| ) |  |

Recycle the buffer with id.

Returns
  true on success, false when id is invalid or not a used buffer Let the PipeWire server know that it can reuse the buffer with id.

## ◆ pw_stream_send_buffer()

bool pw_stream_send_buffer | ( | struct pw_stream * | stream,
|  | uint32_t | id
| ) |  |

Send a buffer with id to stream.

Returns
  true when id was handled, false on error

For provider or playback streams, this function should be called whenever there is a new buffer available.

## ◆ pw_stream_state_as_string()

const char * pw_stream_state_as_string | ( | enum pw_stream_state | state | ) |

Convert a stream state to a readable string.

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

- stream.h