Codebase list kodi-inputstream-adaptive / 33e6655
Update upstream source from tag 'upstream/2.6.14+ds1' Update to upstream version '2.6.14+ds1' with Debian dir eecb28ad3f11a7003d12850f570a469ae9951f27 Vasyl Gello 3 years ago
66 changed file(s) with 2135 addition(s) and 1267 deletion(s). Raw diff Collapse all Expand all
+0
-37
.travis.yml less more
0 language: cpp
1
2 #
3 # Define the build matrix
4 #
5 # Travis defaults to building on Ubuntu Precise when building on
6 # Linux. We need Trusty in order to get up to date versions of
7 # cmake and g++.
8 #
9 env:
10 global:
11 - app_id=inputstream.adaptive
12
13 matrix:
14 include:
15 - os: linux
16 dist: xenial
17 sudo: required
18 compiler: gcc
19 - os: linux
20 dist: xenial
21 sudo: required
22 compiler: clang
23 - os: osx
24 osx_image: xcode10.2
25
26 #
27 # The addon source is automatically checked out in $TRAVIS_BUILD_DIR,
28 # we'll put the Kodi source on the same level
29 #
30 before_script:
31 - cd $TRAVIS_BUILD_DIR/..
32 - git clone --branch master --depth=1 https://github.com/xbmc/xbmc.git -b master
33 - cd ${app_id} && mkdir build && cd build
34 - cmake -DADDONS_TO_BUILD=${app_id} -DADDON_SRC_PREFIX=$TRAVIS_BUILD_DIR/.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$TRAVIS_BUILD_DIR/../xbmc/addons -DPACKAGE_ZIP=1 $TRAVIS_BUILD_DIR/../xbmc/cmake/addons
35
36 script: make
0 cmake_minimum_required(VERSION 3.5)
0 cmake_minimum_required(VERSION 3.10)
11 project(inputstream.adaptive)
2 option(BUILD_TESTING "Build the testing tree." ON)
23
34 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR})
45
4041 src/log.h
4142 src/aes_decrypter.h
4243 src/ADTSReader.h
44 src/Iaes_decrypter.h
4345 src/md5.h
4446 src/WebmReader.h
4547 )
5153 endif()
5254
5355 include_directories(${INCLUDES}
54 ${KODI_INCLUDE_DIR}
56 ${KODI_INCLUDE_DIR}/.. # Hack way with "/..", need bigger Kodi cmake rework to match right include ways (becomes done in future)
5557 lib/libbento4/Core
5658 lib/webm_parser/include
5759 )
60
61 set(CMAKE_FIND_FRAMEWORK LAST)
5862
5963 include(FindEXPAT)
6064 find_package(EXPAT REQUIRED)
8286 set(ADP_ADDITIONAL_BINARY $<TARGET_FILE:ssd_wv>)
8387 endif()
8488
85 if(CORE_SYSTEM_NAME STREQUAL android)
86 set(DECRYPTERPATH "special://xbmcbinaddons")
87 else()
88 set(DECRYPTERPATH "special://home/cdm")
89 endif()
89 set(DECRYPTERPATH "special://home/cdm")
9090
9191 list(APPEND DEPLIBS bento4)
9292 list(APPEND DEPLIBS mpegts)
9696
9797 include(CPack)
9898
99 if(NOT CMAKE_CROSSCOMPILING)
100 #Tests
101 find_package( Threads )
102 add_executable(Test_DashTree
103 src/parser/DASHTreeTest.cpp
104 src/parser/DASHTree.cpp
105 src/parser/PRProtectionParser.cpp
106 src/common/AdaptiveTree.cpp
107 src/helpers.cpp
108 src/oscompat.cpp
109 )
110 target_link_libraries(Test_DashTree ${EXPAT_LIBRARIES} Threads::Threads)
111
99 if(NOT CMAKE_CROSSCOMPILING AND BUILD_TESTING)
100 list(APPEND CMAKE_CTEST_ARGUMENTS "--output-on-failure")
112101 enable_testing()
113
114 add_test(6play_live Test_DashTree "${CMAKE_SOURCE_DIR}/src/parser/testfiles/6play.mpd")
115 endif()
102 include(FindGtest)
103 find_package(Gtest REQUIRED)
104 include_directories(${GTEST_INCLUDE_DIRS})
105 add_subdirectory(src/test)
106 endif()
0 #.rst:
1 # FindGtest
2 # --------
3 # Finds the gtest library
4 #
5 # This will define the following variables::
6 #
7 # GTEST_FOUND - system has gtest
8 # GTEST_INCLUDE_DIRS - the gtest include directories
9 # GTEST_LIBRARIES - the gtest libraries
10 #
11 # and the following imported targets:
12 #
13 # Gtest::Gtest - The gtest library
14
15
16 if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_GTEST gtest>=1.10.0 QUIET)
18 set(GTEST_VERSION ${PC_GTEST_VERSION})
19 elseif(WIN32)
20 set(GTEST_VERSION 1.10.0)
21 endif()
22
23 find_path(GTEST_INCLUDE_DIR NAMES gtest/gtest.h
24 PATHS ${PC_GTEST_INCLUDEDIR})
25
26 find_library(GTEST_LIBRARY_RELEASE NAMES gtest
27 PATHS ${PC_GTEST_LIBDIR})
28 find_library(GTEST_LIBRARY_DEBUG NAMES gtestd
29 PATHS ${PC_GTEST_LIBDIR})
30
31 include(SelectLibraryConfigurations)
32 select_library_configurations(GTEST)
33
34 include(FindPackageHandleStandardArgs)
35 find_package_handle_standard_args(Gtest
36 REQUIRED_VARS GTEST_LIBRARY GTEST_INCLUDE_DIR
37 VERSION_VAR GTEST_VERSION)
38
39 if(GTEST_FOUND)
40 set(GTEST_LIBRARIES ${GTEST_LIBRARY})
41 set(GTEST_INCLUDE_DIRS ${GTEST_INCLUDE_DIR})
42 endif()
43
44 if(NOT TARGET Gtest::Gtest)
45 add_library(Gtest::Gtest UNKNOWN IMPORTED)
46 set_target_properties(Gtest::Gtest PROPERTIES
47 IMPORTED_LOCATION "${GTEST_LIBRARY}"
48 INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIR}")
49 endif()
50
51 mark_as_advanced(GTEST_INCLUDE_DIR GTEST_LIBRARY)
0 buildPlugin(version: "Matrix", deploy: ['osx-x86_64', 'windows-i686', 'windows-x86_64', 'ubuntu-ppa'])
0 buildPlugin(version: "Matrix")
0 # inputstream.adaptive (2.6.6)
0 # inputstream.adaptive (2.6.14)
11
22 This is an adaptive file addon for kodi's new InputStream Interface.
33
88
99 ##### Examples:
1010 1.) mpd dash example with one video and one audio stream
11 - Force inputstream.mpd using a property in strm file: #KODIPROP:inputstreamaddon=inputstream.adaptive
11 - Force inputstream.mpd using a property in strm file: #KODIPROP:inputstream=inputstream.adaptive
1212 - Select the tye of the manifest using a property in strm file: #KODIPROP:inputstream.adaptive.manifest_type=mpd
1313 - URL to paste into strm file: http://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-live/mp4-live-mpd-AV-BS.mpd
1414
1515 2.) mpd dash example with one video and multiple audio streams
16 - Force inputstream.mpd using a Property in strm file: #KODIPROP:inputstreamaddon=inputstream.mpd
16 - Force inputstream.mpd using a Property in strm file: #KODIPROP:inputstream=inputstream.mpd
1717 - Select the tye of the manifest using a property in strm file: #KODIPROP:inputstream.adaptive.manifest_type=mpd
1818 - URL to paste into strm file: http://rdmedia.bbc.co.uk/dash/ondemand/testcard/1/client_manifest-events-multilang.mpd
1919
3737 ##### TODO's:
3838 - Adaptive bitrate switching is prepared but currently not yet activated
3939 - Automatic / fixed video stream selection depending on max. visible display rect (some work has to be done at the inputstream interface).
40 - DASH implementation of periods (currently only the first period is considered)
4140 - There will be many dash mpd, smoothstream or hls manifest types currently not supported - must be extended.
4241
4342 ##### Notes:
00 <?xml version="1.0" encoding="UTF-8"?>
11 <addon
22 id="inputstream.adaptive"
3 version="2.6.7"
3 version="2.6.14"
44 name="InputStream Adaptive"
55 provider-name="peak3d">
66 <requires>@ADDON_DEPENDS@</requires>
1717 <description lang="en_GB">InputStream client for adaptive streams</description>
1818 <description lang="es_ES">Cliente InputStream para flujo de datos adaptativos</description>
1919 <platform>@PLATFORM@</platform>
20 <news>v2.6.7 (2021-02-10)
20 <news>
21 v2.6.14 (2021-04-22)
22 - Don't overwrite manifest headers with stream headers
23 - Stream headers default to manifest headers
24 - ac3 is recognised separately to eac3
25 - [DASH] time and number placeholders can be used simultaneously
26 - [DASH] manifest_update_parameter property defaults to 'full' for SegmentTimeline
27 - [DASH] pssh attribute in ContentProtection tag allowed without cenc namespace
28 - [DASH] support ttml subs where codec isn't specified
29
30 v2.6.13 (2021-04-10)
31 - Fix Debian packaging
32
33 v2.6.12 (2021-04-09)
34 - Remove Android specific decrypter search paths
35 - Move Android addon to binary addons repo
36
37 v2.6.11 (2021-04-08)
38 - Fix ampersand in changelog causing issues from v2.6.9 and v2.6.10
39
40 v2.6.10 (2021-04-08)
41 - Fix release build
42
43 v2.6.9 (2021-04-08)
44 - Fix MPD Timing (remove publishTime and presentationTimeOffset)
45 - [Dash] Correctly set timeshift_buffer (live)
46 - [Dash] Support fpsScale in AdaptationSets
47 - [Dash] Fix missing audio languages
48 - [DASH] Support ec-3 channel count (urn:mpeg:mpegB:cicp:ChannelConfiguration)
49
50 v2.6.8 (2021-03-26)
51 - [Dash] Append / to baseurl if required
52 - Fix Base Domain (fixes uri=/path/)
53
54 v2.6.7 (2021-02-10)
2155 - Fix build for ios/tvos
2256 - Use the full BaseUrl if it's a real url inside an AdaptationSet
2357
0 #pragma once
1
2 #include "Ap4Types.h"
3
4 #include <string>
5
6 class IAESDecrypter
7 {
8 public:
9 virtual ~IAESDecrypter() {};
10
11 virtual void decrypt(const AP4_UI08* aes_key,
12 const AP4_UI08* aes_iv,
13 const AP4_UI08* src,
14 AP4_UI08* dst,
15 size_t dataSize) = 0;
16 virtual std::string convertIV(const std::string& input) = 0;
17 virtual void ivFromSequence(uint8_t* buffer, uint64_t sid) = 0;
18 virtual const std::string& getLicenseKey() const = 0;
19 virtual bool RenewLicense(const std::string& pluginUrl) = 0;
20
21 private:
22 std::string m_licenseKey;
23 };
1717
1818 #pragma once
1919
20 #include "Iaes_decrypter.h"
21
2022 #include "Ap4Types.h"
2123
2224 #include <string>
2325
2426 #include <kodi/AddonBase.h>
2527
26 class ATTRIBUTE_HIDDEN AESDecrypter
28 class ATTRIBUTE_HIDDEN AESDecrypter : public IAESDecrypter
2729 {
2830 public:
29 AESDecrypter(const std::string &licenseKey) : m_licenseKey(licenseKey) {};
31 AESDecrypter(const std::string& licenseKey) : m_licenseKey(licenseKey){};
3032 virtual ~AESDecrypter() = default;
3133
32 void decrypt(const AP4_UI08 *aes_key, const AP4_UI08 *aes_iv, const AP4_UI08 *src, AP4_UI08 *dst, size_t dataSize);
33 std::string convertIV(const std::string &input);
34 void ivFromSequence(uint8_t *buffer, uint64_t sid);
35 const std::string &getLicenseKey() const { return m_licenseKey; };
36 bool RenewLicense(const std::string &pluginUrl);
34 void decrypt(const AP4_UI08* aes_key,
35 const AP4_UI08* aes_iv,
36 const AP4_UI08* src,
37 AP4_UI08* dst,
38 size_t dataSize);
39 std::string convertIV(const std::string& input);
40 void ivFromSequence(uint8_t* buffer, uint64_t sid);
41 const std::string& getLicenseKey() const { return m_licenseKey; };
42 bool RenewLicense(const std::string& pluginUrl);
43
3744 private:
3845 std::string m_licenseKey;
3946 };
261261 return true;
262262 }
263263
264 void AdaptiveStream::ReplacePlacehoder(std::string& url, uint64_t index, uint64_t timeStamp)
265 {
266 std::string::size_type lenReplace(7);
267 std::string::size_type np(url.find("$Number"));
268 uint64_t value(index); //StartNumber
264 void AdaptiveStream::ReplacePlaceholder(std::string& url, const std::string placeholder, uint64_t value)
265 {
266 std::string::size_type lenReplace(placeholder.length());
267 std::string::size_type np(url.find(placeholder));
269268 char rangebuf[128];
270269
271270 if (np == std::string::npos)
272 {
273 lenReplace = 5;
274 np = url.find("$Time");
275 value = timeStamp; //Timestamp
276 }
271 return;
272
277273 np += lenReplace;
278274
279275 std::string::size_type npe(url.find('$', np));
332328 else if (seg != &current_rep_->initialization_) //templated segment
333329 {
334330 download_url_ = current_rep_->segtpl_.media;
335 ReplacePlacehoder(download_url_, seg->range_end_, seg->range_begin_);
331 ReplacePlaceholder(download_url_, "$Number", seg->range_end_);
332 ReplacePlaceholder(download_url_, "$Time", seg->range_begin_);
336333 }
337334 else //templated initialization segment
338335 download_url_ = current_rep_->url_;
343340 seg != &current_rep_->initialization_)
344341 {
345342 download_url_ = current_rep_->segtpl_.media;
346 ReplacePlacehoder(download_url_, current_rep_->startNumber_, 0);
343 ReplacePlaceholder(download_url_, "$Number", current_rep_->startNumber_);
344 ReplacePlaceholder(download_url_, "$Time", 0);
347345 }
348346 else
349347 download_url_ = current_rep_->url_;
100100 bool download_segment();
101101 void worker();
102102 int SecondsSinceUpdate() const;
103 static void ReplacePlacehoder(std::string &url, uint64_t index, uint64_t timeStamp);
104
103 static void ReplacePlaceholder(std::string &url, const std::string placeholder, uint64_t value);
105104
106105 struct THREADDATA
107106 {
4646 , overallSeconds_(0)
4747 , stream_start_(0)
4848 , available_time_(0)
49 , publish_time_(0)
5049 , base_time_(0)
5150 , minPresentationOffset(0)
5251 , has_timeshift_buffer_(false)
330329 }
331330 base_url_.resize(paramPos + 1);
332331
333 paramPos = base_url_.find("://", 0, 8);
332 paramPos = base_url_.find("://");
334333 if (paramPos != std::string::npos)
335334 {
336335 base_domain_ = base_url_;
142142
143143 struct SegmentTemplate
144144 {
145 SegmentTemplate() : timescale(0), duration(0), presentationTimeOffset(0){};
145 SegmentTemplate() : timescale(0), duration(0) {};
146146 std::string initialization;
147147 std::string media;
148148 unsigned int timescale, duration;
149 uint64_t presentationTimeOffset;
150149 };
151150
152151 struct Representation
425424 uint32_t currentNode_;
426425 uint32_t segcount_;
427426 uint32_t initial_sequence_ = ~0UL;
428 uint64_t overallSeconds_, stream_start_, available_time_, publish_time_, base_time_;
427 uint64_t overallSeconds_, stream_start_, available_time_, base_time_;
429428 uint64_t minPresentationOffset;
430429 bool has_timeshift_buffer_, has_overall_seconds_;
431430
438437
439438 uint8_t adpChannelCount_, adp_pssh_set_;
440439 uint16_t adpwidth_, adpheight_;
441 uint32_t adpfpsRate_;
440 uint32_t adpfpsRate_, adpfpsScale_;
442441 float adpaspect_;
443442 ContainerType adpContainerType_;
444443 bool adp_timelined_, period_timelined_;
528528 headerMap[trimcp(b->substr(0, pos))] = url_decode(trimcp(b->substr(pos+1)));
529529 }
530530 }
531
532 int endswith(const char* in, const char* suffix)
533 {
534 int l1 = strlen(suffix);
535 int l2 = strlen(in);
536 if (l1 > l2)
537 return 0;
538
539 return strcmp(suffix, in + (l2 - l1)) == 0;
540 }
4646 char* KIDtoUUID(const uint8_t* kid, char* dst);
4747 bool create_ism_license(std::string key, std::string license_data, std::vector<uint8_t>& init_data);
4848 void parseheader(std::map<std::string, std::string>& headerMap, const std::string& headerString);
49 int endswith(const char* in, const char* suffix);
4950
5051 extern bool preReleaseFeatures;
5152
13031303 case AP4_OTI_DTS_MASTER_AUDIO:
13041304 case AP4_OTI_DTS_EXPRESS_AUDIO:
13051305 info.SetCodecName("dca");
1306 break;
13061307 case AP4_OTI_AC3_AUDIO:
1308 info.SetCodecName("ac3");
1309 break;
13071310 case AP4_OTI_EAC3_AUDIO:
13081311 info.SetCodecName("eac3");
13091312 break;
21362139 kodihost->SetLibraryPath(kodi::vfs::TranslateSpecialProtocol(specialpath).c_str());
21372140
21382141 std::vector<std::string> searchPaths(2);
2139 #ifdef ANDROID
2140 searchPaths[0] = getenv("KODI_ANDROID_LIBS")
2141 ? getenv("KODI_ANDROID_LIBS")
2142 : kodi::vfs::TranslateSpecialProtocol("special://xbmcbinaddons/");
2143 #else
21442142 searchPaths[0] =
21452143 kodi::vfs::TranslateSpecialProtocol("special://xbmcbinaddons/inputstream.adaptive/");
2146 #endif
21472144 searchPaths[1] = kodi::GetAddonInfo("path");
21482145
21492146 std::vector<kodi::vfs::CDirEntry> items;
26882685 stream.info_.SetCodecName("aac");
26892686 else if (rep->codecs_.find("dts") == 0)
26902687 stream.info_.SetCodecName("dca");
2691 else if (rep->codecs_.find("ec-3") == 0 || rep->codecs_.find("ac-3") == 0)
2688 else if (rep->codecs_.find("ac-3") == 0)
2689 stream.info_.SetCodecName("ac3");
2690 else if (rep->codecs_.find("ec-3") == 0)
26922691 stream.info_.SetCodecName("eac3");
26932692 else if (rep->codecs_.find("avc") == 0 || rep->codecs_.find("h264") == 0)
26942693 stream.info_.SetCodecName("h264");
33583357 prop.second.c_str());
33593358 parseheader(manh, prop.second);
33603359 medh = manh;
3361 mpd_url = mpd_url.substr(0, mpd_url.find("|"));
33623360 }
33633361 else if (prop.first == "inputstream.adaptive.original_audio_language")
33643362 {
33993397 parseheader(manh, mpd_url.substr(posHeader + 1));
34003398 mpd_url = mpd_url.substr(0, posHeader);
34013399 }
3400
3401 if (medh.empty())
3402 medh = manh;
34023403
34033404 kodihost->SetProfilePath(props.GetProfileFolder());
34043405
5353
5454 static const char* CONTENTPROTECTION_TAG = "ContentProtection";
5555
56 static const char* ltranslate(const char* in)
57 {
58 if (strlen(in) == 2 || strlen(in) == 3 || (strlen(in) > 3 && in[2] == '-'))
59 return in;
60 return "unk";
61 }
62
6356 DASHTree::DASHTree()
6457 {
6558 }
7871 }
7972 if (schemeIdUri && value)
8073 {
81 if (strcmp(schemeIdUri, "urn:mpeg:dash:23003:3:audio_channel_configuration:2011") == 0)
74 if (strcmp(schemeIdUri, "urn:mpeg:dash:23003:3:audio_channel_configuration:2011") == 0 ||
75 strcmp(schemeIdUri, "urn:mpeg:mpegB:cicp:ChannelConfiguration") == 0)
8276 return atoi(value);
8377 else if (strcmp(schemeIdUri, "urn:dolby:dash:audio_channel_configuration:2011") == 0 ||
8478 strcmp(schemeIdUri, "tag:dolby.com,2014:dash:audio_channel_configuration:2011") == 0)
106100 tpl.duration = atoi((const char*)*(attr + 1));
107101 else if (strcmp((const char*)*attr, "media") == 0)
108102 tpl.media = (const char*)*(attr + 1);
109 else if (strcmp((const char*)*attr, "presentationTimeOffset") == 0)
110 tpl.presentationTimeOffset = atoll((const char*)*(attr + 1));
111103 else if (strcmp((const char*)*attr, "startNumber") == 0)
112104 startNumber = atoi((const char*)*(attr + 1));
113105 else if (strcmp((const char*)*attr, "initialization") == 0)
122114 {
123115 if (!tpl.media.empty() && tpl.media[0] == '/')
124116 tpl.media = baseDomain + tpl.media;
117 else if (!baseURL.empty() && baseURL.back() != '/')
118 tpl.media = baseURL + '/' + tpl.media;
125119 else
126120 tpl.media = baseURL + tpl.media;
127121 }
131125 {
132126 if (!tpl.initialization.empty() && tpl.initialization[0] == '/')
133127 tpl.initialization = baseDomain + tpl.initialization;
128 else if (!baseURL.empty() && baseURL.back() != '/')
129 tpl.initialization = baseURL + '/' + tpl.initialization;
134130 else
135131 tpl.initialization = baseURL + tpl.initialization;
136132 }
207203 else
208204 urnFound = stricmp(dash->supportedKeySystem_.c_str(), (const char*)*(attr + 1)) == 0;
209205 }
210 else if (strcmp((const char*)*attr, "cenc:default_KID") == 0)
206 else if (endswith((const char*)*attr, "default_KID"))
211207 defaultKID = (const char*)*(attr + 1);
212208 attr += 2;
213209 }
402398 }
403399 else if (dash->currentNode_ & MPDNODE_CONTENTPROTECTION)
404400 {
405 if (strcmp(el, "cenc:pssh") == 0)
401 if (endswith(el, "pssh"))
406402 dash->currentNode_ |= MPDNODE_PSSH;
407403 else if (strcmp(el, "widevine:license") == 0)
408404 {
558554 {
559555 dash->currentNode_ |= MPDNODE_SEGMENTTIMELINE;
560556 dash->adp_timelined_ = true;
557
558 if (dash->update_parameter_.empty() && dash->has_timeshift_buffer_)
559 dash->update_parameter_ = "full";
561560 }
562561 }
563562 else if (dash->currentNode_ & MPDNODE_SEGMENTDURATIONS)
568567 }
569568 else if (dash->currentNode_ & MPDNODE_CONTENTPROTECTION)
570569 {
571 if (strcmp(el, "cenc:pssh") == 0)
570 if (endswith(el, "pssh"))
572571 dash->currentNode_ |= MPDNODE_PSSH;
573572 else if (strcmp(el, "widevine:license") == 0)
574573 {
662661 dash->current_representation_->width_ = dash->adpwidth_;
663662 dash->current_representation_->height_ = dash->adpheight_;
664663 dash->current_representation_->fpsRate_ = dash->adpfpsRate_;
664 dash->current_representation_->fpsScale_ = dash->adpfpsScale_;
665665 dash->current_representation_->aspect_ = dash->adpaspect_;
666666 dash->current_representation_->containerType_ = dash->adpContainerType_;
667667
684684 dash->current_representation_->samplingRate_ =
685685 static_cast<uint32_t>(atoi((const char*)*(attr + 1)));
686686 else if (strcmp((const char*)*attr, "frameRate") == 0)
687 {
688 dash->current_representation_->fpsScale_ = 1;
687689 sscanf((const char*)*(attr + 1), "%" SCNu32 "/%" SCNu32,
688690 &dash->current_representation_->fpsRate_,
689691 &dash->current_representation_->fpsScale_);
692 }
690693 else if (strcmp((const char*)*attr, "id") == 0)
691694 dash->current_representation_->id = (const char*)*(attr + 1);
692695 else if (strcmp((const char*)*attr, "codecPrivateData") == 0)
706709 else if (strncmp(dash->current_adaptationset_->mimeType_.c_str(), "audio", 5) == 0)
707710 dash->current_adaptationset_->type_ = DASHTree::AUDIO;
708711 else if (strncmp(dash->current_adaptationset_->mimeType_.c_str(), "application",
709 11) == 0)
712 11) == 0 ||
713 strncmp(dash->current_adaptationset_->mimeType_.c_str(), "text", 4) == 0)
710714 dash->current_adaptationset_->type_ = DASHTree::SUBTITLE;
711715 }
712716 if (strstr(dash->current_adaptationset_->mimeType_.c_str(), "/webm"))
718722 attr += 2;
719723 }
720724
725 if (dash->current_representation_->codecs_.empty())
726 {
727 if (dash->current_adaptationset_->mimeType_ == "text/vtt")
728 dash->current_representation_->codecs_ = "wvtt";
729 else if (dash->current_adaptationset_->mimeType_ == "application/ttml+xml")
730 dash->current_representation_->codecs_ = "ttml";
731 }
732
733 if (dash->current_adaptationset_->type_ != DASHTree::SUBTITLE)
734 {
735 if (dash->current_representation_->codecs_ == "wvtt")
736 {
737 dash->current_adaptationset_->type_ = DASHTree::SUBTITLE;
738 dash->current_adaptationset_->mimeType_ = "text/vtt";
739 }
740 else if (dash->current_representation_->codecs_ == "ttml")
741 {
742 dash->current_adaptationset_->type_ = DASHTree::SUBTITLE;
743 dash->current_adaptationset_->mimeType_ = "application/ttml+xml";
744 }
745 }
746
721747 if (dash->current_adaptationset_->type_ == DASHTree::SUBTITLE &&
722748 (dash->current_adaptationset_->mimeType_ == "application/ttml+xml" ||
723749 dash->current_adaptationset_->mimeType_ == "text/vtt"))
727753 else
728754 dash->current_representation_->containerType_ = AdaptiveTree::CONTAINERTYPE_TEXT;
729755 }
730
731 if (dash->current_adaptationset_->type_ != DASHTree::SUBTITLE &&
732 dash->current_representation_->codecs_ == "wvtt")
733 dash->current_adaptationset_->type_ = DASHTree::SUBTITLE;
734
735 if (dash->current_adaptationset_->mimeType_ == "text/vtt" &&
736 dash->current_representation_->codecs_.empty())
737 dash->current_representation_->codecs_ = "wvtt";
738756
739757 dash->current_representation_->segtpl_ = dash->current_adaptationset_->segtpl_;
740758 if (!dash->current_adaptationset_->segtpl_.media.empty())
853871 dash->adpwidth_ = 0;
854872 dash->adpheight_ = 0;
855873 dash->adpfpsRate_ = 0;
874 dash->adpfpsScale_ = 1;
856875 dash->adpaspect_ = 0.0f;
857876 dash->adp_pssh_set_ = 0;
858877 dash->adpContainerType_ = AdaptiveTree::CONTAINERTYPE_MP4;
881900 else if (strcmp((const char*)*attr, "group") == 0)
882901 dash->current_adaptationset_->group_ = (const char*)*(attr + 1);
883902 else if (strcmp((const char*)*attr, "lang") == 0)
884 dash->current_adaptationset_->language_ = ltranslate((const char*)*(attr + 1));
903 dash->current_adaptationset_->language_ = (const char*)*(attr + 1);
885904 else if (strcmp((const char*)*attr, "mimeType") == 0)
886905 dash->current_adaptationset_->mimeType_ = (const char*)*(attr + 1);
887906 else if (strcmp((const char*)*attr, "name") == 0)
893912 else if (strcmp((const char*)*attr, "height") == 0)
894913 dash->adpheight_ = static_cast<uint16_t>(atoi((const char*)*(attr + 1)));
895914 else if (strcmp((const char*)*attr, "frameRate") == 0)
896 dash->adpfpsRate_ = static_cast<uint32_t>(atoi((const char*)*(attr + 1)));
915 sscanf((const char*)*(attr + 1), "%" SCNu32 "/%" SCNu32,
916 &dash->adpfpsRate_,
917 &dash->adpfpsScale_);
897918 else if (strcmp((const char*)*attr, "par") == 0)
898919 {
899920 int w, h;
10011022 else if (strcmp(el, "MPD") == 0)
10021023 {
10031024 const char *mpt(0), *tsbd(0);
1004 bool bStatic(false);
10051025
10061026 dash->firstStartNumber_ = 0;
10071027
10081028 dash->overallSeconds_ = 0;
1009 dash->stream_start_ = time(0);
1029 dash->stream_start_ = dash->GetNowTime();
10101030 dash->mpd_url_ = dash->base_url_;
10111031
10121032 for (; *attr;)
10141034 if (strcmp((const char*)*attr, "mediaPresentationDuration") == 0)
10151035 {
10161036 mpt = (const char*)*(attr + 1);
1017 bStatic = true;
10181037 }
1019 else if (strcmp((const char*)*attr, "type") == 0)
1038 else if (strcmp((const char*)*attr, "type") == 0 &&
1039 strcmp((const char*)*(attr + 1), "dynamic") == 0)
10201040 {
1021 bStatic = strcmp((const char*)*(attr + 1), "static") == 0;
1041 dash->has_timeshift_buffer_ = true;
10221042 }
10231043 else if (strcmp((const char*)*attr, "timeShiftBufferDepth") == 0)
10241044 {
10271047 }
10281048 else if (strcmp((const char*)*attr, "availabilityStartTime") == 0)
10291049 dash->available_time_ = getTime((const char*)*(attr + 1));
1030 else if (strcmp((const char*)*attr, "publishTime") == 0)
1031 dash->publish_time_ = getTime((const char*)*(attr + 1));
1032 else if (strcmp((const char*)*attr, "testTime") == 0)
1033 dash->stream_start_ = getTime((const char*)*(attr + 1));
10341050 else if (strcmp((const char*)*attr, "minimumUpdatePeriod") == 0)
10351051 {
10361052 uint64_t dur(0);
10421058
10431059 if (!mpt)
10441060 mpt = tsbd;
1045 dash->has_timeshift_buffer_ = !bStatic;
10461061
10471062 AddDuration(mpt, dash->overallSeconds_, 1);
10481063 dash->has_overall_seconds_ = dash->overallSeconds_ > 0;
10491064
10501065 uint64_t overallsecs(dash->overallSeconds_ ? dash->overallSeconds_ + 60 : 86400);
1051 if (!dash->base_time_ && dash->publish_time_ && dash->available_time_ &&
1052 dash->publish_time_ - dash->available_time_ > overallsecs)
1053 dash->base_time_ = dash->publish_time_ - dash->available_time_ - overallsecs;
10541066 dash->minPresentationOffset = ~0ULL;
10551067
10561068 dash->currentNode_ |= MPDNODE_MPD;
11481160 {
11491161 if (dash->currentNode_ & MPDNODE_PSSH)
11501162 {
1151 if (strcmp(el, "cenc:pssh") == 0)
1163 if (endswith(el, "pssh"))
11521164 {
11531165 dash->current_pssh_ = dash->strXMLText_;
11541166 dash->currentNode_ &= ~MPDNODE_PSSH;
12391251 if (!timeBased && dash->has_timeshift_buffer_ &&
12401252 tpl.duration)
12411253 {
1242 // get the closest time to calculate start_number
1243 uint64_t calc_time =
1244 dash->publish_time_ ? dash->publish_time_ : dash->stream_start_;
1245 uint64_t sample_time = tpl.presentationTimeOffset
1246 ? tpl.presentationTimeOffset / tpl.timescale
1247 : dash->current_period_->start_ / 1000;
1248
1249 seg.range_end_ += (static_cast<int64_t>(calc_time - dash->available_time_ -
1254 uint64_t sample_time = dash->current_period_->start_ / 1000;
1255
1256 seg.range_end_ += (static_cast<int64_t>(dash->stream_start_ - dash->available_time_ -
12501257 overallSeconds - sample_time)) *
12511258 tpl.timescale / tpl.duration +
12521259 1;
13471354 {
13481355 if (dash->currentNode_ & MPDNODE_PSSH)
13491356 {
1350 if (strcmp(el, "cenc:pssh") == 0)
1357 if (endswith(el, "pssh"))
13511358 {
13521359 dash->current_pssh_ = dash->strXMLText_;
13531360 dash->currentNode_ &= ~MPDNODE_PSSH;
3535 Representation* rep,
3636 StreamType type) override;
3737
38 virtual uint64_t GetNowTime() { return time(0); };
3839 void SetUpdateInterval(uint32_t interval) { updateInterval_ = interval; };
3940 uint64_t pts_helper_, timeline_time_;
4041 uint32_t firstStartNumber_;
+0
-209
src/parser/DASHTreeTest.cpp less more
0 /*
1 * Copyright (C) 2020 peak3d
2 * http://www.peak3d.de
3 *
4 * This Program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2, or (at your option)
7 * any later version.
8 *
9 * This Program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * <http://www.gnu.org/licenses/>.
15 *
16 */
17
18 #include "DASHTree.h"
19 #include "../log.h"
20 #include <fstream>
21 #include <iomanip>
22 #include <sstream>
23
24 std::string testfile;
25
26 void Log(const LogLevel loglevel, const char* format, ...)
27 {
28 }
29
30 void print_hex_string(std::ostream& os, std::string const str)
31 {
32 std::ios_base::fmtflags f( os.flags() );
33
34 os << "{";
35
36 for (auto f : str)
37 {
38 os << " 0x" << std::hex << std::setw(2)
39 << std::setfill('0') << static_cast<unsigned short>(f & 0x00FF);
40 }
41
42 os << " }";
43
44 os.flags( f );
45 }
46
47 bool adaptive::AdaptiveTree::download(const char* url,
48 const std::map<std::string, std::string>& manifestHeaders,
49 void* opaque,
50 bool scanEffectiveURL)
51 {
52 FILE* f = fopen(testfile.c_str(), "rb");
53 if (!f)
54 return false;
55
56 // read the file
57 static const unsigned int CHUNKSIZE = 16384;
58 char buf[CHUNKSIZE];
59 size_t nbRead;
60
61 while ((nbRead = fread(buf, 1, CHUNKSIZE, f)) > 0 && ~nbRead && write_data(buf, nbRead, opaque))
62 ;
63
64 fclose(f);
65
66 SortTree();
67
68 return nbRead == 0;
69 }
70
71 int main(int argc, char** argv)
72 {
73 if (argc < 2)
74 {
75 printf("Usage: <filename>)");
76 exit(1);
77 }
78
79 adaptive::DASHTree tree;
80 //only widevine supported for this test
81 tree.supportedKeySystem_ = "urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED";
82
83 testfile = argv[1];
84 if (!tree.open("", ""))
85 {
86 printf("open() failed %s", argv[1]);
87 exit(1);
88 }
89
90 //Write the raw structure of the tree
91 std::stringstream sstreamCur;
92 sstreamCur << "Root: available_time_: " << tree.available_time_
93 << ", base_time_: " << tree.base_time_ << ", firstStartNumber_: " << tree.firstStartNumber_
94 << ", has_overall_seconds_: " << tree.has_overall_seconds_
95 << ", has_timeshift_buffer_:" << tree.has_timeshift_buffer_
96 << ", publish_time_: " << tree.publish_time_ << ", stream_start_: " << tree.stream_start_
97 << ", #periods: " << tree.periods_.size() << "\n";
98
99 for (const adaptive::AdaptiveTree::Period* period : tree.periods_)
100 {
101 sstreamCur << "Period: base_url_: " << period->base_url_ << ", duration_ : " << period->duration_
102 << ", encryptionState_: " << period->encryptionState_ << ", id_: " << period->id_
103 << ", included_types_: " << period->included_types_
104 << ", need_secure_decoder_:" << period->need_secure_decoder_
105 << ", start_: " << period->start_ << ", startNumber_: " << period->startNumber_
106 << ", startPTS_: " << period->startPTS_ << ", #psshsets: " << period->psshSets_.size()
107 << ", #adaptationSets: " << period->adaptationSets_.size() << "\n";
108 for (const adaptive::AdaptiveTree::Period::PSSH pssh : period->psshSets_)
109 {
110 sstreamCur << "\tPSSH: defaultKID_: ";
111
112 print_hex_string(sstreamCur, pssh.defaultKID_);
113
114 sstreamCur << ", iv: ";
115
116 print_hex_string(sstreamCur, pssh.iv);
117
118 sstreamCur << ", media_: " << pssh.media_ << ", pssh_: " << pssh.pssh_ << "\n";
119 }
120 for (const adaptive::AdaptiveTree::AdaptationSet* adp : period->adaptationSets_)
121 {
122 sstreamCur << "\tADP: audio_track_id_: " << adp->audio_track_id_
123 << ", base_url_: " << adp->base_url_ << ", codecs_: " << adp->codecs_
124 << ", default_: " << adp->default_ << ", duration_: " << adp->duration_
125 << ", forced_: " << adp->forced_ << ", group_: " << adp->group_
126 << ", id_: " << adp->id_ << ", impaired_: " << adp->impaired_
127 << ", language_: " << adp->language_ << ", mimeType_: " << adp->mimeType_
128 << ", name_: " << adp->name_ << ", original_: " << adp->original_
129 << ", startNumber_: " << adp->startNumber_ << ", startPTS_: " << adp->startPTS_
130 << ", type_: " << adp->type_
131 << ", #segment_durations_: " << adp->segment_durations_.size()
132 << ", #representations_: " << adp->representations_.size() << "\n";
133 sstreamCur << "\t\tSegTpl: duration: " << adp->segtpl_.duration
134 << ", initialization: " << adp->segtpl_.initialization
135 << ", media: " << adp->segtpl_.media
136 << ", presentationTimeOffset: " << adp->segtpl_.presentationTimeOffset
137 << ", timescale:" << adp->segtpl_.timescale << "\n";
138 sstreamCur << "\t\t\tSegment durations:";
139 for (const uint32_t dur : adp->segment_durations_.data)
140 sstreamCur << ", " << dur;
141 sstreamCur << "\n";
142
143 for (const adaptive::AdaptiveTree::Representation* rep : adp->representations_)
144 {
145 sstreamCur << "\t\t\tRep: aspect_: " << rep->aspect_ << ", bandwidth_ : " << rep->bandwidth_
146 << ", channelCount_ : " << static_cast<unsigned int>(rep->channelCount_) << ", codecs_ : " << rep->codecs_
147 << ", codec_private_data_ : " << rep->codec_private_data_
148 << ", containerType_ : " << static_cast<unsigned int>(rep->containerType_) << ", duration_ : " << rep->duration_
149 << ", flags_ : " << rep->flags_ << ", fpsRate_ : " << rep->fpsRate_
150 << ", fpsScale_ : " << rep->fpsScale_ << ", hdcpVersion_ : " << rep->hdcpVersion_
151 << ", height_ : " << rep->height_ << ", id : " << rep->id
152 << ", indexRangeMax_ : " << rep->indexRangeMax_ << ", indexRangeMin_ : " << rep->indexRangeMin_
153 << ", nalLengthSize_ : " << static_cast<unsigned int>(rep->nalLengthSize_) << ", pssh_set_ : " << rep->pssh_set_
154 << ", ptsOffset_ : " << rep->ptsOffset_ << ", samplingRate_ : " << rep->samplingRate_
155 << ", source_url_ : " << rep->source_url_ << ", startNumber_ : " << rep->startNumber_
156 << ", timescale_ : " << rep->timescale_ << ", timescale_ext_ : " << rep->timescale_ext_
157 << ", timescale_int_ : " << rep->timescale_int_ << ", url_ : " << rep->url_
158 << ", width_ : " << rep->width_ << "\n";
159 sstreamCur << "\t\t\t\tSegTpl: duration: " << rep->segtpl_.duration
160 << ", initialization: " << rep->segtpl_.initialization
161 << ", media: " << rep->segtpl_.media
162 << ", presentationTimeOffset: " << rep->segtpl_.presentationTimeOffset
163 << ", timescale:" << rep->segtpl_.timescale << "\n";
164 sstreamCur << "\t\t\t\tInit: pssh_set_: " << rep->initialization_.pssh_set_
165 << std::hex << ", range_begin_: 0x" << rep->initialization_.range_begin_
166 << ", range_end_: 0x" << rep->initialization_.range_end_
167 << std::dec << ", startPTS_: " << rep->initialization_.startPTS_
168 << ", url:" << (rep->initialization_.url ? rep->initialization_.url : "NULL")
169 << "\n";
170 for (const adaptive::AdaptiveTree::Segment &seg : rep->segments_.data)
171 {
172 sstreamCur << "\t\t\t\tSeg: pssh_set_: " << seg.pssh_set_ << std::hex
173 << ", range_begin_: 0x" << seg.range_begin_ << ", range_end_: 0x"
174 << seg.range_end_ << std::dec << ", startPTS_: " << seg.startPTS_
175 << ", url:" << (seg.url ? seg.url : "NULL") << "\n";
176 }
177 }
178 }
179 }
180
181 // Write current test results to _generated
182 std::string fn_current = argv[1];
183 fn_current += "_current";
184
185 FILE* f_current = fopen(fn_current.c_str(), "wb");
186 if (!f_current)
187 {
188 printf("cannot create %s", fn_current.c_str());
189 exit(1);
190 }
191 fwrite(sstreamCur.str().c_str(), 1, sstreamCur.str().size(), f_current);
192 fclose(f_current);
193
194 // Read the file _target which contains the valid results
195 std::string fn_target = argv[1];
196 fn_target += "_target";
197 std::stringstream sstreamTgt;
198
199 std::ifstream streamTarget(fn_target, std::ios::in | std::ios::binary);
200 if (!streamTarget.is_open())
201 {
202 printf("cannot read %s", fn_target.c_str());
203 exit(1);
204 }
205 sstreamTgt << streamTarget.rdbuf();
206
207 return sstreamTgt.str() == sstreamCur.str() ? 0 : -1;
208 }
1717
1818 #include "HLSTree.h"
1919
20 #include "../aes_decrypter.h"
20 #include "../Iaes_decrypter.h"
2121 #include "../helpers.h"
2222 #include "../log.h"
2323
2424
2525 #include <kodi/AddonBase.h>
2626
27 class AESDecrypter;
27 class IAESDecrypter;
2828
2929 namespace adaptive
3030 {
4040 ENCRYPTIONTYPE_WIDEVINE = 3,
4141 ENCRYPTIONTYPE_UNKNOWN = 4,
4242 };
43 HLSTree(AESDecrypter* decrypter) : AdaptiveTree(), m_decrypter(decrypter){};
43 HLSTree(IAESDecrypter* decrypter) : AdaptiveTree(), m_decrypter(decrypter){};
4444 virtual ~HLSTree();
4545
4646 virtual bool open(const std::string& url, const std::string& manifestUpdateParam) override;
8888 std::map<std::string, EXTGROUP> m_extGroups;
8989 bool m_refreshPlayList = true;
9090 uint8_t m_segmentIntervalSec = 4;
91 AESDecrypter *m_decrypter;
91 IAESDecrypter *m_decrypter;
9292 std::stringstream manifest_stream;
9393 bool m_hasDiscontSeq = false;
9494 uint32_t m_discontSeq = 0;
+0
-111
src/parser/testfiles/6play.mpd less more
0 <?xml version="1.0" ?>
1 <!-- Just In Time Delivered by Quortex Solution -->
2 <MPD testTime="2020-06-07T12:00:01Z" availabilityStartTime="1970-01-01T00:00:06Z" minBufferTime="PT6S" minimumUpdatePeriod="PT6S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:hbbtv:dash:profile:isoff-live:2012" publishTime="2020-06-07T11:59:55Z" suggestedPresentationDelay="PT12S" timeShiftBufferDepth="PT1M18S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
3 <Period id="0" start="PT1588628086S">
4 <AdaptationSet contentType="video" id="1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
5 <SegmentTemplate initialization="$RepresentationID$/init.mp4?id=8c1bbb709229e110fbb0d1e544266504" media="$RepresentationID$/segment_$Number$.m4s" presentationTimeOffset="1738747575" startNumber="487050" timescale="90000">
6 <SegmentTimeline>
7 <S d="540000" r="12" t="263007000000"/>
8 </SegmentTimeline>
9 </SegmentTemplate>
10 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400">
11 <ContentProtection cenc:default_KID="934bc7c6-a029-3d5b-9e26-1a7324777503" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
12 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
13 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgB4AHMAZABMAGsAeQBtAGcAVwB6ADIAZQBKAGgAcAB6AEoASABkADEAQQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgBUAGwALwBUAEUAQgAvAFcAZQBRAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
14 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AeABzAGQATABrAHkAbQBnAFcAegAyAGUASgBoAHAAegBKAEgAZAAxAEEAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AEYAVABsAC8AVABFAEIALwBXAGUAUQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
15 </ContentProtection>
16 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
17 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQk0vHxqApPVueJhpzJHd1AxoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
18 </ContentProtection>
19 </Representation>
20 <Representation bandwidth="800000" codecs="avc1.42001e" frameRate="25" height="360" id="videosd-640x360" sar="1:1" scanType="progressive" width="640">
21 <ContentProtection cenc:default_KID="934bc7c6-a029-3d5b-9e26-1a7324777503" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
22 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
23 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgB4AHMAZABMAGsAeQBtAGcAVwB6ADIAZQBKAGgAcAB6AEoASABkADEAQQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgBUAGwALwBUAEUAQgAvAFcAZQBRAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
24 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AeABzAGQATABrAHkAbQBnAFcAegAyAGUASgBoAHAAegBKAEgAZAAxAEEAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AEYAVABsAC8AVABFAEIALwBXAGUAUQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
25 </ContentProtection>
26 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
27 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQk0vHxqApPVueJhpzJHd1AxoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
28 </ContentProtection>
29 </Representation>
30 <Representation bandwidth="1500000" codecs="avc1.42001e" frameRate="25" height="404" id="videosd-720x404" sar="404:405" scanType="progressive" width="720">
31 <ContentProtection cenc:default_KID="934bc7c6-a029-3d5b-9e26-1a7324777503" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
32 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
33 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgB4AHMAZABMAGsAeQBtAGcAVwB6ADIAZQBKAGgAcAB6AEoASABkADEAQQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgBUAGwALwBUAEUAQgAvAFcAZQBRAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
34 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AeABzAGQATABrAHkAbQBnAFcAegAyAGUASgBoAHAAegBKAEgAZAAxAEEAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AEYAVABsAC8AVABFAEIALwBXAGUAUQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
35 </ContentProtection>
36 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
37 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQk0vHxqApPVueJhpzJHd1AxoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
38 </ContentProtection>
39 </Representation>
40 <Representation bandwidth="2100000" codecs="avc1.64001f" frameRate="25" height="540" id="videosd-960x540" sar="1:1" scanType="progressive" width="960">
41 <ContentProtection cenc:default_KID="934bc7c6-a029-3d5b-9e26-1a7324777503" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
42 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
43 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgB4AHMAZABMAGsAeQBtAGcAVwB6ADIAZQBKAGgAcAB6AEoASABkADEAQQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgBUAGwALwBUAEUAQgAvAFcAZQBRAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
44 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AeABzAGQATABrAHkAbQBnAFcAegAyAGUASgBoAHAAegBKAEgAZAAxAEEAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AEYAVABsAC8AVABFAEIALwBXAGUAUQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
45 </ContentProtection>
46 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
47 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQk0vHxqApPVueJhpzJHd1AxoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
48 </ContentProtection>
49 </Representation>
50 </AdaptationSet>
51 <AdaptationSet contentType="audio" id="21" lang="fre" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
52 <ContentProtection cenc:default_KID="91d9467b-d795-318b-a07c-4867ff4381e7" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
53 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
54 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBlADAAYgBaAGsAWgBYAFgAaQB6AEcAZwBmAEUAaABuAC8AMABPAEIANQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AUABrADkAawB3AFMAcgBEAEIAcgBBAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
55 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AZQAwAGIAWgBrAFoAWABYAGkAegBHAGcAZgBFAGgAbgAvADAATwBCADUAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AFAAawA5AGsAdwBTAHIARABCAHIAQQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
56 </ContentProtection>
57 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
58 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQkdlGe9eVMYugfEhn/0OB5xoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
59 </ContentProtection>
60 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
61 <SegmentTemplate initialization="$RepresentationID$/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d" media="$RepresentationID$/segment_$Number$.m4s" presentationTimeOffset="927332040" startNumber="487050" timescale="48000">
62 <SegmentTimeline>
63 <S d="288000" r="12" t="140270400000"/>
64 </SegmentTimeline>
65 </SegmentTemplate>
66 <Representation audioSamplingRate="48000" bandwidth="96000" codecs="mp4a.40.2" id="audio-fre-96000">
67 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
68 </Representation>
69 </AdaptationSet>
70 <AdaptationSet contentType="audio" id="22" lang="qad" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
71 <ContentProtection cenc:default_KID="91d9467b-d795-318b-a07c-4867ff4381e7" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
72 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
73 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBlADAAYgBaAGsAWgBYAFgAaQB6AEcAZwBmAEUAaABuAC8AMABPAEIANQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AUABrADkAawB3AFMAcgBEAEIAcgBBAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
74 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AZQAwAGIAWgBrAFoAWABYAGkAegBHAGcAZgBFAGgAbgAvADAATwBCADUAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AFAAawA5AGsAdwBTAHIARABCAHIAQQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
75 </ContentProtection>
76 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
77 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQkdlGe9eVMYugfEhn/0OB5xoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
78 </ContentProtection>
79 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
80 <SegmentTemplate initialization="$RepresentationID$/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d" media="$RepresentationID$/segment_$Number$.m4s" presentationTimeOffset="927332040" startNumber="487050" timescale="48000">
81 <SegmentTimeline>
82 <S d="288000" r="12" t="140270400000"/>
83 </SegmentTimeline>
84 </SegmentTemplate>
85 <Representation audioSamplingRate="48000" bandwidth="96000" codecs="mp4a.40.2" id="audio-fre-audiodesc-96000">
86 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
87 </Representation>
88 </AdaptationSet>
89 <AdaptationSet contentType="audio" id="23" lang="qaa" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
90 <ContentProtection cenc:default_KID="91d9467b-d795-318b-a07c-4867ff4381e7" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
91 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
92 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBlADAAYgBaAGsAWgBYAFgAaQB6AEcAZwBmAEUAaABuAC8AMABPAEIANQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AUABrADkAawB3AFMAcgBEAEIAcgBBAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
93 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AZQAwAGIAWgBrAFoAWABYAGkAegBHAGcAZgBFAGgAbgAvADAATwBCADUAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AFAAawA5AGsAdwBTAHIARABCAHIAQQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
94 </ContentProtection>
95 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
96 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQkdlGe9eVMYugfEhn/0OB5xoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
97 </ContentProtection>
98 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
99 <SegmentTemplate initialization="$RepresentationID$/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d" media="$RepresentationID$/segment_$Number$.m4s" presentationTimeOffset="927332040" startNumber="487050" timescale="48000">
100 <SegmentTimeline>
101 <S d="288000" r="12" t="140270400000"/>
102 </SegmentTimeline>
103 </SegmentTemplate>
104 <Representation audioSamplingRate="48000" bandwidth="96000" codecs="mp4a.40.2" id="audio-original-96000">
105 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
106 </Representation>
107 </AdaptationSet>
108 </Period>
109 <UTCTiming schemeIdUri="urn:mpeg:dash:utc:direct:2014" value="2020-06-07T11:59:55Z"/>
110 </MPD>
+0
-129
src/parser/testfiles/6play.mpd_target less more
0 Root: available_time_: 6, base_time_: 1591531051, firstStartNumber_: 0, has_overall_seconds_: 1, has_timeshift_buffer_:1, publish_time_: 1591531195, stream_start_: 1591531201, #periods: 1
1 Period: base_url_: , duration_ : 7020000, encryptionState_: 3, id_: 0, included_types_: 0, need_secure_decoder_:0, start_: 1588628086000, startNumber_: 1, startPTS_: 0, #psshsets: 3, #adaptationSets: 4
2 PSSH: defaultKID_: { }, iv: { }, media_: 0, pssh_:
3 PSSH: defaultKID_: { 0x93 0x4b 0xc7 0xc6 0xa0 0x29 0x3d 0x5b 0x9e 0x26 0x1a 0x73 0x24 0x77 0x75 0x03 }, iv: { }, media_: 1, pssh_: AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQk0vHxqApPVueJhpzJHd1AxoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==
4 PSSH: defaultKID_: { 0x91 0xd9 0x46 0x7b 0xd7 0x95 0x31 0x8b 0xa0 0x7c 0x48 0x67 0xff 0x43 0x81 0xe7 }, iv: { }, media_: 2, pssh_: AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQkdlGe9eVMYugfEhn/0OB5xoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==
5 ADP: audio_track_id_: , base_url_: , codecs_: , default_: 0, duration_: 0, forced_: 0, group_: , id_: 1, impaired_: 0, language_: unk, mimeType_: video/mp4, name_: , original_: 0, startNumber_: 487050, startPTS_: 263007000000, type_: 1, #segment_durations_: 13, #representations_: 4
6 SegTpl: duration: 0, initialization: $RepresentationID$/init.mp4?id=8c1bbb709229e110fbb0d1e544266504, media: $RepresentationID$/segment_$Number$.m4s, presentationTimeOffset: 1738747575, timescale:90000
7 Segment durations:, 540000, 540000, 540000, 540000, 540000, 540000, 540000, 540000, 540000, 540000, 540000, 540000, 540000
8 Rep: aspect_: 0, bandwidth_ : 300000, channelCount_ : 0, codecs_ : avc1.42001e, codec_private_data_ : , containerType_ : 2, duration_ : 0, flags_ : 14, fpsRate_ : 25, fpsScale_ : 1, hdcpVersion_ : 0, height_ : 224, id : videosd-400x224, indexRangeMax_ : 0, indexRangeMin_ : 0, nalLengthSize_ : 0, pssh_set_ : 1, ptsOffset_ : 0, samplingRate_ : 0, source_url_ : , startNumber_ : 487050, timescale_ : 90000, timescale_ext_ : 100, timescale_int_ : 9, url_ : videosd-400x224/init.mp4?id=8c1bbb709229e110fbb0d1e544266504, width_ : 400
9 SegTpl: duration: 540000, initialization: videosd-400x224/init.mp4?id=8c1bbb709229e110fbb0d1e544266504, media: videosd-400x224/segment_$Number$.m4s, presentationTimeOffset: 1738747575, timescale:90000
10 Init: pssh_set_: 0, range_begin_: 0x0, range_end_: 0xffffffffffffffff, startPTS_: 0, url:NULL
11 Seg: pssh_set_: 0, range_begin_: 0x3d3c7055c0, range_end_: 0x76e8a, startPTS_: 0, url:NULL
12 Seg: pssh_set_: 0, range_begin_: 0x3d3c789320, range_end_: 0x76e8b, startPTS_: 540000, url:NULL
13 Seg: pssh_set_: 0, range_begin_: 0x3d3c80d080, range_end_: 0x76e8c, startPTS_: 1080000, url:NULL
14 Seg: pssh_set_: 0, range_begin_: 0x3d3c890de0, range_end_: 0x76e8d, startPTS_: 1620000, url:NULL
15 Seg: pssh_set_: 0, range_begin_: 0x3d3c914b40, range_end_: 0x76e8e, startPTS_: 2160000, url:NULL
16 Seg: pssh_set_: 0, range_begin_: 0x3d3c9988a0, range_end_: 0x76e8f, startPTS_: 2700000, url:NULL
17 Seg: pssh_set_: 0, range_begin_: 0x3d3ca1c600, range_end_: 0x76e90, startPTS_: 3240000, url:NULL
18 Seg: pssh_set_: 0, range_begin_: 0x3d3caa0360, range_end_: 0x76e91, startPTS_: 3780000, url:NULL
19 Seg: pssh_set_: 0, range_begin_: 0x3d3cb240c0, range_end_: 0x76e92, startPTS_: 4320000, url:NULL
20 Seg: pssh_set_: 0, range_begin_: 0x3d3cba7e20, range_end_: 0x76e93, startPTS_: 4860000, url:NULL
21 Seg: pssh_set_: 0, range_begin_: 0x3d3cc2bb80, range_end_: 0x76e94, startPTS_: 5400000, url:NULL
22 Seg: pssh_set_: 0, range_begin_: 0x3d3ccaf8e0, range_end_: 0x76e95, startPTS_: 5940000, url:NULL
23 Seg: pssh_set_: 0, range_begin_: 0x3d3cd33640, range_end_: 0x76e96, startPTS_: 6480000, url:NULL
24 Rep: aspect_: 0, bandwidth_ : 800000, channelCount_ : 0, codecs_ : avc1.42001e, codec_private_data_ : , containerType_ : 2, duration_ : 0, flags_ : 14, fpsRate_ : 25, fpsScale_ : 1, hdcpVersion_ : 0, height_ : 360, id : videosd-640x360, indexRangeMax_ : 0, indexRangeMin_ : 0, nalLengthSize_ : 0, pssh_set_ : 1, ptsOffset_ : 0, samplingRate_ : 0, source_url_ : , startNumber_ : 487050, timescale_ : 90000, timescale_ext_ : 100, timescale_int_ : 9, url_ : videosd-640x360/init.mp4?id=8c1bbb709229e110fbb0d1e544266504, width_ : 640
25 SegTpl: duration: 540000, initialization: videosd-640x360/init.mp4?id=8c1bbb709229e110fbb0d1e544266504, media: videosd-640x360/segment_$Number$.m4s, presentationTimeOffset: 1738747575, timescale:90000
26 Init: pssh_set_: 0, range_begin_: 0x0, range_end_: 0xffffffffffffffff, startPTS_: 0, url:NULL
27 Seg: pssh_set_: 0, range_begin_: 0x3d3c7055c0, range_end_: 0x76e8a, startPTS_: 0, url:NULL
28 Seg: pssh_set_: 0, range_begin_: 0x3d3c789320, range_end_: 0x76e8b, startPTS_: 540000, url:NULL
29 Seg: pssh_set_: 0, range_begin_: 0x3d3c80d080, range_end_: 0x76e8c, startPTS_: 1080000, url:NULL
30 Seg: pssh_set_: 0, range_begin_: 0x3d3c890de0, range_end_: 0x76e8d, startPTS_: 1620000, url:NULL
31 Seg: pssh_set_: 0, range_begin_: 0x3d3c914b40, range_end_: 0x76e8e, startPTS_: 2160000, url:NULL
32 Seg: pssh_set_: 0, range_begin_: 0x3d3c9988a0, range_end_: 0x76e8f, startPTS_: 2700000, url:NULL
33 Seg: pssh_set_: 0, range_begin_: 0x3d3ca1c600, range_end_: 0x76e90, startPTS_: 3240000, url:NULL
34 Seg: pssh_set_: 0, range_begin_: 0x3d3caa0360, range_end_: 0x76e91, startPTS_: 3780000, url:NULL
35 Seg: pssh_set_: 0, range_begin_: 0x3d3cb240c0, range_end_: 0x76e92, startPTS_: 4320000, url:NULL
36 Seg: pssh_set_: 0, range_begin_: 0x3d3cba7e20, range_end_: 0x76e93, startPTS_: 4860000, url:NULL
37 Seg: pssh_set_: 0, range_begin_: 0x3d3cc2bb80, range_end_: 0x76e94, startPTS_: 5400000, url:NULL
38 Seg: pssh_set_: 0, range_begin_: 0x3d3ccaf8e0, range_end_: 0x76e95, startPTS_: 5940000, url:NULL
39 Seg: pssh_set_: 0, range_begin_: 0x3d3cd33640, range_end_: 0x76e96, startPTS_: 6480000, url:NULL
40 Rep: aspect_: 0, bandwidth_ : 1500000, channelCount_ : 0, codecs_ : avc1.42001e, codec_private_data_ : , containerType_ : 2, duration_ : 0, flags_ : 14, fpsRate_ : 25, fpsScale_ : 1, hdcpVersion_ : 0, height_ : 404, id : videosd-720x404, indexRangeMax_ : 0, indexRangeMin_ : 0, nalLengthSize_ : 0, pssh_set_ : 1, ptsOffset_ : 0, samplingRate_ : 0, source_url_ : , startNumber_ : 487050, timescale_ : 90000, timescale_ext_ : 100, timescale_int_ : 9, url_ : videosd-720x404/init.mp4?id=8c1bbb709229e110fbb0d1e544266504, width_ : 720
41 SegTpl: duration: 540000, initialization: videosd-720x404/init.mp4?id=8c1bbb709229e110fbb0d1e544266504, media: videosd-720x404/segment_$Number$.m4s, presentationTimeOffset: 1738747575, timescale:90000
42 Init: pssh_set_: 0, range_begin_: 0x0, range_end_: 0xffffffffffffffff, startPTS_: 0, url:NULL
43 Seg: pssh_set_: 0, range_begin_: 0x3d3c7055c0, range_end_: 0x76e8a, startPTS_: 0, url:NULL
44 Seg: pssh_set_: 0, range_begin_: 0x3d3c789320, range_end_: 0x76e8b, startPTS_: 540000, url:NULL
45 Seg: pssh_set_: 0, range_begin_: 0x3d3c80d080, range_end_: 0x76e8c, startPTS_: 1080000, url:NULL
46 Seg: pssh_set_: 0, range_begin_: 0x3d3c890de0, range_end_: 0x76e8d, startPTS_: 1620000, url:NULL
47 Seg: pssh_set_: 0, range_begin_: 0x3d3c914b40, range_end_: 0x76e8e, startPTS_: 2160000, url:NULL
48 Seg: pssh_set_: 0, range_begin_: 0x3d3c9988a0, range_end_: 0x76e8f, startPTS_: 2700000, url:NULL
49 Seg: pssh_set_: 0, range_begin_: 0x3d3ca1c600, range_end_: 0x76e90, startPTS_: 3240000, url:NULL
50 Seg: pssh_set_: 0, range_begin_: 0x3d3caa0360, range_end_: 0x76e91, startPTS_: 3780000, url:NULL
51 Seg: pssh_set_: 0, range_begin_: 0x3d3cb240c0, range_end_: 0x76e92, startPTS_: 4320000, url:NULL
52 Seg: pssh_set_: 0, range_begin_: 0x3d3cba7e20, range_end_: 0x76e93, startPTS_: 4860000, url:NULL
53 Seg: pssh_set_: 0, range_begin_: 0x3d3cc2bb80, range_end_: 0x76e94, startPTS_: 5400000, url:NULL
54 Seg: pssh_set_: 0, range_begin_: 0x3d3ccaf8e0, range_end_: 0x76e95, startPTS_: 5940000, url:NULL
55 Seg: pssh_set_: 0, range_begin_: 0x3d3cd33640, range_end_: 0x76e96, startPTS_: 6480000, url:NULL
56 Rep: aspect_: 0, bandwidth_ : 2100000, channelCount_ : 0, codecs_ : avc1.64001f, codec_private_data_ : , containerType_ : 2, duration_ : 0, flags_ : 14, fpsRate_ : 25, fpsScale_ : 1, hdcpVersion_ : 0, height_ : 540, id : videosd-960x540, indexRangeMax_ : 0, indexRangeMin_ : 0, nalLengthSize_ : 0, pssh_set_ : 1, ptsOffset_ : 0, samplingRate_ : 0, source_url_ : , startNumber_ : 487050, timescale_ : 90000, timescale_ext_ : 100, timescale_int_ : 9, url_ : videosd-960x540/init.mp4?id=8c1bbb709229e110fbb0d1e544266504, width_ : 960
57 SegTpl: duration: 540000, initialization: videosd-960x540/init.mp4?id=8c1bbb709229e110fbb0d1e544266504, media: videosd-960x540/segment_$Number$.m4s, presentationTimeOffset: 1738747575, timescale:90000
58 Init: pssh_set_: 0, range_begin_: 0x0, range_end_: 0xffffffffffffffff, startPTS_: 0, url:NULL
59 Seg: pssh_set_: 0, range_begin_: 0x3d3c7055c0, range_end_: 0x76e8a, startPTS_: 0, url:NULL
60 Seg: pssh_set_: 0, range_begin_: 0x3d3c789320, range_end_: 0x76e8b, startPTS_: 540000, url:NULL
61 Seg: pssh_set_: 0, range_begin_: 0x3d3c80d080, range_end_: 0x76e8c, startPTS_: 1080000, url:NULL
62 Seg: pssh_set_: 0, range_begin_: 0x3d3c890de0, range_end_: 0x76e8d, startPTS_: 1620000, url:NULL
63 Seg: pssh_set_: 0, range_begin_: 0x3d3c914b40, range_end_: 0x76e8e, startPTS_: 2160000, url:NULL
64 Seg: pssh_set_: 0, range_begin_: 0x3d3c9988a0, range_end_: 0x76e8f, startPTS_: 2700000, url:NULL
65 Seg: pssh_set_: 0, range_begin_: 0x3d3ca1c600, range_end_: 0x76e90, startPTS_: 3240000, url:NULL
66 Seg: pssh_set_: 0, range_begin_: 0x3d3caa0360, range_end_: 0x76e91, startPTS_: 3780000, url:NULL
67 Seg: pssh_set_: 0, range_begin_: 0x3d3cb240c0, range_end_: 0x76e92, startPTS_: 4320000, url:NULL
68 Seg: pssh_set_: 0, range_begin_: 0x3d3cba7e20, range_end_: 0x76e93, startPTS_: 4860000, url:NULL
69 Seg: pssh_set_: 0, range_begin_: 0x3d3cc2bb80, range_end_: 0x76e94, startPTS_: 5400000, url:NULL
70 Seg: pssh_set_: 0, range_begin_: 0x3d3ccaf8e0, range_end_: 0x76e95, startPTS_: 5940000, url:NULL
71 Seg: pssh_set_: 0, range_begin_: 0x3d3cd33640, range_end_: 0x76e96, startPTS_: 6480000, url:NULL
72 ADP: audio_track_id_: , base_url_: , codecs_: , default_: 1, duration_: 7020000, forced_: 0, group_: , id_: 21, impaired_: 0, language_: fre, mimeType_: audio/mp4, name_: , original_: 0, startNumber_: 487050, startPTS_: 140270400000, type_: 2, #segment_durations_: 13, #representations_: 1
73 SegTpl: duration: 0, initialization: $RepresentationID$/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d, media: $RepresentationID$/segment_$Number$.m4s, presentationTimeOffset: 927332040, timescale:48000
74 Segment durations:, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000
75 Rep: aspect_: 0, bandwidth_ : 96000, channelCount_ : 2, codecs_ : mp4a.40.2, codec_private_data_ : , containerType_ : 2, duration_ : 7020000, flags_ : 14, fpsRate_ : 0, fpsScale_ : 1, hdcpVersion_ : 0, height_ : 0, id : audio-fre-96000, indexRangeMax_ : 0, indexRangeMin_ : 0, nalLengthSize_ : 0, pssh_set_ : 2, ptsOffset_ : 0, samplingRate_ : 48000, source_url_ : , startNumber_ : 487050, timescale_ : 48000, timescale_ext_ : 1000, timescale_int_ : 48, url_ : audio-fre-96000/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d, width_ : 0
76 SegTpl: duration: 288000, initialization: audio-fre-96000/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d, media: audio-fre-96000/segment_$Number$.m4s, presentationTimeOffset: 927332040, timescale:48000
77 Init: pssh_set_: 0, range_begin_: 0x0, range_end_: 0xffffffffffffffff, startPTS_: 0, url:NULL
78 Seg: pssh_set_: 0, range_begin_: 0x20a8c47200, range_end_: 0x76e8a, startPTS_: 0, url:NULL
79 Seg: pssh_set_: 0, range_begin_: 0x20a8c8d700, range_end_: 0x76e8b, startPTS_: 288000, url:NULL
80 Seg: pssh_set_: 0, range_begin_: 0x20a8cd3c00, range_end_: 0x76e8c, startPTS_: 576000, url:NULL
81 Seg: pssh_set_: 0, range_begin_: 0x20a8d1a100, range_end_: 0x76e8d, startPTS_: 864000, url:NULL
82 Seg: pssh_set_: 0, range_begin_: 0x20a8d60600, range_end_: 0x76e8e, startPTS_: 1152000, url:NULL
83 Seg: pssh_set_: 0, range_begin_: 0x20a8da6b00, range_end_: 0x76e8f, startPTS_: 1440000, url:NULL
84 Seg: pssh_set_: 0, range_begin_: 0x20a8ded000, range_end_: 0x76e90, startPTS_: 1728000, url:NULL
85 Seg: pssh_set_: 0, range_begin_: 0x20a8e33500, range_end_: 0x76e91, startPTS_: 2016000, url:NULL
86 Seg: pssh_set_: 0, range_begin_: 0x20a8e79a00, range_end_: 0x76e92, startPTS_: 2304000, url:NULL
87 Seg: pssh_set_: 0, range_begin_: 0x20a8ebff00, range_end_: 0x76e93, startPTS_: 2592000, url:NULL
88 Seg: pssh_set_: 0, range_begin_: 0x20a8f06400, range_end_: 0x76e94, startPTS_: 2880000, url:NULL
89 Seg: pssh_set_: 0, range_begin_: 0x20a8f4c900, range_end_: 0x76e95, startPTS_: 3168000, url:NULL
90 Seg: pssh_set_: 0, range_begin_: 0x20a8f92e00, range_end_: 0x76e96, startPTS_: 3456000, url:NULL
91 ADP: audio_track_id_: , base_url_: , codecs_: , default_: 1, duration_: 7020000, forced_: 0, group_: , id_: 23, impaired_: 0, language_: qaa, mimeType_: audio/mp4, name_: , original_: 0, startNumber_: 487050, startPTS_: 140270400000, type_: 2, #segment_durations_: 13, #representations_: 1
92 SegTpl: duration: 0, initialization: $RepresentationID$/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d, media: $RepresentationID$/segment_$Number$.m4s, presentationTimeOffset: 927332040, timescale:48000
93 Segment durations:, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000
94 Rep: aspect_: 0, bandwidth_ : 96000, channelCount_ : 2, codecs_ : mp4a.40.2, codec_private_data_ : , containerType_ : 2, duration_ : 7020000, flags_ : 14, fpsRate_ : 0, fpsScale_ : 1, hdcpVersion_ : 0, height_ : 0, id : audio-original-96000, indexRangeMax_ : 0, indexRangeMin_ : 0, nalLengthSize_ : 0, pssh_set_ : 2, ptsOffset_ : 0, samplingRate_ : 48000, source_url_ : , startNumber_ : 487050, timescale_ : 48000, timescale_ext_ : 1000, timescale_int_ : 48, url_ : audio-original-96000/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d, width_ : 0
95 SegTpl: duration: 288000, initialization: audio-original-96000/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d, media: audio-original-96000/segment_$Number$.m4s, presentationTimeOffset: 927332040, timescale:48000
96 Init: pssh_set_: 0, range_begin_: 0x0, range_end_: 0xffffffffffffffff, startPTS_: 0, url:NULL
97 Seg: pssh_set_: 0, range_begin_: 0x20a8c47200, range_end_: 0x76e8a, startPTS_: 0, url:NULL
98 Seg: pssh_set_: 0, range_begin_: 0x20a8c8d700, range_end_: 0x76e8b, startPTS_: 288000, url:NULL
99 Seg: pssh_set_: 0, range_begin_: 0x20a8cd3c00, range_end_: 0x76e8c, startPTS_: 576000, url:NULL
100 Seg: pssh_set_: 0, range_begin_: 0x20a8d1a100, range_end_: 0x76e8d, startPTS_: 864000, url:NULL
101 Seg: pssh_set_: 0, range_begin_: 0x20a8d60600, range_end_: 0x76e8e, startPTS_: 1152000, url:NULL
102 Seg: pssh_set_: 0, range_begin_: 0x20a8da6b00, range_end_: 0x76e8f, startPTS_: 1440000, url:NULL
103 Seg: pssh_set_: 0, range_begin_: 0x20a8ded000, range_end_: 0x76e90, startPTS_: 1728000, url:NULL
104 Seg: pssh_set_: 0, range_begin_: 0x20a8e33500, range_end_: 0x76e91, startPTS_: 2016000, url:NULL
105 Seg: pssh_set_: 0, range_begin_: 0x20a8e79a00, range_end_: 0x76e92, startPTS_: 2304000, url:NULL
106 Seg: pssh_set_: 0, range_begin_: 0x20a8ebff00, range_end_: 0x76e93, startPTS_: 2592000, url:NULL
107 Seg: pssh_set_: 0, range_begin_: 0x20a8f06400, range_end_: 0x76e94, startPTS_: 2880000, url:NULL
108 Seg: pssh_set_: 0, range_begin_: 0x20a8f4c900, range_end_: 0x76e95, startPTS_: 3168000, url:NULL
109 Seg: pssh_set_: 0, range_begin_: 0x20a8f92e00, range_end_: 0x76e96, startPTS_: 3456000, url:NULL
110 ADP: audio_track_id_: , base_url_: , codecs_: , default_: 1, duration_: 7020000, forced_: 0, group_: , id_: 22, impaired_: 0, language_: qad, mimeType_: audio/mp4, name_: , original_: 0, startNumber_: 487050, startPTS_: 140270400000, type_: 2, #segment_durations_: 13, #representations_: 1
111 SegTpl: duration: 0, initialization: $RepresentationID$/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d, media: $RepresentationID$/segment_$Number$.m4s, presentationTimeOffset: 927332040, timescale:48000
112 Segment durations:, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000, 288000
113 Rep: aspect_: 0, bandwidth_ : 96000, channelCount_ : 2, codecs_ : mp4a.40.2, codec_private_data_ : , containerType_ : 2, duration_ : 7020000, flags_ : 14, fpsRate_ : 0, fpsScale_ : 1, hdcpVersion_ : 0, height_ : 0, id : audio-fre-audiodesc-96000, indexRangeMax_ : 0, indexRangeMin_ : 0, nalLengthSize_ : 0, pssh_set_ : 2, ptsOffset_ : 0, samplingRate_ : 48000, source_url_ : , startNumber_ : 487050, timescale_ : 48000, timescale_ext_ : 1000, timescale_int_ : 48, url_ : audio-fre-audiodesc-96000/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d, width_ : 0
114 SegTpl: duration: 288000, initialization: audio-fre-audiodesc-96000/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d, media: audio-fre-audiodesc-96000/segment_$Number$.m4s, presentationTimeOffset: 927332040, timescale:48000
115 Init: pssh_set_: 0, range_begin_: 0x0, range_end_: 0xffffffffffffffff, startPTS_: 0, url:NULL
116 Seg: pssh_set_: 0, range_begin_: 0x20a8c47200, range_end_: 0x76e8a, startPTS_: 0, url:NULL
117 Seg: pssh_set_: 0, range_begin_: 0x20a8c8d700, range_end_: 0x76e8b, startPTS_: 288000, url:NULL
118 Seg: pssh_set_: 0, range_begin_: 0x20a8cd3c00, range_end_: 0x76e8c, startPTS_: 576000, url:NULL
119 Seg: pssh_set_: 0, range_begin_: 0x20a8d1a100, range_end_: 0x76e8d, startPTS_: 864000, url:NULL
120 Seg: pssh_set_: 0, range_begin_: 0x20a8d60600, range_end_: 0x76e8e, startPTS_: 1152000, url:NULL
121 Seg: pssh_set_: 0, range_begin_: 0x20a8da6b00, range_end_: 0x76e8f, startPTS_: 1440000, url:NULL
122 Seg: pssh_set_: 0, range_begin_: 0x20a8ded000, range_end_: 0x76e90, startPTS_: 1728000, url:NULL
123 Seg: pssh_set_: 0, range_begin_: 0x20a8e33500, range_end_: 0x76e91, startPTS_: 2016000, url:NULL
124 Seg: pssh_set_: 0, range_begin_: 0x20a8e79a00, range_end_: 0x76e92, startPTS_: 2304000, url:NULL
125 Seg: pssh_set_: 0, range_begin_: 0x20a8ebff00, range_end_: 0x76e93, startPTS_: 2592000, url:NULL
126 Seg: pssh_set_: 0, range_begin_: 0x20a8f06400, range_end_: 0x76e94, startPTS_: 2880000, url:NULL
127 Seg: pssh_set_: 0, range_begin_: 0x20a8f4c900, range_end_: 0x76e95, startPTS_: 3168000, url:NULL
128 Seg: pssh_set_: 0, range_begin_: 0x20a8f92e00, range_end_: 0x76e96, startPTS_: 3456000, url:NULL
+0
-21
src/parser/testfiles/Basic_Number-template.mpd less more
0 <?xml version="1.0" encoding="utf-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" testTime="2020-06-08T18:54:24Z" availabilityStartTime="1970-01-01T00:00:00Z" id="Config part of url maybe?" maxSegmentDuration="PT2S" minBufferTime="PT2S" minimumUpdatePeriod="P100Y" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-simple" publishTime="2020-06-08T18:54:24Z" timeShiftBufferDepth="PT5M" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
2 <ProgramInformation>
3 <Title>Media Presentation Description from DASH-IF live simulator</Title>
4 </ProgramInformation>
5 <BaseURL>http://livesim.dashif.org/livesim/sts_1591642463/sid_049301ca/testpic_2s/</BaseURL>
6 <Period id="p0" start="PT0S">
7 <AdaptationSet contentType="audio" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
8 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
9 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="0" />
10 <Representation audioSamplingRate="48000" bandwidth="48000" codecs="mp4a.40.2" id="A48">
11 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
12 </Representation>
13 </AdaptationSet>
14 <AdaptationSet contentType="video" maxFrameRate="60/2" maxHeight="360" maxWidth="640" mimeType="video/mp4" minHeight="360" minWidth="640" par="16:9" segmentAlignment="true" startWithSAP="1">
15 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
16 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="0" />
17 <Representation bandwidth="300000" codecs="avc1.64001e" frameRate="60/2" height="360" id="V300" sar="1:1" width="640" />
18 </AdaptationSet>
19 </Period>
20 </MPD>
+0
-5
src/parser/testfiles/Basic_Number-template.strm less more
0 #KODIPROP:inputstreamaddon=inputstream.adaptive
1 #KODIPROP:inputstream=inputstream.adaptive
2 #KODIPROP:inputstream.adaptive.manifest_type=mpd
3 #KODIPROP:mimetype=application/dash+xml
4 http://livesim.dashif.org/livesim/testpic_2s/Manifest.mpd
+0
-21
src/parser/testfiles/Basic_Number-template_30min.mpd less more
0 <?xml version="1.0" encoding="utf-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="1970-01-01T00:30:00Z" id="Config part of url maybe?" maxSegmentDuration="PT2S" minBufferTime="PT2S" minimumUpdatePeriod="PT10S" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-simple" testTime="2020-06-08T22:16:31Z" publishTime="2020-06-08T22:16:31Z" timeShiftBufferDepth="PT5M" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
2 <ProgramInformation>
3 <Title>Media Presentation Description from DASH-IF live simulator</Title>
4 </ProgramInformation>
5 <BaseURL>http://livesim.dashif.org/livesim/sts_1591654591/sid_8737f209/start_1800/testpic_2s/</BaseURL>
6 <Period id="p0" start="PT0S">
7 <AdaptationSet contentType="audio" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
8 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
9 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="0" />
10 <Representation audioSamplingRate="48000" bandwidth="48000" codecs="mp4a.40.2" id="A48">
11 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
12 </Representation>
13 </AdaptationSet>
14 <AdaptationSet contentType="video" maxFrameRate="60/2" maxHeight="360" maxWidth="640" mimeType="video/mp4" minHeight="360" minWidth="640" par="16:9" segmentAlignment="true" startWithSAP="1">
15 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
16 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="0" />
17 <Representation bandwidth="300000" codecs="avc1.64001e" frameRate="60/2" height="360" id="V300" sar="1:1" width="640" />
18 </AdaptationSet>
19 </Period>
20 </MPD>
+0
-5
src/parser/testfiles/Basic_Number-template_30min.strm less more
0 #KODIPROP:inputstreamaddon=inputstream.adaptive
1 #KODIPROP:inputstream=inputstream.adaptive
2 #KODIPROP:inputstream.adaptive.manifest_type=mpd
3 #KODIPROP:mimetype=application/dash+xml
4 http://livesim.dashif.org/livesim/start_1800/testpic_2s/Manifest.mpd
+0
-105
src/parser/testfiles/Basic_SegmentTimeline.mpd less more
0 <?xml version="1.0" encoding="utf-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="1970-01-01T00:00:00Z" id="Config part of url maybe?" minBufferTime="PT2S" minimumUpdatePeriod="PT0S" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-simple" testTime="2020-06-08T22:03:36Z" publishTime="2020-06-08T22:03:36Z" timeShiftBufferDepth="PT5M" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
2 <ProgramInformation>
3 <Title>Media Presentation Description from DASH-IF live simulator</Title>
4 </ProgramInformation>
5 <BaseURL>http://livesim.dashif.org/livesim/sts_1591653816/sid_3801e658/segtimeline_1/testpic_2s/</BaseURL>
6 <Period id="p0" start="PT0S">
7 <AdaptationSet contentType="audio" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
8 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
9 <SegmentTemplate initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/t$Time$.m4s" timescale="48000">
10 <SegmentTimeline>
11 <S d="96256" r="1" t="76399368672256" />
12 <S d="95232" />
13 <S d="96256" r="2" />
14 <S d="95232" />
15 <S d="96256" r="2" />
16 <S d="95232" />
17 <S d="96256" r="2" />
18 <S d="95232" />
19 <S d="96256" r="2" />
20 <S d="95232" />
21 <S d="96256" r="2" />
22 <S d="95232" />
23 <S d="96256" r="2" />
24 <S d="95232" />
25 <S d="96256" r="2" />
26 <S d="95232" />
27 <S d="96256" r="2" />
28 <S d="95232" />
29 <S d="96256" r="2" />
30 <S d="95232" />
31 <S d="96256" r="2" />
32 <S d="95232" />
33 <S d="96256" r="2" />
34 <S d="95232" />
35 <S d="96256" r="2" />
36 <S d="95232" />
37 <S d="96256" r="2" />
38 <S d="95232" />
39 <S d="96256" r="2" />
40 <S d="95232" />
41 <S d="96256" r="2" />
42 <S d="95232" />
43 <S d="96256" r="2" />
44 <S d="95232" />
45 <S d="96256" r="2" />
46 <S d="95232" />
47 <S d="96256" r="2" />
48 <S d="95232" />
49 <S d="96256" r="2" />
50 <S d="95232" />
51 <S d="96256" r="2" />
52 <S d="95232" />
53 <S d="96256" r="2" />
54 <S d="95232" />
55 <S d="96256" r="2" />
56 <S d="95232" />
57 <S d="96256" r="2" />
58 <S d="95232" />
59 <S d="96256" r="2" />
60 <S d="95232" />
61 <S d="96256" r="2" />
62 <S d="95232" />
63 <S d="96256" r="2" />
64 <S d="95232" />
65 <S d="96256" r="2" />
66 <S d="95232" />
67 <S d="96256" r="2" />
68 <S d="95232" />
69 <S d="96256" r="2" />
70 <S d="95232" />
71 <S d="96256" r="2" />
72 <S d="95232" />
73 <S d="96256" r="2" />
74 <S d="95232" />
75 <S d="96256" r="2" />
76 <S d="95232" />
77 <S d="96256" r="2" />
78 <S d="95232" />
79 <S d="96256" r="2" />
80 <S d="95232" />
81 <S d="96256" r="2" />
82 <S d="95232" />
83 <S d="96256" r="2" />
84 <S d="95232" />
85 <S d="96256" r="2" />
86 <S d="95232" />
87 </SegmentTimeline>
88 </SegmentTemplate>
89 <Representation audioSamplingRate="48000" bandwidth="48000" codecs="mp4a.40.2" id="A48">
90 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
91 </Representation>
92 </AdaptationSet>
93 <AdaptationSet contentType="video" maxFrameRate="60/2" maxHeight="360" maxWidth="640" mimeType="video/mp4" minHeight="360" minWidth="640" par="16:9" segmentAlignment="true" startWithSAP="1">
94 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
95 <SegmentTemplate initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/t$Time$.m4s" timescale="90000">
96 <SegmentTimeline>
97 <S d="180000" r="149" t="143248816260000" />
98 <S d="180000" r="107" />
99 </SegmentTimeline>
100 </SegmentTemplate>
101 <Representation bandwidth="300000" codecs="avc1.64001e" frameRate="60/2" height="360" id="V300" sar="1:1" width="640" />
102 </AdaptationSet>
103 </Period>
104 </MPD>
+0
-5
src/parser/testfiles/Basic_SegmentTimeline.strm less more
0 #KODIPROP:inputstreamaddon=inputstream.adaptive
1 #KODIPROP:inputstream=inputstream.adaptive
2 #KODIPROP:inputstream.adaptive.manifest_type=mpd
3 #KODIPROP:mimetype=application/dash+xml
4 http://livesim.dashif.org/livesim/segtimeline_1/testpic_2s/Manifest.mpd
+0
-411
src/parser/testfiles/DisneyNow.mpd less more
0 <?xml version="1.0" encoding="UTF-8"?>
1 <MPD xmlns:cenc="urn:mpeg:cenc:2013" xmlns:ms="urn:microsoft" xmlns:mspr="urn:microsoft:playready" xmlns="urn:mpeg:dash:schema:mpd:2011" mediaPresentationDuration="PT22M32.880000S" minBufferTime="PT4.096S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" type="static">
2 <Period duration="PT45.263999S" id="c-0-000-012">
3 <AssetIdentifier schemeIdUri="urn:org:dashif:asset-id:2013" value="8e38f89295bc497fabe10d272f0888a5"/>
4 <AdaptationSet audioSamplingRate="48000" contentType="audio" group="1" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
5 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="dd87d434-f1a2-4159-9137-0fe5382fe325"/>
6 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
7 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgZGQ4N2Q0MzRmMWEyNDE1OTkxMzcwZmU1MzgyZmUzMjUaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
8 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
9 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
10 </ContentProtection>
11 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
12 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIATgBOAFMASAAzAGEATAB4AFcAVQBHAFIATgB3AC8AbABPAEMALwBqAEoAUQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
13 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBOAE4AUwBIADMAYQBMAHgAVwBVAEcAUgBOAHcALwBsAE8AQwAvAGoASgBRAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
14 </ContentProtection>
15 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
16 <Representation bandwidth="129359" codecs="mp4a.40.5" id="0">
17 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
18 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
19 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/TK_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="TK_$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
20 </Representation>
21 </AdaptationSet>
22 <AdaptationSet contentType="video" id="1" maxFrameRate="30" maxHeight="648" maxWidth="1152" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
23 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="07af427b-8873-49b7-aaec-73cf2643b3c9"/>
24 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
25 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgMDdhZjQyN2I4ODczNDliN2FhZWM3M2NmMjY0M2IzYzkaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
26 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
27 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
28 </ContentProtection>
29 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
30 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIAZQAwAEsAdgBCADMATwBJAHQAMABtAHEANwBIAFAAUABKAGsATwB6AHkAUQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
31 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBlADAASwB2AEIAMwBPAEkAdAAwAG0AcQA3AEgAUABQAEoAawBPAHoAeQBRAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
32 </ContentProtection>
33 <SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="2"/>
34 <InbandEventStream schemeIdUri="com.uplynk.asset.metadata"/>
35 <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015"/>
36 <Representation bandwidth="1833286" codecs="avc1.4d001f" frameRate="30" height="612" id="H" scanType="progressive" width="1088">
37 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
38 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
39 </Representation>
40 <Representation bandwidth="2323480" codecs="avc1.4d001f" frameRate="30" height="648" id="I" scanType="progressive" width="1152">
41 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
42 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
43 </Representation>
44 <Representation bandwidth="1480429" codecs="avc1.4d001f" frameRate="30" height="594" id="G" scanType="progressive" width="1056">
45 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
46 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
47 </Representation>
48 <Representation bandwidth="1016365" codecs="avc1.4d001f" frameRate="30" height="558" id="F" scanType="progressive" width="992">
49 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
50 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
51 </Representation>
52 <Representation bandwidth="590220" codecs="avc1.4d001e" frameRate="30" height="432" id="E" scanType="progressive" width="768">
53 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
54 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
55 </Representation>
56 <Representation bandwidth="301685" codecs="avc1.420015" frameRate="30" height="252" id="D" scanType="progressive" width="448">
57 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
58 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
59 </Representation>
60 <Representation bandwidth="148829" codecs="avc1.42000c" frameRate="15" height="162" id="C" scanType="progressive" width="288">
61 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
62 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
63 </Representation>
64 <Representation bandwidth="69733" codecs="avc1.42000b" frameRate="15" height="108" id="B" scanType="progressive" width="192">
65 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
66 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
67 </Representation>
68 <Representation bandwidth="21404" codecs="avc1.42000a" frameRate="6" height="54" id="A" scanType="progressive" width="96">
69 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
70 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
71 </Representation>
72 </AdaptationSet>
73 <AdaptationSet contentType="video" id="2" maxFrameRate="30" maxHeight="1080" maxWidth="1920" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
74 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="f6e37a5f-4967-49ed-a553-42b75aa6fbe0"/>
75 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
76 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgZjZlMzdhNWY0OTY3NDllZGE1NTM0MmI3NWFhNmZiZTAaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
77 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
78 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
79 </ContentProtection>
80 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
81 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIAWAAzAHIAagA5AG0AZABKADcAVQBtAGwAVQAwAEsAMwBXAHEAYgA3ADQAQQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
82 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBYADMAcgBqADkAbQBkAEoANwBVAG0AbABVADAASwAzAFcAcQBiADcANABBAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
83 </ContentProtection>
84 <SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="1"/>
85 <InbandEventStream schemeIdUri="com.uplynk.asset.metadata"/>
86 <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015"/>
87 <Representation bandwidth="4829881" codecs="avc1.640028" frameRate="30" height="1080" id="K" scanType="progressive" width="1920">
88 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
89 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
90 </Representation>
91 <Representation bandwidth="3274750" codecs="avc1.64001f" frameRate="30" height="720" id="J" scanType="progressive" width="1280">
92 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
93 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
94 </Representation>
95 </AdaptationSet>
96 <AdaptationSet contentType="text" group="2" lang="en" mimeType="application/mp4" segmentAlignment="true">
97 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle"/>
98 <Representation bandwidth="150" codecs="wvtt" id="3" startWithSAP="1">
99 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
100 <SegmentTemplate duration="368640" initialization="SUB$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="SUB$RepresentationID$_$Number%08d$.m4s?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" startNumber="0" timescale="90000"/>
101 </Representation>
102 </AdaptationSet>
103 </Period>
104 <Period duration="PT10M38.615999S" id="c-0-012-168">
105 <AssetIdentifier schemeIdUri="urn:org:dashif:asset-id:2013" value="8e38f89295bc497fabe10d272f0888a5"/>
106 <AdaptationSet audioSamplingRate="48000" contentType="audio" group="1" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
107 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="dd87d434-f1a2-4159-9137-0fe5382fe325"/>
108 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
109 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgZGQ4N2Q0MzRmMWEyNDE1OTkxMzcwZmU1MzgyZmUzMjUaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
110 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
111 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
112 </ContentProtection>
113 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
114 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIATgBOAFMASAAzAGEATAB4AFcAVQBHAFIATgB3AC8AbABPAEMALwBqAEoAUQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
115 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBOAE4AUwBIADMAYQBMAHgAVwBVAEcAUgBOAHcALwBsAE8AQwAvAGoASgBRAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
116 </ContentProtection>
117 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
118 <Representation bandwidth="129359" codecs="mp4a.40.5" id="0">
119 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
120 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
121 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/TK_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="TK_$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
122 </Representation>
123 </AdaptationSet>
124 <AdaptationSet contentType="video" id="1" maxFrameRate="30" maxHeight="648" maxWidth="1152" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
125 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="07af427b-8873-49b7-aaec-73cf2643b3c9"/>
126 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
127 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgMDdhZjQyN2I4ODczNDliN2FhZWM3M2NmMjY0M2IzYzkaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
128 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
129 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
130 </ContentProtection>
131 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
132 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIAZQAwAEsAdgBCADMATwBJAHQAMABtAHEANwBIAFAAUABKAGsATwB6AHkAUQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
133 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBlADAASwB2AEIAMwBPAEkAdAAwAG0AcQA3AEgAUABQAEoAawBPAHoAeQBRAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
134 </ContentProtection>
135 <SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="2"/>
136 <InbandEventStream schemeIdUri="com.uplynk.asset.metadata"/>
137 <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015"/>
138 <Representation bandwidth="1833286" codecs="avc1.4d001f" frameRate="30" height="612" id="H" scanType="progressive" width="1088">
139 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
140 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
141 </Representation>
142 <Representation bandwidth="2323480" codecs="avc1.4d001f" frameRate="30" height="648" id="I" scanType="progressive" width="1152">
143 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
144 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
145 </Representation>
146 <Representation bandwidth="1480429" codecs="avc1.4d001f" frameRate="30" height="594" id="G" scanType="progressive" width="1056">
147 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
148 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
149 </Representation>
150 <Representation bandwidth="1016365" codecs="avc1.4d001f" frameRate="30" height="558" id="F" scanType="progressive" width="992">
151 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
152 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
153 </Representation>
154 <Representation bandwidth="590220" codecs="avc1.4d001e" frameRate="30" height="432" id="E" scanType="progressive" width="768">
155 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
156 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
157 </Representation>
158 <Representation bandwidth="301685" codecs="avc1.420015" frameRate="30" height="252" id="D" scanType="progressive" width="448">
159 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
160 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
161 </Representation>
162 <Representation bandwidth="148829" codecs="avc1.42000c" frameRate="15" height="162" id="C" scanType="progressive" width="288">
163 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
164 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
165 </Representation>
166 <Representation bandwidth="69733" codecs="avc1.42000b" frameRate="15" height="108" id="B" scanType="progressive" width="192">
167 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
168 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
169 </Representation>
170 <Representation bandwidth="21404" codecs="avc1.42000a" frameRate="6" height="54" id="A" scanType="progressive" width="96">
171 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
172 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
173 </Representation>
174 </AdaptationSet>
175 <AdaptationSet contentType="video" id="2" maxFrameRate="30" maxHeight="1080" maxWidth="1920" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
176 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="f6e37a5f-4967-49ed-a553-42b75aa6fbe0"/>
177 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
178 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgZjZlMzdhNWY0OTY3NDllZGE1NTM0MmI3NWFhNmZiZTAaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
179 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
180 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
181 </ContentProtection>
182 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
183 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIAWAAzAHIAagA5AG0AZABKADcAVQBtAGwAVQAwAEsAMwBXAHEAYgA3ADQAQQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
184 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBYADMAcgBqADkAbQBkAEoANwBVAG0AbABVADAASwAzAFcAcQBiADcANABBAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
185 </ContentProtection>
186 <SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="1"/>
187 <InbandEventStream schemeIdUri="com.uplynk.asset.metadata"/>
188 <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015"/>
189 <Representation bandwidth="4829881" codecs="avc1.640028" frameRate="30" height="1080" id="K" scanType="progressive" width="1920">
190 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
191 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
192 </Representation>
193 <Representation bandwidth="3274750" codecs="avc1.64001f" frameRate="30" height="720" id="J" scanType="progressive" width="1280">
194 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
195 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
196 </Representation>
197 </AdaptationSet>
198 <AdaptationSet contentType="text" group="2" lang="en" mimeType="application/mp4" segmentAlignment="true">
199 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle"/>
200 <Representation bandwidth="150" codecs="wvtt" id="3" startWithSAP="1">
201 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
202 <SegmentTemplate duration="368640" initialization="SUB$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="SUB$RepresentationID$_$Number%08d$.m4s?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="4075919" startNumber="12" timescale="90000"/>
203 </Representation>
204 </AdaptationSet>
205 </Period>
206 <Period duration="PT10M38.615999S" id="c-0-168-324">
207 <AssetIdentifier schemeIdUri="urn:org:dashif:asset-id:2013" value="8e38f89295bc497fabe10d272f0888a5"/>
208 <AdaptationSet audioSamplingRate="48000" contentType="audio" group="1" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
209 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="dd87d434-f1a2-4159-9137-0fe5382fe325"/>
210 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
211 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgZGQ4N2Q0MzRmMWEyNDE1OTkxMzcwZmU1MzgyZmUzMjUaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
212 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
213 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
214 </ContentProtection>
215 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
216 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIATgBOAFMASAAzAGEATAB4AFcAVQBHAFIATgB3AC8AbABPAEMALwBqAEoAUQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
217 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBOAE4AUwBIADMAYQBMAHgAVwBVAEcAUgBOAHcALwBsAE8AQwAvAGoASgBRAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
218 </ContentProtection>
219 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
220 <Representation bandwidth="129359" codecs="mp4a.40.5" id="0">
221 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
222 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
223 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/TK_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="TK_$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
224 </Representation>
225 </AdaptationSet>
226 <AdaptationSet contentType="video" id="1" maxFrameRate="30" maxHeight="648" maxWidth="1152" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
227 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="07af427b-8873-49b7-aaec-73cf2643b3c9"/>
228 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
229 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgMDdhZjQyN2I4ODczNDliN2FhZWM3M2NmMjY0M2IzYzkaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
230 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
231 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
232 </ContentProtection>
233 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
234 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIAZQAwAEsAdgBCADMATwBJAHQAMABtAHEANwBIAFAAUABKAGsATwB6AHkAUQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
235 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBlADAASwB2AEIAMwBPAEkAdAAwAG0AcQA3AEgAUABQAEoAawBPAHoAeQBRAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
236 </ContentProtection>
237 <SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="2"/>
238 <InbandEventStream schemeIdUri="com.uplynk.asset.metadata"/>
239 <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015"/>
240 <Representation bandwidth="1833286" codecs="avc1.4d001f" frameRate="30" height="612" id="H" scanType="progressive" width="1088">
241 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
242 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
243 </Representation>
244 <Representation bandwidth="2323480" codecs="avc1.4d001f" frameRate="30" height="648" id="I" scanType="progressive" width="1152">
245 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
246 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
247 </Representation>
248 <Representation bandwidth="1480429" codecs="avc1.4d001f" frameRate="30" height="594" id="G" scanType="progressive" width="1056">
249 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
250 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
251 </Representation>
252 <Representation bandwidth="1016365" codecs="avc1.4d001f" frameRate="30" height="558" id="F" scanType="progressive" width="992">
253 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
254 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
255 </Representation>
256 <Representation bandwidth="590220" codecs="avc1.4d001e" frameRate="30" height="432" id="E" scanType="progressive" width="768">
257 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
258 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
259 </Representation>
260 <Representation bandwidth="301685" codecs="avc1.420015" frameRate="30" height="252" id="D" scanType="progressive" width="448">
261 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
262 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
263 </Representation>
264 <Representation bandwidth="148829" codecs="avc1.42000c" frameRate="15" height="162" id="C" scanType="progressive" width="288">
265 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
266 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
267 </Representation>
268 <Representation bandwidth="69733" codecs="avc1.42000b" frameRate="15" height="108" id="B" scanType="progressive" width="192">
269 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
270 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
271 </Representation>
272 <Representation bandwidth="21404" codecs="avc1.42000a" frameRate="6" height="54" id="A" scanType="progressive" width="96">
273 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
274 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
275 </Representation>
276 </AdaptationSet>
277 <AdaptationSet contentType="video" id="2" maxFrameRate="30" maxHeight="1080" maxWidth="1920" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
278 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="f6e37a5f-4967-49ed-a553-42b75aa6fbe0"/>
279 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
280 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgZjZlMzdhNWY0OTY3NDllZGE1NTM0MmI3NWFhNmZiZTAaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
281 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
282 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
283 </ContentProtection>
284 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
285 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIAWAAzAHIAagA5AG0AZABKADcAVQBtAGwAVQAwAEsAMwBXAHEAYgA3ADQAQQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
286 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBYADMAcgBqADkAbQBkAEoANwBVAG0AbABVADAASwAzAFcAcQBiADcANABBAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
287 </ContentProtection>
288 <SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="1"/>
289 <InbandEventStream schemeIdUri="com.uplynk.asset.metadata"/>
290 <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015"/>
291 <Representation bandwidth="4829881" codecs="avc1.640028" frameRate="30" height="1080" id="K" scanType="progressive" width="1920">
292 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
293 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
294 </Representation>
295 <Representation bandwidth="3274750" codecs="avc1.64001f" frameRate="30" height="720" id="J" scanType="progressive" width="1280">
296 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
297 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
298 </Representation>
299 </AdaptationSet>
300 <AdaptationSet contentType="text" group="2" lang="en" mimeType="application/mp4" segmentAlignment="true">
301 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle"/>
302 <Representation bandwidth="150" codecs="wvtt" id="3" startWithSAP="1">
303 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
304 <SegmentTemplate duration="368640" initialization="SUB$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="SUB$RepresentationID$_$Number%08d$.m4s?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="61553520" startNumber="168" timescale="90000"/>
305 </Representation>
306 </AdaptationSet>
307 </Period>
308 <Period duration="PT30.384000S" id="c-0-324-332">
309 <AssetIdentifier schemeIdUri="urn:org:dashif:asset-id:2013" value="8e38f89295bc497fabe10d272f0888a5"/>
310 <AdaptationSet audioSamplingRate="48000" contentType="audio" group="1" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
311 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="dd87d434-f1a2-4159-9137-0fe5382fe325"/>
312 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
313 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgZGQ4N2Q0MzRmMWEyNDE1OTkxMzcwZmU1MzgyZmUzMjUaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
314 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
315 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
316 </ContentProtection>
317 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
318 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIATgBOAFMASAAzAGEATAB4AFcAVQBHAFIATgB3AC8AbABPAEMALwBqAEoAUQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
319 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBOAE4AUwBIADMAYQBMAHgAVwBVAEcAUgBOAHcALwBsAE8AQwAvAGoASgBRAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
320 </ContentProtection>
321 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
322 <Representation bandwidth="129359" codecs="mp4a.40.5" id="0">
323 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
324 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
325 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/TK_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="TK_$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
326 </Representation>
327 </AdaptationSet>
328 <AdaptationSet contentType="video" id="1" maxFrameRate="30" maxHeight="648" maxWidth="1152" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
329 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="07af427b-8873-49b7-aaec-73cf2643b3c9"/>
330 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
331 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgMDdhZjQyN2I4ODczNDliN2FhZWM3M2NmMjY0M2IzYzkaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
332 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
333 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
334 </ContentProtection>
335 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
336 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIAZQAwAEsAdgBCADMATwBJAHQAMABtAHEANwBIAFAAUABKAGsATwB6AHkAUQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
337 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBlADAASwB2AEIAMwBPAEkAdAAwAG0AcQA3AEgAUABQAEoAawBPAHoAeQBRAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
338 </ContentProtection>
339 <SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="2"/>
340 <InbandEventStream schemeIdUri="com.uplynk.asset.metadata"/>
341 <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015"/>
342 <Representation bandwidth="1833286" codecs="avc1.4d001f" frameRate="30" height="612" id="H" scanType="progressive" width="1088">
343 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
344 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
345 </Representation>
346 <Representation bandwidth="2323480" codecs="avc1.4d001f" frameRate="30" height="648" id="I" scanType="progressive" width="1152">
347 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
348 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
349 </Representation>
350 <Representation bandwidth="1480429" codecs="avc1.4d001f" frameRate="30" height="594" id="G" scanType="progressive" width="1056">
351 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
352 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
353 </Representation>
354 <Representation bandwidth="1016365" codecs="avc1.4d001f" frameRate="30" height="558" id="F" scanType="progressive" width="992">
355 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
356 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
357 </Representation>
358 <Representation bandwidth="590220" codecs="avc1.4d001e" frameRate="30" height="432" id="E" scanType="progressive" width="768">
359 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
360 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
361 </Representation>
362 <Representation bandwidth="301685" codecs="avc1.420015" frameRate="30" height="252" id="D" scanType="progressive" width="448">
363 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
364 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
365 </Representation>
366 <Representation bandwidth="148829" codecs="avc1.42000c" frameRate="15" height="162" id="C" scanType="progressive" width="288">
367 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
368 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
369 </Representation>
370 <Representation bandwidth="69733" codecs="avc1.42000b" frameRate="15" height="108" id="B" scanType="progressive" width="192">
371 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
372 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
373 </Representation>
374 <Representation bandwidth="21404" codecs="avc1.42000a" frameRate="6" height="54" id="A" scanType="progressive" width="96">
375 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
376 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
377 </Representation>
378 </AdaptationSet>
379 <AdaptationSet contentType="video" id="2" maxFrameRate="30" maxHeight="1080" maxWidth="1920" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
380 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="f6e37a5f-4967-49ed-a553-42b75aa6fbe0"/>
381 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
382 <cenc:pssh>AAAAk3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHMIARIgZjZlMzdhNWY0OTY3NDllZGE1NTM0MmI3NWFhNmZiZTAaBHZkbXMiRzhlMzhmODkyOTViYzQ5N2ZhYmUxMGQyNzJmMDg4OGE1X2F1c2UyXzEwMjA2ZjRjN2ZhNDQ3ODI4ZTIyNDhlNGE5ZDkwMDJh</cenc:pssh>
383 <ms:laurl licenseUrl="https://content-ause2.uplynk.com/wv?b=8e38f89295bc497fabe10d272f0888a5&amp;v=8e38f89295bc497fabe10d272f0888a5&amp;pbs=10206f4c7fa447828e2248e4a9d9002a"/>
384 <!--If asked for a license URL specify: https://content.uplynk.com/wv (widevine) or https://content.uplynk.com/pr (playready)-->
385 </ContentProtection>
386 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95" value="MSPR 3.0">
387 <cenc:pssh>AAAEinBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABGo8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAyAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARABTAD4APABLAEkARAAgAEEATABHAEkARAA9ACIAQQBFAFMAQwBUAFIAIgAgAFYAQQBMAFUARQA9ACIAWAAzAHIAagA5AG0AZABKADcAVQBtAGwAVQAwAEsAMwBXAHEAYgA3ADQAQQA9AD0AIgA+ADwALwBLAEkARAA+ADwALwBLAEkARABTAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AYwBvAG4AdABlAG4AdAAtAGEAdQBzAGUAMgAuAHUAcABsAHkAbgBrAC4AYwBvAG0ALwBwAHIAPwBiAD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwB2AD0AOABlADMAOABmADgAOQAyADkANQBiAGMANAA5ADcAZgBhAGIAZQAxADAAZAAyADcAMgBmADAAOAA4ADgAYQA1ACYAYQBtAHAAOwBwAGIAcwA9ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMATwBOAFQARQBOAFQAXwBJAEQAPgA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAPAAvAEMATwBOAFQARQBOAFQAXwBJAEQAPgA8AEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4AYQB1AHMAZQAyADwALwBDAE8ATgBUAEUATgBUAF8AWgBPAE4ARQA+ADwAUABCAFMAPgAxADAAMgAwADYAZgA0AGMANwBmAGEANAA0ADcAOAAyADgAZQAyADIANAA4AGUANABhADkAZAA5ADAAMAAyAGEAPAAvAFAAQgBTAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
388 <mspr:pro>dAQAAAEAAQBqBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADIALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAFMAPgA8AEsASQBEACAAQQBMAEcASQBEAD0AIgBBAEUAUwBDAFQAUgAiACAAVgBBAEwAVQBFAD0AIgBYADMAcgBqADkAbQBkAEoANwBVAG0AbABVADAASwAzAFcAcQBiADcANABBAD0APQAiAD4APAAvAEsASQBEAD4APAAvAEsASQBEAFMAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBjAG8AbgB0AGUAbgB0AC0AYQB1AHMAZQAyAC4AdQBwAGwAeQBuAGsALgBjAG8AbQAvAHAAcgA/AGIAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHYAPQA4AGUAMwA4AGYAOAA5ADIAOQA1AGIAYwA0ADkANwBmAGEAYgBlADEAMABkADIANwAyAGYAMAA4ADgAOABhADUAJgBhAG0AcAA7AHAAYgBzAD0AMQAwADIAMAA2AGYANABjADcAZgBhADQANAA3ADgAMgA4AGUAMgAyADQAOABlADQAYQA5AGQAOQAwADAAMgBhADwALwBMAEEAXwBVAFIATAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBPAE4AVABFAE4AVABfAEkARAA+ADgAZQAzADgAZgA4ADkAMgA5ADUAYgBjADQAOQA3AGYAYQBiAGUAMQAwAGQAMgA3ADIAZgAwADgAOAA4AGEANQA8AC8AQwBPAE4AVABFAE4AVABfAEkARAA+ADwAQwBPAE4AVABFAE4AVABfAFoATwBOAEUAPgBhAHUAcwBlADIAPAAvAEMATwBOAFQARQBOAFQAXwBaAE8ATgBFAD4APABQAEIAUwA+ADEAMAAyADAANgBmADQAYwA3AGYAYQA0ADQANwA4ADIAOABlADIAMgA0ADgAZQA0AGEAOQBkADkAMAAwADIAYQA8AC8AUABCAFMAPgA8AC8AQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</mspr:pro>
389 </ContentProtection>
390 <SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="1"/>
391 <InbandEventStream schemeIdUri="com.uplynk.asset.metadata"/>
392 <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015"/>
393 <Representation bandwidth="4829881" codecs="avc1.640028" frameRate="30" height="1080" id="K" scanType="progressive" width="1920">
394 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
395 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
396 </Representation>
397 <Representation bandwidth="3274750" codecs="avc1.64001f" frameRate="30" height="720" id="J" scanType="progressive" width="1280">
398 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
399 <SegmentTemplate duration="368640" initialization="https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="$RepresentationID$$Number%08d$.m4f?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
400 </Representation>
401 </AdaptationSet>
402 <AdaptationSet contentType="text" group="2" lang="en" mimeType="application/mp4" segmentAlignment="true">
403 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle"/>
404 <Representation bandwidth="150" codecs="wvtt" id="3" startWithSAP="1">
405 <BaseURL>https://x-disney-datg-stgec.uplynk.com/ausw/slices/8e3/21885d134fa441488df8e1d7acee8c66/8e38f89295bc497fabe10d272f0888a5/</BaseURL>
406 <SegmentTemplate duration="368640" initialization="SUB$RepresentationID$_init.mp4?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" media="SUB$RepresentationID$_$Number%08d$.m4s?pbs=10206f4c7fa447828e2248e4a9d9002a&amp;drm=1" presentationTimeOffset="119031120" startNumber="324" timescale="90000"/>
407 </Representation>
408 </AdaptationSet>
409 </Period>
410 </MPD>
+0
-35
src/parser/testfiles/Periods_1.mpd less more
0 <?xml version="1.0" encoding="utf-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="1970-01-01T00:00:00Z" id="Config part of url maybe?" maxSegmentDuration="PT2S" minBufferTime="PT2S" minimumUpdatePeriod="PT1795S" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-simple" publishTime="2020-06-10T12:33:21Z" timeShiftBufferDepth="PT5M" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
2 <ProgramInformation>
3 <Title>Media Presentation Description from DASH-IF live simulator</Title>
4 </ProgramInformation>
5 <BaseURL>https://livesim.dashif.org/livesim/sts_1591792401/sid_61fca6ec/periods_1/testpic_2s/</BaseURL>
6 <Period id="p442164" start="PT1591790400S">
7 <AdaptationSet contentType="audio" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
8 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
9 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" presentationTimeOffset="1591790400" startNumber="795895200" />
10 <Representation audioSamplingRate="48000" bandwidth="48000" codecs="mp4a.40.2" id="A48">
11 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
12 </Representation>
13 </AdaptationSet>
14 <AdaptationSet contentType="video" maxFrameRate="60/2" maxHeight="360" maxWidth="640" mimeType="video/mp4" minHeight="360" minWidth="640" par="16:9" segmentAlignment="true" startWithSAP="1">
15 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
16 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" presentationTimeOffset="1591790400" startNumber="795895200" />
17 <Representation bandwidth="300000" codecs="avc1.64001e" frameRate="60/2" height="360" id="V300" sar="1:1" width="640" />
18 </AdaptationSet>
19 </Period>
20 <Period id="p442165" start="PT1591794000S">
21 <AdaptationSet contentType="audio" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
22 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
23 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" presentationTimeOffset="1591794000" startNumber="795897000" />
24 <Representation audioSamplingRate="48000" bandwidth="48000" codecs="mp4a.40.2" id="A48">
25 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
26 </Representation>
27 </AdaptationSet>
28 <AdaptationSet contentType="video" maxFrameRate="60/2" maxHeight="360" maxWidth="640" mimeType="video/mp4" minHeight="360" minWidth="640" par="16:9" segmentAlignment="true" startWithSAP="1">
29 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
30 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" presentationTimeOffset="1591794000" startNumber="795897000" />
31 <Representation bandwidth="300000" codecs="avc1.64001e" frameRate="60/2" height="360" id="V300" sar="1:1" width="640" />
32 </AdaptationSet>
33 </Period>
34 </MPD>
+0
-5
src/parser/testfiles/Periods_1.strm less more
0 #KODIPROP:inputstreamaddon=inputstream.adaptive
1 #KODIPROP:inputstream=inputstream.adaptive
2 #KODIPROP:inputstream.adaptive.manifest_type=mpd
3 #KODIPROP:mimetype=application/dash+xml
4 https://livesim.dashif.org/livesim/periods_1/testpic_2s/Manifest.mpd
+0
-21
src/parser/testfiles/Startnumber_1_explicit.mpd less more
0 <?xml version="1.0" encoding="utf-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="1970-01-01T00:00:00Z" id="Config part of url maybe?" maxSegmentDuration="PT2S" minBufferTime="PT2S" minimumUpdatePeriod="P100Y" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-simple" testTime="2020-06-09T07:17:36Z" publishTime="2020-06-09T07:17:36Z" timeShiftBufferDepth="PT5M" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
2 <ProgramInformation>
3 <Title>Media Presentation Description from DASH-IF live simulator</Title>
4 </ProgramInformation>
5 <BaseURL>http://livesim.dashif.org/livesim/sts_1591687056/sid_4e83ea2b/snr_1/testpic_2s/</BaseURL>
6 <Period id="p0" start="PT0S">
7 <AdaptationSet contentType="audio" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
8 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
9 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="1" />
10 <Representation audioSamplingRate="48000" bandwidth="48000" codecs="mp4a.40.2" id="A48">
11 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
12 </Representation>
13 </AdaptationSet>
14 <AdaptationSet contentType="video" maxFrameRate="60/2" maxHeight="360" maxWidth="640" mimeType="video/mp4" minHeight="360" minWidth="640" par="16:9" segmentAlignment="true" startWithSAP="1">
15 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
16 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="1" />
17 <Representation bandwidth="300000" codecs="avc1.64001e" frameRate="60/2" height="360" id="V300" sar="1:1" width="640" />
18 </AdaptationSet>
19 </Period>
20 </MPD>
+0
-5
src/parser/testfiles/Startnumber_1_explicit.strm less more
0 #KODIPROP:inputstreamaddon=inputstream.adaptive
1 #KODIPROP:inputstream=inputstream.adaptive
2 #KODIPROP:inputstream.adaptive.manifest_type=mpd
3 #KODIPROP:mimetype=application/dash+xml
4 http://livesim.dashif.org/livesim/snr_1/testpic_2s/Manifest.mpd
+0
-21
src/parser/testfiles/Startnumber_200.mpd less more
0 <?xml version="1.0" encoding="utf-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="1970-01-01T00:00:00Z" id="Config part of url maybe?" maxSegmentDuration="PT2S" minBufferTime="PT2S" minimumUpdatePeriod="P100Y" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-simple" testTime="2020-06-08T22:31:20Z" publishTime="2020-06-08T22:31:20Z" timeShiftBufferDepth="PT5M" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
2 <ProgramInformation>
3 <Title>Media Presentation Description from DASH-IF live simulator</Title>
4 </ProgramInformation>
5 <BaseURL>http://livesim.dashif.org/livesim/sts_1591655480/sid_44bedc8d/snr_200/testpic_2s/</BaseURL>
6 <Period id="p0" start="PT0S">
7 <AdaptationSet contentType="audio" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
8 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
9 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="200" />
10 <Representation audioSamplingRate="48000" bandwidth="48000" codecs="mp4a.40.2" id="A48">
11 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
12 </Representation>
13 </AdaptationSet>
14 <AdaptationSet contentType="video" maxFrameRate="60/2" maxHeight="360" maxWidth="640" mimeType="video/mp4" minHeight="360" minWidth="640" par="16:9" segmentAlignment="true" startWithSAP="1">
15 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
16 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="200" />
17 <Representation bandwidth="300000" codecs="avc1.64001e" frameRate="60/2" height="360" id="V300" sar="1:1" width="640" />
18 </AdaptationSet>
19 </Period>
20 </MPD>
+0
-5
src/parser/testfiles/Startnumber_200.strm less more
0 #KODIPROP:inputstreamaddon=inputstream.adaptive
1 #KODIPROP:inputstream=inputstream.adaptive
2 #KODIPROP:inputstream.adaptive.manifest_type=mpd
3 #KODIPROP:mimetype=application/dash+xml
4 http://livesim.dashif.org/livesim/snr_200/testpic_2s/Manifest.mpd
0 set(BINARY Test${CMAKE_PROJECT_NAME})
1
2 find_package( Threads )
3
4 add_executable(${BINARY}
5 TestMain.cpp
6 TestDASHTree.cpp
7 TestHLSTree.cpp
8 TestHelper.cpp
9 ../parser/DASHTree.cpp
10 ../parser/HLSTree.cpp
11 ../parser/PRProtectionParser.cpp
12 ../common/AdaptiveStream.cpp
13 ../common/AdaptiveTree.cpp
14 ../helpers.cpp
15 ../oscompat.cpp
16 )
17
18 target_link_libraries(${BINARY} PRIVATE ${EXPAT_LIBRARIES} ${GTEST_LIBRARIES} Threads::Threads ${CMAKE_DL_LIBS})
19
20 set(TEST_DATA_DIR "${CMAKE_SOURCE_DIR}/src/test/manifests")
21 add_test(NAME manifest_tests COMMAND ${BINARY} "${TEST_DATA_DIR}")
0 #include "TestHelper.h"
1
2 #include <gtest/gtest.h>
3
4
5 class DASHTreeTest : public ::testing::Test
6 {
7 protected:
8 void SetUp() override
9 {
10 tree = new DASHTestTree;
11 tree->supportedKeySystem_ = "urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED";
12 }
13
14 void TearDown() override
15 {
16 testHelper::effectiveUrl.clear();
17 delete tree;
18 tree = nullptr;
19 }
20
21 void OpenTestFile(std::string testfilename, std::string url, std::string manifestHeaders)
22 {
23 SetFileName(testHelper::testFile, testfilename);
24 if (!tree->open(url, manifestHeaders))
25 {
26 printf("open() failed");
27 exit(1);
28 }
29 }
30
31 DASHTestTree* tree;
32 };
33
34 class DASHTreeAdaptiveStreamTest : public DASHTreeTest
35 {
36 protected:
37 void SetUp() override
38 {
39 testHelper::lastDownloadUrl.clear();
40 DASHTreeTest::SetUp();
41 videoStream = new TestAdaptiveStream(*tree, adaptive::AdaptiveTree::StreamType::VIDEO);
42 }
43
44 void TearDown() override
45 {
46 delete videoStream;
47 videoStream = nullptr;
48 DASHTreeTest::TearDown();
49 }
50
51 void ReadSegments(TestAdaptiveStream* stream,
52 uint32_t bytesToRead,
53 uint32_t reads,
54 bool clearUrls = true)
55 {
56 // Rudimentary simulation of running a stream and consuming segment data.
57 // Normally AdaptiveStream::read is called from a sample reader for the exact
58 // amount of bytes needed to supply the next sample until the segment is
59 // exhausted. Here our segments are a fixed size (16 bytes) and for testing we can
60 // optimally call to read 1 segment per AdaptiveStream::read
61
62 if (clearUrls)
63 downloadedUrls.clear();
64
65 for (unsigned int i = 0; i < reads; i++)
66 if (stream->read(buf, bytesToRead))
67 downloadedUrls.push_back(testHelper::lastDownloadUrl);
68 else
69 break;
70 }
71
72 TestAdaptiveStream* videoStream;
73 std::vector<std::string> downloadedUrls;
74 std::map<std::string, std::string> mediaHeaders;
75 unsigned char buf[16];
76 };
77
78
79 TEST_F(DASHTreeTest, CalculateBaseURL)
80 {
81 // No BaseURL tags
82 OpenTestFile("mpd/segtpl.mpd", "https://foo.bar/mpd/test.mpd", "");
83 EXPECT_EQ(tree->base_url_, "https://foo.bar/mpd/");
84 }
85
86 TEST_F(DASHTreeTest, CalculateBaseDomain)
87 {
88 OpenTestFile("mpd/segtpl.mpd", "https://foo.bar/mpd/test.mpd", "");
89
90 EXPECT_EQ(tree->base_domain_, "https://foo.bar");
91 }
92
93 TEST_F(DASHTreeTest, CalculateEffectiveUrlFromRedirect)
94 {
95 // like base_url_, effective_url_ should be path, not including filename
96 testHelper::effectiveUrl = "https://foo.bar/mpd/stream.mpd";
97 OpenTestFile("mpd/segtpl.mpd", "https://bit.ly/abcd", "");
98
99 EXPECT_EQ(tree->effective_url_, "https://foo.bar/mpd/");
100 }
101
102 TEST_F(DASHTreeTest, CalculateBaseURLFromBaseURLTag)
103 {
104 OpenTestFile("mpd/segtpl_baseurlinmpd.mpd", "https://bit.ly/abcd", "");
105 EXPECT_EQ(tree->current_period_->base_url_, "https://foo.bar/mpd/");
106 }
107
108 TEST_F(DASHTreeTest, CalculateSegTplWithNoSlashs)
109 {
110 // BaseURL inside period with no trailing slash, uses segtpl, media/init doesn't start with slash
111 OpenTestFile("mpd/segtpl_baseurl_noslashs.mpd", "https://foo.bar/initialpath/test.mpd", "");
112
113 adaptive::AdaptiveTree::SegmentTemplate segtpl =
114 tree->periods_[0]->adaptationSets_[0]->representations_[0]->segtpl_;
115
116 EXPECT_EQ(segtpl.initialization, "https://foo.bar/guid.ism/dash/media-video=66000.dash");
117 EXPECT_EQ(segtpl.media, "https://foo.bar/guid.ism/dash/media-video=66000-$Number$.m4s");
118 }
119
120 TEST_F(DASHTreeTest, CalculateSegTplWithMediaInitSlash)
121 {
122 // BaseURL inside period with no trailing slash, uses segtpl, media/init starts with slash
123 OpenTestFile("mpd/segtpl_slash_baseurl_noslash.mpd", "https://foo.bar/initialpath/test.mpd", "");
124
125 adaptive::AdaptiveTree::SegmentTemplate segtpl =
126 tree->periods_[0]->adaptationSets_[0]->representations_[0]->segtpl_;
127
128 EXPECT_EQ(segtpl.initialization, "https://foo.bar/media-video=66000.dash");
129 EXPECT_EQ(segtpl.media, "https://foo.bar/media-video=66000-$Number$.m4s");
130 }
131
132 TEST_F(DASHTreeTest, CalculateSegTplWithBaseURLSlash)
133 {
134 // BaseURL inside period with trailing slash, uses segtpl, media/init doesn't start with slash
135 OpenTestFile("mpd/segtpl_noslash_baseurl_slash.mpd", "https://foo.bar/initialpath/test.mpd", "");
136
137 adaptive::AdaptiveTree::SegmentTemplate segtpl =
138 tree->periods_[0]->adaptationSets_[0]->representations_[0]->segtpl_;
139
140 EXPECT_EQ(segtpl.initialization, "https://foo.bar/guid.ism/dash/media-video=66000.dash");
141 EXPECT_EQ(segtpl.media, "https://foo.bar/guid.ism/dash/media-video=66000-$Number$.m4s");
142 }
143
144 TEST_F(DASHTreeTest, CalculateSegTplWithBaseURLAndMediaInitSlash)
145 {
146 // BaseURL inside period with trailing slash, uses segtpl, media/init starts with slash
147 OpenTestFile("mpd/segtpl_slash_baseurl_slash.mpd", "https://foo.bar/initialpath/test.mpd", "");
148
149 adaptive::AdaptiveTree::SegmentTemplate segtpl =
150 tree->periods_[0]->adaptationSets_[0]->representations_[0]->segtpl_;
151
152 EXPECT_EQ(segtpl.initialization, "https://foo.bar/media-video=66000.dash");
153 EXPECT_EQ(segtpl.media, "https://foo.bar/media-video=66000-$Number$.m4s");
154 }
155
156 TEST_F(DASHTreeTest, CalculateBaseURLInRepRangeBytes)
157 {
158 // Byteranged indexing
159 OpenTestFile("mpd/segmentbase.mpd", "https://foo.bar/test.mpd", "");
160 EXPECT_EQ(tree->periods_[0]->adaptationSets_[0]->representations_[0]->url_,
161 "https://foo.bar/video/23.98p/r0/vid10.mp4");
162 }
163
164 TEST_F(DASHTreeTest, CalculateCorrectSegmentNumbersFromSegmentTimeline)
165 {
166 // SegmentTimeline, availabilityStartTime is greater than epoch
167 OpenTestFile("mpd/segtimeline_live_ast.mpd", "", "");
168
169 adaptive::SPINCACHE<adaptive::AdaptiveTree::Segment> segments =
170 tree->periods_[0]->adaptationSets_[0]->representations_[0]->segments_;
171
172 EXPECT_EQ(segments.size(), 13);
173 EXPECT_EQ(segments[0]->range_end_, 487050);
174 EXPECT_EQ(segments[12]->range_end_, 487062);
175 }
176
177 TEST_F(DASHTreeTest, CalculateCorrectSegmentNumbersFromSegmentTemplateWithPTO)
178 {
179 tree->mock_time = 1617223929L;
180
181 OpenTestFile("mpd/segtpl_pto.mpd", "", "");
182
183 adaptive::SPINCACHE<adaptive::AdaptiveTree::Segment> segments =
184 tree->periods_[0]->adaptationSets_[0]->representations_[0]->segments_;
185
186 EXPECT_EQ(segments.size(), 451);
187 EXPECT_EQ(segments[0]->range_end_, 404305525);
188 EXPECT_EQ(segments[450]->range_end_, 404305975);
189 }
190
191 TEST_F(DASHTreeTest, CalculateCorrectSegmentNumbersFromSegmentTemplateWithOldPublishTime)
192 {
193 tree->mock_time = 1617229334L;
194
195 OpenTestFile("mpd/segtpl_old_publish_time.mpd", "", "");
196
197 adaptive::SPINCACHE<adaptive::AdaptiveTree::Segment> segments =
198 tree->periods_[0]->adaptationSets_[0]->representations_[0]->segments_;
199
200 EXPECT_EQ(segments.size(), 31);
201 EXPECT_EQ(segments[0]->range_end_, 603272);
202 EXPECT_EQ(segments[30]->range_end_, 603302);
203 }
204
205 TEST_F(DASHTreeTest, CalculateLiveWithPresentationDuration)
206 {
207 OpenTestFile("mpd/segtimeline_live_pd.mpd", "", "");
208 EXPECT_EQ(tree->has_timeshift_buffer_, true);
209 }
210
211 TEST_F(DASHTreeTest, CalculateStaticWithPresentationDuration)
212 {
213 OpenTestFile("mpd/segtpl_slash_baseurl_slash.mpd", "", "");
214 EXPECT_EQ(tree->has_timeshift_buffer_, false);
215 }
216
217 TEST_F(DASHTreeTest, CalculateCorrectFpsScaleFromAdaptionSet)
218 {
219 OpenTestFile("mpd/fps_scale_adaptset.mpd", "", "");
220
221 EXPECT_EQ(tree->periods_[0]->adaptationSets_[0]->representations_[0]->fpsRate_, 24000);
222 EXPECT_EQ(tree->periods_[0]->adaptationSets_[0]->representations_[0]->fpsScale_, 1001);
223
224 EXPECT_EQ(tree->periods_[0]->adaptationSets_[1]->representations_[0]->fpsRate_, 30);
225 EXPECT_EQ(tree->periods_[0]->adaptationSets_[1]->representations_[0]->fpsScale_, 1);
226
227 EXPECT_EQ(tree->periods_[0]->adaptationSets_[2]->representations_[0]->fpsRate_, 25);
228 EXPECT_EQ(tree->periods_[0]->adaptationSets_[2]->representations_[0]->fpsScale_, 1);
229
230 EXPECT_EQ(tree->periods_[0]->adaptationSets_[3]->representations_[0]->fpsRate_, 25000);
231 EXPECT_EQ(tree->periods_[0]->adaptationSets_[3]->representations_[0]->fpsScale_, 1000);
232
233 EXPECT_EQ(tree->periods_[0]->adaptationSets_[4]->representations_[0]->fpsRate_, 25);
234 EXPECT_EQ(tree->periods_[0]->adaptationSets_[4]->representations_[0]->fpsScale_, 1);
235
236 EXPECT_EQ(tree->periods_[0]->adaptationSets_[5]->representations_[0]->fpsRate_, 30);
237 EXPECT_EQ(tree->periods_[0]->adaptationSets_[5]->representations_[0]->fpsScale_, 1);
238
239 EXPECT_EQ(tree->periods_[0]->adaptationSets_[6]->representations_[0]->fpsRate_, 25000);
240 EXPECT_EQ(tree->periods_[0]->adaptationSets_[6]->representations_[0]->fpsScale_, 1000);
241 }
242
243 TEST_F(DASHTreeAdaptiveStreamTest, replacePlaceHolders)
244 {
245 OpenTestFile("mpd/placeholders.mpd", "https://foo.bar/placeholders.mpd", "");
246
247 videoStream->prepare_stream(tree->current_period_->adaptationSets_[0], 0, 0, 0, 0, 0, 0, 0,
248 mediaHeaders);
249 videoStream->start_stream(~0, 0, 0, true);
250 ReadSegments(videoStream, 16, 5);
251 EXPECT_EQ(downloadedUrls[0], "https://foo.bar/videosd-400x224/segment_487050.m4s");
252 EXPECT_EQ(downloadedUrls.back(), "https://foo.bar/videosd-400x224/segment_487054.m4s");
253
254 videoStream->prepare_stream(tree->current_period_->adaptationSets_[1], 0, 0, 0, 0, 0, 0, 0,
255 mediaHeaders);
256 videoStream->start_stream(~0, 0, 0, true);
257 ReadSegments(videoStream, 16, 5);
258 EXPECT_EQ(downloadedUrls[0], "https://foo.bar/videosd-400x224/segment_00487050.m4s");
259 EXPECT_EQ(downloadedUrls.back(), "https://foo.bar/videosd-400x224/segment_00487054.m4s");
260
261 videoStream->prepare_stream(tree->current_period_->adaptationSets_[2], 0, 0, 0, 0, 0, 0, 0,
262 mediaHeaders);
263 videoStream->start_stream(~0, 0, 0, true);
264 ReadSegments(videoStream, 16, 5);
265 EXPECT_EQ(downloadedUrls[0], "https://foo.bar/videosd-400x224/segment_263007000000.m4s");
266 EXPECT_EQ(downloadedUrls.back(), "https://foo.bar/videosd-400x224/segment_263009160000.m4s");
267
268 videoStream->prepare_stream(tree->current_period_->adaptationSets_[3], 0, 0, 0, 0, 0, 0, 0,
269 mediaHeaders);
270 videoStream->start_stream(~0, 0, 0, true);
271 ReadSegments(videoStream, 16, 5);
272 EXPECT_EQ(downloadedUrls[0], "https://foo.bar/videosd-400x224/segment_00263007000000");
273 EXPECT_EQ(downloadedUrls.back(), "https://foo.bar/videosd-400x224/segment_00263009160000");
274
275 videoStream->prepare_stream(tree->current_period_->adaptationSets_[4], 0, 0, 0, 0, 0, 0, 0,
276 mediaHeaders);
277 videoStream->start_stream(~0, 0, 0, true);
278 ReadSegments(videoStream, 16, 5);
279 EXPECT_EQ(downloadedUrls[0], "https://foo.bar/videosd-400x224/segment_487050.m4s?t=263007000000");
280 EXPECT_EQ(downloadedUrls.back(), "https://foo.bar/videosd-400x224/segment_487054.m4s?t=263009160000");
281
282 videoStream->prepare_stream(tree->current_period_->adaptationSets_[5], 0, 0, 0, 0, 0, 0, 0,
283 mediaHeaders);
284 videoStream->start_stream(~0, 0, 0, true);
285 ReadSegments(videoStream, 16, 5);
286 EXPECT_EQ(downloadedUrls[0], "https://foo.bar/videosd-400x224/segment_00487050.m4s?t=00263007000000");
287 EXPECT_EQ(downloadedUrls.back(), "https://foo.bar/videosd-400x224/segment_00487054.m4s?t=00263009160000");
288
289 videoStream->prepare_stream(tree->current_period_->adaptationSets_[6], 0, 0, 0, 0, 0, 0, 0,
290 mediaHeaders);
291 videoStream->start_stream(~0, 0, 0, true);
292 ReadSegments(videoStream, 16, 5);
293 EXPECT_EQ(downloadedUrls[0], "https://foo.bar/videosd-400x224/segment.m4s");
294 EXPECT_EQ(downloadedUrls.back(), "https://foo.bar/videosd-400x224/segment.m4s");
295 }
296
297 TEST_F(DASHTreeTest, updateParameterLiveSegmentTimeline)
298 {
299 OpenTestFile("mpd/segtimeline_live_pd.mpd", "", "");
300 EXPECT_EQ(tree->update_parameter_, "full");
301 }
302
303 TEST_F(DASHTreeTest, updateParameterProvidedLiveSegmentTimeline)
304 {
305 tree->update_parameter_ = "ABC";
306 OpenTestFile("mpd/segtimeline_live_pd.mpd", "", "");
307 EXPECT_EQ(tree->update_parameter_, "ABC");
308 }
309
310 TEST_F(DASHTreeTest, updateParameterVODSegmentTimeline)
311 {
312 OpenTestFile("mpd/segtimeline_vod.mpd", "", "");
313 EXPECT_EQ(tree->update_parameter_, "");
314 }
315
316 TEST_F(DASHTreeTest, updateParameterLiveSegmentTemplate)
317 {
318 OpenTestFile("mpd/segtpl_pto.mpd", "", "");
319 EXPECT_EQ(tree->update_parameter_, "");
320 }
321
322 TEST_F(DASHTreeTest, updateParameterVODSegmentTemplate)
323 {
324 OpenTestFile("mpd/segtpl_baseurl_noslashs.mpd", "", "");
325 EXPECT_EQ(tree->update_parameter_, "");
326 }
327
328 TEST_F(DASHTreeTest, CalculatePsshDefaultKid)
329 {
330 OpenTestFile("mpd/pssh_default_kid.mpd", "", "");
331
332 EXPECT_EQ(tree->periods_[0]->psshSets_[1].pssh_, "ABCDEFGH");
333 EXPECT_EQ(tree->periods_[0]->psshSets_[1].defaultKID_.length(), 16);
334
335 EXPECT_EQ(tree->periods_[0]->psshSets_[2].pssh_, "HGFEDCBA");
336 EXPECT_EQ(tree->periods_[0]->psshSets_[2].defaultKID_.length(), 16);
337 }
338
339 TEST_F(DASHTreeAdaptiveStreamTest, subtitles)
340 {
341 OpenTestFile("mpd/subtitles.mpd", "https://foo.bar/subtitles.mpd", "");
342
343 // Required as gtest can not access the hidden attribute directly in EXPECT_EQ
344 static const uint16_t SUBTITLESTREAM = DASHTestTree::Representation::SUBTITLESTREAM;
345
346 EXPECT_EQ(tree->periods_[0]->adaptationSets_[1]->type_, DASHTestTree::SUBTITLE);
347 EXPECT_EQ(tree->periods_[0]->adaptationSets_[1]->representations_[0]->flags_, SUBTITLESTREAM);
348 EXPECT_EQ(tree->periods_[0]->adaptationSets_[1]->representations_[0]->codecs_, "ttml");
349
350 EXPECT_EQ(tree->periods_[0]->adaptationSets_[2]->type_, DASHTestTree::SUBTITLE);
351 EXPECT_EQ(tree->periods_[0]->adaptationSets_[2]->representations_[0]->flags_, SUBTITLESTREAM);
352 EXPECT_EQ(tree->periods_[0]->adaptationSets_[2]->representations_[0]->codecs_, "ttml");
353
354 EXPECT_EQ(tree->periods_[0]->adaptationSets_[3]->type_, DASHTestTree::SUBTITLE);
355 EXPECT_EQ(tree->periods_[0]->adaptationSets_[3]->representations_[0]->flags_, SUBTITLESTREAM);
356 EXPECT_EQ(tree->periods_[0]->adaptationSets_[3]->representations_[0]->codecs_, "ttml");
357
358 EXPECT_EQ(tree->periods_[0]->adaptationSets_[4]->type_, DASHTestTree::SUBTITLE);
359 EXPECT_EQ(tree->periods_[0]->adaptationSets_[4]->representations_[0]->flags_, SUBTITLESTREAM);
360 EXPECT_EQ(tree->periods_[0]->adaptationSets_[4]->representations_[0]->codecs_, "ttml");
361
362 EXPECT_EQ(tree->periods_[0]->adaptationSets_[5]->type_, DASHTestTree::SUBTITLE);
363 EXPECT_EQ(tree->periods_[0]->adaptationSets_[5]->representations_[0]->flags_, SUBTITLESTREAM);
364 EXPECT_EQ(tree->periods_[0]->adaptationSets_[5]->representations_[0]->codecs_, "wvtt");
365
366 EXPECT_EQ(tree->periods_[0]->adaptationSets_[6]->type_, DASHTestTree::SUBTITLE);
367 EXPECT_EQ(tree->periods_[0]->adaptationSets_[6]->representations_[0]->flags_, SUBTITLESTREAM);
368 EXPECT_EQ(tree->periods_[0]->adaptationSets_[6]->representations_[0]->codecs_, "wvtt");
369
370 EXPECT_EQ(tree->periods_[0]->adaptationSets_[7]->type_, DASHTestTree::SUBTITLE);
371 EXPECT_EQ(tree->periods_[0]->adaptationSets_[7]->representations_[0]->flags_, SUBTITLESTREAM);
372 EXPECT_EQ(tree->periods_[0]->adaptationSets_[7]->representations_[0]->codecs_, "wvtt");
373
374 EXPECT_EQ(tree->periods_[0]->adaptationSets_[8]->type_, DASHTestTree::SUBTITLE);
375 EXPECT_EQ(tree->periods_[0]->adaptationSets_[8]->representations_[0]->flags_, SUBTITLESTREAM);
376 EXPECT_EQ(tree->periods_[0]->adaptationSets_[8]->representations_[0]->codecs_, "wvtt");
377
378 EXPECT_EQ(tree->periods_[0]->adaptationSets_[9]->type_, DASHTestTree::SUBTITLE);
379 EXPECT_EQ(tree->periods_[0]->adaptationSets_[9]->representations_[0]->flags_, SUBTITLESTREAM);
380 EXPECT_EQ(tree->periods_[0]->adaptationSets_[9]->representations_[0]->codecs_, "my_codec");
381
382 EXPECT_EQ(tree->periods_[0]->adaptationSets_[10]->type_, DASHTestTree::SUBTITLE);
383 EXPECT_EQ(tree->periods_[0]->adaptationSets_[10]->representations_[0]->flags_, SUBTITLESTREAM);
384 EXPECT_EQ(tree->periods_[0]->adaptationSets_[10]->representations_[0]->codecs_, "ttml");
385
386 EXPECT_EQ(tree->periods_[0]->adaptationSets_[11]->type_, DASHTestTree::SUBTITLE);
387 EXPECT_EQ(tree->periods_[0]->adaptationSets_[11]->mimeType_, "application/mp4");
388 EXPECT_EQ(tree->periods_[0]->adaptationSets_[11]->representations_[0]->codecs_, "stpp");
389 videoStream->prepare_stream(tree->periods_[0]->adaptationSets_[11], 0, 0, 0, 0, 0, 0, 0,
390 mediaHeaders);
391 videoStream->start_stream(~0, 0, 0, true);
392 ReadSegments(videoStream, 16, 5);
393 EXPECT_EQ(downloadedUrls[0], "https://foo.bar/11/0001.m4s");
394 EXPECT_EQ(downloadedUrls.back(), "https://foo.bar/11/0005.m4s");
395
396 EXPECT_EQ(tree->periods_[0]->adaptationSets_[12]->type_, DASHTestTree::SUBTITLE);
397 EXPECT_EQ(tree->periods_[0]->adaptationSets_[12]->mimeType_, "application/mp4");
398 EXPECT_EQ(tree->periods_[0]->adaptationSets_[12]->representations_[0]->codecs_, "stpp.ttml.im1t");
399 videoStream->prepare_stream(tree->periods_[0]->adaptationSets_[12], 0, 0, 0, 0, 0, 0, 0,
400 mediaHeaders);
401 videoStream->start_stream(~0, 0, 0, true);
402 ReadSegments(videoStream, 16, 5);
403 EXPECT_EQ(downloadedUrls[0], "https://foo.bar/tears-of-steel-multiple-subtitles-12-0.dash");
404 EXPECT_EQ(downloadedUrls.back(), "https://foo.bar/tears-of-steel-multiple-subtitles-12-16000.dash");
405 }
0 #include "TestHelper.h"
1 #include <gtest/gtest.h>
2
3
4 class HLSTreeTest : public ::testing::Test
5 {
6 protected:
7 void SetUp() override
8 {
9 tree = new adaptive::HLSTree(new AESDecrypter(std::string()));
10 tree->supportedKeySystem_ = "urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED";
11 }
12
13 void TearDown() override
14 {
15 testHelper::effectiveUrl.clear();
16 delete tree;
17 tree = nullptr;
18 }
19
20 void OpenTestFileMaster(std::string testfilename, std::string url, std::string manifestHeaders)
21 {
22 SetFileName(testHelper::testFile, testfilename);
23 if (!tree->open(url, manifestHeaders))
24 {
25 printf("open() failed");
26 exit(1);
27 }
28 }
29
30 adaptive::HLSTree::PREPARE_RESULT OpenTestFileVariant(std::string testfilename,
31 std::string url,
32 adaptive::AdaptiveTree::Period* per,
33 adaptive::AdaptiveTree::AdaptationSet* adp,
34 adaptive::AdaptiveTree::Representation* rep)
35 {
36 if (!url.empty())
37 rep->source_url_ = url;
38 SetFileName(testHelper::testFile, testfilename);
39 return tree->prepareRepresentation(per, adp, rep);
40 }
41 adaptive::HLSTree* tree;
42 };
43
44
45
46 TEST_F(HLSTreeTest, CalculateSourceUrl)
47 {
48 OpenTestFileMaster("hls/1a2v_master.m3u8", "https://foo.bar/master.m3u8?param=foo", "");
49 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
50 "hls/fmp4_noenc_v_stream_2.m3u8", "https://foo.bar/stream_2/out.m3u8",
51 tree->current_period_, tree->current_adaptationset_, tree->current_representation_);
52
53 std::string rep_url = tree->BuildDownloadUrl(
54 tree->current_period_->adaptationSets_[0]->representations_[0]->source_url_);
55 EXPECT_EQ(tree->base_url_, "https://foo.bar/");
56 EXPECT_EQ(rep_url, "https://foo.bar/stream_2/out.m3u8");
57 }
58
59
60 TEST_F(HLSTreeTest, CalculateSourceUrlFromRedirectedMasterRelativeUri)
61 {
62 testHelper::effectiveUrl = "https://foo.bar/master.m3u8";
63
64 OpenTestFileMaster("hls/1a2v_master.m3u8", "https://baz.qux/master.m3u8", "");
65
66 std::string rep_url = tree->BuildDownloadUrl(
67 tree->current_period_->adaptationSets_[0]->representations_[0]->source_url_);
68
69 EXPECT_EQ(rep_url, "https://foo.bar/stream_2/out.m3u8");
70
71 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
72 "hls/fmp4_noenc_v_stream_2.m3u8", "https://foo.bar/stream_2/out.m3u8", tree->current_period_,
73 tree->current_adaptationset_, tree->current_representation_);
74
75 rep_url = tree->BuildDownloadUrl(
76 tree->current_period_->adaptationSets_[0]->representations_[0]->source_url_);
77 // base_url_ should never change after opening stream regardless of redirects
78 EXPECT_EQ(tree->base_url_, "https://baz.qux/");
79 EXPECT_EQ(res, adaptive::HLSTree::PREPARE_RESULT_OK);
80 EXPECT_EQ(rep_url, "https://foo.bar/stream_2/out.m3u8");
81 }
82
83
84 TEST_F(HLSTreeTest, CalculateSourceUrlFromRedirectedVariantAbsoluteUri)
85 {
86 OpenTestFileMaster("hls/redirect_absolute_1v_master.m3u8", "https://baz.qux/master.m3u8", "");
87
88 std::string rep_url = tree->BuildDownloadUrl(
89 tree->current_period_->adaptationSets_[0]->representations_[0]->source_url_);
90
91 EXPECT_EQ(rep_url, "https://bit.ly/abcd");
92
93 testHelper::effectiveUrl = "https://foo.bar/stream_2/out.m3u8";
94
95 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
96 "hls/fmp4_noenc_v_stream_2.m3u8", "https://bit.ly/abcd",
97 tree->current_period_, tree->current_adaptationset_, tree->current_representation_);
98
99 rep_url = tree->BuildDownloadUrl(
100 tree->current_period_->adaptationSets_[0]->representations_[0]->source_url_);
101 EXPECT_EQ(tree->base_url_, "https://baz.qux/");
102 EXPECT_EQ(res, adaptive::HLSTree::PREPARE_RESULT_OK);
103 EXPECT_EQ(rep_url, "https://bit.ly/abcd");
104 }
105
106
107 TEST_F(HLSTreeTest, CalculateSourceUrlFromRedirectedMasterAndRedirectedVariantAbsoluteUri)
108 {
109 testHelper::effectiveUrl = "https://baz.qux/master.m3u8";
110
111 OpenTestFileMaster("hls/redirect_absolute_1v_master.m3u8", "https://link.to/1234", "");
112
113 std::string rep_url = tree->BuildDownloadUrl(
114 tree->current_period_->adaptationSets_[0]->representations_[0]->source_url_);
115
116 EXPECT_EQ(rep_url, "https://bit.ly/abcd");
117
118 testHelper::effectiveUrl = "https://foo.bar/stream_2/out.m3u8";
119
120 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
121 "hls/fmp4_noenc_v_stream_2.m3u8", "https://bit.ly/abcd", tree->current_period_,
122 tree->current_adaptationset_, tree->current_representation_);
123
124 rep_url = tree->BuildDownloadUrl(
125 tree->current_period_->adaptationSets_[0]->representations_[0]->source_url_);
126 EXPECT_EQ(tree->base_url_, "https://link.to/");
127 EXPECT_EQ(res, adaptive::HLSTree::PREPARE_RESULT_OK);
128 EXPECT_EQ(rep_url, "https://bit.ly/abcd");
129 }
130
131
132 TEST_F(HLSTreeTest,
133 CalculateSourceUrlFromRedirectedMasterAndRedirectedVariantAbsoluteUriSameDomains)
134 {
135 GTEST_SKIP();
136 testHelper::effectiveUrl = "https://baz.qux/master.m3u8";
137
138 OpenTestFileMaster("hls/redirect_absolute_1v_master.m3u8", "https://bit.ly/1234", "");
139
140 std::string rep_url = tree->BuildDownloadUrl(
141 tree->current_period_->adaptationSets_[0]->representations_[0]->source_url_);
142
143 EXPECT_EQ(rep_url, "https://bit.ly/abcd");
144
145 testHelper::effectiveUrl = "https://foo.bar/stream_2/out.m3u8";
146
147 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
148 "hls/fmp4_noenc_v_stream_2.m3u8", "https://bit.ly/abcd", tree->current_period_,
149 tree->current_adaptationset_, tree->current_representation_);
150
151 rep_url = tree->BuildDownloadUrl(
152 tree->current_period_->adaptationSets_[0]->representations_[0]->source_url_);
153 EXPECT_EQ(tree->base_url_, "https://bit.ly/");
154 EXPECT_EQ(res, adaptive::HLSTree::PREPARE_RESULT_OK);
155 EXPECT_EQ(rep_url, "https://bit.ly/abcd");
156 }
157
158
159
160 TEST_F(HLSTreeTest, OpenVariant)
161 {
162 OpenTestFileMaster("hls/1a2v_master.m3u8", "https://foo.bar/master.m3u8", "");
163
164 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
165 "hls/fmp4_noenc_v_stream_2.m3u8", "https://foo.bar/stream_2.m3u8", tree->current_period_,
166 tree->current_adaptationset_, tree->current_representation_);
167
168 EXPECT_EQ(res, adaptive::HLSTree::PREPARE_RESULT_OK);
169 EXPECT_EQ(tree->base_url_, "https://foo.bar/");
170 }
171
172
173 TEST_F(HLSTreeTest, ParseKeyUriStartingWithSlash)
174 {
175 OpenTestFileMaster("hls/1v_master.m3u8",
176 "https://foo.bar/hls/video/stream_name/master.m3u8", "");
177
178 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
179 "hls/ts_aes_keyuriwithslash_stream_0.m3u8",
180 "https://foo.bar/hls/video/stream_name/chunklist.m3u8", tree->current_period_,
181 tree->current_adaptationset_, tree->current_representation_);
182
183 std::string pssh_url = tree->BuildDownloadUrl(tree->current_period_->psshSets_[1].pssh_);
184 EXPECT_EQ(res, adaptive::HLSTree::PREPARE_RESULT_OK);
185 EXPECT_EQ(tree->base_url_, "https://foo.bar/hls/video/stream_name/");
186 EXPECT_EQ(pssh_url,
187 "https://foo.bar/hls/key/key.php?stream=stream_name");
188 }
189
190 TEST_F(HLSTreeTest, ParseKeyUriStartingWithSlashFromRedirect)
191 {
192 testHelper::effectiveUrl = "https://foo.bar/hls/video/stream_name/master.m3u8";
193
194 OpenTestFileMaster("hls/1v_master.m3u8", "https://baz.qux/hls/video/stream_name/master.m3u8",
195 "");
196
197 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
198 "hls/ts_aes_keyuriwithslash_stream_0.m3u8",
199 "https://foo.bar/hls/video/stream_name/chunklist.m3u8", tree->current_period_,
200 tree->current_adaptationset_, tree->current_representation_);
201
202 std::string pssh_url = tree->BuildDownloadUrl(tree->current_period_->psshSets_[1].pssh_);
203 EXPECT_EQ(res, adaptive::HLSTree::PREPARE_RESULT_OK);
204 EXPECT_EQ(tree->base_url_, "https://baz.qux/hls/video/stream_name/");
205 EXPECT_EQ(pssh_url,
206 "https://foo.bar/hls/key/key.php?stream=stream_name");
207 }
208
209
210 TEST_F(HLSTreeTest, ParseKeyUriAbsolute)
211 {
212 OpenTestFileMaster("hls/1v_master.m3u8",
213 "https://foo.bar/hls/video/stream_name/master.m3u8", "");
214
215 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
216 "hls/ts_aes_keyuriabsolute_stream_0.m3u8",
217 "https://foo.bar/hls/video/stream_name/chunklist.m3u8", tree->current_period_,
218 tree->current_adaptationset_, tree->current_representation_);
219
220 EXPECT_EQ(res, adaptive::HLSTree::PREPARE_RESULT_OK);
221 EXPECT_EQ(tree->base_url_, "https://foo.bar/hls/video/stream_name/");
222 EXPECT_EQ(tree->current_period_->psshSets_[1].pssh_,
223 "https://foo.bar/hls/key/key.php?stream=stream_name");
224 }
225
226
227 TEST_F(HLSTreeTest, ParseKeyUriRelative)
228 {
229 OpenTestFileMaster("hls/1v_master.m3u8", "https://foo.bar/hls/video/stream_name/master.m3u8",
230 "");
231
232 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
233 "hls/ts_aes_keyurirelative_stream_0.m3u8",
234 "https://foo.bar/hls/video/stream_name/chunklist.m3u8", tree->current_period_,
235 tree->current_adaptationset_, tree->current_representation_);
236
237 std::string pssh_url = tree->BuildDownloadUrl(tree->current_period_->psshSets_[1].pssh_);
238 EXPECT_EQ(res, adaptive::HLSTree::PREPARE_RESULT_OK);
239 EXPECT_EQ(tree->base_url_, "https://foo.bar/hls/video/stream_name/");
240 EXPECT_EQ(pssh_url,
241 "https://foo.bar/hls/video/stream_name/../../key/key.php?stream=stream_name");
242 }
243
244
245 TEST_F(HLSTreeTest, ParseKeyUriRelativeFromRedirect)
246 {
247 testHelper::effectiveUrl = "https://foo.bar/hls/video/stream_name/master.m3u8";
248
249 OpenTestFileMaster("hls/1v_master.m3u8",
250 "https://baz.qux/hls/video/stream_name/master.m3u8", "");
251 std::string var_download_url = tree->BuildDownloadUrl(
252 tree->current_period_->adaptationSets_[0]
253 ->representations_[0]
254 ->source_url_); // https://baz.qux/hls/video/stream_name/ts_aes_uriwithslash_chunklist.m3u8
255 adaptive::HLSTree::PREPARE_RESULT res = OpenTestFileVariant(
256 "hls/ts_aes_keyurirelative_stream_0.m3u8",
257 var_download_url,
258 tree->current_period_,
259 tree->current_adaptationset_,
260 tree->current_representation_);
261
262 std::string pssh_url = tree->BuildDownloadUrl(tree->current_period_->psshSets_[1].pssh_);
263 EXPECT_EQ(res, adaptive::HLSTree::PREPARE_RESULT_OK);
264 EXPECT_EQ(tree->base_url_, "https://baz.qux/hls/video/stream_name/");
265 EXPECT_EQ(pssh_url,
266 "https://foo.bar/hls/video/stream_name/../../key/key.php?stream=stream_name");
267 }
0 #include "TestHelper.h"
1
2 std::string testHelper::testFile;
3 std::string testHelper::effectiveUrl;
4 std::string testHelper::lastDownloadUrl;
5
6 void Log(const LogLevel loglevel, const char* format, ...){}
7
8 std::string GetEnv(const std::string& var)
9 {
10 const char* val = std::getenv(var.c_str());
11 if (val == nullptr)
12 return "";
13 else
14 return val;
15 }
16
17 void SetFileName(std::string& file, std::string name)
18 {
19 file = GetEnv("DATADIR") + "/" + name;
20 }
21
22 bool adaptive::AdaptiveTree::download(const char* url,
23 const std::map<std::string, std::string>& manifestHeaders,
24 void* opaque,
25 bool scanEffectiveURL)
26 {
27 FILE* f = fopen(testHelper::testFile.c_str(), "rb");
28 if (!f)
29 return false;
30
31 if (scanEffectiveURL && !testHelper::effectiveUrl.empty())
32 SetEffectiveURL(testHelper::effectiveUrl);
33
34 // read the file
35 static const unsigned int CHUNKSIZE = 16384;
36 char buf[CHUNKSIZE];
37 size_t nbRead;
38
39 while ((nbRead = fread(buf, 1, CHUNKSIZE, f)) > 0 && ~nbRead && write_data(buf, nbRead, opaque))
40 ;
41
42 fclose(f);
43
44 SortTree();
45 return nbRead == 0;
46 }
47
48 bool TestAdaptiveStream::download(const char* url,
49 const std::map<std::string, std::string>& mediaHeaders)
50 {
51 testHelper::lastDownloadUrl = url;
52 size_t nbRead = ~0UL;
53 std::stringstream ss("Sixteen bytes!!!");
54
55 char buf[16];
56 size_t nbReadOverall = 0;
57 while ((nbRead = ss.readsome(buf, 16)) > 0 && ~nbRead && write_data(buf, nbRead))
58 nbReadOverall += nbRead;
59
60 if (!nbReadOverall)
61 {
62 return false;
63 }
64
65 return nbRead == 0;
66 }
67
68 void AESDecrypter::decrypt(const AP4_UI08* aes_key,
69 const AP4_UI08* aes_iv,
70 const AP4_UI08* src,
71 AP4_UI08* dst,
72 size_t dataSize){}
73
74 std::string AESDecrypter::convertIV(const std::string& input)
75 {
76 std::string result;
77 return result;
78 }
79
80 void AESDecrypter::ivFromSequence(uint8_t* buffer, uint64_t sid){}
81
82 bool AESDecrypter::RenewLicense(const std::string& pluginUrl){return false;}
83
84 DASHTestTree::DASHTestTree(){}
0 #include "../Iaes_decrypter.h"
1 #include "../log.h"
2 #include "../common/AdaptiveStream.h"
3 #include "../parser/DASHTree.h"
4 #include "../parser/HLSTree.h"
5
6 std::string GetEnv(const std::string& var);
7 void SetFileName(std::string& file, const std::string name);
8 void Log(const LogLevel loglevel, const char* format, ...);
9
10 class testHelper
11 {
12 public:
13 static std::string testFile;
14 static std::string effectiveUrl;
15 static std::string lastDownloadUrl;
16 };
17
18 class TestAdaptiveStream : public adaptive::AdaptiveStream
19 {
20 public:
21 TestAdaptiveStream(adaptive::AdaptiveTree& tree, adaptive::AdaptiveTree::StreamType type)
22 : adaptive::AdaptiveStream(tree, type){};
23
24 protected:
25 virtual bool download(const char* url,
26 const std::map<std::string, std::string>& mediaHeaders) override;
27 };
28
29 class AESDecrypter : public IAESDecrypter
30 {
31 public:
32 AESDecrypter(const std::string& licenseKey) : m_licenseKey(licenseKey){};
33 virtual ~AESDecrypter() = default;
34
35 void decrypt(const AP4_UI08* aes_key,
36 const AP4_UI08* aes_iv,
37 const AP4_UI08* src,
38 AP4_UI08* dst,
39 size_t dataSize);
40 std::string convertIV(const std::string& input);
41 void ivFromSequence(uint8_t* buffer, uint64_t sid);
42 const std::string& getLicenseKey() const { return m_licenseKey; };
43 bool RenewLicense(const std::string& pluginUrl);
44
45 private:
46 std::string m_licenseKey;
47 };
48
49 class DASHTestTree : public adaptive::DASHTree
50 {
51 public:
52 uint64_t mock_time = 10000000L;
53 DASHTestTree();
54 uint64_t GetNowTime() override { return mock_time; }
55 };
0 #include "gtest/gtest.h"
1
2 int main(int argc, char** argv)
3 {
4 ::testing::InitGoogleTest(&argc, argv);
5 std::vector<std::string> args(argv + 1, argv + argc);
6 #ifdef _WIN32
7 _putenv_s("DATADIR", args[0].c_str());
8 #else
9 setenv("DATADIR", args[0].c_str(), 1);
10 #endif
11 return RUN_ALL_TESTS();
12 }
0 #EXTM3U
1 #EXT-X-VERSION:7
2 #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_aud_low",NAME="audio_0",DEFAULT=YES,URI="stream_0/out.m3u8"
3 #EXT-X-STREAM-INF:BANDWIDTH=1170400,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2",AUDIO="group_aud_low"
4 stream_1/out.m3u8
5
6 #EXT-X-STREAM-INF:BANDWIDTH=774400,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2",AUDIO="group_aud_low"
7 stream_2/out.m3u8
0 #EXTM3U
1 #EXT-X-VERSION:3
2 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2119734,CODECS="avc1.77.31, mp4a.40.2",RESOLUTION=960x540
3 ts_aes_uriwithslash_chunklist.m3u8
0 #EXTM3U
1 #EXT-X-VERSION:7
2 #EXT-X-TARGETDURATION:2
3 #EXT-X-MEDIA-SEQUENCE:0
4 #EXT-X-PLAYLIST-TYPE:VOD
5 #EXT-X-MAP:URI="init_0.m4s"
6 #EXTINF:2.005333,
7 seg_000.m4s
8 #EXTINF:2.005333,
9 seg_001.m4s
10 #EXTINF:2.005333,
11 seg_002.m4s
12 #EXTINF:1.984000,
13 seg_003.m4s
14 #EXTINF:2.005333,
15 seg_004.m4s
16 #EXTINF:2.005333,
17 seg_005.m4s
18 #EXTINF:2.005333,
19 seg_006.m4s
20 #EXTINF:1.984000,
21 seg_007.m4s
22 #EXTINF:2.005333,
23 seg_008.m4s
24 #EXTINF:2.005333,
25 seg_009.m4s
26 #EXTINF:2.005333,
27 seg_010.m4s
28 #EXTINF:1.984000,
29 seg_011.m4s
30 #EXTINF:2.005333,
31 seg_012.m4s
32 #EXTINF:2.005333,
33 seg_013.m4s
34 #EXTINF:2.005333,
35 seg_014.m4s
36 #EXTINF:1.984000,
37 seg_015.m4s
38 #EXTINF:2.005333,
39 seg_016.m4s
40 #EXTINF:2.005333,
41 seg_017.m4s
42 #EXTINF:2.005333,
43 seg_018.m4s
44 #EXTINF:1.984000,
45 seg_019.m4s
46 #EXTINF:2.005333,
47 seg_020.m4s
48 #EXTINF:2.005333,
49 seg_021.m4s
50 #EXTINF:2.005333,
51 seg_022.m4s
52 #EXTINF:1.984000,
53 seg_023.m4s
54 #EXTINF:2.005333,
55 seg_024.m4s
56 #EXTINF:2.005333,
57 seg_025.m4s
58 #EXTINF:2.005333,
59 seg_026.m4s
60 #EXTINF:1.984000,
61 seg_027.m4s
62 #EXTINF:2.005333,
63 seg_028.m4s
64 #EXTINF:2.005333,
65 seg_029.m4s
66 #EXTINF:2.005333,
67 seg_030.m4s
68 #EXTINF:1.984000,
69 seg_031.m4s
70 #EXTINF:2.005333,
71 seg_032.m4s
72 #EXTINF:2.005333,
73 seg_033.m4s
74 #EXTINF:2.005333,
75 seg_034.m4s
76 #EXTINF:1.984000,
77 seg_035.m4s
78 #EXTINF:2.005333,
79 seg_036.m4s
80 #EXTINF:2.005333,
81 seg_037.m4s
82 #EXTINF:2.005333,
83 seg_038.m4s
84 #EXTINF:1.984000,
85 seg_039.m4s
86 #EXTINF:2.005333,
87 seg_040.m4s
88 #EXTINF:2.005333,
89 seg_041.m4s
90 #EXTINF:2.005333,
91 seg_042.m4s
92 #EXTINF:1.984000,
93 seg_043.m4s
94 #EXTINF:2.005333,
95 seg_044.m4s
96 #EXTINF:2.005333,
97 seg_045.m4s
98 #EXTINF:2.005333,
99 seg_046.m4s
100 #EXTINF:1.984000,
101 seg_047.m4s
102 #EXTINF:2.005333,
103 seg_048.m4s
104 #EXTINF:2.005333,
105 seg_049.m4s
106 #EXTINF:2.005333,
107 seg_050.m4s
108 #EXTINF:1.984000,
109 seg_051.m4s
110 #EXTINF:2.005333,
111 seg_052.m4s
112 #EXTINF:2.005333,
113 seg_053.m4s
114 #EXTINF:2.005333,
115 seg_054.m4s
116 #EXTINF:1.984000,
117 seg_055.m4s
118 #EXTINF:2.005333,
119 seg_056.m4s
120 #EXTINF:2.005333,
121 seg_057.m4s
122 #EXTINF:2.005333,
123 seg_058.m4s
124 #EXTINF:1.984000,
125 seg_059.m4s
126 #EXTINF:2.005333,
127 seg_060.m4s
128 #EXTINF:2.005333,
129 seg_061.m4s
130 #EXTINF:2.005333,
131 seg_062.m4s
132 #EXTINF:1.984000,
133 seg_063.m4s
134 #EXTINF:2.005333,
135 seg_064.m4s
136 #EXTINF:2.005333,
137 seg_065.m4s
138 #EXTINF:2.005333,
139 seg_066.m4s
140 #EXTINF:1.984000,
141 seg_067.m4s
142 #EXTINF:2.005333,
143 seg_068.m4s
144 #EXTINF:2.005333,
145 seg_069.m4s
146 #EXTINF:2.005333,
147 seg_070.m4s
148 #EXTINF:1.984000,
149 seg_071.m4s
150 #EXTINF:2.005333,
151 seg_072.m4s
152 #EXTINF:2.005333,
153 seg_073.m4s
154 #EXTINF:2.005333,
155 seg_074.m4s
156 #EXTINF:1.984000,
157 seg_075.m4s
158 #EXTINF:2.005333,
159 seg_076.m4s
160 #EXTINF:2.005333,
161 seg_077.m4s
162 #EXTINF:2.005333,
163 seg_078.m4s
164 #EXTINF:1.984000,
165 seg_079.m4s
166 #EXTINF:2.005333,
167 seg_080.m4s
168 #EXTINF:2.005333,
169 seg_081.m4s
170 #EXTINF:2.005333,
171 seg_082.m4s
172 #EXTINF:1.984000,
173 seg_083.m4s
174 #EXTINF:2.005333,
175 seg_084.m4s
176 #EXTINF:0.874667,
177 seg_085.m4s
178 #EXT-X-ENDLIST
0 #EXTM3U
1 #EXT-X-VERSION:7
2 #EXT-X-TARGETDURATION:10
3 #EXT-X-MEDIA-SEQUENCE:0
4 #EXT-X-PLAYLIST-TYPE:VOD
5 #EXT-X-MAP:URI="init_1.m4s"
6 #EXTINF:8.400000,
7 seg_000.m4s
8 #EXTINF:4.560000,
9 seg_001.m4s
10 #EXTINF:3.120000,
11 seg_002.m4s
12 #EXTINF:5.640000,
13 seg_003.m4s
14 #EXTINF:1.880000,
15 seg_004.m4s
16 #EXTINF:2.160000,
17 seg_005.m4s
18 #EXTINF:2.080000,
19 seg_006.m4s
20 #EXTINF:4.400000,
21 seg_007.m4s
22 #EXTINF:9.800000,
23 seg_008.m4s
24 #EXTINF:1.680000,
25 seg_009.m4s
26 #EXTINF:8.320000,
27 seg_010.m4s
28 #EXTINF:4.160000,
29 seg_011.m4s
30 #EXTINF:8.760000,
31 seg_012.m4s
32 #EXTINF:5.280000,
33 seg_013.m4s
34 #EXTINF:2.920000,
35 seg_014.m4s
36 #EXTINF:2.600000,
37 seg_015.m4s
38 #EXTINF:3.400000,
39 seg_016.m4s
40 #EXTINF:10.000000,
41 seg_017.m4s
42 #EXTINF:9.520000,
43 seg_018.m4s
44 #EXTINF:2.720000,
45 seg_019.m4s
46 #EXTINF:6.920000,
47 seg_020.m4s
48 #EXTINF:4.800000,
49 seg_021.m4s
50 #EXTINF:1.480000,
51 seg_022.m4s
52 #EXTINF:1.000000,
53 seg_023.m4s
54 #EXTINF:2.920000,
55 seg_024.m4s
56 #EXTINF:1.800000,
57 seg_025.m4s
58 #EXTINF:1.520000,
59 seg_026.m4s
60 #EXTINF:6.600000,
61 seg_027.m4s
62 #EXTINF:1.600000,
63 seg_028.m4s
64 #EXTINF:2.760000,
65 seg_029.m4s
66 #EXTINF:5.440000,
67 seg_030.m4s
68 #EXTINF:3.400000,
69 seg_031.m4s
70 #EXTINF:2.840000,
71 seg_032.m4s
72 #EXTINF:2.480000,
73 seg_033.m4s
74 #EXTINF:1.040000,
75 seg_034.m4s
76 #EXTINF:1.200000,
77 seg_035.m4s
78 #EXTINF:2.920000,
79 seg_036.m4s
80 #EXTINF:4.360000,
81 seg_037.m4s
82 #EXTINF:1.720000,
83 seg_038.m4s
84 #EXTINF:1.560000,
85 seg_039.m4s
86 #EXTINF:1.400000,
87 seg_040.m4s
88 #EXTINF:2.760000,
89 seg_041.m4s
90 #EXTINF:2.160000,
91 seg_042.m4s
92 #EXTINF:4.760000,
93 seg_043.m4s
94 #EXT-X-ENDLIST
0 #EXTM3U
1 #EXT-X-VERSION:7
2 #EXT-X-TARGETDURATION:10
3 #EXT-X-MEDIA-SEQUENCE:0
4 #EXT-X-PLAYLIST-TYPE:VOD
5 #EXT-X-MAP:URI="init_2.m4s"
6 #EXTINF:8.400000,
7 seg_000.m4s
8 #EXTINF:4.560000,
9 seg_001.m4s
10 #EXTINF:3.120000,
11 seg_002.m4s
12 #EXTINF:5.640000,
13 seg_003.m4s
14 #EXTINF:1.880000,
15 seg_004.m4s
16 #EXTINF:2.160000,
17 seg_005.m4s
18 #EXTINF:2.080000,
19 seg_006.m4s
20 #EXTINF:4.400000,
21 seg_007.m4s
22 #EXTINF:9.800000,
23 seg_008.m4s
24 #EXTINF:1.680000,
25 seg_009.m4s
26 #EXTINF:8.320000,
27 seg_010.m4s
28 #EXTINF:4.160000,
29 seg_011.m4s
30 #EXTINF:8.760000,
31 seg_012.m4s
32 #EXTINF:5.280000,
33 seg_013.m4s
34 #EXTINF:2.920000,
35 seg_014.m4s
36 #EXTINF:2.600000,
37 seg_015.m4s
38 #EXTINF:3.400000,
39 seg_016.m4s
40 #EXTINF:10.000000,
41 seg_017.m4s
42 #EXTINF:9.520000,
43 seg_018.m4s
44 #EXTINF:2.720000,
45 seg_019.m4s
46 #EXTINF:6.920000,
47 seg_020.m4s
48 #EXTINF:4.800000,
49 seg_021.m4s
50 #EXTINF:1.480000,
51 seg_022.m4s
52 #EXTINF:1.000000,
53 seg_023.m4s
54 #EXTINF:2.920000,
55 seg_024.m4s
56 #EXTINF:1.800000,
57 seg_025.m4s
58 #EXTINF:1.520000,
59 seg_026.m4s
60 #EXTINF:6.600000,
61 seg_027.m4s
62 #EXTINF:1.600000,
63 seg_028.m4s
64 #EXTINF:2.760000,
65 seg_029.m4s
66 #EXTINF:5.440000,
67 seg_030.m4s
68 #EXTINF:3.400000,
69 seg_031.m4s
70 #EXTINF:2.840000,
71 seg_032.m4s
72 #EXTINF:2.480000,
73 seg_033.m4s
74 #EXTINF:1.040000,
75 seg_034.m4s
76 #EXTINF:1.200000,
77 seg_035.m4s
78 #EXTINF:2.920000,
79 seg_036.m4s
80 #EXTINF:4.360000,
81 seg_037.m4s
82 #EXTINF:1.720000,
83 seg_038.m4s
84 #EXTINF:1.560000,
85 seg_039.m4s
86 #EXTINF:1.400000,
87 seg_040.m4s
88 #EXTINF:2.760000,
89 seg_041.m4s
90 #EXTINF:2.160000,
91 seg_042.m4s
92 #EXTINF:4.760000,
93 seg_043.m4s
94 #EXT-X-ENDLIST
0 #EXTM3U
1 #EXT-X-VERSION:3
2 #EXT-X-INDEPENDENT-SEGMENTS
3 #EXT-X-STREAM-INF:BANDWIDTH=582476,AVERAGE-BANDWIDTH=581432,RESOLUTION=480x270,FRAME-RATE=25.000,CODECS="avc1.42C015,mp4a.40.2"
4 https://bit.ly/abcd
0 #EXTM3U
1 #EXT-X-VERSION:3
2 #EXT-X-ALLOW-CACHE:NO
3 #EXT-X-TARGETDURATION:12
4 #EXT-X-MEDIA-SEQUENCE:80
5 #EXT-X-KEY:METHOD=AES-128,URI="https://foo.bar/hls/key/key.php?stream=stream_name"
6 #EXTINF:9.966,
7 media-abc_80.ts
8 #EXTINF:9.967,
9 media-abc_81.ts
10 #EXTINF:9.567,
11 media-abc_82.ts
12 #EXTINF:10.8,
13 media-abc_83.ts
14 #EXTINF:9.033,
15 media-abc_84.ts
16 #EXTINF:10.0,
17 media-abc_85.ts
0 #EXTM3U
1 #EXT-X-VERSION:3
2 #EXT-X-ALLOW-CACHE:NO
3 #EXT-X-TARGETDURATION:12
4 #EXT-X-MEDIA-SEQUENCE:80
5 #EXT-X-KEY:METHOD=AES-128,URI="../../key/key.php?stream=stream_name"
6 #EXTINF:9.966,
7 media-abc_80.ts
8 #EXTINF:9.967,
9 media-abc_81.ts
10 #EXTINF:9.567,
11 media-abc_82.ts
12 #EXTINF:10.8,
13 media-abc_83.ts
14 #EXTINF:9.033,
15 media-abc_84.ts
16 #EXTINF:10.0,
17 media-abc_85.ts
0 #EXTM3U
1 #EXT-X-VERSION:3
2 #EXT-X-ALLOW-CACHE:NO
3 #EXT-X-TARGETDURATION:12
4 #EXT-X-MEDIA-SEQUENCE:80
5 #EXT-X-KEY:METHOD=AES-128,URI="/hls/key/key.php?stream=stream_name"
6 #EXTINF:9.966,
7 media-abc_80.ts
8 #EXTINF:9.967,
9 media-abc_81.ts
10 #EXTINF:9.567,
11 media-abc_82.ts
12 #EXTINF:10.8,
13 media-abc_83.ts
14 #EXTINF:9.033,
15 media-abc_84.ts
16 #EXTINF:10.0,
17 media-abc_85.ts
0 <?xml version="1.0" encoding="utf-8"?>
1 <MPD _xmlns:ns2="http://www.w3.org/1999/xlink" mediaPresentationDuration="PT1H45M47.904S" minBufferTime="PT10S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:_xmlns="xmlns">
2 <Period duration="PT1H45M47.904S">
3 <AdaptationSet contentType="video" frameRate="24000/1001">
4 <Representation bandwidth="3203000" codecs="avc1.4D401F" height="544" id="video=2492922" scanType="progressive" width="1280">
5 <BaseURL>video/23.98p/r0/vid01.mp4</BaseURL>
6 <SegmentBase indexRange="1796-20859" indexRangeExact="true" timescale="24000" xmlns="urn:mpeg:dash:schema:mpd:2011">
7 <Initialization range="0-1795"/>
8 </SegmentBase>
9 </Representation>
10 </AdaptationSet>
11 <AdaptationSet contentType="video" frameRate="30">
12 <Representation bandwidth="270000" codecs="avc1.4D400D" height="176" id="video=199197" scanType="progressive" width="416">
13 <BaseURL>video/23.98p/r0/vid02.mp4</BaseURL>
14 <SegmentBase indexRange="1792-20855" indexRangeExact="true" timescale="24000" xmlns="urn:mpeg:dash:schema:mpd:2011">
15 <Initialization range="0-1791"/>
16 </SegmentBase>
17 </Representation>
18 </AdaptationSet>
19 <AdaptationSet contentType="video">
20 <Representation bandwidth="270000" codecs="avc1.4D400D" height="176" id="video=199197" scanType="progressive" width="416" frameRate="25">
21 <BaseURL>video/23.98p/r0/vid03.mp4</BaseURL>
22 <SegmentBase indexRange="1792-20855" indexRangeExact="true" timescale="24000" xmlns="urn:mpeg:dash:schema:mpd:2011">
23 <Initialization range="0-1791"/>
24 </SegmentBase>
25 </Representation>
26 </AdaptationSet>
27 <AdaptationSet contentType="video">
28 <Representation bandwidth="270000" codecs="avc1.4D400D" height="176" id="video=199197" scanType="progressive" width="416" frameRate="25000/1000">
29 <BaseURL>video/23.98p/r0/vid04.mp4</BaseURL>
30 <SegmentBase indexRange="1792-20855" indexRangeExact="true" timescale="24000" xmlns="urn:mpeg:dash:schema:mpd:2011">
31 <Initialization range="0-1791"/>
32 </SegmentBase>
33 </Representation>
34 </AdaptationSet>
35 <AdaptationSet contentType="video" frameRate="30">
36 <Representation bandwidth="270000" codecs="avc1.4D400D" height="176" id="video=199197" scanType="progressive" width="416" frameRate="25">
37 <BaseURL>video/23.98p/r0/vid05.mp4</BaseURL>
38 <SegmentBase indexRange="1792-20855" indexRangeExact="true" timescale="24000" xmlns="urn:mpeg:dash:schema:mpd:2011">
39 <Initialization range="0-1791"/>
40 </SegmentBase>
41 </Representation>
42 </AdaptationSet>
43 <AdaptationSet contentType="video" frameRate="24000/1001">
44 <Representation bandwidth="270000" codecs="avc1.4D400D" height="176" id="video=199197" scanType="progressive" width="416" frameRate="30">
45 <BaseURL>video/23.98p/r0/vid05.mp4</BaseURL>
46 <SegmentBase indexRange="1792-20855" indexRangeExact="true" timescale="24000" xmlns="urn:mpeg:dash:schema:mpd:2011">
47 <Initialization range="0-1791"/>
48 </SegmentBase>
49 </Representation>
50 </AdaptationSet>
51 <AdaptationSet contentType="video" frameRate="24000/1001">
52 <Representation bandwidth="270000" codecs="avc1.4D400D" height="176" id="video=199197" scanType="progressive" width="416" frameRate="25000/1000">
53 <BaseURL>video/23.98p/r0/vid05.mp4</BaseURL>
54 <SegmentBase indexRange="1792-20855" indexRangeExact="true" timescale="24000" xmlns="urn:mpeg:dash:schema:mpd:2011">
55 <Initialization range="0-1791"/>
56 </SegmentBase>
57 </Representation>
58 </AdaptationSet>
59 </Period>
60 </MPD>
0 <?xml version="1.0" ?>
1 <!-- Just In Time Delivered by Quortex Solution -->
2 <MPD availabilityStartTime="1970-01-01T00:00:06Z" minBufferTime="PT6S" minimumUpdatePeriod="PT6S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:hbbtv:dash:profile:isoff-live:2012" publishTime="2020-06-07T11:59:55Z" suggestedPresentationDelay="PT12S" timeShiftBufferDepth="PT1M18S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
3 <Period id="0" start="PT1588628086S">
4 <AdaptationSet id="1" contentType="video" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
5 <SegmentTemplate initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/segment_$Number$.m4s" startNumber="487050" timescale="90000">
6 <SegmentTimeline>
7 <S d="540000" r="12" t="263007000000"/>
8 </SegmentTimeline>
9 </SegmentTemplate>
10 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400"></Representation>
11 </AdaptationSet>
12 <AdaptationSet id="2" contentType="video" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
13 <SegmentTemplate initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/segment_$Number%08d$.m4s" startNumber="487050" timescale="90000">
14 <SegmentTimeline>
15 <S d="540000" r="12" t="263007000000"/>
16 </SegmentTimeline>
17 </SegmentTemplate>
18 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400"></Representation>
19 </AdaptationSet>
20 <AdaptationSet id="3" contentType="video" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
21 <SegmentTemplate initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/segment_$Time$.m4s" startNumber="487050" timescale="90000">
22 <SegmentTimeline>
23 <S d="540000" r="12" t="263007000000"/>
24 </SegmentTimeline>
25 </SegmentTemplate>
26 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400"></Representation>
27 </AdaptationSet>
28 <AdaptationSet id="4" contentType="video" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
29 <SegmentTemplate initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/segment_$Time%014llu$" startNumber="487050" timescale="90000">
30 <SegmentTimeline>
31 <S d="540000" r="12" t="263007000000"/>
32 </SegmentTimeline>
33 </SegmentTemplate>
34 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400"></Representation>
35 </AdaptationSet>
36 <AdaptationSet id="5" contentType="video" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
37 <SegmentTemplate initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/segment_$Number$.m4s?t=$Time$" startNumber="487050" timescale="90000">
38 <SegmentTimeline>
39 <S d="540000" r="12" t="263007000000"/>
40 </SegmentTimeline>
41 </SegmentTemplate>
42 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400"></Representation>
43 </AdaptationSet>
44 <AdaptationSet id="6" contentType="video" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
45 <SegmentTemplate initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/segment_$Number%08d$.m4s?t=$Time%014llu$" startNumber="487050" timescale="90000">
46 <SegmentTimeline>
47 <S d="540000" r="12" t="263007000000"/>
48 </SegmentTimeline>
49 </SegmentTemplate>
50 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400"></Representation>
51 </AdaptationSet>
52 <AdaptationSet id="7" contentType="video" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
53 <SegmentTemplate initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/segment.m4s" startNumber="487050" timescale="90000">
54 <SegmentTimeline>
55 <S d="540000" r="12" t="263007000000"/>
56 </SegmentTimeline>
57 </SegmentTemplate>
58 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400"></Representation>
59 </AdaptationSet>
60 </Period>
61 </MPD>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:_xmlns="xmlns" _xmlns:cenc="urn:mpeg:cenc:2013" minBufferTime="PT2S" type="static" mediaPresentationDuration="PT14528.0556640625S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">
2 <Period id="0">
3 <AdaptationSet id="0" contentType="video">
4 <Role value="main" schemeIdUri="urn:mpeg:dash:role:2011"/>
5 <Representation id="0" bandwidth="664362" width="416" height="234" codecs="avc1.4d400d" mimeType="video/mp4" sar="1:1">
6 <BaseURL>v/v30_cenc.mp4</BaseURL>
7 <SegmentBase xmlns="urn:mpeg:dash:schema:mpd:2011" indexRange="1478-45093" timescale="24000">
8 <Initialization xmlns="urn:mpeg:dash:schema:mpd:2011" range="0-1477"/>
9 </SegmentBase>
10 </Representation>
11 <ContentProtection xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:_="urn:mpeg:cenc:2013" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" _:default_KID="0101f49e-117c-ec8e-d606-27d7cb46ae38"/>
12 <ContentProtection xmlns="urn:mpeg:dash:schema:mpd:2011" schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
13 <pssh xmlns="urn:mpeg:cenc:2013">ABCDEFGH</pssh>
14 </ContentProtection>
15 </AdaptationSet>
16 <AdaptationSet id="1" contentType="video">
17 <Role value="main" schemeIdUri="urn:mpeg:dash:role:2011"/>
18 <Representation id="0" bandwidth="664362" width="416" height="234" codecs="avc1.4d400d" mimeType="video/mp4" sar="1:1">
19 <BaseURL>v/v31_cenc.mp4</BaseURL>
20 <SegmentBase xmlns="urn:mpeg:dash:schema:mpd:2011" indexRange="1478-45093" timescale="24000">
21 <Initialization xmlns="urn:mpeg:dash:schema:mpd:2011" range="0-1477"/>
22 </SegmentBase>
23 </Representation>
24 <ContentProtection xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:_="urn:mpeg:cenc:2013" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="01004b6f-0835-b807-9098-c070dc30a6c7"/>
25 <ContentProtection xmlns="urn:mpeg:dash:schema:mpd:2011" schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
26 <cenc:pssh xmlns="urn:mpeg:cenc:2013">HGFEDCBA</cenc:pssh>
27 </ContentProtection>
28 </AdaptationSet>
29 </Period>
30 </MPD>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <MPD profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" type="static" mediaPresentationDuration="PT5.024S" minBufferTime="PT10S" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:_xmlns="xmlns" _xmlns:ns2="http://www.w3.org/1999/xlink">
2 <Period duration="PT5.024S">
3 <AdaptationSet id="1" group="1" lang="en-US" contentType="audio" mimeType="audio/mp4" codecs="mp4a.40.2" segmentAlignment="true" subsegmentAlignment="true" subsegmentStartsWithSAP="1" audioSamplingRate="48000" startWithSAP="1">
4 <Representation id="audio_en-US=128000" bandwidth="129000">
5 <BaseURL>audio/program/en-US/2.0/r0/aac-128k.mp4</BaseURL>
6 <SegmentBase xmlns="urn:mpeg:dash:schema:mpd:2011" timescale="48000" indexRange="768-823" indexRangeExact="true">
7 <Initialization range="0-767"/>
8 </SegmentBase>
9 </Representation>
10 <AudioChannelConfiguration value="2" schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011"/>
11 <Role value="main" schemeIdUri="urn:mpeg:dash:role:2011"/>
12 </AdaptationSet>
13 <AdaptationSet id="2" group="2" contentType="video" mimeType="video/mp4" minBandwidth="413000" maxBandwidth="7744000" maxWidth="1920" maxHeight="1080" par="16:9" segmentAlignment="true" subsegmentAlignment="true" subsegmentStartsWithSAP="1" sar="1:1" frameRate="24000/1001" startWithSAP="1">
14 <Representation id="video=8154811" bandwidth="7744000" width="1920" height="1080" codecs="avc1.640028" scanType="progressive">
15 <BaseURL>video/23.98p/r0/vid10.mp4</BaseURL>
16 <SegmentBase xmlns="urn:mpeg:dash:schema:mpd:2011" timescale="24000" indexRange="754-809" indexRangeExact="true">
17 <Initialization range="0-753"/>
18 </SegmentBase>
19 </Representation>
20 <Role value="main" schemeIdUri="urn:mpeg:dash:role:2011"/>
21 </AdaptationSet>
22 </Period>
23 </MPD>
0 <?xml version="1.0" ?>
1 <!-- Just In Time Delivered by Quortex Solution -->
2 <MPD availabilityStartTime="1970-01-01T00:00:06Z" minBufferTime="PT6S" minimumUpdatePeriod="PT6S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:hbbtv:dash:profile:isoff-live:2012" publishTime="2020-06-07T11:59:55Z" suggestedPresentationDelay="PT12S" timeShiftBufferDepth="PT1M18S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
3 <Period id="0" start="PT1588628086S">
4 <AdaptationSet contentType="video" id="1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
5 <SegmentTemplate initialization="$RepresentationID$/init.mp4?id=8c1bbb709229e110fbb0d1e544266504" media="$RepresentationID$/segment_$Number$.m4s" presentationTimeOffset="1738747575" startNumber="487050" timescale="90000">
6 <SegmentTimeline>
7 <S d="540000" r="12" t="263007000000"/>
8 </SegmentTimeline>
9 </SegmentTemplate>
10 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400">
11 <ContentProtection cenc:default_KID="934bc7c6-a029-3d5b-9e26-1a7324777503" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
12 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
13 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgB4AHMAZABMAGsAeQBtAGcAVwB6ADIAZQBKAGgAcAB6AEoASABkADEAQQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgBUAGwALwBUAEUAQgAvAFcAZQBRAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
14 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AeABzAGQATABrAHkAbQBnAFcAegAyAGUASgBoAHAAegBKAEgAZAAxAEEAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AEYAVABsAC8AVABFAEIALwBXAGUAUQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
15 </ContentProtection>
16 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
17 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQk0vHxqApPVueJhpzJHd1AxoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
18 </ContentProtection>
19 </Representation>
20 <Representation bandwidth="800000" codecs="avc1.42001e" frameRate="25" height="360" id="videosd-640x360" sar="1:1" scanType="progressive" width="640">
21 <ContentProtection cenc:default_KID="934bc7c6-a029-3d5b-9e26-1a7324777503" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
22 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
23 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgB4AHMAZABMAGsAeQBtAGcAVwB6ADIAZQBKAGgAcAB6AEoASABkADEAQQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgBUAGwALwBUAEUAQgAvAFcAZQBRAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
24 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AeABzAGQATABrAHkAbQBnAFcAegAyAGUASgBoAHAAegBKAEgAZAAxAEEAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AEYAVABsAC8AVABFAEIALwBXAGUAUQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
25 </ContentProtection>
26 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
27 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQk0vHxqApPVueJhpzJHd1AxoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
28 </ContentProtection>
29 </Representation>
30 <Representation bandwidth="1500000" codecs="avc1.42001e" frameRate="25" height="404" id="videosd-720x404" sar="404:405" scanType="progressive" width="720">
31 <ContentProtection cenc:default_KID="934bc7c6-a029-3d5b-9e26-1a7324777503" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
32 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
33 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgB4AHMAZABMAGsAeQBtAGcAVwB6ADIAZQBKAGgAcAB6AEoASABkADEAQQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgBUAGwALwBUAEUAQgAvAFcAZQBRAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
34 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AeABzAGQATABrAHkAbQBnAFcAegAyAGUASgBoAHAAegBKAEgAZAAxAEEAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AEYAVABsAC8AVABFAEIALwBXAGUAUQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
35 </ContentProtection>
36 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
37 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQk0vHxqApPVueJhpzJHd1AxoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
38 </ContentProtection>
39 </Representation>
40 <Representation bandwidth="2100000" codecs="avc1.64001f" frameRate="25" height="540" id="videosd-960x540" sar="1:1" scanType="progressive" width="960">
41 <ContentProtection cenc:default_KID="934bc7c6-a029-3d5b-9e26-1a7324777503" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
42 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
43 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgB4AHMAZABMAGsAeQBtAGcAVwB6ADIAZQBKAGgAcAB6AEoASABkADEAQQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgBUAGwALwBUAEUAQgAvAFcAZQBRAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
44 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AeABzAGQATABrAHkAbQBnAFcAegAyAGUASgBoAHAAegBKAEgAZAAxAEEAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AEYAVABsAC8AVABFAEIALwBXAGUAUQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
45 </ContentProtection>
46 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
47 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQk0vHxqApPVueJhpzJHd1AxoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
48 </ContentProtection>
49 </Representation>
50 </AdaptationSet>
51 <AdaptationSet contentType="audio" id="21" lang="fre" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
52 <ContentProtection cenc:default_KID="91d9467b-d795-318b-a07c-4867ff4381e7" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
53 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
54 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBlADAAYgBaAGsAWgBYAFgAaQB6AEcAZwBmAEUAaABuAC8AMABPAEIANQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AUABrADkAawB3AFMAcgBEAEIAcgBBAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
55 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AZQAwAGIAWgBrAFoAWABYAGkAegBHAGcAZgBFAGgAbgAvADAATwBCADUAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AFAAawA5AGsAdwBTAHIARABCAHIAQQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
56 </ContentProtection>
57 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
58 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQkdlGe9eVMYugfEhn/0OB5xoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
59 </ContentProtection>
60 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
61 <SegmentTemplate initialization="$RepresentationID$/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d" media="$RepresentationID$/segment_$Number$.m4s" presentationTimeOffset="927332040" startNumber="487050" timescale="48000">
62 <SegmentTimeline>
63 <S d="288000" r="12" t="140270400000"/>
64 </SegmentTimeline>
65 </SegmentTemplate>
66 <Representation audioSamplingRate="48000" bandwidth="96000" codecs="mp4a.40.2" id="audio-fre-96000">
67 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
68 </Representation>
69 </AdaptationSet>
70 <AdaptationSet contentType="audio" id="22" lang="qad" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
71 <ContentProtection cenc:default_KID="91d9467b-d795-318b-a07c-4867ff4381e7" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
72 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
73 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBlADAAYgBaAGsAWgBYAFgAaQB6AEcAZwBmAEUAaABuAC8AMABPAEIANQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AUABrADkAawB3AFMAcgBEAEIAcgBBAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
74 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AZQAwAGIAWgBrAFoAWABYAGkAegBHAGcAZgBFAGgAbgAvADAATwBCADUAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AFAAawA5AGsAdwBTAHIARABCAHIAQQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
75 </ContentProtection>
76 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
77 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQkdlGe9eVMYugfEhn/0OB5xoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
78 </ContentProtection>
79 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
80 <SegmentTemplate initialization="$RepresentationID$/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d" media="$RepresentationID$/segment_$Number$.m4s" presentationTimeOffset="927332040" startNumber="487050" timescale="48000">
81 <SegmentTimeline>
82 <S d="288000" r="12" t="140270400000"/>
83 </SegmentTimeline>
84 </SegmentTemplate>
85 <Representation audioSamplingRate="48000" bandwidth="96000" codecs="mp4a.40.2" id="audio-fre-audiodesc-96000">
86 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
87 </Representation>
88 </AdaptationSet>
89 <AdaptationSet contentType="audio" id="23" lang="qaa" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
90 <ContentProtection cenc:default_KID="91d9467b-d795-318b-a07c-4867ff4381e7" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
91 <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
92 <cenc:pssh>AAADSHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAygoAwAAAQABAB4DPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBlADAAYgBaAGsAWgBYAFgAaQB6AEcAZwBmAEUAaABuAC8AMABPAEIANQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AUABrADkAawB3AFMAcgBEAEIAcgBBAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A</cenc:pssh>
93 <mspr:pro>KAMAAAEAAQAeAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AZQAwAGIAWgBrAFoAWABYAGkAegBHAGcAZgBFAGgAbgAvADAATwBCADUAdwA9AD0APAAvAEsASQBEAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGkAYwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALQB1AGkALgBlAHgAYQBtAHAAbABlAC4AYwBvAG0APAAvAEwAVQBJAF8AVQBSAEwAPgA8AEMASABFAEMASwBTAFUATQA+AFAAawA5AGsAdwBTAHIARABCAHIAQQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</mspr:pro>
94 </ContentProtection>
95 <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
96 <cenc:pssh>AAAAbXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAE0IARIQkdlGe9eVMYugfEhn/0OB5xoIY2FzdGxhYnMiJGV5SmhjM05sZEVsa0lqb2laR0Z6YUdObGJtTmZUVFlpZlE9PTIHZGVmYXVsdA==</cenc:pssh>
97 </ContentProtection>
98 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
99 <SegmentTemplate initialization="$RepresentationID$/init.mp4?id=6abdc8cb40bd1bbb600ae08523354d9d" media="$RepresentationID$/segment_$Number$.m4s" presentationTimeOffset="927332040" startNumber="487050" timescale="48000">
100 <SegmentTimeline>
101 <S d="288000" r="12" t="140270400000"/>
102 </SegmentTimeline>
103 </SegmentTemplate>
104 <Representation audioSamplingRate="48000" bandwidth="96000" codecs="mp4a.40.2" id="audio-original-96000">
105 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
106 </Representation>
107 </AdaptationSet>
108 </Period>
109 <UTCTiming schemeIdUri="urn:mpeg:dash:utc:direct:2014" value="2020-06-07T11:59:55Z"/>
110 </MPD>
0 <?xml version="1.0" ?>
1 <MPD availabilityStartTime="1970-01-01T00:00:06Z" minBufferTime="PT6S" minimumUpdatePeriod="PT6S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:hbbtv:dash:profile:isoff-live:2012" publishTime="2020-06-07T11:59:55Z" suggestedPresentationDelay="PT12S" timeShiftBufferDepth="PT1M18S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" mediaPresentationDuration="PT9000.000000S">
2 <Period id="0" start="PT1588628086S">
3 <AdaptationSet contentType="video" id="1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
4 <SegmentTemplate initialization="$RepresentationID$/init.mp4?id=8c1bbb709229e110fbb0d1e544266504" media="$RepresentationID$/segment_$Number$.m4s" presentationTimeOffset="1738747575" startNumber="487050" timescale="90000">
5 <SegmentTimeline>
6 <S d="540000" r="12" t="263007000000"/>
7 </SegmentTimeline>
8 </SegmentTemplate>
9 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400">
10 </Representation>
11 </AdaptationSet>
12 </Period>
13 <UTCTiming schemeIdUri="urn:mpeg:dash:utc:direct:2014" value="2020-06-07T11:59:55Z"/>
14 </MPD>
0 <?xml version="1.0" ?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" type="static" profiles="urn:mpeg:dash:profile:isoff-live:2011" mediaPresentationDuration="PT1H47M52S" minBufferTime="PT10S" maxSegmentDuration="PT11S">
2 <Period id="0" start="PT1588628086S">
3 <AdaptationSet contentType="video" id="1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1">
4 <SegmentTemplate initialization="$RepresentationID$/init.mp4?id=8c1bbb709229e110fbb0d1e544266504" media="$RepresentationID$/segment_$Number$.m4s" presentationTimeOffset="1738747575" startNumber="487050" timescale="90000">
5 <SegmentTimeline>
6 <S d="540000" r="12" t="263007000000"/>
7 </SegmentTimeline>
8 </SegmentTemplate>
9 <Representation bandwidth="300000" codecs="avc1.42001e" frameRate="25" height="224" id="videosd-400x224" sar="224:225" scanType="progressive" width="400">
10 </Representation>
11 </AdaptationSet>
12 </Period>
13 <UTCTiming schemeIdUri="urn:mpeg:dash:utc:direct:2014" value="2020-06-07T11:59:55Z"/>
14 </MPD>
0 <?xml version="1.0" encoding="utf-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="1970-01-01T00:00:00Z" maxSegmentDuration="PT2S" minBufferTime="PT2S" minimumUpdatePeriod="P100Y" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-simple" publishTime="2020-06-08T18:54:24Z" timeShiftBufferDepth="PT5M" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
2 <Period id="p0" start="PT0S">
3 <AdaptationSet contentType="audio" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
4 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
5 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="0" />
6 <Representation audioSamplingRate="48000" bandwidth="48000" codecs="mp4a.40.2" id="A48">
7 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
8 </Representation>
9 </AdaptationSet>
10 <AdaptationSet contentType="video" maxFrameRate="60/2" maxHeight="360" maxWidth="640" mimeType="video/mp4" minHeight="360" minWidth="640" par="16:9" segmentAlignment="true" startWithSAP="1">
11 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
12 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="0" />
13 <Representation bandwidth="300000" codecs="avc1.64001e" frameRate="60/2" height="360" id="V300" sar="1:1" width="640" />
14 </AdaptationSet>
15 </Period>
16 </MPD>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" type="static" profiles="urn:mpeg:dash:profile:isoff-live:2011" mediaPresentationDuration="PT1H47M52S" minBufferTime="PT10S" maxSegmentDuration="PT11S">
2 <Period id="1" duration="PT1H47M52S">
3 <BaseURL>https://foo.bar/guid.ism/dash</BaseURL>
4 <AdaptationSet audioSamplingRate="44100" mimeType="audio/mp4" codecs="mp4a.40.2" startWithSAP="1" id="1" group="1" lang="afr" contentType="audio" segmentAlignment="True">
5 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
6 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
7 <ContentProtection schemeIdUri="urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"/>
8 <ContentProtection schemeIdUri="urn:uuid:5E629AF5-38DA-4063-8977-97FFBD9902D4"/>
9 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
10 <SegmentTemplate timescale="44100" duration="441000" media="media-$RepresentationID$-$Number$.m4s" initialization="media-$RepresentationID$.dash"/>
11 <Representation id="audio=128000" bandwidth="128000"/>
12 </AdaptationSet>
13 <AdaptationSet sar="1:1" mimeType="video/mp4" codecs="avc1.4D401F" startWithSAP="1" id="2" group="2" contentType="video" par="16:9" minBandwidth="66000" maxBandwidth="1916000" maxWidth="1280" maxHeight="720" segmentAlignment="True">
14 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
15 <ContentProtection schemeIdUri="urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"/>
16 <ContentProtection schemeIdUri="urn:uuid:5E629AF5-38DA-4063-8977-97FFBD9902D4"/>
17 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
18 <SegmentTemplate timescale="16000" duration="160000" media="media-$RepresentationID$-$Number$.m4s" initialization="media-$RepresentationID$.dash"/>
19 <Representation width="256" height="144" scanType="progressive" id="video=66000" bandwidth="66000"/>
20 </AdaptationSet>
21 </Period>
22 </MPD>
0 <?xml version="1.0" encoding="utf-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="1970-01-01T00:00:00Z" maxSegmentDuration="PT2S" minBufferTime="PT2S" minimumUpdatePeriod="P100Y" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-simple" publishTime="2020-06-08T18:54:24Z" timeShiftBufferDepth="PT5M" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd">
2 <BaseURL>https://foo.bar/mpd/</BaseURL>
3 <Period id="p0" start="PT0S">
4 <AdaptationSet contentType="audio" lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
5 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
6 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="0" />
7 <Representation audioSamplingRate="48000" bandwidth="48000" codecs="mp4a.40.2" id="A48">
8 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
9 </Representation>
10 </AdaptationSet>
11 <AdaptationSet contentType="video" maxFrameRate="60/2" maxHeight="360" maxWidth="640" mimeType="video/mp4" minHeight="360" minWidth="640" par="16:9" segmentAlignment="true" startWithSAP="1">
12 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main" />
13 <SegmentTemplate duration="2" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/$Number$.m4s" startNumber="0" />
14 <Representation bandwidth="300000" codecs="avc1.64001e" frameRate="60/2" height="360" id="V300" sar="1:1" width="640" />
15 </AdaptationSet>
16 </Period>
17 </MPD>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" type="static" profiles="urn:mpeg:dash:profile:isoff-live:2011" mediaPresentationDuration="PT1H47M52S" minBufferTime="PT10S" maxSegmentDuration="PT11S">
2 <Period id="1" duration="PT1H47M52S">
3 <BaseURL>https://foo.bar/guid.ism/dash/</BaseURL>
4 <AdaptationSet audioSamplingRate="44100" mimeType="audio/mp4" codecs="mp4a.40.2" startWithSAP="1" id="1" group="1" lang="afr" contentType="audio" segmentAlignment="True">
5 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
6 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
7 <ContentProtection schemeIdUri="urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"/>
8 <ContentProtection schemeIdUri="urn:uuid:5E629AF5-38DA-4063-8977-97FFBD9902D4"/>
9 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
10 <SegmentTemplate timescale="44100" duration="441000" media="media-$RepresentationID$-$Number$.m4s" initialization="media-$RepresentationID$.dash"/>
11 <Representation id="audio=128000" bandwidth="128000"/>
12 </AdaptationSet>
13 <AdaptationSet sar="1:1" mimeType="video/mp4" codecs="avc1.4D401F" startWithSAP="1" id="2" group="2" contentType="video" par="16:9" minBandwidth="66000" maxBandwidth="1916000" maxWidth="1280" maxHeight="720" segmentAlignment="True">
14 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
15 <ContentProtection schemeIdUri="urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"/>
16 <ContentProtection schemeIdUri="urn:uuid:5E629AF5-38DA-4063-8977-97FFBD9902D4"/>
17 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
18 <SegmentTemplate timescale="16000" duration="160000" media="media-$RepresentationID$-$Number$.m4s" initialization="media-$RepresentationID$.dash"/>
19 <Representation width="256" height="144" scanType="progressive" id="video=66000" bandwidth="66000"/>
20 </AdaptationSet>
21 </Period>
22 </MPD>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" type="dynamic" publishTime="2021-03-04T00:02:12.271Z" minimumUpdatePeriod="PT4S" availabilityStartTime="2021-03-04T00:02:12.271Z" minBufferTime="PT12S" suggestedPresentationDelay="PT30S" timeShiftBufferDepth="PT2M" profiles="urn:mpeg:dash:profile:isoff-live:2011">
2 <BaseURL>https://d15umi5iaezxgx.cloudfront.net/OUT/DASH/</BaseURL>
3 <Period start="PT0S" id="1" >
4 <AdaptationSet mimeType="video/mp4" frameRate="25/1" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="false" >
5 <ContentProtection cenc:default_KID="DB057321-C922-4C25-A7CC-D75D911DD1FC" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
6 <ContentProtection cenc:default_KID="DB057321-C922-4C25-A7CC-D75D911DD1FC" schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
7 <cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAAEMHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABBAQBAAAAQABAAYEPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AbABhADcALgBwAHIAbwBkAC4AYwBvAG4AYQB4AC4AYwBsAG8AdQBkAC8AYwB4AHAAbABhAHkAcgBlAGEAZAB5AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APABMAFUASQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAYQA3AC4AcAByAG8AZAAuAGMAbwBuAGEAeAAuAGMAbABvAHUAZAAvAGMAeABwAGwAYQB5AHIAZQBhAGQAeQAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAFUASQBfAFUAUgBMAD4APABLAEkARAA+AEkAWABNAEYAMgB5AEwASgBKAFUAeQBuAHoATgBkAGQAawBSADMAUgAvAEEAPQA9ADwALwBLAEkARAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBvAG4AdABlAG4AdABSAGUAZgA+ADgAZgA5ADUAZAA0ADAAYQAtADcANwBmAGIALQA0ADYAMAAwAC0AOABmADUAOAAtADAAOABmAGUAOAA4ADMANwA2AGEAMwA5ADwALwBDAG8AbgB0AGUAbgB0AFIAZQBmAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AEMASABFAEMASwBTAFUATQA+AFoAegBMAGYAUQBFAFgAOABTADQAOAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
8 </ContentProtection>
9 <ContentProtection xmlns:mspr="urn:microsoft:playready" schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
10 <mspr:pro>EAQAAAEAAQAGBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAYQA3AC4AcAByAG8AZAAuAGMAbwBuAGEAeAAuAGMAbABvAHUAZAAvAGMAeABwAGwAYQB5AHIAZQBhAGQAeQAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGEANwAuAHAAcgBvAGQALgBjAG8AbgBhAHgALgBjAGwAbwB1AGQALwBjAHgAcABsAGEAeQByAGUAYQBkAHkALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABVAEkAXwBVAFIATAA+ADwASwBJAEQAPgBJAFgATQBGADIAeQBMAEoASgBVAHkAbgB6AE4AZABkAGsAUgAzAFIALwBBAD0APQA8AC8ASwBJAEQAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMAbwBuAHQAZQBuAHQAUgBlAGYAPgA4AGYAOQA1AGQANAAwAGEALQA3ADcAZgBiAC0ANAA2ADAAMAAtADgAZgA1ADgALQAwADgAZgBlADgAOAAzADcANgBhADMAOQA8AC8AQwBvAG4AdABlAG4AdABSAGUAZgA+ADwALwBDAFUAUwBUAE8ATQBBAFQAVABSAEkAQgBVAFQARQBTAD4APABDAEgARQBDAEsAUwBVAE0APgBaAHoATABmAFEARQBYADgAUwA0ADgAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</mspr:pro>
11 </ContentProtection>
12 <ContentProtection cenc:default_KID="DB057321-C922-4C25-A7CC-D75D911DD1FC" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
13 <ContentProtection cenc:default_KID="DB057321-C922-4C25-A7CC-D75D911DD1FC" schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
14 <cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAAAYXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEEIARIQ2wVzIckiTCWnzNddkR3R/BoFQ29uYXgiJDhmOTVkNDBhLTc3ZmItNDYwMC04ZjU4LTA4ZmU4ODM3NmEzOQ==</cenc:pssh>
15 </ContentProtection>
16 <SegmentTemplate timescale="90000" duration="360000" startNumber="1"/>
17 <Representation id="1" width="960" height="540" bandwidth="1700000" codecs="avc1.64001f">
18 <SegmentTemplate duration="360000" startNumber="1" media="Live_960x540_$Number%09d$.mp4" initialization="Live_960x540init.mp4" availabilityTimeOffset="-30.0"/>
19 </Representation>
20 <Representation id="2" width="640" height="360" bandwidth="660000" codecs="avc1.4d401e">
21 <SegmentTemplate duration="360000" startNumber="1" media="Live_640x360_$Number%09d$.mp4" initialization="Live_640x360init.mp4" availabilityTimeOffset="-30.0"/>
22 </Representation>
23 <Representation id="3" width="480" height="270" bandwidth="350000" codecs="avc1.4d401e">
24 <SegmentTemplate duration="360000" startNumber="1" media="Live_480x270_$Number%09d$.mp4" initialization="Live_480x270init.mp4" availabilityTimeOffset="-30.0"/>
25 </Representation>
26 <Representation id="4" width="416" height="234" bandwidth="145000" codecs="avc1.4d401e">
27 <SegmentTemplate duration="360000" startNumber="1" media="Live_416x234_$Number%09d$.mp4" initialization="Live_416x234init.mp4" availabilityTimeOffset="-30.0"/>
28 </Representation>
29 </AdaptationSet>
30 <AdaptationSet mimeType="audio/mp4" segmentAlignment="0">
31 <ContentProtection cenc:default_KID="DB057321-C922-4C25-A7CC-D75D911DD1FC" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
32 <ContentProtection cenc:default_KID="DB057321-C922-4C25-A7CC-D75D911DD1FC" schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
33 <cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAAEMHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAABBAQBAAAAQABAAYEPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AbABhADcALgBwAHIAbwBkAC4AYwBvAG4AYQB4AC4AYwBsAG8AdQBkAC8AYwB4AHAAbABhAHkAcgBlAGEAZAB5AC8AcgBpAGcAaAB0AHMAbQBhAG4AYQBnAGUAcgAuAGEAcwBtAHgAPAAvAEwAQQBfAFUAUgBMAD4APABMAFUASQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAYQA3AC4AcAByAG8AZAAuAGMAbwBuAGEAeAAuAGMAbABvAHUAZAAvAGMAeABwAGwAYQB5AHIAZQBhAGQAeQAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAFUASQBfAFUAUgBMAD4APABLAEkARAA+AEkAWABNAEYAMgB5AEwASgBKAFUAeQBuAHoATgBkAGQAawBSADMAUgAvAEEAPQA9ADwALwBLAEkARAA+ADwAQwBVAFMAVABPAE0AQQBUAFQAUgBJAEIAVQBUAEUAUwAgAHgAbQBsAG4AcwA9ACIAIgA+ADwAQwBvAG4AdABlAG4AdABSAGUAZgA+ADgAZgA5ADUAZAA0ADAAYQAtADcANwBmAGIALQA0ADYAMAAwAC0AOABmADUAOAAtADAAOABmAGUAOAA4ADMANwA2AGEAMwA5ADwALwBDAG8AbgB0AGUAbgB0AFIAZQBmAD4APAAvAEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AEMASABFAEMASwBTAFUATQA+AFoAegBMAGYAUQBFAFgAOABTADQAOAA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh>
34 </ContentProtection>
35 <ContentProtection xmlns:mspr="urn:microsoft:playready" schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
36 <mspr:pro>EAQAAAEAAQAGBDwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAYQA3AC4AcAByAG8AZAAuAGMAbwBuAGEAeAAuAGMAbABvAHUAZAAvAGMAeABwAGwAYQB5AHIAZQBhAGQAeQAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBsAGEANwAuAHAAcgBvAGQALgBjAG8AbgBhAHgALgBjAGwAbwB1AGQALwBjAHgAcABsAGEAeQByAGUAYQBkAHkALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABVAEkAXwBVAFIATAA+ADwASwBJAEQAPgBJAFgATQBGADIAeQBMAEoASgBVAHkAbgB6AE4AZABkAGsAUgAzAFIALwBBAD0APQA8AC8ASwBJAEQAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAIAB4AG0AbABuAHMAPQAiACIAPgA8AEMAbwBuAHQAZQBuAHQAUgBlAGYAPgA4AGYAOQA1AGQANAAwAGEALQA3ADcAZgBiAC0ANAA2ADAAMAAtADgAZgA1ADgALQAwADgAZgBlADgAOAAzADcANgBhADMAOQA8AC8AQwBvAG4AdABlAG4AdABSAGUAZgA+ADwALwBDAFUAUwBUAE8ATQBBAFQAVABSAEkAQgBVAFQARQBTAD4APABDAEgARQBDAEsAUwBVAE0APgBaAHoATABmAFEARQBYADgAUwA0ADgAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=</mspr:pro>
37 </ContentProtection>
38 <ContentProtection cenc:default_KID="DB057321-C922-4C25-A7CC-D75D911DD1FC" schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
39 <ContentProtection cenc:default_KID="DB057321-C922-4C25-A7CC-D75D911DD1FC" schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
40 <cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAAAYXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAEEIARIQ2wVzIckiTCWnzNddkR3R/BoFQ29uYXgiJDhmOTVkNDBhLTc3ZmItNDYwMC04ZjU4LTA4ZmU4ODM3NmEzOQ==</cenc:pssh>
41 </ContentProtection>
42 <SegmentTemplate timescale="44100" media="Live_Audio_$Number%09d$.mp4" initialization="Live_Audioinit.mp4" duration="176400" startNumber="1" availabilityTimeOffset="-30.0"/>
43 <Representation id="5" bandwidth="96000" audioSamplingRate="44100" codecs="mp4a.40.2"/>
44 </AdaptationSet>
45 </Period>
46 </MPD>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" type="dynamic" minimumUpdatePeriod="PT4.000S" minBufferTime="PT5.000S" maxSegmentDuration="PT4.500S" availabilityStartTime="2021-03-25T23:44:03Z" timeShiftBufferDepth="PT1800.000S" publishTime="2021-03-31T20:52:37Z" profiles="urn:mpeg:dash:profile:isoff-live:2011">
2 <Period id="404187865" start="PT35652S">
3 <AdaptationSet mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" maxWidth="1920" maxHeight="1080" maxFrameRate="25" par="25:14">
4 <SegmentTemplate timescale="90000" initialization="$RepresentationID$/segment-Header-init.m4s" media="$RepresentationID$/segment-$Number$.m4s" duration="360000" startNumber="404187866" presentationTimeOffset="7539818380345"/>
5 <Representation id="video1" width="400" height="224" frameRate="25" sar="1:1" scanType="progressive" bandwidth="450000" codecs="avc1.4D4015"/>
6 <Representation id="video2" width="640" height="360" frameRate="25" sar="1:1" scanType="progressive" bandwidth="600000" codecs="avc1.4D401E"/>
7 <Representation id="video3" width="960" height="540" frameRate="25" sar="1:1" scanType="progressive" bandwidth="1200000" codecs="avc1.4D401F"/>
8 <Representation id="video4" width="960" height="540" frameRate="25" sar="1:1" scanType="progressive" bandwidth="1800000" codecs="avc1.4D401F"/>
9 <Representation id="video5" width="1280" height="720" frameRate="25" sar="1:1" scanType="progressive" bandwidth="2600000" codecs="avc1.4D401F"/>
10 <Representation id="video6" width="1920" height="1080" frameRate="25" sar="1:1" scanType="progressive" bandwidth="3400000" codecs="avc1.4D4028"/>
11 </AdaptationSet>
12 <AdaptationSet mimeType="audio/mp4" lang="ar" segmentAlignment="true" startWithSAP="1">
13 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
14 <SegmentTemplate timescale="90000" initialization="$RepresentationID$/segment-Header-init.m4s" media="$RepresentationID$/segment-$Number$.m4s" duration="360000" startNumber="404187866" presentationTimeOffset="7539818380345"/>
15 <Representation id="audio1" audioSamplingRate="24000" bandwidth="96000" codecs="mp4a.40.2">
16 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
17 </Representation>
18 </AdaptationSet>
19 </Period>
20 <UTCTiming schemeIdUri="urn:mpeg:dash:utc:direct:2014" value="2021-03-31T20:53:07Z"/>
21 </MPD>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" type="static" profiles="urn:mpeg:dash:profile:isoff-live:2011" mediaPresentationDuration="PT1H47M52S" minBufferTime="PT10S" maxSegmentDuration="PT11S">
2 <Period id="1" duration="PT1H47M52S">
3 <BaseURL>https://foo.bar/guid.ism/dash</BaseURL>
4 <AdaptationSet audioSamplingRate="44100" mimeType="audio/mp4" codecs="mp4a.40.2" startWithSAP="1" id="1" group="1" lang="afr" contentType="audio" segmentAlignment="True">
5 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
6 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
7 <ContentProtection schemeIdUri="urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"/>
8 <ContentProtection schemeIdUri="urn:uuid:5E629AF5-38DA-4063-8977-97FFBD9902D4"/>
9 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
10 <SegmentTemplate timescale="44100" duration="441000" media="/media-$RepresentationID$-$Number$.m4s" initialization="/media-$RepresentationID$.dash"/>
11 <Representation id="audio=128000" bandwidth="128000"/>
12 </AdaptationSet>
13 <AdaptationSet sar="1:1" mimeType="video/mp4" codecs="avc1.4D401F" startWithSAP="1" id="2" group="2" contentType="video" par="16:9" minBandwidth="66000" maxBandwidth="1916000" maxWidth="1280" maxHeight="720" segmentAlignment="True">
14 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
15 <ContentProtection schemeIdUri="urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"/>
16 <ContentProtection schemeIdUri="urn:uuid:5E629AF5-38DA-4063-8977-97FFBD9902D4"/>
17 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
18 <SegmentTemplate timescale="16000" duration="160000" media="/media-$RepresentationID$-$Number$.m4s" initialization="/media-$RepresentationID$.dash"/>
19 <Representation width="256" height="144" scanType="progressive" id="video=66000" bandwidth="66000"/>
20 </AdaptationSet>
21 </Period>
22 </MPD>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" type="static" profiles="urn:mpeg:dash:profile:isoff-live:2011" mediaPresentationDuration="PT1H47M52S" minBufferTime="PT10S" maxSegmentDuration="PT11S">
2 <Period id="1" duration="PT1H47M52S">
3 <BaseURL>https://foo.bar/guid.ism/dash/</BaseURL>
4 <AdaptationSet audioSamplingRate="44100" mimeType="audio/mp4" codecs="mp4a.40.2" startWithSAP="1" id="1" group="1" lang="afr" contentType="audio" segmentAlignment="True">
5 <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
6 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
7 <ContentProtection schemeIdUri="urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"/>
8 <ContentProtection schemeIdUri="urn:uuid:5E629AF5-38DA-4063-8977-97FFBD9902D4"/>
9 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
10 <SegmentTemplate timescale="44100" duration="441000" media="/media-$RepresentationID$-$Number$.m4s" initialization="/media-$RepresentationID$.dash"/>
11 <Representation id="audio=128000" bandwidth="128000"/>
12 </AdaptationSet>
13 <AdaptationSet sar="1:1" mimeType="video/mp4" codecs="avc1.4D401F" startWithSAP="1" id="2" group="2" contentType="video" par="16:9" minBandwidth="66000" maxBandwidth="1916000" maxWidth="1280" maxHeight="720" segmentAlignment="True">
14 <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/>
15 <ContentProtection schemeIdUri="urn:uuid:EDEF8BA9-79D6-4ACE-A3C8-27DCD51D21ED"/>
16 <ContentProtection schemeIdUri="urn:uuid:5E629AF5-38DA-4063-8977-97FFBD9902D4"/>
17 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
18 <SegmentTemplate timescale="16000" duration="160000" media="/media-$RepresentationID$-$Number$.m4s" initialization="/media-$RepresentationID$.dash"/>
19 <Representation width="256" height="144" scanType="progressive" id="video=66000" bandwidth="66000"/>
20 </AdaptationSet>
21 </Period>
22 </MPD>
0 <?xml version="1.0"?>
1 <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500000S" type="static" mediaPresentationDuration="PT0H10M54.00S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011,http://dashif.org/guidelines/dash264">
2 <Period id="" duration="PT0H10M54.00S">
3 <AdaptationSet segmentAlignment="true" maxWidth="1280" maxHeight="720" maxFrameRate="24" par="16:9" subsegmentStartsWithSAP="1">
4 <Representation id="0" mimeType="video/mp4" codecs="avc1.4d401f" width="1280" height="720" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="4076826">
5 <BaseURL>ED_720_4M_MPEG2_video_init.mp4</BaseURL>
6 <SegmentBase indexRangeExact="true" indexRange="885-2488"/>
7 </Representation>
8 </AdaptationSet>
9
10 <AdaptationSet lang="en" mimeType="application/ttml+xml">
11 <Representation id="1">
12 <BaseURL>English_track.xml</BaseURL>
13 </Representation>
14 </AdaptationSet>
15
16 <AdaptationSet lang="en">
17 <Representation id="2" mimeType="application/ttml+xml">
18 <BaseURL>English_track.xml</BaseURL>
19 </Representation>
20 </AdaptationSet>
21
22 <AdaptationSet lang="en" codecs="ttml">
23 <Representation id="3">
24 <BaseURL>English_track.xml</BaseURL>
25 </Representation>
26 </AdaptationSet>
27
28 <AdaptationSet lang="en">
29 <Representation id="4" codecs="ttml">
30 <BaseURL>English_track.xml</BaseURL>
31 </Representation>
32 </AdaptationSet>
33
34 <AdaptationSet lang="en" mimeType="text/vtt">
35 <Representation id="5">
36 <BaseURL>English_track.vtt</BaseURL>
37 </Representation>
38 </AdaptationSet>
39
40 <AdaptationSet lang="en">
41 <Representation id="6" mimeType="text/vtt">
42 <BaseURL>English_track.vtt</BaseURL>
43 </Representation>
44 </AdaptationSet>
45
46 <AdaptationSet lang="en" codecs="wvtt">
47 <Representation id="7">
48 <BaseURL>English_track.vtt</BaseURL>
49 </Representation>
50 </AdaptationSet>
51
52 <AdaptationSet lang="en">
53 <Representation id="8" codecs="wvtt">
54 <BaseURL>English_track.vtt</BaseURL>
55 </Representation>
56 </AdaptationSet>
57
58 <AdaptationSet lang="en" mimeType="text/vtt">
59 <Representation id="9" codecs="my_codec">
60 <BaseURL>English_track.vtt</BaseURL>
61 </Representation>
62 </AdaptationSet>
63
64 <!-- http://dash.edgesuite.net/dash264/TestCases/4b/qualcomm/1/ED_OnDemand_5SecSeg_Subtitles.mpd -->
65 <AdaptationSet mimeType="application/ttml+xml" lang="en">
66 <Role schemeIdUri="urn:mpeg:dash:role" value="subtitle" />
67 <Representation id="10" bandwidth="268" >
68 <BaseURL>English_track.xml</BaseURL>
69 </Representation>
70 </AdaptationSet>
71
72 <!-- http://media.axprod.net/dash/ED_TTML_NEW/Clear/Manifest_sub_in.mpd -->
73 <!-- https://livesim.dashif.org/dash/vod/testpic_2s/multi_subs.mpd -->
74 <AdaptationSet segmentAlignment="true" par="1:1" lang="en">
75 <SegmentTemplate timescale="1000" media="$RepresentationID$/$Number%04d$.m4s" startNumber="1" duration="4000" initialization="$RepresentationID$/init.mp4" />
76 <Representation id="11" mimeType="application/mp4" codecs="stpp" startWithSAP="1" bandwidth="845"></Representation>
77 </AdaptationSet>
78
79 <!-- https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-multiple-subtitles.ism/.mpd -->
80 <AdaptationSet contentType="text" lang="en" mimeType="application/mp4" codecs="stpp.ttml.im1t" startWithSAP="1">
81 <Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle" />
82 <SegmentTemplate timescale="1000" initialization="tears-of-steel-multiple-subtitles-$RepresentationID$.dash" media="tears-of-steel-multiple-subtitles-$RepresentationID$-$Time$.dash">
83 <SegmentTimeline>
84 <S t="0" d="4000" r="140" />
85 <S d="3000" />
86 </SegmentTimeline>
87 </SegmentTemplate>
88 <Representation id="12" bandwidth="1000"></Representation>
89 </AdaptationSet>
90 </Period>
91 </MPD>