{"record":{"id":"3095805e7d3c43bf","repo":"rocksdanister/lively","slug":"libvlc-depreciated-player-selected","errorCode":null,"errorMessage":"libvlc depreciated player selected.","messagePattern":"libvlc depreciated player selected\\.","errorType":"exception","errorClass":"DepreciatedException","httpStatus":null,"severity":"error","filePath":"src/Lively/Lively/Factories/WallpaperPluginFactory.cs","lineNumber":87,"sourceCode":"                                userSettings.Settings.ApplicationTheme,\n                                userSettings.Settings.AudioVolumeGlobal,\n                                GetWebView2Scale(display, isWindowed),\n                                userSettings.Settings.VisualizerAudioDeviceId);\n                    }\n                    break;\n                case WallpaperType.video:\n                    //How many videoplayers you need? Yes.\n                    switch (userSettings.Settings.VideoPlayer)\n                    {\n                        case LivelyMediaPlayer.wmf:\n                            return new VideoWmfProcess(model.FilePath, model,\n                                display, 0, userSettings.Settings.WallpaperScaling);\n                        case LivelyMediaPlayer.libmpv:\n                            throw new DepreciatedException(\"libmpv depreciated player selected.\");\n                        case LivelyMediaPlayer.libmpvExt:\n                            throw new DepreciatedException(\"libmpvExt depreciated player selected.\");\n                        case LivelyMediaPlayer.libvlc:\n                            throw new DepreciatedException(\"libvlc depreciated player selected.\");\n                        case LivelyMediaPlayer.libvlcExt:\n                            return new VideoLibVlcPlayer(model.FilePath,\n                                model,\n                                display,\n                                lpFactory.CreateLivelyPropertyFolder(model, display, arrangement, userSettings),\n                                userSettings.Settings.ApplicationTheme,\n                                userSettings.Settings.AudioVolumeGlobal,\n                                userSettings.Settings.VideoPlayerHwAccel);\n                        case LivelyMediaPlayer.mpv:\n                            return new VideoMpvPlayer(model.FilePath,\n                                model,\n                                display,\n                                lpFactory.CreateLivelyPropertyFolder(model, display, arrangement, userSettings),\n                                userSettings.Settings.VideoPlayerHwAccel,\n                                isWindowed: isWindowed,\n                                userSettings.Settings.VideoTargetColorSpaceMode);\n                        case LivelyMediaPlayer.vlc:\n                            return new VideoVlcPlayer(model.FilePath, ","sourceCodeStart":69,"sourceCodeEnd":105,"githubUrl":"https://github.com/rocksdanister/lively/blob/c1036feb664960722e34bf4309042c247d6a909d/src/Lively/Lively/Factories/WallpaperPluginFactory.cs#L69-L105","documentation":"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.","triggerScenarios":"Loading a video wallpaper with VideoPlayer set to libvlc (not libvlcExt) — the factory's libvlc case throws.","commonSituations":"Old settings persisted with 'libvlc'; manual edit; the in-process libvlc backend was dropped while the external one (libvlcExt) stayed.","solutions":["Set VideoPlayer to libvlcExt (external VLC, still supported) or to wmf/mpv.","On settings load, remap libvlc -> libvlcExt automatically and inform the user.","Catch DepreciatedException at launch and prompt to pick a supported player."],"exampleFix":"// before\ncase LivelyMediaPlayer.libvlc:\n    throw new DepreciatedException(\"libvlc depreciated player selected.\");\n\n// after — transparently migrate to the still-supported external variant\ncase LivelyMediaPlayer.libvlc:\n    goto case LivelyMediaPlayer.libvlcExt;","handlingStrategy":"fallback","validationCode":"var player = userSettings.Settings.VideoPlayer;\nif (player == LivelyMediaPlayer.libvlc)\n{\n    userSettings.Settings.VideoPlayer = LivelyMediaPlayer.libvlcExt; // still supported\n    await userSettings.SaveAsync();\n}","typeGuard":"static bool IsSupportedVideoPlayer(LivelyMediaPlayer p)\n    => p is LivelyMediaPlayer.wmf or LivelyMediaPlayer.mpv or LivelyMediaPlayer.libvlcExt;","tryCatchPattern":"try { return factory.CreateVideoPlayer(model, display, arrangement); }\ncatch (DepreciatedException ex) when (ex.Message.Contains(\"libvlc\"))\n{ userSettings.Settings.VideoPlayer = LivelyMediaPlayer.libvlcExt; return factory.CreateVideoPlayer(model, display, arrangement); }","preventionTips":["Remap bare libvlc to libvlcExt on settings load (transparent migration).","Expose only supported backends in the picker UI.","Catch DepreciatedException at launch and prompt or auto-switch."],"tags":["deprecated","config","video-player","settings","vlc","wallpaper"],"backgroundTag":null,"analyzedSha":"c1036feb664960722e34bf4309042c247d6a909d","analyzedAt":"2026-08-13T13:03:12.648Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}