Skip to content

Add ObscreenPlayer Digital Signage - #3726

Merged
probonopd merged 3 commits into
AppImage:masterfrom
obscreen:master
Jul 27, 2026
Merged

probonopd merged 3 commits into
AppImage:masterfrom
obscreen:master

Conversation

@jr-k

@jr-k jr-k commented Mar 29, 2026 •

Copy link
Copy Markdown
Contributor

Obscreen is digital signage software that helps you organize your media and display it on TVs, computers, tablets, or any web browser.
Website: https://www.obscreen.com

@jr-k jr-k changed the title Add ObscreenPlayer Add ObscreenPlayer Digital Signage Mar 29, 2026
@probonopd
probonopd merged commit 6ab49c3 into AppImage:master Jul 27, 2026
1 check passed
@probonopd

Copy link
Copy Markdown
Member

AppImageHub's automated test now also checks the screenshot it takes of each application. The screenshot of ObscreenPlayer from when this pull request was tested (2026-07-27) would fail this check: the window appears to be empty (100% of it is one color, with almost no text).

Screenshot of ObscreenPlayer

The test starts the AppImage without arguments and without network access, and takes the screenshot after 30 seconds. An empty window usually means that the application did not render its content, for example because it waits for the network or failed to load its user interface. If a newer version fixes this, please open a pull request that changes data/ObscreenPlayer (e.g., adds an empty line) to have it tested again and the screenshot on https://appimage.github.io/ObscreenPlayer/ updated.


Generated by Claude Code

@jr-k

jr-k commented Sep 29, 2026

Copy link
Copy Markdown
Contributor Author

@probonopd
Thanks for the report.

I would need a bit more information to reproduce this properly. In particular, what exact command was used to start the AppImage during the test?

From the description alone, it is difficult to identify the issue because the application does not specifically wait for network access during startup.

The very first rendered frame is black, so if the screenshot system captures too early, it may indeed look like an empty window. The screenshot mechanism should ideally wait at least a couple of seconds after the window has started rendering before capturing it.

I can also confirm that ObscreenPlayer does not wait for network access to start. The boot screen is launched locally, but it can take some time before it becomes visible because the OpenGL components need to initialize.

If you can share the exact command and any relevant details about how the screenshot is triggered, I can try to reproduce the same behavior.

@probonopd

Copy link
Copy Markdown
Member

Thanks @jr-k, and sorry for the confusion. Here are the exact details you asked for.

How the test starts it (no arguments), on a headless Xvfb display (:99) with a minimal window manager, in a network-less firejail sandbox:

firejail --quiet --noprofile --net=none --appimage ./ObscreenPlayer-*.AppImage

When the screenshot is taken: not immediately. The worker waits 10 s, then polls once a second for up to 20 s until your app has a window on screen, and once it does it waits another 2 s before capturing. So for a GUI app the shot lands roughly 12–30 s after launch — the black capture here is unlikely to be "too early".

The most likely cause is the environment, not the timing: the test display is a headless Xvfb with no GPU, so OpenGL/EGL only has software rendering (llvmpipe), and GPU-accelerated init can fail or fall back to something that renders black. Your note that the boot screen is OpenGL and that the first frame is black fits this exactly — it is the same class of issue as GPU-accelerated web views showing blank in CI.

To reproduce the test conditions locally:

xvfb-run -s "-screen 0 1024x768x24" \
  firejail --net=none --appimage ./ObscreenPlayer-*.AppImage
# wait ~30 s, then:  import -window root shot.png

If it is black there, try forcing software GL, which mimics the no-GPU runner:

LIBGL_ALWAYS_SOFTWARE=1 xvfb-run -s "-screen 0 1024x768x24" ./ObscreenPlayer-*.AppImage

If it renders with that, the boot screen needs a GPU that the CI runner does not have; a software-GL fallback (or drawing the initial screen without GPU-only features) would let it show up. Also worth checking: with no network and no configured content, does the player have anything local to display, or is the boot screen black until it has media/config?

This is only about the automated screenshot — the entry is in the catalog. Once a build shows a non-black first screen under those conditions, bump data/ObscreenPlayer (e.g. add a blank line) to re-test it and refresh the screenshot on https://appimage.github.io/ObscreenPlayer/ .


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants