ISO/IEC 23009-2:2020
(Main)Information technology — Dynamic adaptive streaming over HTTP (DASH) — Part 2: Conformance and reference software
Information technology — Dynamic adaptive streaming over HTTP (DASH) — Part 2: Conformance and reference software
This document specifies the conformance and reference software implementing the test vectors comprising media presentation descriptions, segments and combinations thereof in ISO/IEC 23009‑1, and the corresponding software modules.
Technologies de l'information — Diffusion en flux adaptatif dynamique sur HTTP (DASH) — Partie 2: Conformité et logiciel de référence
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 23009-2
Third edition
2020-09
Information technology — Dynamic
adaptive streaming over HTTP
(DASH) —
Part 2:
Conformance and reference software
Technologies de l'information — Diffusion en flux adaptatif
dynamique sur HTTP (DASH) —
Partie 2: Conformité et logiciel de référence
Reference number
©
ISO/IEC 2020
© ISO/IEC 2020
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting
on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address
below or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2020 – All rights reserved
Contents Page
Foreword .v
Introduction .vi
1 Scope . 1
2 Normative references . 1
3 Terms, definitions, symbols and abbreviated terms . 1
4 Media presentation conformance. 1
4.1 Overview . 1
4.2 Software tools . 2
5 MPD conformance . 2
5.1 General . 2
5.2 Static MPD conformance . 3
5.3 Dynamic MPD conformance . 4
5.3.1 General. 4
5.3.2 Background and requirements . 4
5.3.3 Dynamic conformance software design . 6
5.4 Conformance checks for spatial relationship description . 7
6 Segment conformance . 8
6.1 Overview . 8
6.2 Representation conformance . 9
6.2.1 ISO base media file format. 9
6.2.2 MPEG-2 transport stream .10
6.3 Adaptation set conformance .13
6.3.1 ISO base media file format.13
6.3.2 MPEG-2 transport stream .14
6.4 Dynamic media presentation conformance .16
7 Profile specific conformance .16
7.1 ISO base media file format on demand profile .16
7.2 ISO base media file format live profile .16
7.3 ISO base media file format main profile .16
7.4 MPEG-2 transport stream simple profile .17
8 Conforming test vectors .17
9 DASH access engine reference software .17
9.1 General .17
9.2 libdash overview .17
9.3 libdash-enabled example system .18
9.4 libdash availability .19
10 Conformance software for ISO/IEC 23009-4 .19
10.1 General .19
10.2 Design limitations and assumptions .19
10.3 Usage.19
11 Conformance for ISO/IEC 23009-5 server and network-assisted DASH (SAND) .20
11.1 Conformance rules .20
11.2 Software .23
11.2.1 Design and architecture .23
11.2.2 Usage .24
11.3 Test vectors .28
12 Conformance for ISO/IEC 23009-6 server push .28
12.1 Architecture .28
12.2 Status .29
© ISO/IEC 2020 – All rights reserved iii
12.3 Logistics .30
12.4 Usage.31
Annex A (normative) MPD conformance checking .32
Annex B (normative) Test vectors .74
Annex C (informative) Sample software .79
Annex D (informative) Dynamic media presentation emulator .82
Annex E (informative) Coverage of DASH features .83
Bibliography .87
iv © ISO/IEC 2020 – All rights reserved
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that
are members of ISO or IEC participate in the development of International Standards through
technical committees established by the respective organization to deal with particular fields of
technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other
international organizations, governmental and non-governmental, in liaison with ISO and IEC, also
take part in the work.
The procedures used to develop this document and those intended for its further maintenance are
described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed for
the different types of document should be noted. This document was drafted in accordance with the
editorial rules of the ISO/IEC Directives, Part 2 (see www .iso .org/ directives).
Attention is drawn to the possibility that some of the elements of this document may be the subject
of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent
rights. Details of any patent rights identified during the development of the document will be in the
Introduction and/or on the ISO list of patent declarations received (see www .iso .org/ patents).
Any trade name used in this document is information given for the convenience of users and does not
constitute an endorsement.
For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and
expressions related to conformity assessment, as well as information about ISO's adherence to the
World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT) see: www .iso
.org/ iso/ foreword .html.
This document was prepared by Joint Techncial Committee ISO/IEC JTC 1, Information technology, SC 29,
Coding of audio, picture, multimedia and hypermedia information.
This third edition cancels and replaces the second edition (ISO/IEC 23009-2:2017), which has been
technically revised.
The main changes compared to the previous edition are as follows:
a) Test vectors, conformance and reference software to cover all the features of ISO/IEC 23009-5,
including:
— SAND HTTP conformance client;
— SAND HTTP conformance server;
— SAND WebSocket conformance server.
b) Test vecors, conformance and reference software to cover all the features of ISO/IEC 23009-6,
including:
— Command line tool to validate of ABNF grammars.
A list of all parts in the ISO/IEC 23009 series can be found on the ISO website.
© ISO/IEC 2020 – All rights reserved v
Introduction
The conformance and reference software of the ISO/IEC 23009 series serves three main purposes:
— validation of the written specification of the Parts of the ISO/IEC 23009 series;
— clarification of the written specification of the Parts of the ISO/IEC 23009 series;
— conformance testing for checking interoperability for the various applications against the reference
software which aims to be compliant with the ISO/IEC 23009 series.
vi © ISO/IEC 2020 – All rights reserved
INTERNATIONAL STANDARD ISO/IEC 23009-2:2020(E)
Information technology — Dynamic adaptive streaming
over HTTP (DASH) —
Part 2:
Conformance and reference software
1 Scope
This document specifies the conformance and reference software implementing the test vectors
comprising media presentation descriptions, segments and combinations thereof in ISO/IEC 23009-1,
and the corresponding software modules.
2 Normative references
The following documents are referred to in the text in such a way that some or all of their content
constitutes requirements of this document. For dated references, only the edition cited applies. For
undated references, the latest edition of the referenced document (including any amendments) applies.
ISO/IEC 19757-3, Information technology — Document Schema Definition Languages (DSDL) — Part 3:
Rule-based validation — Schematron
ISO/IEC 23009-1:2019, Information technology — Dynamic adaptive streaming over HTTP (DASH) —
Part 1: Media presentation description and segment formats
ISO 8601-1, Date and time — Representations for information interchange — Part 1: Basic rules
ISO/IEC 23009-5:2017, Information technology — Dynamic adaptive streaming over HTTP (DASH) —
Part 5: Server and network assisted DASH (SAND)
IETF RFC 7233:2014, Hypertext Transfer Protocol (HTTP/1.1): Range Requests
3 Terms, definitions, symbols and abbreviated terms
For the purpose of this document, the terms, definitions, symbols and abbreviated terms given in
ISO/IEC 23009-1 apply.
ISO and IEC maintain terminological databases for use in standardization at the following addresses:
— IEC Electropedia: available at http:// www .electropedia .org/
— ISO Online browsing platform: available at http:// www .iso .org/ obp
4 Media presentation conformance
4.1 Overview
A media presentation conforming to ISO/IEC 23009-1 obeys the rules for the media presentation
description (MPD) and the segments referenced within the MPD. To verify the conformance of a media
presentation, the following steps need to be completed:
— the conformance of the MPD according to Clause 5.
© ISO/IEC 2020 – All rights reserved 1
— the conformance of the segments, which includes the conformance of individual segments and
representations, as well as the conformance of representations that are jointly provided in
adaptation sets and periods. For details, refer to Clause 6.
The process of MPD and segment conformance checking is shown in Figure 1.
Figure 1 — MPD and segment validation
MPD + segment validator: gets as an input the MPD and segments referenced from within the MPD
and performs the MPD and segment validation according to the rules defined in Annex A. On success,
the output is an OK report; otherwise, an error message is provided.
4.2 Software tools
The following software tools are included:
— MPD conformance software;
— ISO BMFF segment validator;
— MPEG-2 TS segment validator;
— Conformance software for dynamic services;
— Dynamic media presentation emulator in Annex D.
All software tools are available at https:// standards .iso .org/ iso -iec/ 23009/ -2/ ed -3/ en.
Additional supplemental software packages which may be used as sample DASH clients, sample
segmentor and web-based conformance service are listed in Annex C.
Coverage of DASH features is discussed in Annex E.
5 MPD conformance
5.1 General
This clause specifies the MPD conformance checking and corresponding software modules which
comprise the three steps depicted in Figure 2. Detailed means to perform MPD conformance checking
are as specified in Annex A.
2 © ISO/IEC 2020 – All rights reserved
Figure 2 — MPD conformance checking
[10]
Step 1 (XLink resolver): gets as an input an MPD document and resolves all W3C XLINK attributes
as defined in ISO/IEC 23009-1. If an error occurs, the corresponding error message shall be provided;
otherwise, the XLink resolved MPD document is provided. The details for this step of the MPD
conformance checking are defined in A.2.
Step 2 (XML validator): gets as an input an XLink-resolved MPD document and performs XML
[11]
validation (i.e. well-formed and valid) against the MPD schema defined in W3C XML and W3C XML
[12]
SCHEMA . If an error occurs, the corresponding error message shall be provided; otherwise, the
XLink-resolved and schema-validated MPD document is provided. The details for this step of the MPD
conformance checking are defined in A.3.
Step 3 (schematron validator): gets as an input an XLink-resolved and schema-validated MPD
document and performs schematron validation as defined in ISO/IEC 19757-3 according to the rules
defined in A.4.2. If an error occurs, the corresponding error message shall be provided; otherwise, the
XLink-resolved, schema-validated, and Schematron-validated MPD document is provided. The details
for this step of the MPD conformance checking are defined in A.4.
The following command may be used to validate an MPD document with the chain depicted in Figure 2.
TM1)[3]
This requires Apache Ant .
ant run –Dinput=ʺfiletovalidate.mpdʺ
The program outputs a message for each step. If an error occurs during one step, the following steps are
not executed.
All conformance tools are available at https:// standards .iso .org/ iso -iec/ 23009/ -2/ ed -3/ en.
5.2 Static MPD conformance
An MPD with MPD@type=ʺstaticʺ shall comply with the rules in 5.1.
In addition, the availability of all resources in the MPD during the MPD@availabilityStartTime and the
MPD@availabilityEndTime shall be checked. A function remoteFileExists($url) may be executed for
each segment that is documented in the MPD. This function shall return true for all Segments in the MPD
during the time interval defined by the MPD@availabilityStartTime and the MPD@availabilityEndTime.
The following snippet shows an example for the remoteFileExists function written in PHP.
1) Apache Ant is the trade name of a product supplied by The Apache Software Foundation. This information is
given for the convenience of users of this document and does not constitute an endorsement by ISO or IEC of the
product named.
© ISO/IEC 2020 – All rights reserved 3
function remoteFileExists($url) {
$curl = curl_init($url);
//don't fetch the actual page, you only want to check the
connection is ok curl_setopt($curl, CURLOPT_NOBODY, true);
//do request
$result = curl_exec($curl);
$ret = false;
//if request did not fail
if ($result !== false) {
//if request was ok, check response code
$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($statusCode == 200) {
$ret = true;
}
}
curl_close($curl);
return $ret;
}
5.3 Dynamic MPD conformance
5.3.1 General
To ensure that servers offering a dynamic DASH media presentation adhere to the timing requirements
and that clients are able to properly consume the dynamic presentation without observing unavailable
segments, the DASH conformance software is extended to include and address media presentations
with MPD@type=ʹdynamicʹ. In 5.3, the requirements which go beyond those for static DASH conformance
are listed and a functional description of the conformance software implementation is provided.
[1]
The document is aligned with the guidelines for live services as documented in ISO/IEC TR 23009-3 .
5.3.2 Background and requirements
5.3.2.1 MPD-specific checks
Clients make use of the information in an MPD. Based on an MPD that is fetched at a certain fetch time
FT the client can determine the following information:
a) At any time, WT where WT ≥ FT, a client can determine:
1) the latest available period on the server, denoted by its Period start time PS*;
2) the segment availability start time of any segment at position k within the Period, denoted as
SAST(k);
3) the position of the latest segment that is available on server in the Period, referred to as k*;
4) the URL of the latest segment that is available within this Period;
5) the time when to fetch a new MPD based on the current presentation time, or more specifically,
the greatest segment position k' within this Period that can be constructed by this MPD;
6) the media presentation time within the Representation that synchronizes closest to the live
edge, MPTL;
4 © ISO/IEC 2020 – All rights reserved
7) the media presentation time within the Representation that synchronizes to other clients, MPTS.
b) At any time, WT, all segments with availability start time at or before WT and availability end time
at or before WT are accessible.
c) An updated MPD is made available on time, taking into account the minimum update period (MUP)
of the MPD. Note that by not updating the MPD, the existing MPD is validated for another MUP time.
Detailed equations to derive segment availability times are provided in ISO/IEC 23009-1 and
[1]
ISO/IEC TR 23009-3 . When providing an MPD, the content author ensures that the segment availability
times can be derived.
5.3.2.2 MPD times
In order to use the same concepts with different timing and addressing schemes, the following values
are introduced according to ISO/IEC 23009-1:
— the position of the segment in the Period denoted as k with k=1,2,.;
— the MPD start time of the segment at position k, referred to as MST(k);
— the MPD duration of a segment at position k, referred to as MD(k).
Assuming that the wall-clock time at the client is denoted as WT, the client can derive the following
information.
5.3.2.3 General derivation
Using these times, the values from above can be derived as follows.
— The latest Period is the Period for which AST + PS + MD(1) ≤ WT where AST is the value of the MPD@
availabilityStartTime and PS is the PeriodStart as defined in ISO/IEC 23009-1.
— The segment availability start time is obtained as
SAST(k) = AST + PS + MST(k) + MD(k)
— Within this Period, the latest segment available on the server is the segment at the position k* which
results in the greatest value for SAST(k*) and at the same time is smaller than WT.
— The address of the latest segment can be derived using the position information k*. The exact value
depends on the addressing method.
— Within this Period, the greatest segment position k' that can be constructed by this MPD is the one
that results in the greatest value for SAST(k') and at the same time is smaller than FT + MUP.
The media presentation time in a Period is determined for each Representation as the presentation
time value of the media segments minus the value of the @presentationTimeOffset, if present, for each
Representation.
It is further assumed that a segment at position k has an assigned earliest media presentation time EPT(k).
5.3.2.4 Requirements
When receiving an MPD, the DASH client is guaranteed that:
— Each segment at position k in this Period is available prior to the sum of its earliest presentation
time and its duration; SAST(k) ≤ EPT(k) + MD(k).
— If each segment with segment number k is delivered starting at SAST(k) over a constant bitrate channel
with bitrate equal to the value of the @bandwidth attribute, then each sample with presentation time
PT shall be available at the client by the time given by PT + (AST + PS) + MBT + MD(k).
© ISO/IEC 2020 – All rights reserved 5
— Each segment in this Period shall be available at least until SAST(k) + TSB + MD(k).
— The MPD can be used to construct and request segments until media time FT + MUP. The greatest
segment position k' that can be constructed by this MPD shall be the one that results in the greatest
value for SAST(k') and at the same time is smaller than FT + MUP. Note that the latest segment may
be significantly shorter in duration than MD(k).
In addition, updates of the MPD shall be consistent according to ISO/IEC 23009-1:2019, 5.4.
5.3.3 Dynamic conformance software design
5.3.3.1 Overview
The implementation of the conformance software for dynamic services requires the implementation of
the requirements in 5.3.2.4. The process is split into two parts:
— the creation of a data set by recording/monitoring a dynamic service;
— the actual conformance checks implementing the checks of the requirements.
5.3.3.2 Data set creation
Two different cases are considered depending on the access bandwidth to the server.
In case 1, it is assumed that the conformance checker is operating with a very high (infinite) access
bandwidth and minimal delay. Then the initial part is as follows.
a) Download and store the MPD and record the fetch time, FT, of the MPD.
b) Determine the following information.
1) The smallest segment availability start time greater than FT of any Segment in any
Representation referred to as SAST .
min
2) The URLs of all segments available at SAST . If multiple segments are available at the same
min
time, determine all of them.
c) For all segments with segment availability, end time greater than FT and smaller than SAST ,
min
generate the URL, issue an HTTP HEAD request, and record the HTTP header.
d) At time SAST issue HTTP GET requests for all segments that become available at this time,
min
record the HTTP headers and store the segments.
e) Go to a) and download the next MPD at FT = SAST .
min
f) Continue the process until manually stopped or the media presentation is ended.
In case 2, if the bandwidth connection is restricted, apply the following.
a) Download and store the MPD and record the fetch time, FT, of the MPD.
b) Determine the following information.
1) The smallest segment availability start time greater than FT of any segment in any
Representation referred to as SAST .
min
2) The URLs of all segments available at SAST . If multiple segments are available at the same
min
time, determine all of them.
c) For all segments with segment availability end time greater than FT and smaller than SAST ,
min
generate the URL, issue an HTTP HEAD request, and record the HTTP headers.
6 © ISO/IEC 2020 – All rights reserved
d) For selected representations, issue an HTTP GET for segments that are available at this time.
e) At time SAST issue HTTP HEAD for all segments that become available at this time and record
min
the HTTP headers.
f) Go to a) and download the next MPD at FT = SAST .
min
g) Continue the process until manually stopped or the media presentation is ended.
This initial operation results in a data set as follows:
a) a sequence of MPDs, each with a FT;
b) a set of Segment URLs with associated:
1) SAST;
2) fetch time for segment availability start time request (typically SAST);
3) HTTP headers for segment availability start time request;
4) segment availability end time (SAET);
5) fetch time for segment availability end time request (typically just slightly before the SAET);
6) HTTP headers for segment availability end time request;
c) at least for a selected set of representations, the corresponding segments.
From the sequence of the MPDs, a single new MPD can be generated with MPD@type=static that includes
all segments.
5.3.3.3 Conformance checks
The conformance checks operate on the stored data set and include the following checks:
— the correctness of the sequence of MPDs as documented in ISO/IEC 23009-1:2019, 5.4.
— all MPD timing aspects and segment availability times as documented in ISO/IEC 23009-1:2019, 5.3.
— the static conformance checks using the single MPD according to 5.2.
5.4 Conformance checks for spatial relationship description
The conformance rules that relate to the spatial relationship description are provided in Table 1.
An MPD shall comply with the rules in Table 1 in accordance with ISO/IEC 23009-1.
Table 1 — Spatial relationship description conformance rules
Reference in Conformance
ISO/IEC 23009-1: Rule check
2019, Annex H implementation
H.1 When every Adaptation Set in an MPD has an SRD descriptor, R19.1
at least one such descriptor shall be a SupplementalProperty.
H.1 An EssentialProperty or SupplementalProperty descriptor R19.2
with @schemeIdUri equal to “urn: mpeg: dash: srd: 2014” shall
be the child element of an AdaptationSet or a
SubRepresentation element.
H.2 If an EssentialProperty or SupplementalProperty descriptor R19.3
with @schemeIdUri equal to “urn: mpeg: dash: srd: 2014” is
present, then the @value attribute shall be present.
© ISO/IEC 2020 – All rights reserved 7
Table 1 (continued)
Reference in Conformance
ISO/IEC 23009-1: Rule check
2019, Annex H implementation
H.2 If an EssentialProperty or SupplementalProperty descriptor R19.4
with @schemeIdUri equal to “urn: mpeg: dash: srd: 2014” is
present, then the @value attribute shallshall contain at least
the mandatory comma separated parameters, i.e. source_id,
x, y, w, h.
H.2 If an EssentialProperty or SupplementalProperty descriptor R19.5
with @schemeIdUri equal to “urn: mpeg: dash: srd: 2014” is pres-
ent, then each parameter value has to match the expected type
format, i.e. non-negative integer in decimal representation.
H.2 If an EssentialProperty or SupplementalProperty descriptor R19.6
with @schemeIdUri equal to “urn: mpeg: dash: srd: 2014” is
present and the @value attribute contains the optional param-
eter W then the optional parameter H shall be present too.
H.2 If an EssentialProperty or SupplementalProperty descriptor R19.6
with @schemeIdUri equal to “urn: mpeg: dash: srd: 2014” is
present and the @value attribute contains the optional param-
eter H then the optional parameter W shall be present too.
H.2 If an EssentialProperty or SupplementalProperty descriptor R19.6
with @schemeIdUri equal to “urn: mpeg: dash: srd: 2014” is
present and the @value attribute contains the optional param-
eter spatial_set_id then the optional parameters W and H
shall be present too.
H.2 For a given source_id of the @value attribute, at least one of R19.7
the EssentialProperty or SupplementalProperty in the con-
taining Period shall specify the optional parameters W and H.
H.2 For a given source_id of the @value attribute, if two SRD R19.8
elements (indistinctively EssentialProperty or Supplemental-
Property) explicitly specify a different pair of values for the
optional parameters (W,H) then all the remaining SRD element
shall explicitly specify a pair of values for (W,H) too.
H.2 For a given source_id of the @value attribute, the values of R19.9a and R19.9b
x, w and W shall be such that, for each descriptor, the sum of x
and w is smaller or equal to W.
H.2 For a given source_id of the @value attribute, the values of y, R19.10a and R19.10b
h and H shall be such that, for each descriptor, the sum of y and
h is smaller or equal to H.
6 Segment conformance
6.1 Overview
Segment conformance requirements verify that the segments offered in the MPD conform to
ISO/IEC 23009-1.
This includes the conformance requirements for:
— segments offered within one representation (for details, refer to 6.2);
— representations offered within one adaptation set (for details, refer to 6.3);
— segments offered in a dynamic media presentation (for details, refer to 6.4).
All conformance tools are available at https:// standards .iso .org/ iso -iec/ 23009/ -2/ ed -3/ en.
8 © ISO/IEC 2020 – All rights reserved
6.2 Representation conformance
6.2.1 ISO base media file format
The representation conformance rules, as well as the implementation status of the conformance rules
for ISO base media file format segments, are provided in Table 2.
Table 2 — Representation conformance rules for ISO base media file format
Clause in
Conformance check
ISO/IEC 23009-1: Rule
implementation
Media Segment formats shall comply with the respective
1 6.1 implemented
container formats (ISO BMFF and MPEG-2 TS).
The Initialization Segment shall not contain any media
2 6.2.1 implemented
data with an assigned presentation time
A Media Segment shall contain a number of complete
3 6.2.1 implemented
access units.
If it is the first Media Segment in the Representation, it
4 6.2.1 shall contain only media streams that start with a SAP of implemented
type 1 or 2.
A Media Segment shall contain sufficient information to
time-accurately present each contained media compo-
5 6.2.1 nent in the Representation without accessing any previ- implemented
ous Media Segment in this Representation provided that
the Media Segment contains a SAP for each media stream.
A Media Segment shall specify all Media Presentation
times relative to the start of the Period and compensated
with the value of the
6 6.2.3.2 implemented
@presentationTimeOffset. The presentation time in
Media Segments shall be accurate to ensure accurate
alignment of all Representations in one Period.
a) earliest_presentation_time shall be equal to the
sum of all temporally preceding subsegments in the
representation.
b) The duration of a subsegment indexed by an ‘sidx’
shall be equal to the sum of the durations of all the
subsegments it indices.
A media data box containing data referenced by a movie
fragment (‘moof’) box shall follow that movie fragment
7 6.3.2.1 implemented
box and precede the next movie fragment box, if any,
containing information about the same track.
For a Media Subsegment, the value of the reference_type
8 6.3.2.1 field in the describing Segment Index (‘sidx’) box shall be implemented
set to 0.
If the Segment Index is provided, the Segment Index
9 6.3.2.3 implemented
(‘sidx’) box in ISO/IEC 14496-12 shall be used.
If the Subsegment Index is provided, the Subsegment
10 6.3.2.4 implemented
Index (‘ssix’) box in ISO/IEC 14496-12 shall be used.
The Initialization Segment shall contain an “ftyp” box,
11 6.3.3 implemented
and a “moov” box.
12 6.3.3 It shall not contain any “moof” boxes. implemented
The tracks in the “moov” box shall contain no samples
13 6.3.3 (i.e. the entry_count in the “stts”, “stsc”, and “stco” boxes implemented
shall be set to 0).
© ISO/IEC 2020 – All rights reserved 9
Table 2 (continued)
Clause in
Conformance check
ISO/IEC 23009-1: Rule
implementation
The “mvex” box shall be contained in the “moov” box.
14 6.3.3 The “mvex” box also sets default values for the tracks and implemented
samples of the following movie fragments.
‘styp’ box, if present, shall carry ‘msdh’ as a
15 6.3.4.2 implemented
compatible brand.
Each Media Segment shall contain one or more whole
self-contained movie fragments. A whole,
self-contained movie fragment is a movie fragment
16 6.3.4.2 (‘moof’) box and a media data (‘mdat’) box that contains implemented
all the media samples that do not use external data
references referenced by the track runs in the movie
fragment box.
17 6.3.4.2 Each ‘moof’ box shall contain at least one track fragment. implemented
The ‘moof’ boxes shall use movie-fragment relative ad-
dressing for media data that does not use external data
18 6.3.4.2 references, the flag ‘default-base-is-moof’ shall be set, implemented
and data-offset shall be used, i.e.
base-data-offset-present shall not be used.
19 6.3.4.2 Each ‘traf’ box shall contain a ‘tfdt’ box. implemented
Each Media Segment may contain one or more ‘sidx’ boxes.
If ‘sidx’ is present in a Media Segment, the first ‘sidx’ box
20 6.3.4.2 implemented
shall be placed before any ‘moof’ box and the first Segment
Index box shall document the entire Segment.
In each self-contained movie fragment, the movie frag-
21 6.3.4.3 ment (‘moof’) box is immediately followed by its corre- implemented
sponding media data (‘mdat’).
22 6.3.4.3 Each Media Segment shall contain one or more ‘sidx’ boxes. implemented
The first ‘sidx’ box shall be placed before any ‘moof’ box
23 6.3.4.3 and shall document Subsegments that span the composi- implemented
tion time of the entire Segment.
Each Media Segment shall carry ‘msix’ as a
24 6.3.4.3 implemented
compatible brand.
The Subsegment Index box (‘ssix’) shall be present and
shall follow immediately after the ‘sidx’ box that docu-
25 6.3.4.4 implemented
ments the same Subsegment. This immediately preceding
‘sidx’ shall only index Media Subsegments.
It shall carry ‘sims’ in the Segment Type box (‘styp’) as a
26 6.3.4.4 implemented
compatible brand.
The Indexed Self-Initializing Media Segment shall carry
27 6.3.5.2 implemented
‘dash’ as a compatible brand.
If the Representation is continuously delivered at this
bitrate, starting at any SAP that is indicated either by @
startWithSAP or by any Segment Index box, a client can
be assured of having enough data for continuous playout
28 5.3.5.2 implemented
providing playout begins after
@minBufferTime * @bandwidth bits have been re-
ceived (i.e. at time @minBufferTime after the first bit is
received).
6.2.2 MPEG-2 transport stream
The representation conformance rules, as well as the implementation status of the conformance rules
for MPEG-2 transport stream-based segments, are provided in Table 3.
10 © ISO/IEC 2020 – All rights reserved
Table 3 — Representation conformance rules for MPEG-2 transport stream
Clause in
Conformance check
ISO/IEC 23009-1: Rule
implementation
Media Segment formats shall comply with the respec-
1 6.1 implemented
tive container formats (ISO BMFF and MPEG-2 TS).
The Initialization Segment shall not contain any media
2 6.2.2 implemented
data with an assigned presentation time
A Media Segment shall contain a number of complete
3 6.2.3.1 implemented
access units.
If it is the first Media Segment in the Representation, it implemented for AVC
4 6.2.3.1 shall contain only media streams that start with a SAP streams (not verifiable on
of type 1 or 2. container level)
A Media Segment shall contain sufficient information to
time-accurately present each contained media compo-
nent in the Representation without accessing any pre-
5 6.2.3.1 implemented
vious Media Segment in this Representation provided
that the Media Segment contains a SAP for each media
stream (not verifiable on container level).
A Media Segment shall specify all Media Presentation
times relative to the start of the Period and compensat-
ed with the value of the
@presentationTimeOffset. The presentation time in
Media Segments shall be accurate to ensure accurate
alignment of all Representations in one Period.
6 6.2.3.1 implemented
a) earliest_presentation_time shall be equal to the
sum of all temporally preceding subsegments in
the representation.
b) The duration of a subsegment indexed by an ‘sidx’
shall be equal to the sum of the durations of all the
subsegments it indices.
A subsegment shall contain complete access units for
7 6.4.2.1 the indexed media stream (i.e. stream for which implemented
reference_ID equals PID)
PES packet starting at I shall contain only an integral
SAU
8 6.4.2.2 implemented
number of access units and shall contain a PTS.
If the Segment Index is provided the Segment Index
9 6.4.2.3 (‘sidx’) box in ISO/IEC 14496-12 shall be used for Seg- implemented
ment Indexing.
reference_ID field of `sidx` box shall be the PID value of
10 6.4.2.3 implemented
the indexed stream.
All media offsets within `sidx` boxes shall be to the first
11 6.4.2.3 implemented
(sync) byte of a TS packet
If the Subsegment Index is provided, the Subsegment
12 6.4.2.4 Index (‘ssix’) box in ISO/IEC 14496-12 shall be used for implemented
indexing byte ranges within a subsegment
All media offsets within ‘ssix’ boxes shall be to the first
13 6.4.2.4 implemented
(sync) byte of a TS packet
An Initialization Segment shall be a valid MPEG-2 TS,
14 6.4.3.2 implemented
conforming to ISO/IEC 13818-1.
The concatenation of an Initialization Segment with
15 6.4.3.2 any Media Segment shall have the same presentation implemented
duration as the original Media Segment.
© ISO/IEC 2020 – All rights reserved 11
Table 3 (continued)
Clause in
Conformance check
ISO/IEC 23009-1: Rule
implementation
The Initialization Segment shall contain mandatory
untimed initialization information as defined in ISO/
IEC 23009-1:2019, 6.4.3.1 in this order:
implemented
a) PAT;
16 6.4.3.2
(w/o ECM)
b) PMT;
c) If MPEG-2 conditional access is used, ECM.
Media Segments shall contain complete MPEG-2 TS
17 6.4.4.2 implemented
packets
18 6.4.4.2 Media Segments shall contain exactly one program implemented
All time-varying initialization information shall be
19 6.4.4.2 present between I and I and/or in the Index Seg- implemented
SAP SAU
ment, if present.
No Media Segment shall depend on initialization infor-
...








Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.