Skip to content

Commit

Permalink
screencast: pipewire add {add,remove}_buffer handler
Browse files Browse the repository at this point in the history
  • Loading branch information
columbarius committed May 27, 2021
1 parent 703e944 commit 685bd35
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/screencast/pipewire_screencast.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,10 +170,33 @@ static void pwr_handle_stream_param_changed(void *data, uint32_t id,
pw_stream_update_params(stream, params, 2);
}

static void pwr_handle_stream_add_buffer(void *data, struct pw_buffer *buffer) {
struct xdpw_screencast_instance *cast = data;
struct spa_data *d;

logprint(TRACE, "pipewire: add buffer event handle");

d = buffer->buffer->datas;

// Select buffer type from negotiation result
if ((d[0].type & (1u << SPA_DATA_MemPtr)) > 0) {
d[0].type = SPA_DATA_MemPtr;
} else {
logprint(ERROR, "pipewire: unsupported buffer type");
cast->err = 1;
}
}

static void pwr_handle_stream_remove_buffer(void *data, struct pw_buffer *buffer) {
logprint(TRACE, "pipewire: remove buffer event handle");
}

static const struct pw_stream_events pwr_stream_events = {
PW_VERSION_STREAM_EVENTS,
.state_changed = pwr_handle_stream_state_changed,
.param_changed = pwr_handle_stream_param_changed,
.add_buffer = pwr_handle_stream_add_buffer,
.remove_buffer = pwr_handle_stream_remove_buffer,
};

void pwr_update_stream_param(struct xdpw_screencast_instance *cast) {
Expand Down

0 comments on commit 685bd35

Please sign in to comment.