Skip to content

Commit 771625d

Browse files
authored
Adding in SAP Type timeline track definition
1 parent 9424e7f commit 771625d

File tree

1 file changed

+49
-44
lines changed

1 file changed

+49
-44
lines changed

draft-law-moq-carp.md

Lines changed: 49 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -121,14 +121,15 @@ Each MOQT Group
121121
## Catalog description
122122

123123
### CMAF packaging type
124-
This specification extends the allowed packaging values defined in WARP Section 5.2.10
125-
to include a new entry, as defined in Table 1 below:
124+
This specification extends the allowed packaging values defined in WARP Section 5.1.12
125+
to include one new entry, as defined in Table 1 below:
126126

127-
| Name | Value | Reference |
128-
|:================|:==========|:======================|
129-
| CMAF | cmaf | This RFC |
127+
| Name | Value | Reference |
128+
|:==================|:================|:======================|
129+
| CMAF | cmaf | This RFC |
130130

131-
Every Track entry in a CARP catalog MUST declare a "packaging" type value of "cmaf".
131+
Every Track entry in a CARP catalog carrying CMAF-packaged media data MUST declare a
132+
"packaging" type value of "cmaf".
132133

133134
### Max SAP starting types
134135
This specification adds two track-level catalog fields, as defined in Table 2 below:
@@ -142,56 +143,60 @@ This specification adds two track-level catalog fields, as defined in Table 2 be
142143
Location: T Required: Optional JSON Type: Number
143144

144145
A number indicating the maximum SAP type the MOQT Groups in the track start with.
145-
[Ed.Note: This field, when the SAP terminology is translated to video codec terminology
146-
of Random Access Point (RAP) pictures such as IDR, CRA, etc, would also apply to WARP.]
147146

148147
#### Max Object SAP starting type {#maxobjsapstartingtype}
149148
Location: T Required: Optional JSON Type: Number
150149

151150
A number indicating the maximum SAP type the MOQT Objects in the track start with.
152151

153-
## Timeline description
154-
This specification extends the METADATA element of the timeline track, defined in WARP
155-
Section 7, in the following four aspects:
152+
## Event Timelines
156153

157-
* Specification of a general scheme for metadata signalled through the METADATA element
158-
of the timeline track [Ed.Note: This aspect should also be applied to WARP, thus
159-
should be moved to WARP later on.]
160-
* Definition of a namespace for CARP-specific metadata signalled through the METADATA
161-
element of the timeline track
162-
* Addition of metadata signalling of SAP type
163-
* Addition of metadata signalling of earliest presentation time
154+
### SAP Type timeline {#saptypetimeline}
155+
CARP defines a special instance of an Event Timeline track, termed the SAP Type timeline
156+
track. Its purpose is to convey information about the distribution of Stream Access Point
157+
types and their associated Earlist Presentation Times.
164158

159+
In the catalog, the SAP-type timeline track MUST include a 'packaging' value of 'eventtimeline"
160+
and MUST include an 'eventType' value of 'org.ietf.moq.carp.sap'.
165161

166-
### General metadata scheme
167-
When not empty, the string in the METADATA field MUST contain one or more comma
168-
separated key=value pairs, formatted as Strings as specified in Section 3.3.3 of
169-
[RFC9651]. For example, the METADATA field can be "key1=1,key2=3268". For another
170-
example, the METADATA field can be "key1=1,key2=""hello-world"",key3=3268".
162+
In the SAP Type timeline JSON payload:
171163

172-
A key name MAY be prefixed with a namespace. When a namespace is present, the
173-
separator between the namespace prefix and the key name is '.'.
164+
* The index reference MUST be 'l' for Location
165+
* The data field is a JSON Array containing two integers. The first integer defines SAP type
166+
with an allowed value of 0,1,2 or 3. The value 0 indicates that the Object does not start
167+
with an ISOBMFF stream access point. The value equal to 1, 2, or 3 indicates that the Object
168+
begins with a stream access point of SAP type 1, 2, or 3, respectively. When the Object is
169+
the first Object in the Group, the value MUST be equal to 1 or 2. The second integer defines
170+
the earliest media presentation timestamp, rounded to the nearest millisecond, of all media
171+
samples in the Object defined by the Location of that record.
174172

175-
### Namespace for CARP-specific metadata signalled through the METADATA element
176-
For CARP-specific metadata signalled through the METADATA element, the namespace is
177-
"timeline:metadata:carp".
173+
### SAP-type timeline track example
174+
This shows an example of 30-fps HEVC-encoded content, in which each 4s Group beings with
175+
SAP-type 2 IDR. After 2 seconds, there is a SAP-type 3 access point with Random Access Skipped
176+
Leading (RASL) pictures. A small buffer of frames (10 frames at 30 fps) is skipped/discarded
177+
(RASL pictures). The EPT is the presentation time of the first decodable and presentable
178+
frame after the discardable RASL pictures.
178179

179-
### Metadata signalling of SAP type
180-
When the key name of a key=value pair is "SAP_TYPE", the value indicates the SAP type
181-
the Object begins with. The namespace-prefixed key is "timeline:metadata:carp.SAP_TYPE".
182-
183-
The value 0 indicates that the Object does not start with an ISOBMFF stream access point.
184-
The value equal to 1, 2, or 3 indicates that the Object begins with a stream access point
185-
of SAP type 1, 2, or 3, respectively. When the Object is the first Object in the Group,
186-
the value MUST be equal to 1 or 2.
187-
188-
### Metadata signalling of earliest presentation time
189-
When the key name of a key=value pair is "EARLIEST_PTS", the value indicates the earliest
190-
media presentation timestamp rounded to the nearest millisecond of all media samples in
191-
the Object. The namespace-prefixed key is "timeline:metadata:carp.SAP_TYPE".
192-
193-
WWhen the SAP type the Object begins with is 2 or 3, the EARLIEST_PTS key SHOULD be
194-
present.
180+
~~~json
181+
[
182+
{
183+
"l": [0,0],
184+
"data": [2,0]
185+
},
186+
{
187+
"l": [0,60],
188+
"data": [3,2100]
189+
},
190+
{
191+
"l": [1,0],
192+
"data": [2,4000]
193+
},
194+
{
195+
"l": [1,60],
196+
"data": [3,6100]
197+
}
198+
]
199+
~~~
195200

196201

197202
# Catalog Examples

0 commit comments

Comments
 (0)