3.10.0 — Sidecar ASS markup
Added
preserveASSMarkup now covers external ASS sidecars (#48)
selectSidecarSubtitle(url:) honours the session's LoadOptions.preserveASSMarkup for external .ass / .ssa files, exactly like embedded tracks:
- Cues carry the raw libavcodec event line (override tags, style references, escapes intact) instead of stripped plain text.
- The script header (
[Script Info]+[V4+ Styles]) extracted from the sidecar's subtitle-stream extradata is surfaced on the new publishedengine.sidecarASSHeader, the sidecar analogue ofTrackInfo.assHeader.
Hosts pair the two through ASSScriptBuilder to drive a whole-script renderer (swift-ass-renderer's loadTrack(content:)) for external subtitles, not just embedded ones. SRT / VTT sidecars and the text-only secondary channel are unaffected (no ASS payload, header stays nil). SubtitleRectText.rawASSLine(for:) is now the shared raw-line extractor behind both the inline and sidecar decoders.
Verified off-device by a new test that decodes a real ASS file through FFmpeg and asserts the override tags survive and the header feeds ASSScriptBuilder.
Thanks to @bitxeno for the request.