rocksdanister/lively · error · DepreciatedException

libvlc depreciated player selected.

Error message

libvlc depreciated player selected.

What it means

Thrown by WallpaperPluginFactory when Settings.VideoPlayer == LivelyMediaPlayer.libvlc — the in-process libvlc backend is deprecated (libvlcExt remains supported). DepreciatedException fires for every video wallpaper load. Note libvlcExt is handled separately and returns a player instance, so only the bare libvlc value is fatal.

Source

Thrown at src/Lively/Lively/Factories/WallpaperPluginFactory.cs:87

                                userSettings.Settings.ApplicationTheme,
                                userSettings.Settings.AudioVolumeGlobal,
                                GetWebView2Scale(display, isWindowed),
                                userSettings.Settings.VisualizerAudioDeviceId);
                    }
                    break;
                case WallpaperType.video:
                    //How many videoplayers you need? Yes.
                    switch (userSettings.Settings.VideoPlayer)
                    {
                        case LivelyMediaPlayer.wmf:
                            return new VideoWmfProcess(model.FilePath, model,
                                display, 0, userSettings.Settings.WallpaperScaling);
                        case LivelyMediaPlayer.libmpv:
                            throw new DepreciatedException("libmpv depreciated player selected.");
                        case LivelyMediaPlayer.libmpvExt:
                            throw new DepreciatedException("libmpvExt depreciated player selected.");
                        case LivelyMediaPlayer.libvlc:
                            throw new DepreciatedException("libvlc depreciated player selected.");
                        case LivelyMediaPlayer.libvlcExt:
                            return new VideoLibVlcPlayer(model.FilePath,
                                model,
                                display,
                                lpFactory.CreateLivelyPropertyFolder(model, display, arrangement, userSettings),
                                userSettings.Settings.ApplicationTheme,
                                userSettings.Settings.AudioVolumeGlobal,
                                userSettings.Settings.VideoPlayerHwAccel);
                        case LivelyMediaPlayer.mpv:
                            return new VideoMpvPlayer(model.FilePath,
                                model,
                                display,
                                lpFactory.CreateLivelyPropertyFolder(model, display, arrangement, userSettings),
                                userSettings.Settings.VideoPlayerHwAccel,
                                isWindowed: isWindowed,
                                userSettings.Settings.VideoTargetColorSpaceMode);
                        case LivelyMediaPlayer.vlc:
                            return new VideoVlcPlayer(model.FilePath, 

View on GitHub (pinned to c1036feb66)

Solutions

  1. Set VideoPlayer to libvlcExt (external VLC, still supported) or to wmf/mpv.
  2. On settings load, remap libvlc -> libvlcExt automatically and inform the user.
  3. Catch DepreciatedException at launch and prompt to pick a supported player.

Example fix

// before
case LivelyMediaPlayer.libvlc:
    throw new DepreciatedException("libvlc depreciated player selected.");

// after — transparently migrate to the still-supported external variant
case LivelyMediaPlayer.libvlc:
    goto case LivelyMediaPlayer.libvlcExt;
Defensive patterns

Strategy: fallback

Validate before calling

var player = userSettings.Settings.VideoPlayer;
if (player == LivelyMediaPlayer.libvlc)
{
    userSettings.Settings.VideoPlayer = LivelyMediaPlayer.libvlcExt; // still supported
    await userSettings.SaveAsync();
}

Type guard

static bool IsSupportedVideoPlayer(LivelyMediaPlayer p)
    => p is LivelyMediaPlayer.wmf or LivelyMediaPlayer.mpv or LivelyMediaPlayer.libvlcExt;

Try / catch

try { return factory.CreateVideoPlayer(model, display, arrangement); }
catch (DepreciatedException ex) when (ex.Message.Contains("libvlc"))
{ userSettings.Settings.VideoPlayer = LivelyMediaPlayer.libvlcExt; return factory.CreateVideoPlayer(model, display, arrangement); }

Prevention

When it happens

Trigger: Loading a video wallpaper with VideoPlayer set to libvlc (not libvlcExt) — the factory's libvlc case throws.

Common situations: Old settings persisted with 'libvlc'; manual edit; the in-process libvlc backend was dropped while the external one (libvlcExt) stayed.

Related errors


AI-assisted analysis of rocksdanister/lively@c1036feb66 (2026-08-13). Data as JSON: /api/errors/3095805e7d3c43bf. Report an issue: GitHub.