@@ -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
134135This 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
142143Location : T Required: Optional JSON Type: Number
143144
144145A 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}
149148Location : T Required: Optional JSON Type: Number
150149
151150A 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