Files
iptvnator/libs
4grayandClaude Fable 5 404deb92b0 feat(playback): advanced subtitle support in shared player controls (#1408)
Extends the engine-neutral PlayerController contract with capability-gated
external subtitle loading, subtitle delay adjustment, and subtitle styling
(size/color), rendered in the shared subtitle popover:

- Contract: new externalSubtitles/subtitleDelay/subtitleStyle capabilities,
  subtitleDelaySeconds + subtitleStyle state, addExternalSubtitleFile/
  setSubtitleDelay/setSubtitleStyle commands. subtitle-style.ts owns presets,
  clamping, and localStorage persistence of size/color (shared across
  engines, volume-key precedent); delay and the loaded file stay per-session.
- HTML5 + ArtPlayer (shared-controls mode): renderer-side .srt/.vtt picker
  (no filesystem path enters the app), SRT/VTT cue parser, external files
  rendered as native TextTracks merged into the track list with exclusive
  selection, exact cue re-timing for delay (gated on a loaded file), and
  scoped ::cue styling.
- Embedded MPV frame-copy: new sub-add/sub-delay/sub-scale/sub-color helper
  protocol commands, main-process subtitle file dialog (.srt/.ass/.ssa/.vtt/
  .sub; mpv renders ASS natively), new IPC channels + preload + bridge API,
  renderer-side delay/style ownership with per-session reset and persisted
  style re-application.
- Video.js shared mode, vendor-chrome paths, native-view, and the Linux
  out-of-process path advertise no capability and render no UI.

Adds focused specs for the parser, external-subtitle session, style helper,
web adapter, popover interactions, embedded settings, command-runner IPC, and
frame-copy protocol lines; updates all 19 i18n files, the player-controls
contract doc, CLAUDE.md, and a release note.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-22 23:10:42 +02:00
..