fix(jellyfin): subtitle timing, resume progress, and overlay sync

- Add per-stream subtitle delay persistence and auto timeline-offset correction
- Strip server-selected subtitle stream from mpv load URL; suppress plugin subtitle rearm and auto-start during app-managed preload
- Fix resume position lost when mpv resets on stop; use last known position for final progress/stopped reports
- Keep Play vs Resume distinct to avoid early seek race on normal play
- Fix discovery resume when remote play sends StartPositionTicks=0 despite saved progress
- Deduplicate show/hide overlay commands using recorded visibility state
- Rewrite docs-site Jellyfin page around cast-to-device UX
This commit is contained in:
2026-05-24 02:49:47 -07:00
parent dc9d7b77bb
commit 127e1ea88e
42 changed files with 2113 additions and 298 deletions
@@ -1,4 +1,5 @@
export function createSetVisibleOverlayVisibleHandler(deps: {
getVisibleOverlayVisible?: () => boolean;
setVisibleOverlayVisibleCore: (options: {
visible: boolean;
setVisibleOverlayVisibleState: (visible: boolean) => void;
@@ -9,6 +10,9 @@ export function createSetVisibleOverlayVisibleHandler(deps: {
onVisibleOverlayEnabled?: () => void;
}) {
return (visible: boolean): void => {
if (deps.getVisibleOverlayVisible?.() === visible) {
return;
}
if (visible) {
deps.onVisibleOverlayEnabled?.();
}