feat(core,player,app): full subtitle styling, applied live, with a preview

The subtitle style was three fixed choices. It is now size, position,
font, bold and italic, free colours with opacity for the text, outline,
box and shadow, outline thickness, shadow distance and blur, and an
opt-in "Restyle styled subtitles" that repaints ASS dialogue too
(sub-ass-override=force). The defaults are mpv's own, so a viewer who
never opens the section sees no change.

Settings has a section of its own with a sample line drawn on a bright
and a dark picture. Every change also reaches the playing file at once,
and is written when the mouse is let go rather than once per frame of a
drag. The player's subtitle menu has size, position and a per-file
delay; Z and X shift subtitles by 0.1 s, as in mpv.

Every option is sent every time, so a change back to a default lands on
a live player. A refused sub-border-style still skips the border options
that depend on it, so an older libmpv loses the box rather than drawing
a smear.
This commit is contained in:
nvrl committed 2026-10-27 22:25:53 +01:00
1 parent 238ecd8220
commit 69d961d7b8
11 files changed
+940 -175

No files matched your search

+9 -3
View File
@@ -23,9 +23,15 @@ with hardware decoding where the device has it.
## Subtitles are hard to read. Can I change them?
Yes, for plain subtitles (SRT). In **Settings → Playback**, set **Subtitle size**, **Subtitle
background** and **Subtitle colour**. A **Dark box** background is easiest to read on bright
scenes. Styled subtitles (ASS) keep the look their makers gave them and change only in size.
Yes. In **Settings → Subtitles** you can set the size, position, font, colours, outline, box,
shadow and blur. A **Box** background is easiest to read on bright scenes. Styled subtitles (ASS)
keep the look their makers gave them and take only the size and position, unless you turn on
**Restyle styled subtitles**.
## The subtitles are early or late.
Press **Z** to show them 0.1 s earlier and **X** to show them later, or use **Delay** in the
player's subtitle menu. The delay holds for the file you are watching only.
## Does it provide any videos?