Release v1.13.0: timecc608 caption modes, paint-on by default - #330
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release v1.13.0. The theme is in-band CTA-608 caption modes:
timecc608gains a modefield 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
timecc608, whose value is now<channel>-<lang>[-<mode>[-<modifier>]], choosingthe CTA-608 caption mode:
paint(the default),pop,pop-sc,roll2orroll3. Paint-on and roll-uptype 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.BuildUnitPaintCuesandBuildUnitRollUpCues.Changed
timecc608defaults to paint-on instead of pop-on, so by default no segment's captions depend on itsneighbours. Pop-on remains available as
-pop, with-pop-scfor the self-contained placement; a bare-sc(which used to ask for that) is rejected with a message pointing at-pop-sc.timecc608language must be a three-letter ISO 639-2 code (eng,swe), the form the SCTE 214-1CEA-608 accessibility descriptor value is defined in, and the only place this option's language is used.
RFC 5646 tags that DASH's
@langaccepts —en,en-US,zh-Hans— were previously allowed throughinto
value="CC1=..."and are now rejected. With the language a single field, an unknown mode ormodifier is reported instead of being read as part of it.
timecc608is back to go-608's per-unit builders, whose v0.8.0generate.Unit(number, start time and frame count as independent inputs) andWithFlipAtCueStartcover both pop-on flip placements livesim2 needs, so the local copy of that scheduler is gone. Same
bytes on the wire.
timecc608caption cue is never shorter than a second now that go-608 v0.9.0 divides a segment downinto 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
timecc608_CC1-eng-pop) are now displayed over exactly theinterval 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
timecc608URLs only:timecc608_CC1-engURLs keep working butrender differently; add
-popto keep the old behaviour.en,en-US) are rejected — use ISO 639-2 (eng). A bare-scmodifier is rejected in favour of
-pop-sc.Release bookkeeping
internal/version.go:v1.12.0→v1.13.0,commitDate→ 2026-08-11CHANGELOG.md:Unreleasedentries moved to[1.13.0] - 2026-08-11,Unreleasedreset, compare links updatedVerification
go build ./...clean,go test ./...passing,golangci-lint runreports 0 issues.🤖 Generated with Claude Code