From 6a3832277f0f759d22ced453c07f1dcedf90a419 Mon Sep 17 00:00:00 2001 From: columbarius Date: Mon, 26 Oct 2020 03:22:06 +0100 Subject: [PATCH] screencast: pipewire move buffer information from pwr_on_event to pwr_handle_stream_add_buffer --- src/screencast/pipewire_screencast.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/screencast/pipewire_screencast.c b/src/screencast/pipewire_screencast.c index ba3b0e5..906dcdf 100644 --- a/src/screencast/pipewire_screencast.c +++ b/src/screencast/pipewire_screencast.c @@ -85,15 +85,6 @@ static void pwr_on_event(void *data, uint64_t expirations) { h->dts_offset = 0; } - d[0].type = SPA_DATA_MemPtr; - d[0].maxsize = cast->simple_frame.size; - d[0].mapoffset = 0; - d[0].chunk->size = cast->simple_frame.size; - d[0].chunk->stride = cast->simple_frame.stride; - d[0].chunk->offset = 0; - d[0].flags = 0; - d[0].fd = -1; - writeFrameData(d[0].data, cast->simple_frame.data, cast->simple_frame.height, cast->simple_frame.stride, cast->simple_frame.y_invert); @@ -178,6 +169,18 @@ static void pwr_handle_stream_add_buffer(void *data, struct pw_buffer *buffer) { } else { logprint(ERROR, "pipewire: unsupported buffer type"); cast->err = 1; + return; + } + + // Prepare buffer for choosen type + if (d[0].type == SPA_DATA_MemPtr) { + d[0].maxsize = cast->simple_frame.size; + d[0].mapoffset = 0; + d[0].chunk->size = cast->simple_frame.size; + d[0].chunk->stride = cast->simple_frame.stride; + d[0].chunk->offset = 0; + d[0].flags = 0; + d[0].fd = -1; } }