Commit 6023250
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
0 commit comments