New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to using VLC for splashscreen #3674
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've looked over the changes and generally they're working fine. I left a few comments in the code where I think changes may be necessary (though they're not comprehensive).
During testing, I noticed a few things that may need to be addressed:
-
Pi4, KMS, 'bullseye'
-
during preview and service startup, an error is logged about
XDG_RUNTIME_DIR
not being present:error: XDG_RUNTIME_DIR not set in the environment. error: XDG_RUNTIME_DIR not set in the environment.
This seems to be triggered by some
gstreamer
plugin and couldn't find avlc
parameter to disable it. Seems to be similar to the issue noticed in theaudiosettings
module, when runningpulseaudio
commands viasudo
. The fix can be similar (i.e. just setXDG_RUNTIME_DIR
), though for the preview part, usingsudo -E
also quiesces the error. -
the effective splash time is like 2sec on my system. Basically
vlc
starts about the same time as the auto-login code runs, barely showing anything on the screen.
-
-
Pi3, OMX, 'buster' (upgraded from current splashscreen).
- the splashscreen is obscured by ES's startup. Just like
omxplayer/omxiv
before, it requires an 'upper' layer ID to run. This can be fixed with the--mmal-layer 10000
parameter.
- the splashscreen is obscured by ES's startup. Just like
-
General
- there may be some options for
vlc
to start-up faster that we may want to add:--disable-dbus
,--disable-config
,--no-media-library
(vlc
saves some info on exit to '$HOME/.local/share/vlc/without it),
--no-lua(no LUA scripts are searched in
$HOME/.local/share/vlc/lua` or in the install folders). There may not be so important, on my USB (Pi4) the start-up is fast enough. - the
omxiv
should not be installed ifvlc
takes over.
- there may be some options for
Isn‘t mpv the better player for the task? Console player. More lightweight, no GUI. Uses ffmpeg as well. Can use drm output as well. mpv -vo gpu --gpu-context=drm |
Yes - the short time isn't ideal. But at least it technically works.
This didn't work when I tried but maybe I missed something. Will re-test.
I will try these thanks.
I thought I disabled the installation, but perhaps not. But will check all that. |
I don't know - I didn't try this. I can take a look and see if it's a better fit (Feel free to test / compare).
|
Thanks for the feedback. |
It should work (tested it), but use a number over
|
@joolswills will the new splashscreen logic only be installed if there is no /opt/retropie/supplementary/splashscreen dir?
I added mpv to asplashscreen.sh and was wondering why /opt/retropie/supplementary/splashscreen/asplashscreen was not updated. |
Vlc works fine under bullseye with a pi4. Mpv works as well but it is not faster or slower. Mpv runs with „mpv —vo=gpu —gpu-context=drm —drm-connector=1.HDMI-A-1 —image-display-duration=6 —hwdec=v4l2m2m-copy“ |
Actually that check can probably be removed - it dates back to before the splashscreen was an installable module (and the package update mechanisms). So it would install the splashscreen dependencies when the configuration was accessed. Now the configuration is only available when it's installed
Did you update the splashscreen module first ? eg. via |
Via retropie_setup.sh. |
Please can you be more specific - You went to "Manage Packages" -> Main Packages -> splashscreen and did update ? That should be enough but if you think something isn't working please provide a log or how to reproduce it and I will check. |
I went to „Configuration / tools“/„Splashscreen“ and selected and tested some splashscreens. No module update. |
You need to update first. For end users this is handled automatically by the _update_hook if they just update RetroPie-Setup script. Easiest way when testing like this is to just update from the commandline. RetroPie-Setup/scriptmodules/supplementary/splashscreen.sh Lines 18 to 24 in 2a7279b
I will remove the following code block at the start of the gui_splashscreen function. RetroPie-Setup/scriptmodules/supplementary/splashscreen.sh Lines 270 to 273 in 2a7279b
|
dacdf63
to
19fb9e5
Compare
omxiv / omxplayer only works on the Raspberry Pi legacy and fkms drivers. This change switches to vlc for both utilities, as it supports mmal output on the Raspberry Pi legacy drivers, and drm output on KMS on Raspberry Pi OS (bullseye). Remove dependencies for omxplayer / omxiv Switch code to use vlc. Run asplashscreen as $user (not root). Remove wait for dbus (no longer needed) Save vlc pid and Exit vlc before launching emulationstation on KMS
df7dea1
to
19865c3
Compare
Here is a possible solution for splashscreen support that works on bullseye.
omxiv / omxplayer only works on the Raspberry Pi legacy and fkms drivers.
This change switches to vlc for both utilities, as it supports mmal output on the Raspberry Pi legacy drivers, and drm output on KMS on Raspberry Pi OS (on bullseye).
This change includes stopping vlc before launching ES on kms as ES will fail to open the display otherwise. Maybe we should introduce an option to "wait" for vlc to finish before we start ES. May be useful for video splashes etc.
From my testing:
On Buster:
RPI3
Legacy Driver (default config)
FKMS
KMS
RPI4
FKMS (default config)
KMS
On Bullseye:
RPI3/RPI4
KMS