Skip to content

Commit 0c21c19

Browse files
committed
compression: clarify the SETUP list is decode capability only
The Compression parameter/option lists algorithms an endpoint can decompress; it does not advertise what it can produce. When sending, an endpoint compresses with an algorithm the receiver advertised. Resolves recurring ambiguity now that the publisher names the algorithm in the track property (so the receiver reads it rather than computing a mutual selection). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W8bLV6vHzucLNvDhPk3bMP
1 parent 58aeba4 commit 0c21c19

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

draft-lcurley-moq-compression.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ COMPRESSION Setup Option {
6565
~~~
6666

6767
**Algorithm**:
68-
One or more Algorithm identifiers (see [Compression Algorithms](#compression-algorithms)) that the sender can decompress, each a varint, filling the Option Value.
69-
The identifier `none` (0) MUST NOT be listed (it requires no negotiation); an endpoint lists whichever other algorithms it supports.
68+
One or more Algorithm identifiers (see [Compression Algorithms](#compression-algorithms)) that the sender can decompress, each a varint, filling the Option Value — its decode capability. An endpoint does not advertise which algorithms it can *produce*; when sending, it compresses with one the receiver advertised.
69+
The identifier `none` (0) MUST NOT be listed (it requires no negotiation).
7070
An endpoint that does not support the extension omits the option.
7171

7272
A sender MUST NOT compress with an algorithm the receiver did not advertise, and MUST NOT compress before it has received the receiver's COMPRESSION option.

draft-lcurley-moq-lite.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ The remaining bindings convey the path in their own handshake.
631631
A relay MUST NOT forward the Path Parameter; like other per-hop setup metadata it applies only to this hop (see [Session](#session)).
632632

633633
### Compression Parameter {#compression-parameter}
634-
The Compression Parameter advertises the payload compression [algorithms](#compression) the sender can *decompress* on this hop.
634+
The Compression Parameter advertises the payload compression [algorithms](#compression) the sender can *decompress* on this hop — its decode capability. An endpoint does not advertise which algorithms it can *produce*; when sending, it compresses with one the receiver advertised.
635635
The Parameter Value is a sequence of algorithm identifiers, each a variable-length integer, packed back-to-back to fill the Parameter Length.
636636
The identifier `none` (0) MUST NOT be listed. An endpoint that does not support compression omits the parameter.
637637

0 commit comments

Comments
 (0)