§8.6.

Range Filter Structure

draft-21 · View on IETF ↗

Each Range Filter parameter (see Section 3.3.2) carries a sequence of Ranges, encoded as follows:

Range {
  Start (vi64),
  [End (vi64)]
}

Length (vi64) is the byte count of all fields after itself. When Length is 0, there is no filter and no further fields are present. This can be used in REQUEST_UPDATE to remove a filter. The Object Property and Track Property Filters include a Property Type (vi64) which follows SetID.

Each Range is an inclusive Start/End pair. End is optional in the last pair; if omitted it indicates the last Range is open-ended.

Each Start is delta encoded from the prior Range's End (or from 0 for the first Range), and End is delta encoded from its own Start. If adding the delta would exceed 2^64-1, the request MUST be rejected with INVALID_FILTER. For example, ranges 3-5 and 10-15 encode as: Start=3, End=2, Start=5, End=5.

This is one section of the MoQT specification, rendered per-section for quick reference and citation. The authoritative text is draft-ietf-moq-transport-21 at the IETF.