Throttle the EOS loop-restart seek so a fast-looping clip can't fire
back-to-back blocking flush seeks on gnome-shell's main loop, which
was severe enough to freeze the whole desktop. Also apply the
configured playback rate immediately on start instead of only from
the first loop restart.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Gst.init() has no async variant. If the plugin registry cache is stale
(e.g. right after a system update), it synchronously rescans every
plugin, spawning gst-plugin-scanner per plugin and probing hardware
for codecs. Since gnome-shell is single-threaded and is the
compositor, that can freeze the whole screen for several seconds,
same as the blocking UPower proxy lookup fixed earlier.
Set GST_REGISTRY_UPDATE=no when a cache already exists so Gst.init()
trusts it and returns immediately, then refresh the cache in a
throwaway subprocess afterward so it doesn't go stale forever.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>