/*! @name mpd-parser @version 0.15.0 @license Apache-2.0 */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("global/window"),require("xmldom")):"function"==typeof define&&define.amd?define(["exports","global/window","xmldom"],e):e((t=t||self).mpdParser={},t.window,t.window)}(this,(function(t,e,r){"use strict";e=e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;var n=function(t){return!!t&&"object"==typeof t},i=function t(){for(var e=arguments.length,r=new Array(e),i=0;i=0&&(f.minimumUpdatePeriod=1e3*c),e&&(f.locations=e),"dynamic"===u&&(f.suggestedPresentationDelay=s),l.length&&(f.mediaGroups.AUDIO.audio=function(t,e){var r;void 0===e&&(e={});var n=t.reduce((function(t,n){var i=n.attributes.role&&n.attributes.role.value||"",a=n.attributes.lang||"",o="main";if(a){var u=i?" ("+i+")":"";o=""+n.attributes.lang+u}return t[o]&&t[o].playlists[0].attributes.BANDWIDTH>n.attributes.bandwidth||(t[o]={language:a,autoselect:!0,default:"main"===i,playlists:x([L(n)],e),uri:""},void 0===r&&"main"===i&&((r=n).default=!0)),t}),{});r||(n[Object.keys(n)[0]].default=!0);return n}(l,r)),m.length&&(f.mediaGroups.SUBTITLES.subs=function(t,e){return void 0===e&&(e={}),t.reduce((function(t,r){var n=r.attributes.lang||"text";return t[n]||(t[n]={language:n,default:!1,autoselect:!1,playlists:x([w(r)],e),uri:""}),t}),{})}(m,r)),f},R=function(t,e,r){var n=t.NOW,i=t.clientOffset,a=t.availabilityStartTime,o=t.timescale,u=void 0===o?1:o,s=t.start,c=void 0===s?0:s,d=t.minimumUpdatePeriod,l=(n+i)/1e3+(void 0===d?0:d)-(a+c);return Math.ceil((l*u-e)/r)},T=function(t,e){for(var r=t.type,n=void 0===r?"static":r,i=t.minimumUpdatePeriod,a=void 0===i?0:i,o=t.media,u=void 0===o?"":o,s=t.sourceDuration,c=t.timescale,d=void 0===c?1:c,l=t.startNumber,m=void 0===l?1:l,f=t.periodIndex,p=[],v=-1,h=0;hv&&(v=U);var I=void 0;if(y<0){var D=h+1;I=D===e.length?"dynamic"===n&&a>0&&u.indexOf("$Number$")>0?R(t,v,b):(s*d-v)/b:(e[D].t-v)/b}else I=y+1;for(var x=m+p.length+I,L=m+p.length;L=i?a:""+new Array(i-a.length+1).join("0")+a)}}(e))},O=function(t,e){var r={RepresentationID:t.id,Bandwidth:t.bandwidth||0},n=t.initialization,i=void 0===n?{sourceURL:"",range:""}:n,a=g({baseUrl:t.baseUrl,source:N(i.sourceURL,r),range:i.range});return function(t,e){return t.duration||e?t.duration?y(t):T(t,e):[{number:t.startNumber||1,duration:t.sourceDuration,time:0,timeline:t.periodIndex}]}(t,e).map((function(e){r.Number=e.number,r.Time=e.time;var n=N(t.media||"",r);return{uri:n,timeline:e.timeline,duration:e.duration,resolvedUri:h(t.baseUrl||"",n),map:a,number:e.number}}))},A=function(t,e){var r=t.duration,n=t.segmentUrls,i=void 0===n?[]:n;if(!r&&!e||r&&e)throw new Error(l);var a,o=i.map((function(e){return function(t,e){var r=t.baseUrl,n=t.initialization,i=void 0===n?{}:n,a=g({baseUrl:r,source:i.sourceURL,range:i.range}),o=g({baseUrl:r,source:e.media,range:e.mediaRange});return o.map=a,o}(t,e)}));return r&&(a=y(t)),e&&(a=T(t,e)),a.map((function(t,e){if(o[e]){var r=o[e];return r.timeline=t.timeline,r.duration=t.duration,r.number=t.number,r}})).filter((function(t){return t}))},M=function(t){var e,r,n=t.attributes,a=t.segmentInfo;a.template?(r=O,e=i(n,a.template)):a.base?(r=U,e=i(n,a.base)):a.list&&(r=A,e=i(n,a.list));var o={attributes:n};if(!r)return o;var u=r(e,a.timeline);if(e.duration){var s=e,c=s.duration,d=s.timescale,l=void 0===d?1:d;e.duration=c/l}else u.length?e.duration=u.reduce((function(t,e){return Math.max(t,Math.ceil(e.duration))}),0):e.duration=0;return o.attributes=e,o.segments=u,a.base&&e.indexRange&&(o.sidx=u[0],o.segments=[]),o},z=function(t){return t.map(M)},B=function(t,e){return o(t.childNodes).filter((function(t){return t.tagName===e}))},C=function(t){return t.textContent.trim()},j=function(t){var e=/P(?:(\d*)Y)?(?:(\d*)M)?(?:(\d*)D)?(?:T(?:(\d*)H)?(?:(\d*)M)?(?:([\d.]*)S)?)?/.exec(t);if(!e)return 0;var r=e.slice(1),n=r[0],i=r[1],a=r[2],o=r[3],u=r[4],s=r[5];return 31536e3*parseFloat(n||0)+2592e3*parseFloat(i||0)+86400*parseFloat(a||0)+3600*parseFloat(o||0)+60*parseFloat(u||0)+parseFloat(s||0)},F={mediaPresentationDuration:function(t){return j(t)},availabilityStartTime:function(t){return/^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(e=t)&&(e+="Z"),Date.parse(e)/1e3;var e},minimumUpdatePeriod:function(t){return j(t)},suggestedPresentationDelay:function(t){return j(t)},type:function(t){return t},timeShiftBufferDepth:function(t){return j(t)},start:function(t){return j(t)},width:function(t){return parseInt(t,10)},height:function(t){return parseInt(t,10)},bandwidth:function(t){return parseInt(t,10)},startNumber:function(t){return parseInt(t,10)},timescale:function(t){return parseInt(t,10)},duration:function(t){var e=parseInt(t,10);return isNaN(e)?j(t):e},d:function(t){return parseInt(t,10)},t:function(t){return parseInt(t,10)},r:function(t){return parseInt(t,10)},DEFAULT:function(t){return t}},_=function(t){return t&&t.attributes?o(t.attributes).reduce((function(t,e){var r=F[e.name]||F.DEFAULT;return t[e.name]=r(e.value),t}),{}):{}};function q(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var k=q(e);var $=function(t){for(var e,r=(e=t,k.default.atob?k.default.atob(e):Buffer.from(e,"base64").toString("binary")),n=new Uint8Array(r.length),i=0;i0)throw new Error(c);return n},J=I;t.VERSION="0.15.0",t.addSidxSegmentsToPlaylist=J,t.inheritAttributes=Y,t.parse=function(t,e){void 0===e&&(e={});var r=Y(Z(t),e),n=z(r.representationInfo);return E(n,r.locations,e.sidxMapping)},t.parseUTCTiming=function(t){return function(t){var e=B(t,"UTCTiming")[0];if(!e)return null;var r=_(e);switch(r.schemeIdUri){case"urn:mpeg:dash:utc:http-head:2014":case"urn:mpeg:dash:utc:http-head:2012":r.method="HEAD";break;case"urn:mpeg:dash:utc:http-xsdate:2014":case"urn:mpeg:dash:utc:http-iso:2014":case"urn:mpeg:dash:utc:http-xsdate:2012":case"urn:mpeg:dash:utc:http-iso:2012":r.method="GET";break;case"urn:mpeg:dash:utc:direct:2014":case"urn:mpeg:dash:utc:direct:2012":r.method="DIRECT",r.value=Date.parse(r.value);break;case"urn:mpeg:dash:utc:http-ntp:2014":case"urn:mpeg:dash:utc:ntp:2014":case"urn:mpeg:dash:utc:sntp:2014":default:throw new Error(m)}return r}(Z(t))},t.stringToMpdXml=Z,t.toM3u8=E,t.toPlaylists=z,Object.defineProperty(t,"__esModule",{value:!0})}));