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

Status
Published
Publication Date
06-Sep-2020
Current Stage
6060 - International Standard published
Start Date
07-Sep-2020
Due Date
23-Jan-2021
Completion Date
07-Sep-2020
Ref Project

Relations

Buy Standard

Standard
ISO/IEC 23009-2:2020 - Information technology -- Dynamic adaptive streaming over HTTP (DASH)
English language
87 pages
sale 15% off
Preview
sale 15% off
Preview
Draft
ISO/IEC FDIS 23009-2 - Information technology -- Dynamic adaptive streaming over HTTP (DASH)
English language
87 pages
sale 15% off
Preview
sale 15% off
Preview

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 23009-2:2020(E)
©
ISO/IEC 2020

---------------------- Page: 1 ----------------------
ISO/IEC 23009-2:2020(E)

COPYRIGHT PROTECTED DOCUMENT
© 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

---------------------- Page: 2 ----------------------
ISO/IEC 23009-2:2020(E)

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

---------------------- Page: 3 ----------------------
ISO/IEC 23009-2:2020(E)

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

---------------------- Page: 4 ----------------------
ISO/IEC 23009-2:2020(E)

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

---------------------- Page: 5 ----------------------
ISO/IEC 23009-2:2020(E)

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

---------------------- Page: 6 ----------------------
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

---------------------- Page: 7 ----------------------
ISO/IEC 23009-2:2020(E)

— 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

---------------------- Page: 8 ----------------------
ISO/IEC 23009-2:2020(E)

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

---------------------- Page: 9 ----------------------
ISO/IEC 23009-2:2020(E)

  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

---------------------- Page: 10 ----------------------
ISO/IEC 23009-2:2020(E)

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

---------------------- Page: 11 ----------------------
ISO/IEC 23009-2:2020(E)

— 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 S
...

FINAL
INTERNATIONAL ISO/IEC
DRAFT
STANDARD FDIS
23009-2
ISO/IEC JTC 1/SC 29
Information technology — Dynamic
Secretariat: JISC
adaptive streaming over HTTP
Voting begins on:
2020-06-11 (DASH) —
Voting terminates on:
Part 2:
2020-08-06
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
RECIPIENTS OF THIS DRAFT ARE INVITED TO
SUBMIT, WITH THEIR COMMENTS, NOTIFICATION
OF ANY RELEVANT PATENT RIGHTS OF WHICH
THEY ARE AWARE AND TO PROVIDE SUPPOR TING
DOCUMENTATION.
IN ADDITION TO THEIR EVALUATION AS
Reference number
BEING ACCEPTABLE FOR INDUSTRIAL, TECHNO-
ISO/IEC FDIS 23009-2:2020(E)
LOGICAL, COMMERCIAL AND USER PURPOSES,
DRAFT INTERNATIONAL STANDARDS MAY ON
OCCASION HAVE TO BE CONSIDERED IN THE
LIGHT OF THEIR POTENTIAL TO BECOME STAN-
DARDS TO WHICH REFERENCE MAY BE MADE IN
©
NATIONAL REGULATIONS. ISO/IEC 2020

---------------------- Page: 1 ----------------------
ISO/IEC FDIS 23009-2:2020(E)

COPYRIGHT PROTECTED DOCUMENT
© 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
Fax: +41 22 749 09 47
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2020 – All rights reserved

---------------------- Page: 2 ----------------------
ISO/IEC FDIS 23009-2:2020(E)

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

---------------------- Page: 3 ----------------------
ISO/IEC FDIS 23009-2:2020(E)

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

---------------------- Page: 4 ----------------------
ISO/IEC FDIS 23009-2:2020(E)

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

---------------------- Page: 5 ----------------------
ISO/IEC FDIS 23009-2:2020(E)

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

---------------------- Page: 6 ----------------------
FINAL DRAFT INTERNATIONAL STANDARD ISO/IEC FDIS 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

---------------------- Page: 7 ----------------------
ISO/IEC FDIS 23009-2:2020(E)

— 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

---------------------- Page: 8 ----------------------
ISO/IEC FDIS 23009-2:2020(E)

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

---------------------- Page: 9 ----------------------
ISO/IEC FDIS 23009-2:2020(E)

  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

---------------------- Page: 10 ----------------------
ISO/IEC FDIS 23009-2:2020(E)

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

---------------------- Page: 11 ----------------------
ISO/IEC FDIS 23009-2:2020(E)

— 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)
...

Questions, Comments and Discussion

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