diff options
| author | dec05eba <dec05eba@protonmail.com> | 2026-07-25 11:17:38 +0200 |
|---|---|---|
| committer | dec05eba <dec05eba@protonmail.com> | 2026-07-25 11:17:38 +0200 |
| commit | 2dc366550605df3170c1830647b6a02c6ce47828 (patch) | |
| tree | 1962b4bd530ab377b438ce9ad0b12f9388a0a08c /src | |
| parent | 8dcf40270d142bbdab77f91640d3a78009d8f936 (diff) | |
pipewire video: show precise warning when dma buf capture fails
Diffstat (limited to 'src')
| -rw-r--r-- | src/pipewire_video.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pipewire_video.c b/src/pipewire_video.c index 547b417..18f6c9a 100644 --- a/src/pipewire_video.c +++ b/src/pipewire_video.c @@ -382,6 +382,12 @@ static void on_state_changed_cb(void *user_data, enum pw_stream_state prev_state (void*)self->stream, pw_stream_state_as_string(prev_state), pw_stream_state_as_string(new_state), error ? error : "none"); + if(new_state == PW_STREAM_STATE_ERROR && error && strstr(error, "alloc buffers")) { + fprintf(stderr, "gsr error: pipewire: the desktop portal failed to provide dmabuf (GPU) video frames. This happens when the " + "compositor only provides the frames as shared memory (CPU), which gpu-screen-recorder intentionally doesn't support for portal capture. " + "Capture the monitor directly (for example '-w screen' or '-w <monitor-name>', see 'gpu-screen-recorder --list-capture-options') instead of '-w portal'.\n"); + } + pthread_mutex_lock(&self->mutex); if(new_state == PW_STREAM_STATE_PAUSED) { self->paused_start_secs = clock_get_monotonic_seconds(); |
