Skip to content

Remove Frame/Object Duration from moq-lite and moq-timestamp#32

Merged
kixelated merged 1 commit into
mainfrom
claude/vigilant-blackwell-36c896
Jun 16, 2026
Merged

Remove Frame/Object Duration from moq-lite and moq-timestamp#32
kixelated merged 1 commit into
mainfrom
claude/vigilant-blackwell-36c896

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

What

Removes the Duration field from a Frame in moq-lite and the DURATION object property from the moq-timestamp extension. Both drafts now carry a presentation timestamp only.

Why

Duration was an application-level presentation hint that the transport never used for any delivery decision. Worse, it encourages a frame of added latency: to know a frame's duration you either have to know its length before its successor exists (impossible for live media) or wait for the next frame to infer it. A bare timestamp lets a receiver present each frame as soon as it arrives.

Changes

moq-lite (draft-lcurley-moq-lite.md):

  • Dropped Duration from the Frame concept section.
  • Removed Duration Delta from the FRAME message layout and semantics.
  • Removed Duration from the datagram body.
  • Updated the Publisher Timescale omission rule to mention only the timestamp field.
  • Folded the duration mentions out of the moq-lite-05 changelog entries.

moq-timestamp (draft-lcurley-moq-timestamp.md):

  • Removed the DURATION Object Property section in full, including the relay age-refinement rationale.
  • Updated the abstract/introduction to describe two Key-Value-Pairs (Timescale + Timestamp).
  • Removed the 0x915C4 DURATION IANA registration. The codepoint was never published, so freeing it is safe.

Reviewer notes

Both drafts build and validate cleanly (make draft-lcurley-moq-lite.txt, make draft-lcurley-moq-timestamp.txt). The remaining "duration" word occurrences in moq-lite are unrelated English usage (group-drop timing, stream-reset age), not the Frame field.

🤖 Generated with Claude Code

Duration was an application-level presentation hint that the transport
never used for delivery decisions. Keeping it encourages a frame of added
latency: a publisher either has to know a frame's length before its
successor exists (impossible for live) or wait for the next frame to infer
it. A bare timestamp lets a receiver present each frame as soon as it
arrives.

moq-lite: drop the Duration field from the Frame concept, the FRAME
message (Duration Delta), the datagram body, the Publisher Timescale
omission rule, and the moq-lite-05 changelog.

moq-timestamp: remove the DURATION object property entirely, including its
0x915C4 IANA registration (never published, so the codepoint is freed),
and the relay age-refinement rationale.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kixelated kixelated merged commit 3e36aa8 into main Jun 16, 2026
2 checks passed
@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: be23e12f-cd37-4a6a-84d3-8aaee8e20352

📥 Commits

Reviewing files that changed from the base of the PR and between 80308a3 and a5be769.

📒 Files selected for processing (2)
  • draft-lcurley-moq-lite.md
  • draft-lcurley-moq-timestamp.md

Walkthrough

Both protocol specification drafts are updated to remove the Duration concept. In draft-lcurley-moq-timestamp.md, the DURATION Object Property section is deleted entirely; the abstract, TIMESCALE description, and no-timeline fallback semantics are rewritten to reference only Timestamp, and the IANA registry table is trimmed to TIMESCALE and TIMESTAMP. In draft-lcurley-moq-lite.md, Duration Delta is removed from the FRAME on-wire layout and datagram body encoding; Timestamp Delta and datagram Timestamp are now conditionally omitted when Publisher Timescale is 0, with expiration falling back to wall-clock arrival time. The moq-lite-05 changelog is updated to match.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and specifically summarizes the main change—removing Duration fields from two IETF drafts.
Description check ✅ Passed The description is clearly related to the changeset, providing detailed explanation of what was removed and why.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch claude/vigilant-blackwell-36c896

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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.

1 participant