You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
moq-lite-05: move immutable track props to a Track Stream (TRACK_INFO)
Replace the per-response publisher metadata in SUBSCRIBE_OK with a
dedicated, on-demand Track Stream, per moq-dev/drafts#25. Scoped to the
WIP Lite05 version; Lite01-04 keep SUBSCRIBE_OK unchanged.
- New Track Stream (0x6): a TRACK request (broadcast path + track name)
answered with a single TRACK_INFO carrying the immutable publisher
properties (Priority, Ordered, Cache, Timescale, Compression), then a
FIN (or reset on error / missing track).
- Removed the static props (compression/timescale/cache) from SUBSCRIBE_OK;
on Lite05 a subscription is accepted implicitly (rejection is a reset)
and the publisher sends nothing on the subscribe stream.
- Subscriber flights TRACK and SUBSCRIBE in parallel, so the first group
still arrives in one round trip. A pending TrackEntry is inserted before
SUBSCRIBE, so group streams that race ahead of TRACK_INFO park on a
resolved channel (buffered by QUIC flow control) instead of being
dropped. The resolved (producer, compression, timescale) is reused for
every group's decode instead of being re-derived per response, and is
fetched once for the upstream subscription's lifetime (linger).
Publisher resolves TRACK_INFO by subscribing to read the track's .info and
dropping the subscription; a parallel SUBSCRIBE coalesces onto the same
upstream producer. Priority/Ordered are sent as 0/false for now since the
model Track carries no publisher priority/order field yet.
Not included (no functional gap in the Rust impl, which never resolves a
group range or emits drops): SUBSCRIBE_START/SUBSCRIBE_END and the
SUBSCRIBE_DROP renumber. Cross-package sync to js/net and doc/concept is
also deferred.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments