mirror of
https://github.com/games-on-whales/wolf.git
synced 2026-10-15 13:02:03 +00:00
[PR #506] Apps added over the API never get a display #500
Labels
No labels
🧠 1 - 🤖 999
AMD
bug
bug
cannot reproduce
documentation
duplicate
easy
enhancement
enhancement
enhancement
fixed?
fixed?
good first issue
hard
help wanted
Intel
invalid
LXC
medium
moonlight-protocol
Multi GPU
nixos
not a bug
nvidia
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
games-on-whales/wolf#500
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/games-on-whales/wolf/pull/506
Author: @tonybart1337
Created: 9/20/2026
Status: 🔄 Open
Base:
beta← Head:fix/api-app-producer-caps📝 Commits (1)
0ebbd3cfix(api): apps added over the API can stream📊 Changes
2 files changed (+25 additions, -1 deletions)
View changed files
📝
src/moonlight-server/api/endpoints.cpp(+10 -1)📝
src/moonlight-server/events/reflectors.hpp(+15 -0)📄 Description
An app registered through
POST /api/v1/apps/addnever reaches a compositor.Reflector<events::App>does not carryvideo_producer_buffer_caps, so an API-added app is constructed with an empty string, andstart_video_producerthen formats:gst_parse_launchrejects that ([GSTREAMER] Pipeline parse error (recovered): syntax error), the Wayland socket is never created, the app container's Xwayland exits withcould not connect to wayland server, and Moonlight shows No video received from host.Apps loaded from
config.tomlare unaffected:configTOML.cppassignsdefault_video_settings.producer_buffer_capsto each of them. That is also why the same app streams fine right after a Wolf restart and breaks again the next time a client re-adds it over the API.Change:
video_producer_buffer_capsbecomes part of the reflector, optional on the wire. An add that omits it inherits the caps from an app that already has them — the value follows from the encoder Wolf picked at startup and from zero copy, which no API client can know, andendpoint_CreateSessionalready inherits it from a sample app the same way. With no app to inherit from it falls back tovideo/x-rawrather than an empty string.Reproduced and verified on Linux/NVIDIA (RTX 5090, nvcodec encoders) with a Moonlight client: before, every API-added app failed as above; after, the same app streams and its runner starts.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.