- ffmpeg-full im Flatpak eingebunden für vollständiges H.264/VAAPI-Decoding
- Trigger-Repeat für L2/R2 deaktiviert, um gestapelte 300s-Seeks zu vermeiden
- fMP4-HLS-Playlists über EXT-X-MAP erkannt
- große fMP4-Seeks nicht mehr per In-Stream-Seek, sondern per Reload einer getrimmten Playlist
- getrimmte Playlists über localhost statt file:// ausgeliefert
- absoluten Playback-Offset eingeführt, damit mehrfaches R2 korrekt weiter vorspult
- B Button ermöglicht, mit der selektierung zurück zum sidemenu zurückzukehren
- Logging Schalter dem Einstellungs Screen hinzugefügt
streamlink.ts — 3 neue mpv-Argumente für VODs
- --demuxer-max-bytes=150M / --demuxer-max-back-bytes=75M — größerer Buffer, verhindert Flush bei Seeks
- --hr-seek=no — Keyframe-only Seeks, zuverlässiger für HLS
mpvController.ts — 2 Änderungen - Relative Seeks jetzt relative+keyframes (statt relative) — konsistent mit seekAbsolute - Neue pollTimePos()-Methode als Fallback wenn observe_property nicht feuert
playbackService.ts — Kerndfix
- playback-restart statt file-loaded für den initialen Resume-Seek — wartet bis der erste Frame dekodiert ist, statt nur auf das Manifest
- Seek-Verify nach 5s — prüft ob der Seek geklappt hat, Retry falls nicht
- Poll-Fallback nach 10s — startet Polling falls time-pos nie über observe_property kommt
- Cleanup in stop() für die neuen Timer/Callbacks
- Kapitel werden via Twitch GQL API geladen
- Kapitelauswahl als Modal-Overlay zentriert dargestellt
- A-Taste pausiert/setzt VOD-Wiedergabe fort (war: Stop)
- Unter "Du folgst" wurde immer der erste Kanal aufgerufen, unabhängig vom ausgewählten Kanal
- Abbrechen der Wiedergabe auch unter "Durchsuchen" und Top-Stream möglich.
- SQLite-Setup: `src/main/store/db.ts` (better-sqlite3, Migration)
- Lokaler VOD-Verlauf (Resume)
- mpv `time-pos`-Observer schreibt alle ~5s in DB
- Auto-Resume: beim VOD-Start Position aus DB lesen → `--start=<s>`
-Resume-Indikator auf VOD-Karte
- Completed-Indikator (dunkles Overlay + Checkmark)