/*! @name mpd-parser @version 0.19.2 @license Apache-2.0 */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@xmldom/xmldom")):"function"==typeof define&&define.amd?define(["exports","@xmldom/xmldom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).mpdParser={},e.window)}(this,(function(e,t){"use strict";var r=function(e){return!!e&&"object"==typeof e},n=function e(){for(var t=arguments.length,n=new Array(t),i=0;i=0&&(f.minimumUpdatePeriod=1e3*s),t&&(f.locations=t),"dynamic"===o&&(f.suggestedPresentationDelay=u);var p=0===f.playlists.length;return d.length&&(f.mediaGroups.AUDIO.audio=function(e,t,r){var n;void 0===t&&(t={}),void 0===r&&(r=!1);var i=e.reduce((function(e,i){var a=i.attributes.role&&i.attributes.role.value||"",o=i.attributes.lang||"",u=i.attributes.label||"main";if(o&&!i.attributes.label){var s=a?" ("+a+")":"";u=""+i.attributes.lang+s}e[u]||(e[u]={language:o,autoselect:!0,default:"main"===a,playlists:[],uri:""});var c=I(function(e,t){var r,n=e.attributes,i=e.segments,a=e.sidx,o={attributes:(r={NAME:n.id,BANDWIDTH:n.bandwidth,CODECS:n.codecs},r["PROGRAM-ID"]=1,r),uri:"",endList:"static"===n.type,timeline:n.periodIndex,resolvedUri:"",targetDuration:n.duration,segments:i,mediaSequence:i.length?i[0].number:1};return n.contentProtection&&(o.contentProtection=n.contentProtection),a&&(o.sidx=a),t&&(o.attributes.AUDIO="audio",o.attributes.SUBTITLES="subs"),o}(i,r),t);return e[u].playlists.push(c),void 0===n&&"main"===a&&((n=i).default=!0),e}),{});return n||(i[Object.keys(i)[0]].default=!0),i}(d,r,p)),l.length&&(f.mediaGroups.SUBTITLES.subs=function(e,t){return void 0===t&&(t={}),e.reduce((function(e,r){var n=r.attributes.lang||"text";return e[n]||(e[n]={language:n,default:!1,autoselect:!1,playlists:[],uri:""}),e[n].playlists.push(I(function(e){var t,r=e.attributes,n=e.segments;void 0===n&&(n=[{uri:r.baseUrl,timeline:r.periodIndex,resolvedUri:r.baseUrl||"",duration:r.sourceDuration,number:0}],r.duration=r.sourceDuration);var i=((t={NAME:r.id,BANDWIDTH:r.bandwidth})["PROGRAM-ID"]=1,t);return r.codecs&&(i.CODECS=r.codecs),{attributes:i,uri:"",endList:"static"===r.type,timeline:r.periodIndex,resolvedUri:r.baseUrl||"",targetDuration:r.duration,segments:n,mediaSequence:n.length?n[0].number:1}}(r),t)),e}),{})}(l,r)),m.length&&(f.mediaGroups["CLOSED-CAPTIONS"].cc=m.reduce((function(e,t){return t?(t.forEach((function(t){var r=t.channel,n=t.language;e[n]={autoselect:!1,default:!1,instreamId:r,language:n},t.hasOwnProperty("aspectRatio")&&(e[n].aspectRatio=t.aspectRatio),t.hasOwnProperty("easyReader")&&(e[n].easyReader=t.easyReader),t.hasOwnProperty("3D")&&(e[n]["3D"]=t["3D"])})),e):e}),{})),f},P=function(e,t,r){var n=e.NOW,i=e.clientOffset,a=e.availabilityStartTime,o=e.timescale,u=void 0===o?1:o,s=e.start,c=void 0===s?0:s,d=e.minimumUpdatePeriod,l=(n+i)/1e3+(void 0===d?0:d)-(a+c);return Math.ceil((l*u-t)/r)},N=function(e,t){for(var r=e.type,n=e.minimumUpdatePeriod,i=void 0===n?0:n,a=e.media,o=void 0===a?"":a,u=e.sourceDuration,s=e.timescale,c=void 0===s?1:s,d=e.startNumber,l=void 0===d?1:d,m=e.periodIndex,f=[],p=-1,h=0;hp&&(p=y);var U=void 0;if(g<0){var w=h+1;U=w===t.length?"dynamic"===r&&i>0&&o.indexOf("$Number$")>0?P(e,p,b):(u*c-p)/b:(t[w].t-p)/b}else U=g+1;for(var D=l+f.length+U,I=l+f.length;I=i?a:""+new Array(i-a.length+1).join("0")+a)}}(t))},M=function(e,t){var r={RepresentationID:e.id,Bandwidth:e.bandwidth||0},n=e.initialization,i=void 0===n?{sourceURL:"",range:""}:n,a=h({baseUrl:e.baseUrl,source:A(i.sourceURL,r),range:i.range}),o=function(e,t){return e.duration||t?e.duration?g(e):N(e,t):[{number:e.startNumber||1,duration:e.sourceDuration,time:0,timeline:e.periodIndex}]}(e,t);return o.map((function(t){r.Number=t.number,r.Time=t.time;var n=A(e.media||"",r),i=e.timescale||1,o=e.presentationTimeOffset||0,u=e.periodStart+(t.time-o)/i;return{uri:n,timeline:t.timeline,duration:t.duration,resolvedUri:p(e.baseUrl||"",n),map:a,number:t.number,presentationTime:u}}))},C=function(e,t){var r=e.duration,n=e.segmentUrls,i=void 0===n?[]:n,a=e.periodStart;if(!r&&!t||r&&t)throw new Error(d);var o,u=i.map((function(t){return function(e,t){var r=e.baseUrl,n=e.initialization,i=void 0===n?{}:n,a=h({baseUrl:r,source:i.sourceURL,range:i.range}),o=h({baseUrl:r,source:t.media,range:t.mediaRange});return o.map=a,o}(e,t)}));return r&&(o=g(e)),t&&(o=N(e,t)),o.map((function(t,r){if(u[r]){var n=u[r],i=e.timescale||1,o=e.presentationTimeOffset||0;return n.timeline=t.timeline,n.duration=t.duration,n.number=t.number,n.presentationTime=a+(t.time-o)/i,n}})).filter((function(e){return e}))},z=function(e){var t,r,i=e.attributes,a=e.segmentInfo;a.template?(r=M,t=n(i,a.template)):a.base?(r=y,t=n(i,a.base)):a.list&&(r=C,t=n(i,a.list));var o={attributes:i};if(!r)return o;var u=r(t,a.segmentTimeline);if(t.duration){var s=t,c=s.duration,d=s.timescale,l=void 0===d?1:d;t.duration=c/l}else u.length?t.duration=u.reduce((function(e,t){return Math.max(e,Math.ceil(t.duration))}),0):t.duration=0;return o.attributes=t,o.segments=u,a.base&&t.indexRange&&(o.sidx=u[0],o.segments=[]),o},B=function(e){return e.map(z)},F=function(e,t){return a(e.childNodes).filter((function(e){return e.tagName===t}))},_=function(e){return e.textContent.trim()},j=function(e){var t=/P(?:(\d*)Y)?(?:(\d*)M)?(?:(\d*)D)?(?:T(?:(\d*)H)?(?:(\d*)M)?(?:([\d.]*)S)?)?/.exec(e);if(!t)return 0;var r=t.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)},q={mediaPresentationDuration:function(e){return j(e)},availabilityStartTime:function(e){return/^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(t=e)&&(t+="Z"),Date.parse(t)/1e3;var t},minimumUpdatePeriod:function(e){return j(e)},suggestedPresentationDelay:function(e){return j(e)},type:function(e){return e},timeShiftBufferDepth:function(e){return j(e)},start:function(e){return j(e)},width:function(e){return parseInt(e,10)},height:function(e){return parseInt(e,10)},bandwidth:function(e){return parseInt(e,10)},startNumber:function(e){return parseInt(e,10)},timescale:function(e){return parseInt(e,10)},presentationTimeOffset:function(e){return parseInt(e,10)},duration:function(e){var t=parseInt(e,10);return isNaN(t)?j(e):t},d:function(e){return parseInt(e,10)},t:function(e){return parseInt(e,10)},r:function(e){return parseInt(e,10)},DEFAULT:function(e){return e}},$=function(e){return e&&e.attributes?a(e.attributes).reduce((function(e,t){var r=q[t.name]||q.DEFAULT;return e[t.name]=r(t.value),e}),{}):{}};function k(e){for(var t,r=(t=e,window.atob?window.atob(t):Buffer.from(t,"base64").toString("binary")),n=new Uint8Array(r.length),i=0;i0)throw new Error(s);return n};e.VERSION="0.19.2",e.addSidxSegmentsToPlaylist=U,e.generateSidxKey=w,e.inheritAttributes=Y,e.parse=function(e,t){void 0===t&&(t={});var r=Y(Z(e),t),n=B(r.representationInfo);return x(n,r.locations,t.sidxMapping)},e.parseUTCTiming=function(e){return function(e){var t=F(e,"UTCTiming")[0];if(!t)return null;var r=$(t);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;default:throw new Error(l)}return r}(Z(e))},e.stringToMpdXml=Z,e.toM3u8=x,e.toPlaylists=B,Object.defineProperty(e,"__esModule",{value:!0})}));