@@ -2549,24 +2549,24 @@ A publisher sends Objects matching a subscription on Data Streams or Datagrams.
25492549All unidirectional MOQT streams start with a variable-length integer indicating
25502550the type of the stream in question.
25512551
2552- |-------| -------------------------------------------------------|
2553- | ID | Type |
2554- |------:|: ------------------------------------------------------|
2555- | 0x4 | SUBGROUP_HEADER ({{subgroup-header}}) |
2556- |-------| -------------------------------------------------------|
2557- | 0x5 | FETCH_HEADER ({{fetch-header}}) |
2558- |-------| -------------------------------------------------------|
2552+ |-------------| -------------------------------------------------|
2553+ | ID | Type |
2554+ |------------:|: ------------------------------------------------|
2555+ | 0x08-0x09 | SUBGROUP_HEADER ({{subgroup-header}}) |
2556+ |-------------| -------------------------------------------------|
2557+ | 0x05 | FETCH_HEADER ({{fetch-header}}) |
2558+ |-------------| -------------------------------------------------|
25592559
25602560All MOQT datagrams start with a variable-length integer indicating the type of
25612561the datagram.
25622562
2563- |-------| -------------------------------------------------------|
2564- | ID | Type |
2565- |------:|: ------------------------------------------------------|
2566- | 0x1 | OBJECT_DATAGRAM ({{object-datagram}}) |
2567- |-------| -------------------------------------------------------|
2568- | 0x2 | OBJECT_DATAGRAM_STATUS ({{object-datagram}}) |
2569- |-------| -------------------------------------------------------|
2563+ |-----------| ---------------------------------------------------|
2564+ | ID | Type |
2565+ |----------:|: --------------------------------------------------|
2566+ | 0x00-0x01 | OBJECT_DATAGRAM ({{object-datagram}}) |
2567+ |-----------| ---------------------------------------------------|
2568+ | 0x02-0x03 | OBJECT_DATAGRAM_STATUS ({{object-datagram}}) |
2569+ |-----------| ---------------------------------------------------|
25702570
25712571An endpoint that receives an unknown stream or datagram type MUST close the
25722572session.
@@ -2698,17 +2698,24 @@ will be dropped.
26982698
26992699~~~
27002700OBJECT_DATAGRAM {
2701+ Type (i),
27012702 Track Alias (i),
27022703 Group ID (i),
27032704 Object ID (i),
27042705 Publisher Priority (8),
2705- Extension Headers Length (i),
2706- [ Extension headers (...)],
2706+ [ Extension Headers Length (i),
2707+ Extension headers (...)],
27072708 Object Payload (..),
27082709}
27092710~~~
27102711{: # object-datagram-format title="MOQT OBJECT_DATAGRAM"}
27112712
2713+ The Type field takes the form 0b0000000X (or the set of values from 0x00 to
2714+ 0x01). The LSB of the type determines if the Extensions Headers Length and
2715+ Extension headers are present. If an endpoint receives a datagram with Type
2716+ 0x01 and Extension Headers Length is 0, it MUST close the session with Protocol
2717+ Violation.
2718+
27122719There is no explicit length field. The entirety of the transport datagram
27132720following Publisher Priority contains the Object Payload.
27142721
@@ -2719,17 +2726,24 @@ conveys an Object Status and has no payload.
27192726
27202727~~~
27212728OBJECT_DATAGRAM_STATUS {
2729+ Type (i),
27222730 Track Alias (i),
27232731 Group ID (i),
27242732 Object ID (i),
27252733 Publisher Priority (8),
2726- Extension Headers Length (i),
2727- [ Extension headers (...)],
2734+ [ Extension Headers Length (i),
2735+ Extension headers (...)],
27282736 Object Status (i),
27292737}
27302738~~~
27312739{: # object-datagram-status-format title="MOQT OBJECT_DATAGRAM_STATUS"}
27322740
2741+ The Type field takes the form 0b0000001X (or the set of values from 0x02 to
2742+ 0x03). The LSB of the type determines if the Extensions Headers Length and
2743+ Extension headers are present. If an endpoint receives a datagram with Type
2744+ 0x03 and Extension Headers Length is 0, it MUST close the session with Protocol
2745+ Violation.
2746+
27332747# # Streams
27342748
27352749When objects are sent on streams, the stream begins with a Subgroup Header
@@ -2755,6 +2769,7 @@ and the subgroup indicated by 'Group ID' and `Subgroup ID`.
27552769
27562770~~~
27572771SUBGROUP_HEADER {
2772+ Type (i),
27582773 Track Alias (i),
27592774 Group ID (i),
27602775 Subgroup ID (i),
@@ -2766,6 +2781,12 @@ SUBGROUP_HEADER {
27662781All Objects received on a stream opened with `SUBGROUP_HEADER` have an
27672782` Object Forwarding Preference` = `Subgroup`.
27682783
2784+ The Type field takes the form 0b0000100X (or the set of values from 0x08 to
2785+ 0x09). The LSB determines if the Extensions Headers Length is present in Objects
2786+ in this subgroup. When it is 0, Extensions Headers Length is not present and all
2787+ Objects have no extensions. When it is 1, Extension Headers Length is present in
2788+ all Objects in this subgroup.
2789+
27692790To send an Object with `Object Forwarding Preference` = `Subgroup`, find the open
27702791stream that is associated with the subscription, `Group ID` and `Subgroup ID`,
27712792or open a new one and send the `SUBGROUP_HEADER`. Then serialize the
@@ -2776,8 +2797,8 @@ The Object Status field is only sent if the Object Payload Length is zero.
27762797~~~
27772798{
27782799 Object ID (i),
2779- Extension Headers Length (i),
2780- [ Extension headers (...)],
2800+ [ Extension Headers Length (i),
2801+ Extension headers (...)],
27812802 Object Payload Length (i),
27822803 [Object Status (i)],
27832804 Object Payload (..),
@@ -2937,20 +2958,19 @@ Sending a subgroup on one stream:
29372958Stream = 2
29382959
29392960SUBGROUP_HEADER {
2961+ Type = 0
29402962 Track Alias = 2
29412963 Group ID = 0
29422964 Subgroup ID = 0
29432965 Publisher Priority = 0
29442966}
29452967{
29462968 Object ID = 0
2947- Extension Headers Length = 0
29482969 Object Payload Length = 4
29492970 Payload = "abcd"
29502971}
29512972{
29522973 Object ID = 1
2953- Extension Headers Length = 0
29542974 Object Payload Length = 4
29552975 Payload = "efgh"
29562976}
@@ -2962,7 +2982,8 @@ Extension Headers.
29622982~~~
29632983Stream = 2
29642984
2965- STREAM_HEADER_GROUP {
2985+ SUBGROUP_HEADER {
2986+ Type = 1
29662987 Subscribe ID = 2
29672988 Track Alias = 2
29682989 Group ID = 0
0 commit comments