When an MoQT publisher has multiple schedulable objects it can choose between, the objects SHOULD be selected as follows:
-
If two objects have a different subscriber priority associated with them, the one with the highest subscriber priority is sent first.
-
If two objects have the same subscriber priority, but a different publisher priority, the one with the highest publisher priority is sent first.
-
If two objects have the same subscriber and publisher priority, but belong to two different groups of the same track received through the same subscription, the group order of the associated subscription is used to decide the one that is sent first.
-
If two objects belong to the same group of the same track received through the same subscription, the one with the lowest Subgroup ID (for tracks with delivery preference Subgroup), or the lowest Object ID (for tracks with delivery preference Datagram) is sent first.
This algorithm does not provide a well-defined ordering for objects that belong to different subscriptions, but have the same subscriber and publisher priority. The ordering in those cases is implementation-defined, though the expectation is that all subscriptions will be able to send some data.
Given the critical nature of control messages and their relatively small size, the control stream SHOULD be prioritized higher than all subscribed Objects.