Skip to content

3.10.0 — Sidecar ASS markup

Choose a tag to compare

@superuser404notfound superuser404notfound released this 17 Jun 19:53
· 37 commits to main since this release

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 published engine.sidecarASSHeader, the sidecar analogue of TrackInfo.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.