MOQT maintains priorities between different schedulable objects. A schedulable object in MOQT is either:
-
The first or next Object in a Subgroup that is in response to a subscription.
-
An Object in response to a subscription that belongs to a Track with delivery preference Datagram.
-
An Object in response to a FETCH where that Object is the next Object in the response.
An Object is not schedulable if it is known that no part of it can be written due to underlying transport flow control limits.
A single subgroup or datagram has a single publisher priority. Within a response to SUBSCRIBE, it can be useful to conceptualize this process as scheduling subgroups or datagrams instead of individual objects on them. FETCH responses however can contain objects with different publisher priorities.
A priority numberis an unsigned integer with a value between 0 and 255.
A lower priority number indicates higher priority; the highest priority is 0.
Subscriber Priority is a priority number associated with an individual
request. It is specified in the SUBSCRIBE or FETCH message, and can be
updated via SUBSCRIBE_UPDATE message. The subscriber priority of an individual
schedulable object is the subscriber priority of the request that caused that
object to be sent. When subscriber priority is changed, a best effort SHOULD be
made to apply the change to all objects that have not been scheduled, but it is
implementation dependent what happens to objects that have already been
scheduled.
Publisher Priority is a priority number associated with an individual
schedulable object. A default can be specified in the parameters of PUBLISH, or
SUBSCRIBE_OK. Publisher priority can also be specified in a subgroup header or
datagram (see Section 10).
Group Order is a property of an individual subscription. It can be either
'Ascending' (groups with lower group ID are sent first), or 'Descending'
(groups with higher group ID are sent first). The subscriber optionally
communicates its group order preference in the SUBSCRIBE message; the
publisher's preference is used if the subscriber did not express one (by
setting Group Order field to value 0x0). The group order of an existing
subscription cannot be changed.