From 9b64861afd82c33e37773418f2556d97c0e20259 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 01:29:41 +0000 Subject: [PATCH 1/3] Initial plan From 5ab839ff68f7054312941634b861e8bc762aff8a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 01:34:10 +0000 Subject: [PATCH 2/3] Add PulseAudio detection and fix audio playback backend integration Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com> --- CMakeLists.txt | 6 ++++++ src/network.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5490008..fd7e5a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,6 +72,7 @@ if(UNIX AND NOT APPLE) pkg_check_modules(DRM REQUIRED libdrm) pkg_check_modules(VAAPI libva libva-drm) pkg_check_modules(ALSA REQUIRED alsa) + pkg_check_modules(PULSEAUDIO libpulse-simple libpulse) if(NOT HEADLESS) pkg_check_modules(GTK3 REQUIRED gtk+-3.0) @@ -93,6 +94,10 @@ if(UNIX AND NOT APPLE) if(X11_FOUND) add_compile_definitions(HAVE_X11) endif() + + if(PULSEAUDIO_FOUND) + add_compile_definitions(HAVE_PULSEAUDIO) + endif() endif() if(WIN32) @@ -400,6 +405,7 @@ message(STATUS " Build Client: ${BUILD_CLIENT}") message(STATUS " Headless: ${HEADLESS}") if(UNIX) message(STATUS " VA-API: ${VAAPI_FOUND}") + message(STATUS " PulseAudio: ${PULSEAUDIO_FOUND}") message(STATUS " Avahi: ${AVAHI_FOUND}") endif() message(STATUS "") diff --git a/src/network.c b/src/network.c index 7bf30df..3466bf2 100644 --- a/src/network.c +++ b/src/network.c @@ -617,7 +617,10 @@ int rootstream_net_recv(rootstream_ctx_t *ctx, int timeout_ms) { } if (!drop_audio) { - audio_playback_write(ctx, pcm_buffer, pcm_samples); + /* Use audio playback backend if available */ + if (ctx->audio_playback_backend && ctx->audio_playback_backend->playback_fn) { + ctx->audio_playback_backend->playback_fn(ctx, pcm_buffer, pcm_samples); + } ctx->last_audio_ts_us = header.timestamp_us; } } else { From 8936b51c368480d97dbc3e99ceb85079e346843a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 01:35:43 +0000 Subject: [PATCH 3/3] Add warning when audio playback backend is unavailable Co-authored-by: infinityabundance <255699974+infinityabundance@users.noreply.github.com> --- src/network.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/network.c b/src/network.c index 3466bf2..4a4fb4d 100644 --- a/src/network.c +++ b/src/network.c @@ -620,6 +620,13 @@ int rootstream_net_recv(rootstream_ctx_t *ctx, int timeout_ms) { /* Use audio playback backend if available */ if (ctx->audio_playback_backend && ctx->audio_playback_backend->playback_fn) { ctx->audio_playback_backend->playback_fn(ctx, pcm_buffer, pcm_samples); + } else { + /* Warn once if audio backend is not available */ + static bool warned_no_backend = false; + if (!warned_no_backend) { + fprintf(stderr, "WARNING: No audio playback backend available, audio will be dropped\n"); + warned_no_backend = true; + } } ctx->last_audio_ts_us = header.timestamp_us; }