Skip to content

Commit fbcbdc6

Browse files
committed
More explicit handling for end-of-group bit
The previous "implicit" end of group handling both created additional malformed track cases, and was challenging to integrate into existing MoQ APIs. Change the interpretation to mean it's the same as receiving an End of Group Object with ID + 1. Fixes: #1093
1 parent 945b9d0 commit fbcbdc6

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

draft-ietf-moq-transport.md

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3234,8 +3234,18 @@ There are 8 defined Type values for OBJECT_DATAGRAM:
32343234
| 0x07 | Yes | Yes | No |
32353235
|------|---------------|------------|-----------|
32363236

3237-
For Type values where End of Group is Yes, the Object is the last Object in the
3238-
Group.
3237+
For Type values where End of Group is Yes, the effect is the same as receiving
3238+
the current Datagram followed by an OBJECT_DATAGRAM_STATUS with the following
3239+
values:
3240+
3241+
~~~
3242+
Track Alias = datagram.Track Alias
3243+
Group ID = datagram.Group ID
3244+
Object ID = datagram.Object ID + 1
3245+
Publisher Priority = datagram.Publisher Priority
3246+
Extension Headers Length = 0
3247+
Object Status = End of Group
3248+
~~~
32393249

32403250
For Type values where Extensions Present is No, Extensions Headers Length is not
32413251
present and the Object has no extensions. When Extensions Present is Yes,
@@ -3361,10 +3371,20 @@ There are 12 defined Type values for SUBGROUP_HEADER:
33613371
| 0x1D | Yes | N/A | Yes | Yes |
33623372
|------|---------------|-----------------|------------|--------------|
33633373

3364-
For Type values where Contains End of Group is Yes, the last Object in this
3365-
Subgroup stream before a FIN is the last Object in the Group. If the Subgroup
3366-
stream is terminated with a RESET_STREAM or RESET_STREAM_AT, the receiver cannot
3367-
determine the End of Group Object ID.
3374+
For Type values where Contains End of Group is Yes, when the Subgroup stream is
3375+
terminated with a FIN, the effect is the same as receiving an additional Object
3376+
in the Subgroup with the following values:
3377+
3378+
~~~
3379+
Object ID Delta = 0
3380+
Extension Headers Length = 0
3381+
Object Payload Length = 0
3382+
Object Status = End of Group
3383+
~~~
3384+
3385+
If such a Subgroup stream is terminated with a RESET_STREAM or RESET_STREAM_AT,
3386+
no End of Group object can be inferred. If the stream contains no Objects,
3387+
Object 0 is the End of Group.
33683388

33693389
For Type values where Subgroup ID Field Present is No, there is no explicit
33703390
Subgroup ID field in the header and the Subgroup ID is either 0 (for Types

0 commit comments

Comments
 (0)