Metadata system in moq-transport for conveying information about tracks and objects.

Overview

Track Properties are Key-Value Pairs (KVPs) attached to tracks and objects. They can convey:

  • Core MOQT information (e.g., Gap indication)
  • Application-level metadata
  • moq-loc extensions (timestamps, frame marking, audio level)

Wire Format

In Objects (Datagram and Subgroup)

Objects include a properties block with an explicit length prefix, allowing relays to skip the block if needed. However, since some properties convey core MOQT info, all relays may need to parse them.

In Request Messages

Track Properties appear in REQUEST_OK (added in draft-17, PR #1576). For request messages, there is no separate length prefix - the properties are the last block and their length is inferred from remaining bytes in the message.

Known Issues

Properties Type Collision (#1550)

There is a collision between moq-transport-16 and loc-01 property type IDs. This needs resolution to avoid breaking interop between LOC and the transport layer.

Parsing Confusion

lorenzo-miniero (2026-03-18) reported confusion about parsing Track Properties in request messages vs object properties - the lack of explicit length prefix in request messages tripped up his parser. alan-frindell clarified the 1416 diff removed the length field from the diagram but the text still referenced it.

Authentication (#9 in LOC)

Track Properties currently can’t be authenticated - they could be modified by relays without detection.

Related