A publisher sends Objects matching a subscription on Data Streams.
All unidirectional MOQT streams start with a variable-length integer indicating the type of the stream in question.
| ID | Type |
|---|---|
| 0x4 | SUBGROUP_HEADER (Section 9.4.2) |
| 0x5 | FETCH_HEADER (Section 9.4.4) |
All MOQT datagrams start with a variable-length integer indicating the type of the datagram.
| ID | Type |
|---|---|
| 0x1 | OBJECT_DATAGRAM (Section 9.2) |
| 0x2 | OBJECT_DATAGRAM_STATUS (Section 9.2) |
An endpoint that receives an unknown stream or datagram type MUST close the session.
The publisher only sends Objects after receiving a SUBSCRIBE or FETCH. The publisher MUST NOT send Objects that are not requested. If an endpoint receives an Object it never requested, it SHOULD terminate the session with a protocol violation. Objects can arrive after a subscription or fetch has been cancelled, so the session MUST NOT be teriminated in that case.
Every Track has a single 'Object Forwarding Preference' and the Original Publisher MUST NOT mix different forwarding preferences within a single track. If a subscriber receives different forwarding preferences for a track, it SHOULD close the session with an error of 'Protocol Violation'.