The LOC Public and Private Properties carry optional metadata for the corresponding LOC Payload. The LOC Public Properties are contained within the MOQ Object Properties. This metadata provides necessary information for end subscribers, relays and other intermediaries to perform their operations without accessing the media payload. For example, media switches can use this metadata to perform their media switching decisions without accessing the payload which may be encrypted end-to-end (from original publisher to end subscribers). The LOC Private Properties are contained within the MOQ Object Payload, and are not intended to be processed by relays.
The following sections define specific metadata as LOC Public and Private Properties and register them in the IANA registry for MOQ Object Properties.
Other specifications can define other metadata as LOC Public and Private Properties and register them in the same registry. Each property must specify the following information in the IANA registry.
-
Name: Short name for the metadata (not sent on the wire)
-
Description: Detailed description (not sent on the wire)
-
ID: Identifier assigned by the registry (vi64)
-
Length: Length of metadata Value in bytes (vi64 if ID is odd, omitted if ID is even)
-
Value: Value of metadata (vi64 if ID is even, Length bytes if ID is odd)
2.3.1. Common Properties
2.3.1.1. Timestamp
-
Name: Timestamp
-
Description: Timestamp of the encoded media frame encoded as vi64. The unit of the timestamp is determined by the Timescale property Section 2.3.1.2. If no timescale property is present, the timestamp is interpreted as wall-clock time in microseconds since the Unix epoch.
-
ID: 0x0A
-
Length: Omitted (ID is even)
-
Value: vi64 (1-9 bytes)
2.3.1.2. Timescale
-
Name: Timescale
-
Description: The number of Timestamp units per second, encoded as vi64. This property defines the unit for interpreting timestamp values in the Timestamp property. Common values include 1000000 for microseconds, 48000 for audio at 48kHz sample rate, 90000 for video at 90kHz clock rate. When this property is present, the Timestamp represents media time rather than wall-clock time. The epoch or anchor point for the timestamp is application-defined. If this property is not present, timestamps default to microseconds since Unix epoch.
-
ID: 0x08
-
Length: Omitted (ID is even)
-
Value: vi64 (1-9 bytes)
2.3.2. Video Properties
2.3.2.1. Video Config
-
Name: Video Config
-
Description: Video codec configuration "extradata", as defined by the corresponding codec specification, which maps to the WebCodecs VideoDecoderConfig description property in the EncodedVideoChunkMetadata.
-
ID: 0x0D (IANA, please assign from the MOQ Properties Registry)
-
Length: Varies
-
Value: Varies
2.3.2.2. Video Frame Marking
-
Name: Video Frame Marking
-
Description: Flags for video frames which are independent, discardable, or base layer sync points, as well as temporal and spatial layer identification, as defined in [RFC9626], encoded with a length prefix.
-
ID: 0x09 (IANA, please assign from the MOQ Properties Registry)
-
Length: Varies (1-4 bytes)
-
Value: Varies
2.3.3. Audio Properties
2.3.3.1. Audio Config
-
Name: Audio Config
-
Description: Audio codec configuration, as defined by the corresponding codec specification, which maps to the WebCodecs AudioDecoderConfig description property in the EncodedAudioChunkMetadata.
-
ID: 0x0F (IANA, please assign from the MOQ Properties Registry)
-
Length: Varies
-
Value: Varies
2.3.3.2. Audio Level
-
Name: Audio Level
-
Description: The magnitude of the audio level of the corresponding audio frame as well as a voice activity indicator as defined in section 3 of [RFC6464], encoded in the least significant 8 bits of a vi64.
-
ID: 0x0C (IANA, please assign from the MOQ Properties Registry)
-
Length: Omitted (ID is even)
-
Value: vi64 (1-2 bytes to encode values 0x00-0xFF)