Sign in

§12.1

Compression Signaling

MSF provides two mutually exclusive mechanisms to signal compression of track payloads, including catalogs (Section 5), media timeline tracks (Section 7), and event timeline tracks (Section 8). Publishers MUST use one of the following approaches:

  • Track Property (Section 12.1.1): Signals that ALL objects in the track are compressed using the specified algorithm.

  • Object Property (Section 12.1.2): Signals compression on individual objects, allowing a mixture of compressed and uncompressed objects within the same track.

A publisher MUST NOT use both mechanisms on the same track. If the track property is set, then every object in the track is compressed and the object property MUST NOT be present. If compression varies between objects, then the track property MUST NOT be set and the object property MUST be used on each compressed object.

The compression algorithm values used by both mechanisms are:

Table 11
Value Compression Algorithm Reference
0 None (uncompressed) RFC XXXX
1 GZIP [GZIP]

Table: MSF Compression Values

All MSF implementations MUST support both uncompressed payloads (value 0 or property absent) and GZIP compressed payloads (value 1).

12.1.1. MSF_COMPRESSION Track Property

The MSF_COMPRESSION track property signals that ALL objects in the track are compressed using the specified algorithm. This mechanism is appropriate when every object published on the track uses the same compression.

Publishers MUST include the MSF_COMPRESSION track property in the PUBLISH message (publisher-initiated flow) or SUBSCRIBE_OK (subscriber-initiated flow).

Subscribers MUST check for this property in the corresponding message before processing the track payload.

If the property is absent, and no per-object compression is signaled, the subscriber MUST treat the payload as uncompressed. If the property is present with a value the subscriber does not support, the subscriber MUST NOT attempt to process the payload and SHOULD unsubscribe from the track.

12.1.2. MSF_COMPRESSION Object Property

The MSF_COMPRESSION object property signals that an individual object is compressed. This mechanism is appropriate when a track contains a mixture of compressed and uncompressed objects. For example, a catalog track where the first object in a group (the complete catalog) is compressed, but subsequent delta update objects within the same group are uncompressed.

Publishers MUST include the MSF_COMPRESSION object property on each compressed object.

Subscribers MUST check for this property on each received object before processing its payload. If the property is absent on an object, the subscriber MUST treat that object's payload as uncompressed. If the property is present with a value the subscriber does not support, the subscriber MUST NOT attempt to process that object.

This is one section of MOQT Streaming Format, rendered per-section for quick reference and citation. The authoritative text is draft-ietf-moq-msf-01 at the IETF.