Commit Graph

166 Commits

Author SHA1 Message Date
hl-valdemar 0411064f0c feat: remember playback progress across player restarts
Persist authoritative per-video positions in UserDefaults. Save periodic checkpoints, pause, close, replacement, and quit; restore a validated position before autoplay. Canonical YouTube webpage URLs survive fresh stream extraction, and local symlinks share file progress.

Clear completed or out-of-duration bookmarks. Leave failed opens and live/non-seekable inputs out of persistence. Pending opens hide errors belonging to the previous source.

Verified separate-process restart, source replacement, failed-open recovery, completion, checkpoints, real YouTube short-link resume, live exclusion, and make all check.
2026-10-10 23:44:48 +02:00
hl-valdemar 5bc0d81bbf fix: keep initial playback focus off the titlebar pin
Restore the playback window as first responder after initial setup and after file/YouTube dialogs return. Keep native control focus indicators and Tab navigation unchanged.

Verified hidden native window focus, both dialog cancellations, explicit control focus, Tab navigation, P shortcut, app build, and compact-window checks.
2026-10-10 23:21:26 +02:00
hl-valdemar 8fb08db6f3 feat: stream YouTube video with coordinated audio and video inputs
Resolve public YouTube URLs through external yt-dlp and play selected streams in the existing native window.

Independent bounded network readers keep one authored timeline. Successful seeks clear FFmpeg's sticky aborted-read AVIO error; manifest seekability uses native format flags rather than a top-level I/O handle.

Verified real YouTube playback, seeking, frame stepping, compact mode, cancellation, and the complete native regression checks.
2026-10-10 23:02:19 +02:00
hl-valdemar 25d674d84d feat: default compact mode to the top-right corner 2026-10-10 22:18:18 +02:00
hl-valdemar a6bebb05c0 feat: replace normal fullscreen control with compact-mode button 2026-10-10 22:05:54 +02:00
hl-valdemar fa66020951 feat: add same-window compact playback with magnetic snapping 2026-10-10 21:34:08 +02:00
hl-valdemar 681a7be6f7 chore: rename project and app to terebi 2026-10-10 20:32:14 +02:00
hl-valdemar 33858bd8ce fix: center controller content and autoplay opened files 2026-10-10 19:25:52 +02:00
hl-valdemar 131acbe41b fix: count repeated frame steps and retain the forward decoder cursor 2026-10-10 18:57:26 +02:00
hl-valdemar a99b0c1168 feat: step to adjacent decoded video frames 2026-10-10 18:05:00 +02:00
hl-valdemar 310be5aa61 feat: add familiar single-key playback controls 2026-10-10 17:47:00 +02:00
hl-valdemar bdae024c7f fix: align slider tracks with native thumb travel 2026-10-10 17:21:24 +02:00
hl-valdemar 9356ed8b4d fix: keep seek target visible until acknowledged and make volume thumb opaque 2026-10-10 17:05:59 +02:00
hl-valdemar c9b9264109 feat: match IINA screenshot geometry and controls 2026-10-10 16:03:18 +02:00
hl-valdemar 462cb52eb2 feat: adopt IINA-style playback window 2026-10-10 05:04:53 +02:00
hl-valdemar 8a89d88254 feat: add native local-file playback 2026-10-10 01:24:06 +02:00