Skip to content

Commit 6023250

Browse files
kixelatedclaude
andauthored
moq-lite-05: REANNOUNCE, timestamps, and datagrams (#23)
* moq-lite-05: REANNOUNCE, timestamps, and datagrams - Adds `restart` ANNOUNCE status (2) for atomic UNANNOUNCE+ANNOUNCE when origin or hop path changes without interrupting the broadcast. - Adds `Publisher Timescale` to SUBSCRIBE_OK and per-frame `Timestamp Delta` (zigzag varint) to FRAME, enabling timestamp-based expiration instead of wall-clock arrival time. - Adds QUIC datagram delivery for single-frame groups, routed via existing Subscribe IDs (no separate control stream). Datagram bodies are capped at 1200 bytes to fit within the minimum QUIC path MTU. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Address CodeRabbit review feedback - Define expiration fallback for zero-frame groups (use wall-clock arrival/queue time regardless of Timescale, so empty keep-alive or gap-marker groups don't stall expiration). - Datagram Timestamp field: clarify that 0 is only "unspecified" when the Track's Timescale is 0; otherwise 0 is a legitimate absolute timestamp. - Resolve ANNOUNCE alternation-rule contradiction: the rule now allows `restart` alongside `active`, matching the `restart` (2) definition. - Hyphenate "application-specific" in FRAME payload description. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Address PR feedback and add Publisher Cache to SUBSCRIBE_OK - Omit FRAME `Timestamp Delta`/`Duration Delta` and datagram `Timestamp`/`Duration` from the wire entirely when the Track's `Publisher Timescale` is 0 (instead of encoding placeholder zeros). Saves 2 bytes per frame / per datagram on timescale-less tracks. - Add `Publisher Cache` to SUBSCRIBE_OK: max retention (milliseconds) the publisher guarantees for late/reconnecting subscribers. Modeled on HTTP `Cache-Control: max-age`. Note: the prior comment about removing `restart` from the wire is already addressed; the enum was dropped in an earlier commit, and a duplicate `active` now atomically replaces the prior announcement. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 6cedca9 commit 6023250

1 file changed

Lines changed: 267 additions & 24 deletions

File tree

0 commit comments

Comments
 (0)