Skip to content

@svta/cml-608 changelog ​

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased ​

Changed ​

  • PenState.foreground is string | null, the type of PenStyles.foreground. A PAC without a color already set it to null. TypeScript consumers that read foreground as a string need to handle null. setStyles assigns the five styles directly, with no allocation per call. A style key that is present with the value undefined keeps the previous value instead of storing undefined.
  • SccParser types its processor as Pick<Cta608Parser, 'addData'> and its field as number. Both were any.
  • The README now has a When to use section. The section names the tasks that the package covers and the entry point of each task.

1.1.1 - 2026-10-18 ​

Changed ​

  • @svta/cml-utils is now a declared peer dependency with the range ^1.6.2.
  • README: the prose is rewritten for readers who do not read English as a first language. The extractor table and the code examples are unchanged.
  • README: the extraction example is complete. The sample inputs are function parameters.

1.1.0 - 2026-08-13 ​

Added ​

  • extractCta608DataFromAv1Sample extracts CTA-608 field data from AV1 (av01) samples, where captions are carried in a metadata_itu_t_t35 OBU rather than in an SEI message. The cc_data() payload is identical to the SEI path, so the result feeds Cta608Parser unchanged. Select on the sample entry type: NAL unit and AV1 samples are framed differently and neither is self-identifying, so the framing has to come from the sample entry rather than from the bytes.

Changed ​

  • The cc_data() parser is now shared by the SEI and OBU carriage paths, and every caller bounds it by the structure that encloses it — the SEI message, the OBU payload, or the range handed to extractCta608Data — rather than trusting cc_count alone. No change to extracted data for well-formed input.

Fixed ​

  • A wrong cc_count no longer reads caption pairs out of the bytes following the payload it belongs to, which in a multi-message SEI NAL could turn the header of the next message into a caption pair.
  • A user_data_registered_itu_t_t35 payload carrying only the 8-byte A/53 identifier no longer throws a RangeError when cc_data() would start past the end of the buffer.

1.0.3 - 2026-07-22 ​

Fixed ​

  • A CTA-608 mid-row style code now advances the cursor by one column. A mid-row code is a spacing attribute: it occupies one on-screen cell (a space carrying the new pen) and advances the cursor, so following text starts one column to the right. Previously ccMIDROW only set the pen and did not advance the cursor, so colored/italic text was rendered one column too far left. (#391)

1.0.2 - 2026-02-13 ​

Fixed ​

  • CEA608 parser now supports H.265 (HEVC) and H.266 (VVC) SEI NALU types in addition to H.264 (AVC). This fixes CEA608 parsing in H.265/H.266 streams.

1.0.1 - 2025-12-22 ​

Fixed ​

  • The extractCta608DataFromSample function is missing from @svta/cml-608 (#276)
  • Use fixed version numbers for all CML peer dependencies (#277)

1.0.0 - 2025-10-24 ​

Changed ​

  • Remove CommonJS exports (#192)
  • Convert to mono-repo (#238)
  • Produce single bundled export for each package (#260)

A Streaming Video Technology Alliance project.