Skip to content

Release v1.13.0: timecc608 caption modes, paint-on by default - #330

Merged
tobbee merged 1 commit into
mainfrom
release/v1.13.0
Aug 11, 2026
Merged

Release v1.13.0: timecc608 caption modes, paint-on by default#330
tobbee merged 1 commit into
mainfrom
release/v1.13.0

Conversation

@tobbee

@tobbee tobbee commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Release v1.13.0. The theme is in-band CTA-608 caption modes: timecc608 gains a mode
field and now defaults to paint-on, so a segment's captions no longer depend on its
neighbours. Also bumps mp4ff to v0.55.0 and go-608 to v0.9.0.

Option syntax is now timecc608_<channel>-<lang>[-<mode>[-<modifier>]], e.g.
timecc608_CC1-eng, timecc608_CC1-eng-pop, timecc608_CC1-swe-roll3.

Added

  • Optional mode field on timecc608, whose value is now <channel>-<lang>[-<mode>[-<modifier>]], choosing
    the CTA-608 caption mode: paint (the default), pop, pop-sc, roll2 or roll3. Paint-on and roll-up
    type the caption out two characters per frame — paint-on onto a screen cleared at the start of each
    second, roll-up onto the base row of a 2- or 3-row window that scrolls the earlier lines up — and both
    keep every caption inside the segment that carries it, so segments stay independently decodable for a
    client that starts, seeks or joins mid-stream. Roll-up is limited to 2 or 3 rows because the caption's own
    lines put its base row at row 3. Generated by go-608 v0.9.0's generate.BuildUnitPaintCues and
    BuildUnitRollUpCues.

Changed

  • timecc608 defaults to paint-on instead of pop-on, so by default no segment's captions depend on its
    neighbours. Pop-on remains available as -pop, with -pop-sc for the self-contained placement; a bare
    -sc (which used to ask for that) is rejected with a message pointing at -pop-sc.
  • The timecc608 language must be a three-letter ISO 639-2 code (eng, swe), the form the SCTE 214-1
    CEA-608 accessibility descriptor value is defined in, and the only place this option's language is used.
    RFC 5646 tags that DASH's @lang accepts — en, en-US, zh-Hans — were previously allowed through
    into value="CC1=..." and are now rejected. With the language a single field, an unknown mode or
    modifier is reported instead of being read as part of it.
  • mp4ff dependency bumped to v0.55.0 and go-608 to v0.9.0
  • The CTA-608 cue scheduling for timecc608 is back to go-608's per-unit builders, whose v0.8.0
    generate.Unit (number, start time and frame count as independent inputs) and WithFlipAtCueStart
    cover both pop-on flip placements livesim2 needs, so the local copy of that scheduler is gone. Same
    bytes on the wire.
  • A timecc608 caption cue is never shorter than a second now that go-608 v0.9.0 divides a segment down
    into whole periods: a segment whose duration is not a multiple of a second, e.g. 1.92 s, gets one cue
    covering it instead of two shorter ones. Segments of 2 s and 2.002 s are unaffected.

Fixed

  • In-band CTA-608 captions in pop-on mode (timecc608_CC1-eng-pop) are now displayed over exactly the
    interval their text names, instead of appearing 0.6-0.75 s into it. Each cue's flip rides its cue's first
    frame, with the build sent over the preceding frames. Such captions consequently span segment boundaries,
    which costs a client that starts or seeks mid-stream its first cue period — see the
    README. The new default mode, paint-on, has neither problem.

Incompatible changes

Both affect timecc608 URLs only:

  • The default mode changed from pop-on to paint-on. Existing timecc608_CC1-eng URLs keep working but
    render differently; add -pop to keep the old behaviour.
  • Two-letter and subtagged languages (en, en-US) are rejected — use ISO 639-2 (eng). A bare -sc
    modifier is rejected in favour of -pop-sc.

Release bookkeeping

  • internal/version.go: v1.12.0v1.13.0, commitDate → 2026-08-11
  • CHANGELOG.md: Unreleased entries moved to [1.13.0] - 2026-08-11, Unreleased reset, compare links updated

Verification

go build ./... clean, go test ./... passing, golangci-lint run reports 0 issues.

🤖 Generated with Claude Code

Release v1.13.0 (timecc608 caption modes, paint-on by default).

- internal/version.go: v1.12.0 -> v1.13.0, commitDate -> 2026-08-11
- CHANGELOG.md: move the Unreleased entries (timecc608 mode field, paint-on default,
  ISO 639-2 language requirement, pop-on timing fix) to [1.13.0] - 2026-08-11,
  reset Unreleased, and update the compare/tag links
@tobbee
tobbee merged commit 2423dde into main Aug 11, 2026
9 checks passed
@tobbee
tobbee deleted the release/v1.13.0 branch August 11, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant