A publisher sends Objects matching a subscription on Data Streams or Datagrams.
All unidirectional MOQT streams start with a variable-length integer indicating the type of the stream in question.
| ID | Type |
|---|---|
| 0x08-0x0D | SUBGROUP_HEADER (Section 9.4.2) |
| 0x05 | FETCH_HEADER (Section 9.4.4) |
All MOQT datagrams start with a variable-length integer indicating the type of the datagram.
| ID | Type |
|---|---|
| 0x00-0x03 | OBJECT_DATAGRAM (Section 9.3.1) |
| 0x04-0x05 | OBJECT_DATAGRAM_STATUS (Section 9.3.1) |
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 (see Section 2.5).