Skip to content

docs(millicast): document enableUTCInsertion publishing parameter - #783

Open
bcostdolby wants to merge 10 commits into
mainfrom
devin/1785365630-enable-utc-insertion-docs
Open

docs(millicast): document enableUTCInsertion publishing parameter#783
bcostdolby wants to merge 10 commits into
mainfrom
devin/1785365630-enable-utc-insertion-docs

Conversation

@bcostdolby

@bcostdolby bcostdolby commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

Documents the new enableUTCInsertion ingest option (media-server OPTI-3526) in the public Millicast docs. The feature stamps H.264 media with an unregistered SEI carrying the server's UTC receive time (Unix epoch ms), for RTMP/SRT passthrough and transcoded H.264 layers, without re-encoding, and only when the ingest doesn't already provide an onFi/AMF sender time.

Two files change:

1. millicast/broadcast/publishing-parameters.md — new enableUTCInsertion row in the parameters table (alphabetical, after audioOnly). Covers: what it does, H.264-only + RTMP/SRT scope (not WebRTC ingest passthrough, not H.265), the onFi/AMF preservation + mixed-clock caveat, seiKeyFrameOnly interaction (passthrough limited to keyframes; transcoded layers always per-frame), and configuration surfaces/precedence (URL param > publishing-token setting > account-level default). Links to the frame-metadata page for the consumer/verification path.

2. millicast/playback/frame-metadata.md — new "Server-Inserted UTC Timecode" section under Timecode Metadata. Explains that the SEI reuses the same UUID as onFi (9a21f3be-…) so players parse it identically (no player-side change), and documents behavior across the three processing modes:

Processing mode Default (seiKeyFrameOnly=false) seiKeyFrameOnly=true
Passthrough layer Every frame Keyframes only
Transcoded layer Every frame Every frame (setting does not apply)

Also covers transcode-with-a-passthrough-layer (mix of the two), the per-frame fresh timestamp value, and the onFi/AMF non-overwrite guarantee.

The parameters-table column padding was re-flowed by prettier (repo version) because the new row is the widest cell — hence whitespace-only churn on surrounding rows. prettier --check passes.

Notes for reviewers

  • Precedence, UUID reuse, and per-mode SEI behavior were verified against the merged media-server implementation (RtmpValidator.js, H264Packetizer.cpp, rtmppacketizer.cpp, h264encoder.cpp). The admin feature flag (highest priority in the media server) is internal-only and intentionally omitted from customer docs.
  • WebRTC/WHIP ingest passthrough is intentionally called out as unsupported; H.265 is unaffected.

Link to Devin session: https://dolby.devinenterprise.com/sessions/b635c9bf3add4fd393c2280136e1c01f
Requested by: @bcostdolby


Open in Devin Review

Co-Authored-By: Brendon Costa <brendon.costa@dolby.com>
@bcostdolby
bcostdolby requested a review from a team as a code owner July 29, 2026 22:54
@bcostdolby bcostdolby self-assigned this Jul 29, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

Co-Authored-By: Brendon Costa <brendon.costa@dolby.com>
Comment thread millicast/broadcast/publishing-parameters.md Outdated
…ly reference

Co-Authored-By: Brendon Costa <brendon.costa@dolby.com>
…sertion

Co-Authored-By: Brendon Costa <brendon.costa@dolby.com>
@dcoffey3296

Copy link
Copy Markdown
Collaborator

@bcostdolby can we also add a detail on how this is applied at the publishing token?

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Happy to add this. The row currently notes only that a token-level setting takes precedence over the URL param. Before documenting how it's applied at the token, we should confirm the customer-facing mechanism, since the utcInsertion feature flag is set on the token via internal admin tooling today — I want to avoid documenting a self-serve path that doesn't exist publicly.

@bcostdolby — is enabling utcInsertion on a publishing token something customers do themselves (dashboard / Customer API when creating a token), or is it applied by Dolby/support on request? Once you confirm, I'll add a short sentence (or a "Publishing token" subsection) describing the exact steps.

…rtion) on frame-metadata page

Co-Authored-By: Brendon Costa <brendon.costa@dolby.com>
devin-ai-integration[bot]

This comment was marked as resolved.

…data link, align config surfaces/precedence

Co-Authored-By: Brendon Costa <brendon.costa@dolby.com>
…nsertion

Co-Authored-By: Brendon Costa <brendon.costa@dolby.com>
devin-ai-integration[bot]

This comment was marked as resolved.

…page

Co-Authored-By: Brendon Costa <brendon.costa@dolby.com>

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

Open in Devin Review

Comment thread millicast/playback/frame-metadata.md
Comment thread millicast/playback/frame-metadata.md Outdated
Comment thread millicast/playback/frame-metadata.md Outdated
… over URL param

Co-Authored-By: Brendon Costa <brendon.costa@dolby.com>
Comment thread millicast/playback/frame-metadata.md
… dashboard GUI

Co-Authored-By: Brendon Costa <brendon.costa@dolby.com>
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.

2 participants