dashjs
Version:
A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers.
1 lines • 96 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.dashjs=t():e.dashjs=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=93)}({1:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var a=new(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.init()}var t,n,a;return t=e,(n=[{key:"init",value:function(){this.STREAM="stream",this.VIDEO="video",this.AUDIO="audio",this.TEXT="text",this.MUXED="muxed",this.IMAGE="image",this.STPP="stpp",this.TTML="ttml",this.VTT="vtt",this.WVTT="wvtt",this.CONTENT_STEERING="contentSteering",this.ABR_STRATEGY_DYNAMIC="abrDynamic",this.ABR_STRATEGY_BOLA="abrBola",this.ABR_STRATEGY_L2A="abrL2A",this.ABR_STRATEGY_LoLP="abrLoLP",this.ABR_STRATEGY_THROUGHPUT="abrThroughput",this.ABR_FETCH_THROUGHPUT_CALCULATION_DOWNLOADED_DATA="abrFetchThroughputCalculationDownloadedData",this.ABR_FETCH_THROUGHPUT_CALCULATION_MOOF_PARSING="abrFetchThroughputCalculationMoofParsing",this.ABR_FETCH_THROUGHPUT_CALCULATION_AAST="abrFetchThroughputCalculationAAST",this.LIVE_CATCHUP_MODE_DEFAULT="liveCatchupModeDefault",this.LIVE_CATCHUP_MODE_LOLP="liveCatchupModeLoLP",this.MOVING_AVERAGE_SLIDING_WINDOW="slidingWindow",this.MOVING_AVERAGE_EWMA="ewma",this.BAD_ARGUMENT_ERROR="Invalid Arguments",this.MISSING_CONFIG_ERROR="Missing config parameter(s)",this.TRACK_SWITCH_MODE_ALWAYS_REPLACE="alwaysReplace",this.TRACK_SWITCH_MODE_NEVER_REPLACE="neverReplace",this.TRACK_SELECTION_MODE_FIRST_TRACK="firstTrack",this.TRACK_SELECTION_MODE_HIGHEST_BITRATE="highestBitrate",this.TRACK_SELECTION_MODE_HIGHEST_EFFICIENCY="highestEfficiency",this.TRACK_SELECTION_MODE_WIDEST_RANGE="widestRange",this.TRACK_SELECTION_MODE_HIGHEST_SELECTION_PRIORITY="highestSelectionPriority",this.CMCD_MODE_QUERY="query",this.CMCD_MODE_HEADER="header",this.LOCATION="Location",this.INITIALIZE="initialize",this.TEXT_SHOWING="showing",this.TEXT_HIDDEN="hidden",this.CC1="CC1",this.CC3="CC3",this.UTF8="utf-8",this.SCHEME_ID_URI="schemeIdUri",this.START_TIME="starttime",this.SERVICE_DESCRIPTION_DVB_LL_SCHEME="urn:dvb:dash:lowlatency:scope:2019",this.SUPPLEMENTAL_PROPERTY_DVB_LL_SCHEME="urn:dvb:dash:lowlatency:critical:2019",this.XML="XML",this.ARRAY_BUFFER="ArrayBuffer",this.DVB_REPORTING_URL="dvb:reportingUrl",this.DVB_PROBABILITY="dvb:probability",this.VIDEO_ELEMENT_READY_STATES={HAVE_NOTHING:0,HAVE_METADATA:1,HAVE_CURRENT_DATA:2,HAVE_FUTURE_DATA:3,HAVE_ENOUGH_DATA:4},this.FILE_LOADER_TYPES={FETCH:"fetch_loader",XHR:"xhr_loader"}}}])&&r(t.prototype,n),a&&r(t,a),e}());t.a=a},14:function(e,t,n){"use strict";var r=n(37),a=n.n(r),i=n(38);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var u=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,r;return t=e,r=[{key:"mixin",value:function(t,n,r){var a,i={};if(t)for(var s in n)n.hasOwnProperty(s)&&(a=n[s],s in t&&(t[s]===a||s in i&&i[s]===a)||("object"===o(t[s])&&null!==t[s]?t[s]=e.mixin(t[s],a,r):t[s]=r(a)));return t}},{key:"clone",value:function(t){if(!t||"object"!==o(t))return t;var n;if(t instanceof Array){n=[];for(var r=0,a=t.length;r<a;++r)r in t&&n.push(e.clone(t[r]))}else n={};return e.mixin(n,t,e.clone)}},{key:"addAditionalQueryParameterToUrl",value:function(e,t){try{if(!t||0===t.length)return e;var n=new URL(e);return t.forEach((function(e){e.key&&e.value&&n.searchParams.set(e.key,e.value)})),n.href}catch(t){return e}}},{key:"parseHttpHeaders",value:function(e){var t={};if(!e)return t;for(var n=e.trim().split("\r\n"),r=0,a=n.length;r<a;r++){var i=n[r],o=i.indexOf(": ");o>0&&(t[i.substring(0,o)]=i.substring(o+2))}return t}},{key:"generateUuid",value:function(){var e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?n:3&n|8).toString(16)}))}},{key:"generateHashCode",value:function(e){var t=0;if(0===e.length)return t;for(var n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return t}},{key:"getRelativeUrl",value:function(e,t){try{var n=new URL(e),r=new URL(t);if(n.protocol=r.protocol,n.origin!==r.origin)return t;var i=a.a.relative(n.pathname.substr(0,n.pathname.lastIndexOf("/")),r.pathname.substr(0,r.pathname.lastIndexOf("/"))),o=0===i.length?1:0;return i+=r.pathname.substr(r.pathname.lastIndexOf("/")+o,r.pathname.length-1),r.pathname.length<i.length?r.pathname:i}catch(e){return t}}},{key:"parseUserAgent",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;try{var t=null===e&&"undefined"!=typeof navigator?navigator.userAgent.toLowerCase():"";return Object(i.UAParser)(t)}catch(e){return{}}}}],(n=null)&&s(t.prototype,n),r&&s(t,r),e}();t.a=u},15:function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return o}));var r=n(1);function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){if(a(e)!==t)throw r.a.BAD_ARGUMENT_ERROR}function o(e){if(!(null!==e&&!isNaN(e)&&e%1==0))throw r.a.BAD_ARGUMENT_ERROR+" : argument is not an integer"}},16:function(e,t,n){"use strict";var r=n(3),a=n(14),i=n(6),o=n(1),s=n(5),u=n(7),c=n(2);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(){var e,t,n=this.context,r=Object(u.a)(n).getInstance(),d={"streaming.delay.liveDelay":c.a.SETTING_UPDATED_LIVE_DELAY,"streaming.delay.liveDelayFragmentCount":c.a.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT,"streaming.liveCatchup.enabled":c.a.SETTING_UPDATED_CATCHUP_ENABLED},h={debug:{logLevel:i.a.LOG_LEVEL_WARNING,dispatchEvent:!1},streaming:{abandonLoadTimeout:1e4,wallclockTimeUpdateInterval:100,manifestUpdateRetryInterval:100,cacheInitSegments:!1,applyServiceDescription:!0,applyProducerReferenceTime:!0,applyContentSteering:!0,eventControllerRefreshDelay:100,enableManifestDurationMismatchFix:!0,capabilities:{filterUnsupportedEssentialProperties:!0,useMediaCapabilitiesApi:!1},timeShiftBuffer:{calcFromSegmentTimeline:!1,fallbackToSegmentTimeline:!0},metrics:{maxListDepth:100},delay:{liveDelayFragmentCount:NaN,liveDelay:NaN,useSuggestedPresentationDelay:!0},protection:{keepProtectionMediaKeys:!1,ignoreEmeEncryptedEvent:!1,detectPlayreadyMessageFormat:!0},buffer:{enableSeekDecorrelationFix:!1,fastSwitchEnabled:!0,flushBufferAtTrackSwitch:!1,reuseExistingSourceBuffers:!0,bufferPruningInterval:10,bufferToKeep:20,bufferTimeAtTopQuality:30,bufferTimeAtTopQualityLongForm:60,initialBufferLevel:NaN,stableBufferTime:12,longFormContentDurationThreshold:600,stallThreshold:.3,useAppendWindow:!0,setStallState:!0,avoidCurrentTimeRangePruning:!1},gaps:{jumpGaps:!0,jumpLargeGaps:!0,smallGapLimit:1.5,threshold:.3,enableSeekFix:!0,enableStallFix:!1,stallSeek:.1},utcSynchronization:{enabled:!0,useManifestDateHeaderTimeSource:!0,backgroundAttempts:2,timeBetweenSyncAttempts:30,maximumTimeBetweenSyncAttempts:600,minimumTimeBetweenSyncAttempts:2,timeBetweenSyncAttemptsAdjustmentFactor:2,maximumAllowedDrift:100,enableBackgroundSyncAfterSegmentDownloadError:!0,defaultTimingSource:{scheme:"urn:mpeg:dash:utc:http-xsdate:2014",value:"https://time.akamai.com/?iso&ms"}},scheduling:{defaultTimeout:500,lowLatencyTimeout:0,scheduleWhilePaused:!0},text:{defaultEnabled:!0},liveCatchup:{maxDrift:NaN,playbackRate:NaN,playbackBufferMin:.5,enabled:null,mode:o.a.LIVE_CATCHUP_MODE_DEFAULT},lastBitrateCachingInfo:{enabled:!0,ttl:36e4},lastMediaSettingsCachingInfo:{enabled:!0,ttl:36e4},cacheLoadThresholds:{video:50,audio:5},trackSwitchMode:{audio:o.a.TRACK_SWITCH_MODE_ALWAYS_REPLACE,video:o.a.TRACK_SWITCH_MODE_NEVER_REPLACE},selectionModeForInitialTrack:o.a.TRACK_SELECTION_MODE_HIGHEST_SELECTION_PRIORITY,fragmentRequestTimeout:2e4,retryIntervals:(e={},f(e,s.a.MPD_TYPE,500),f(e,s.a.XLINK_EXPANSION_TYPE,500),f(e,s.a.MEDIA_SEGMENT_TYPE,1e3),f(e,s.a.INIT_SEGMENT_TYPE,1e3),f(e,s.a.BITSTREAM_SWITCHING_SEGMENT_TYPE,1e3),f(e,s.a.INDEX_SEGMENT_TYPE,1e3),f(e,s.a.MSS_FRAGMENT_INFO_SEGMENT_TYPE,1e3),f(e,s.a.LICENSE,1e3),f(e,s.a.OTHER_TYPE,1e3),f(e,"lowLatencyReductionFactor",10),e),retryAttempts:(t={},f(t,s.a.MPD_TYPE,3),f(t,s.a.XLINK_EXPANSION_TYPE,1),f(t,s.a.MEDIA_SEGMENT_TYPE,3),f(t,s.a.INIT_SEGMENT_TYPE,3),f(t,s.a.BITSTREAM_SWITCHING_SEGMENT_TYPE,3),f(t,s.a.INDEX_SEGMENT_TYPE,3),f(t,s.a.MSS_FRAGMENT_INFO_SEGMENT_TYPE,3),f(t,s.a.LICENSE,3),f(t,s.a.OTHER_TYPE,3),f(t,"lowLatencyMultiplyFactor",5),t),abr:{movingAverageMethod:o.a.MOVING_AVERAGE_SLIDING_WINDOW,ABRStrategy:o.a.ABR_STRATEGY_DYNAMIC,additionalAbrRules:{insufficientBufferRule:!0,switchHistoryRule:!0,droppedFramesRule:!0,abandonRequestsRule:!0},bandwidthSafetyFactor:.9,useDefaultABRRules:!0,useDeadTimeLatency:!0,limitBitrateByPortal:!1,usePixelRatioInLimitBitrateByPortal:!1,maxBitrate:{audio:-1,video:-1},minBitrate:{audio:-1,video:-1},maxRepresentationRatio:{audio:1,video:1},initialBitrate:{audio:-1,video:-1},initialRepresentationRatio:{audio:-1,video:-1},autoSwitchBitrate:{audio:!0,video:!0},fetchThroughputCalculationMode:o.a.ABR_FETCH_THROUGHPUT_CALCULATION_MOOF_PARSING},cmcd:{enabled:!1,sid:null,cid:null,rtp:null,rtpSafetyFactor:5,mode:o.a.CMCD_MODE_QUERY,enabledKeys:["br","d","ot","tb","bl","dl","mtp","nor","nrr","su","bs","rtp","cid","pr","sf","sid","st","v"]}},errors:{recoverAttempts:{mediaErrorDecode:5}}},g=a.a.clone(h);return{get:function(){return g},update:function(e){"object"===l(e)&&function e(t,n,i){for(var o in t)t.hasOwnProperty(o)&&(n.hasOwnProperty(o)?"object"!==l(t[o])||t[o]instanceof Array||null===t[o]?(n[o]=a.a.clone(t[o]),d[i+o]&&r.trigger(d[i+o])):e(t[o],n[o],i.slice()+o+"."):console.error("Settings parameter "+i+o+" is not supported"))}(e,g,"")},reset:function(){g=a.a.clone(h)}}}d.__dashjs_factory_name="Settings";var h=r.a.getSingletonFactory(d);t.a=h},18:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,a;return t=e,(n=[{key:"extend",value:function(e,t){if(e){var n=!!t&&t.override,r=!!t&&t.publicOnly;for(var a in e)!e.hasOwnProperty(a)||this[a]&&!n||r&&-1===e[a].indexOf("public_")||(this[a]=e[a])}}}])&&r(t.prototype,n),a&&r(t,a),e}();t.a=a},19:function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function i(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=s(e);if(t){var a=s(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return o(this,n)}}function o(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var u=new(function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}(n,e);var t=i(n);function n(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),(e=t.call(this)).METRICS_INITIALISATION_COMPLETE="internal_metricsReportingInitialized",e.BECAME_REPORTING_PLAYER="internal_becameReportingPlayer",e.CMCD_DATA_GENERATED="cmcdDataGenerated",e}return n}(n(18).a));t.a=u},2:function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function i(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=s(e);if(t){var a=s(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return o(this,n)}}function o(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=h(e);if(t){var a=h(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return d(this,n)}}function d(e,t){return!t||"object"!==u(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var g=new(function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(n,e);var t=f(n);function n(){return c(this,n),t.apply(this,arguments)}return n}(function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}(n,e);var t=i(n);function n(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),(e=t.call(this)).ATTEMPT_BACKGROUND_SYNC="attemptBackgroundSync",e.BUFFERING_COMPLETED="bufferingCompleted",e.BUFFER_CLEARED="bufferCleared",e.BYTES_APPENDED_END_FRAGMENT="bytesAppendedEndFragment",e.BUFFER_REPLACEMENT_STARTED="bufferReplacementStarted",e.CHECK_FOR_EXISTENCE_COMPLETED="checkForExistenceCompleted",e.CURRENT_TRACK_CHANGED="currentTrackChanged",e.DATA_UPDATE_COMPLETED="dataUpdateCompleted",e.INBAND_EVENTS="inbandEvents",e.INITIAL_STREAM_SWITCH="initialStreamSwitch",e.INIT_FRAGMENT_LOADED="initFragmentLoaded",e.INIT_FRAGMENT_NEEDED="initFragmentNeeded",e.INTERNAL_MANIFEST_LOADED="internalManifestLoaded",e.ORIGINAL_MANIFEST_LOADED="originalManifestLoaded",e.LOADING_COMPLETED="loadingCompleted",e.LOADING_PROGRESS="loadingProgress",e.LOADING_DATA_PROGRESS="loadingDataProgress",e.LOADING_ABANDONED="loadingAborted",e.MANIFEST_UPDATED="manifestUpdated",e.MEDIA_FRAGMENT_LOADED="mediaFragmentLoaded",e.MEDIA_FRAGMENT_NEEDED="mediaFragmentNeeded",e.QUOTA_EXCEEDED="quotaExceeded",e.SEGMENT_LOCATION_BLACKLIST_ADD="segmentLocationBlacklistAdd",e.SEGMENT_LOCATION_BLACKLIST_CHANGED="segmentLocationBlacklistChanged",e.SERVICE_LOCATION_BLACKLIST_ADD="serviceLocationBlacklistAdd",e.SERVICE_LOCATION_BLACKLIST_CHANGED="serviceLocationBlacklistChanged",e.SET_FRAGMENTED_TEXT_AFTER_DISABLED="setFragmentedTextAfterDisabled",e.SET_NON_FRAGMENTED_TEXT="setNonFragmentedText",e.SOURCE_BUFFER_ERROR="sourceBufferError",e.STREAMS_COMPOSED="streamsComposed",e.STREAM_BUFFERING_COMPLETED="streamBufferingCompleted",e.STREAM_REQUESTING_COMPLETED="streamRequestingCompleted",e.TEXT_TRACKS_QUEUE_INITIALIZED="textTracksQueueInitialized",e.TIME_SYNCHRONIZATION_COMPLETED="timeSynchronizationComplete",e.UPDATE_TIME_SYNC_OFFSET="updateTimeSyncOffset",e.URL_RESOLUTION_FAILED="urlResolutionFailed",e.VIDEO_CHUNK_RECEIVED="videoChunkReceived",e.WALLCLOCK_TIME_UPDATED="wallclockTimeUpdated",e.XLINK_ELEMENT_LOADED="xlinkElementLoaded",e.XLINK_READY="xlinkReady",e.SEEK_TARGET="seekTarget",e.SETTING_UPDATED_LIVE_DELAY="settingUpdatedLiveDelay",e.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT="settingUpdatedLiveDelayFragmentCount",e.SETTING_UPDATED_CATCHUP_ENABLED="settingUpdatedCatchupEnabled",e}return n}(n(18).a)));t.a=g},26:function(e,t){var n,r,a=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var u,c=[],l=!1,f=-1;function d(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&h())}function h(){if(!l){var e=s(d);l=!0;for(var t=c.length;t;){for(u=c,c=[];++f<t;)u&&u[f].run();f=-1,t=c.length}u=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function p(){}a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new g(e,t)),1!==c.length||l||s(h)},g.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=p,a.addListener=p,a.once=p,a.off=p,a.removeListener=p,a.removeAllListeners=p,a.emit=p,a.prependListener=p,a.prependOnceListener=p,a.listeners=function(e){return[]},a.binding=function(e){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},27:function(e,t,n){"use strict";var r=n(3),a=n(8),i=n(1),o=n(9);function s(e){e=e||{};var t=this.context,n=e.dashMetrics;return{getMaxIndex:function(e){var r=Object(a.a)(t).create();if(!(e&&e.hasOwnProperty("getMediaInfo")&&e.hasOwnProperty("getMediaType")&&e.hasOwnProperty("useBufferOccupancyABR")&&e.hasOwnProperty("getAbrController")&&e.hasOwnProperty("getScheduleController")))return r;!function(){if(!n||!n.hasOwnProperty("getCurrentBufferState"))throw new Error(i.a.MISSING_CONFIG_ERROR)}();var s=e.getMediaInfo(),u=e.getMediaType(),c=n.getCurrentBufferState(u),l=e.getScheduleController(),f=e.getAbrController(),d=e.getStreamInfo(),h=d?d.id:null,g=d&&d.manifestInfo?d.manifestInfo.isDynamic:null,p=f.getThroughputHistory(),m=p.getSafeAverageThroughput(u,g),E=p.getAverageLatency(u),_=e.useBufferOccupancyABR();return isNaN(m)||!c||_||f.getAbandonmentStateFor(h,u)!==o.a.ABANDON_LOAD&&(c.state===o.a.BUFFER_LOADED||g)&&(r.quality=f.getQualityForBitrate(s,m,h,E),l.setTimeToLoadDelay(0),r.reason={throughput:m,latency:E}),r},reset:function(){}}}s.__dashjs_factory_name="ThroughputRule";var u=r.a.getClassFactory(s),c=n(7),l=n(2),f=n(6),d=n(4);function h(e){e=e||{};var t,n,r,s=this.context,u=Object(c.a)(s).getInstance(),h=e.dashMetrics;function g(){(r={})[i.a.VIDEO]={ignoreCount:2},r[i.a.AUDIO]={ignoreCount:2}}function p(){g()}function m(e){isNaN(e.startTime)||e.mediaType!==i.a.AUDIO&&e.mediaType!==i.a.VIDEO||r[e.mediaType].ignoreCount>0&&r[e.mediaType].ignoreCount--}return t={getMaxIndex:function(e){var t=Object(a.a)(s).create();if(!e||!e.hasOwnProperty("getMediaType"))return t;!function(){if(!h||!h.hasOwnProperty("getCurrentBufferLevel")||!h.hasOwnProperty("getCurrentBufferState"))throw new Error(i.a.MISSING_CONFIG_ERROR)}();var u=e.getMediaType(),c=h.getCurrentBufferState(u),l=e.getRepresentationInfo().fragmentDuration,f=e.getStreamInfo(),d=f?f.id:null,g=e.getScheduleController(),p=f&&f.manifestInfo&&f.manifestInfo.isDynamic;if(function(e,t){return!e&&r[t].ignoreCount>0}(g.getPlaybackController().getLowLatencyModeEnabled(),u)||!l)return t;if(c&&c.state===o.a.BUFFER_EMPTY)n.debug("["+u+"] Switch to index 0; buffer is empty."),t.quality=0,t.reason="InsufficientBufferRule: Buffer is empty";else{var m=e.getMediaInfo(),E=e.getAbrController(),_=E.getThroughputHistory(),y=h.getCurrentBufferLevel(u),T=_.getAverageThroughput(u,p),b=_.getAverageLatency(u),v=T*(y/l)*.5;t.quality=E.getQualityForBitrate(m,v,d,b),t.reason="InsufficientBufferRule: being conservative to avoid immediate rebuffering"}return t},reset:function(){g(),u.off(d.a.PLAYBACK_SEEKING,p,t),u.off(l.a.BYTES_APPENDED_END_FRAGMENT,m,t)}},n=Object(f.a)(s).getInstance().getLogger(t),g(),u.on(d.a.PLAYBACK_SEEKING,p,t),u.on(l.a.BYTES_APPENDED_END_FRAGMENT,m,t),t}h.__dashjs_factory_name="InsufficientBufferRule";var g=r.a.getClassFactory(h);function p(e){e=e||{};var t,n,r,i,o,s=this.context,u=e.mediaPlayerModel,c=e.dashMetrics,l=e.settings;function d(){r={},i={},o=[]}return t={shouldAbandon:function(e){var t=Object(a.a)(s).create(a.a.NO_CHANGE,{name:p.__dashjs_factory_name});if(!(e&&e.hasOwnProperty("getMediaInfo")&&e.hasOwnProperty("getMediaType")&&e.hasOwnProperty("getCurrentRequest")&&e.hasOwnProperty("getRepresentationInfo")&&e.hasOwnProperty("getAbrController")))return t;var f,d,h=e.getMediaInfo(),g=e.getMediaType(),m=e.getStreamInfo(),E=m?m.id:null,_=e.getCurrentRequest();if(!isNaN(_.index)){f=g,d=_.index,r[f]=r[f]||{},r[f][d]=r[f][d]||{};var y=u.getStableBufferTime();if(c.getCurrentBufferLevel(g)>y)return t;var T=r[g][_.index];if(null===T||null===_.firstByteDate||i.hasOwnProperty(T.id))return t;if(void 0===T.firstByteTime&&(o[g]=[],T.firstByteTime=_.firstByteDate.getTime(),T.segmentDuration=_.duration,T.bytesTotal=_.bytesTotal,T.id=_.index),T.bytesLoaded=_.bytesLoaded,T.elapsedTime=(new Date).getTime()-T.firstByteTime,T.bytesLoaded>0&&T.elapsedTime>0&&function(e,t){o[e]=o[e]||[],o[e].push(t)}(g,Math.round(8*T.bytesLoaded/T.elapsedTime)),o[g].length>=5&&T.elapsedTime>500&&T.bytesLoaded<T.bytesTotal){var b=o[g].reduce((function(e,t){return e+t}),0);if(T.measuredBandwidthInKbps=Math.round(b/o[g].length),T.estimatedTimeOfDownload=+(8*T.bytesTotal/T.measuredBandwidthInKbps/1e3).toFixed(2),T.estimatedTimeOfDownload<1.8*T.segmentDuration||0===e.getRepresentationInfo().quality)return t;if(!i.hasOwnProperty(T.id)){var v=e.getAbrController(),A=T.bytesTotal-T.bytesLoaded,R=v.getBitrateList(h),w=v.getQualityForBitrate(h,T.measuredBandwidthInKbps*l.get().streaming.abr.bandwidthSafetyFactor,E),S=v.getMinAllowedIndexFor(g,E),I=void 0!==S?Math.max(S,w):w;A>T.bytesTotal*R[I].bitrate/R[v.getQualityFor(g,E)].bitrate&&(t.quality=I,t.reason.throughput=T.measuredBandwidthInKbps,t.reason.fragmentID=T.id,i[T.id]=T,n.debug("["+g+"] frag id",T.id," is asking to abandon and switch to quality to ",I," measured bandwidth was",T.measuredBandwidthInKbps),delete r[g][T.id])}}else T.bytesLoaded===T.bytesTotal&&delete r[g][T.id]}return t},reset:d},n=Object(f.a)(s).getInstance().getLogger(t),d(),t}p.__dashjs_factory_name="AbandonRequestsRule";var m=r.a.getClassFactory(p);function E(){var e,t,n=this.context;return e={getMaxIndex:function(e){var r=Object(a.a)(n).create();if(!e||!e.hasOwnProperty("getDroppedFramesHistory"))return r;var i=e.getDroppedFramesHistory(),o=e.getStreamInfo().id;if(i){var s=i.getFrameHistory(o);if(!s||0===s.length)return r;for(var u=0,c=0,l=a.a.NO_CHANGE,f=1;f<s.length;f++)if(s[f]&&(u=s[f].droppedVideoFrames,(c=s[f].totalVideoFrames)>375&&u/c>.15)){l=f-1,t.debug("index: "+l+" Dropped Frames: "+u+" Total Frames: "+c);break}return Object(a.a)(n).create(l,{droppedFrames:u})}return r}},t=Object(f.a)(n).getInstance().getLogger(e),e}E.__dashjs_factory_name="DroppedFramesRule";var _=r.a.getClassFactory(E);function y(){var e,t,n=this.context;return e={getMaxIndex:function(e){for(var r=e?e.getSwitchHistory():null,i=r?r.getSwitchRequests():[],o=0,s=0,u=0,c=Object(a.a)(n).create(),l=0;l<i.length;l++)if(void 0!==i[l]&&(o+=i[l].drops,s+=i[l].noDrops,u+=i[l].dropSize,o+s>=6&&o/s>.075)){c.quality=l>0&&i[l].drops>0?l-1:l,c.reason={index:c.quality,drops:o,noDrops:s,dropSize:u},t.debug("Switch history rule index: "+c.quality+" samples: "+(o+s)+" drops: "+o);break}return c}},t=Object(f.a)(n).getInstance().getLogger(e),e}y.__dashjs_factory_name="SwitchHistoryRule";var T=r.a.getClassFactory(y),b=n(5);function v(e){e=e||{};var t,n,r,s=this.context,u=e.dashMetrics,h=e.mediaPlayerModel,g=Object(c.a)(s).getInstance();function p(e,t,n){var r=n.reduce((function(e,t,r){return t>n[e]?r:e}),0);if(0===r)return null;var a=Math.max(e,10+2*t.length),i=(n[r]-1)/(a/10-1);return{gp:i,Vp:10/i}}function m(e){var t={},n=e.getMediaInfo().bitrateList.map((function(e){return e.bandwidth})),r=function(e){return e.map((function(e){return Math.log(e)}))}(n);r=r.map((function(e){return e-r[0]+1}));var a=h.getStableBufferTime(),i=p(a,n,r);return i?(t.state=1,t.bitrates=n,t.utilities=r,t.stableBufferTime=a,t.Vp=i.Vp,t.gp=i.gp,t.lastQuality=0,E(t)):t.state=0,t}function E(e){e.placeholderBuffer=0,e.mostAdvancedSegmentStart=NaN,e.lastSegmentWasReplacement=!1,e.lastSegmentStart=NaN,e.lastSegmentDurationS=NaN,e.lastSegmentRequestTimeMs=NaN,e.lastSegmentFinishTimeMs=NaN}function _(e,t){var n=h.getStableBufferTime();if(e.stableBufferTime!==n){var r=p(n,e.bitrates,e.utilities);if(r.Vp!==e.Vp||r.gp!==e.gp){var a=u.getCurrentBufferLevel(t),i=a+e.placeholderBuffer;i-=10,i*=r.Vp/e.Vp,i+=10,e.stableBufferTime=n,e.Vp=r.Vp,e.gp=r.gp,e.placeholderBuffer=Math.max(0,i-a)}}}function y(e,t){return e.Vp*(e.utilities[t]+e.gp)}function T(e,t){for(var n=e.bitrates[t],r=e.utilities[t],a=0,i=t-1;i>=0;--i)if(e.utilities[i]<e.utilities[t]){var o=e.bitrates[i],s=e.utilities[i],u=e.Vp*(e.gp+(n*s-o*r)/(n-o));a=Math.max(a,u)}return a}function v(e){var t=e.mediaType===i.a.AUDIO?[i.a.AUDIO]:r;for(var n in t)r.hasOwnProperty(n)&&2===r[n].state&&(r[n].placeholderBuffer=0)}function A(){for(var e in r)if(r.hasOwnProperty(e)){var t=r[e];0!==t.state&&(t.state=1,E(t))}}function R(e){if(e&&e.chunk&&e.chunk.mediaInfo){var t=r[e.chunk.mediaInfo.type];if(t&&0!==t.state){var n=e.chunk.start;isNaN(t.mostAdvancedSegmentStart)||n>t.mostAdvancedSegmentStart?(t.mostAdvancedSegmentStart=n,t.lastSegmentWasReplacement=!1):t.lastSegmentWasReplacement=!0,t.lastSegmentStart=n,t.lastSegmentDurationS=e.chunk.duration,t.lastQuality=e.chunk.quality,S(t,e.chunk.mediaInfo.type)}}}function w(e){if(e&&e.metric===o.a.HTTP_REQUEST&&e.value&&e.value.type===b.a.MEDIA_SEGMENT_TYPE&&e.value.trace&&e.value.trace.length){var t=r[e.mediaType];t&&0!==t.state&&(t.lastSegmentRequestTimeMs=e.value.trequest.getTime(),t.lastSegmentFinishTimeMs=e.value._tfinish.getTime(),S(t,e.mediaType))}}function S(e,t){if(!isNaN(e.lastSegmentStart)&&!isNaN(e.lastSegmentRequestTimeMs)&&!isNaN(e.placeholderBuffer)){if(e.placeholderBuffer*=.99,!isNaN(e.lastSegmentFinishTimeMs)){var n=u.getCurrentBufferLevel(t)+.001*(e.lastSegmentFinishTimeMs-e.lastSegmentRequestTimeMs),r=y(e,e.lastQuality),a=Math.max(0,r-n);e.placeholderBuffer=Math.min(a,e.placeholderBuffer)}e.lastSegmentWasReplacement&&!isNaN(e.lastSegmentDurationS)&&(e.placeholderBuffer+=e.lastSegmentDurationS),e.lastSegmentStart=NaN,e.lastSegmentRequestTimeMs=NaN}}function I(e){if(e){var t=r[e.mediaType];t&&0!==t.state&&(t.abrQuality=e.newQuality)}}function N(e){if(e){var t=r[e.mediaType];if(t&&0!==t.state){var n,a=u.getCurrentBufferLevel(e.mediaType);n=t.abrQuality>0?T(t,t.abrQuality):10;var i=Math.max(0,n-a);t.placeholderBuffer=Math.min(t.placeholderBuffer,i)}}}function C(){r={}}return t={getMaxIndex:function(e){var t=Object(a.a)(s).create();if(!(e&&e.hasOwnProperty("getMediaInfo")&&e.hasOwnProperty("getMediaType")&&e.hasOwnProperty("getScheduleController")&&e.hasOwnProperty("getStreamInfo")&&e.hasOwnProperty("getAbrController")&&e.hasOwnProperty("useBufferOccupancyABR")))return t;var i=e.getMediaInfo(),o=e.getMediaType(),c=e.getScheduleController(),l=e.getStreamInfo(),f=e.getAbrController(),d=f.getThroughputHistory(),h=l?l.id:null,g=l&&l.manifestInfo&&l.manifestInfo.isDynamic,p=e.useBufferOccupancyABR();if(t.reason=t.reason||{},!p)return t;c.setTimeToLoadDelay(0);var b=function(e){var t=e.getMediaType(),n=r[t];return n?0!==n.state&&_(n,t):(n=m(e),r[t]=n),n}(e);if(0===b.state)return t;var v,A=u.getCurrentBufferLevel(o),R=d.getAverageThroughput(o,g),w=d.getSafeAverageThroughput(o,g),S=d.getAverageLatency(o);if(t.reason.state=b.state,t.reason.throughput=R,t.reason.latency=S,isNaN(R))return t;switch(b.state){case 1:v=f.getQualityForBitrate(i,w,h,S),t.quality=v,t.reason.throughput=w,b.placeholderBuffer=Math.max(0,T(b,v)-A),b.lastQuality=v,!isNaN(b.lastSegmentDurationS)&&A>=b.lastSegmentDurationS&&(b.state=2);break;case 2:!function(e,t){var n=Date.now();if(isNaN(e.lastSegmentFinishTimeMs)){if(!isNaN(e.lastCallTimeMs)){var r=.001*(n-e.lastCallTimeMs);e.placeholderBuffer+=Math.max(0,r)}}else{var a=.001*(n-e.lastSegmentFinishTimeMs);e.placeholderBuffer+=Math.max(0,a)}e.lastCallTimeMs=n,e.lastSegmentStart=NaN,e.lastSegmentRequestTimeMs=NaN,e.lastSegmentFinishTimeMs=NaN,_(e,t)}(b,o),v=function(e,t){for(var n=e.bitrates.length,r=NaN,a=NaN,i=0;i<n;++i){var o=(e.Vp*(e.utilities[i]+e.gp)-t)/e.bitrates[i];(isNaN(a)||o>=a)&&(a=o,r=i)}return r}(b,A+b.placeholderBuffer);var I=f.getQualityForBitrate(i,w,h,S);v>b.lastQuality&&v>I&&(v=Math.max(I,b.lastQuality));var N=Math.max(0,A+b.placeholderBuffer-y(b,v));N<=b.placeholderBuffer?(b.placeholderBuffer-=N,N=0):(N-=b.placeholderBuffer,b.placeholderBuffer=0,v<f.getMaxAllowedIndexFor(o,h)?c.setTimeToLoadDelay(1e3*N):N=0),t.quality=v,t.reason.throughput=R,t.reason.latency=S,t.reason.bufferLevel=A,t.reason.placeholderBuffer=b.placeholderBuffer,t.reason.delay=N,b.lastQuality=v;break;default:n.debug("BOLA ABR rule invoked in bad state."),t.quality=f.getQualityForBitrate(i,w,h,S),t.reason.state=b.state,t.reason.throughput=w,t.reason.latency=S,b.state=1,E(b)}return t},reset:function(){C(),g.off(d.a.BUFFER_EMPTY,v,t),g.off(d.a.PLAYBACK_SEEKING,A,t),g.off(d.a.METRIC_ADDED,w,t),g.off(d.a.QUALITY_CHANGE_REQUESTED,I,t),g.off(d.a.FRAGMENT_LOADING_ABANDONED,N,t),g.off(l.a.MEDIA_FRAGMENT_LOADED,R,t)}},n=Object(f.a)(s).getInstance().getLogger(t),C(),g.on(d.a.BUFFER_EMPTY,v,t),g.on(d.a.PLAYBACK_SEEKING,A,t),g.on(d.a.METRIC_ADDED,w,t),g.on(d.a.QUALITY_CHANGE_REQUESTED,I,t),g.on(d.a.FRAGMENT_LOADING_ABANDONED,N,t),g.on(l.a.MEDIA_FRAGMENT_LOADED,R,t),t}v.__dashjs_factory_name="BolaRule";var A=r.a.getClassFactory(v);function R(e){e=e||{};var t,n,r,s,u=this.context,d=e.dashMetrics,h=Object(c.a)(u).getInstance();function g(e){var t={},n=e.getMediaInfo(),a=n.bitrateList.map((function(e){return e.bandwidth/1e3}));return t.state=1,t.bitrates=a,t.lastQuality=0,function(e){if(!e||!e.type)return;r[e.type]={},r[e.type].w=[],r[e.type].prev_w=[],r[e.type].Q=0,r[e.type].segment_request_start_s=0,r[e.type].segment_download_finish_s=0,r[e.type].B_target=1.5}(n),p(t),t}function p(e){e.placeholderBuffer=0,e.mostAdvancedSegmentStart=NaN,e.lastSegmentWasReplacement=!1,e.lastSegmentStart=NaN,e.lastSegmentDurationS=NaN,e.lastSegmentRequestTimeMs=NaN,e.lastSegmentFinishTimeMs=NaN}function m(){for(var e in n)if(n.hasOwnProperty(e)){var t=n[e];0!==t.state&&(t.state=1,p(t))}}function E(e){if(e&&e.chunk&&e.chunk.mediaInfo){var t=n[e.chunk.mediaInfo.type],a=r[e.chunk.mediaInfo.type];if(t&&0!==t.state){var i=e.chunk.start;isNaN(t.mostAdvancedSegmentStart)||i>t.mostAdvancedSegmentStart?(t.mostAdvancedSegmentStart=i,t.lastSegmentWasReplacement=!1):t.lastSegmentWasReplacement=!0,t.lastSegmentStart=i,t.lastSegmentDurationS=e.chunk.duration,t.lastQuality=e.chunk.quality,y(t,a)}}}function _(e){if(e&&e.metric===o.a.HTTP_REQUEST&&e.value&&e.value.type===b.a.MEDIA_SEGMENT_TYPE&&e.value.trace&&e.value.trace.length){var t=n[e.mediaType],a=r[e.mediaType];t&&0!==t.state&&(t.lastSegmentRequestTimeMs=e.value.trequest.getTime(),t.lastSegmentFinishTimeMs=e.value._tfinish.getTime(),y(t,a))}}function y(e,t){isNaN(e.lastSegmentStart)||isNaN(e.lastSegmentRequestTimeMs)||(t.segment_request_start_s=.001*e.lastSegmentRequestTimeMs,t.segment_download_finish_s=.001*e.lastSegmentFinishTimeMs,e.lastSegmentStart=NaN,e.lastSegmentRequestTimeMs=NaN)}function T(e){if(e&&e.mediaType){var t=n[e.mediaType];t&&0!==t.state&&(t.abrQuality=e.newQuality)}}function v(e,t){if(e.length!==t.length)return-1;for(var n=0,r=0;r<e.length;r++)n+=e[r]*t[r];return n}function A(){n={},r={}}return t={getMaxIndex:function(e){var t,o=Object(a.a)(u).create(),c=Math.pow(4,.99),l=Math.max(Math.pow(4,1),c*Math.sqrt(4)),f=e.getMediaInfo(),h=e.getMediaType(),m=f.bitrateList.map((function(e){return e.bandwidth})),E=m.length,_=e.getScheduleController(),y=e.getStreamInfo(),T=e.getAbrController(),b=T.getThroughputHistory(),A=y&&y.manifestInfo&&y.manifestInfo.isDynamic,R=e.useL2AABR(),w=d.getCurrentBufferLevel(h,!0),S=b.getSafeAverageThroughput(h,A),I=b.getAverageThroughput(h,A),N=b.getAverageLatency(h),C=e.getVideoModel().getPlaybackRate();if(!(e&&e.hasOwnProperty("getMediaInfo")&&e.hasOwnProperty("getMediaType")&&e.hasOwnProperty("getScheduleController")&&e.hasOwnProperty("getStreamInfo")&&e.hasOwnProperty("getAbrController")&&e.hasOwnProperty("useL2AABR")))return o;if(o.reason=o.reason||{},!R||h===i.a.AUDIO)return o;_.setTimeToLoadDelay(0);var O=function(e){var t=e.getMediaType(),r=n[t];return r||(r=g(e),n[t]=r),r}(e);if(0===O.state)return o;var M=r[h];if(!M)return o;if(o.reason.state=O.state,o.reason.throughput=I,o.reason.latency=N,isNaN(I))return o;switch(O.state){case 1:if(t=T.getQualityForBitrate(f,S,y.id,N),o.quality=t,o.reason.throughput=S,O.lastQuality=t,!isNaN(O.lastSegmentDurationS)&&w>=M.B_target){O.state=2,M.Q=c;for(var D=0;D<E;++D)D===O.lastQuality?M.prev_w[D]=1:M.prev_w[D]=0}break;case 2:var L=[],P=d.getCurrentHttpRequest(h).trace.reduce((function(e,t){return e+t.d}),0),B=d.getCurrentHttpRequest(h).trace.reduce((function(e,t){return e+t.b[0]}),0),F=Math.round(8*B/P);F<1&&(F=1);for(var x=O.lastSegmentDurationS,k=1,U=0;U<E;++U)m[U]=m[U]/1e3,C*m[U]>F&&(k=-1),M.w[U]=M.prev_w[U]+k*(x/(2*l))*((M.Q+c)*(C*m[U]/F));M.w=function(e){for(var t=e.length,n=!1,r=[],a=0;a<t;++a)r[a]=e[a];for(var i=e.sort((function(e,t){return t-e})),o=0,s=0,u=[],c=0;c<t-1;++c)if((s=((o+=i[c])-1)/(c+1))>=i[c+1]){n=!0;break}n||(s=(o+i[t-1]-1)/t);for(var l=0;l<t;++l)u[l]=Math.max(r[l]-s,0);return u}(M.w);for(var G=0;G<E;++G)L[G]=M.w[G]-M.prev_w[G],M.prev_w[G]=M.w[G];M.Q=Math.max(0,M.Q-x+x*C*((v(m,M.prev_w)+v(m,L))/F));for(var j=[],H=0;H<E;++H)j[H]=Math.abs(m[H]-v(M.w,m));(t=j.indexOf(Math.min.apply(Math,j)))>O.lastQuality&&m[O.lastQuality+1]<=F&&(t=O.lastQuality+1),m[t]>=F&&(M.Q=2*Math.max(c,M.Q)),o.quality=t,o.reason.throughput=I,o.reason.latency=N,o.reason.bufferLevel=w,O.lastQuality=o.quality;break;default:s.debug("L2A ABR rule invoked in bad state."),o.quality=T.getQualityForBitrate(f,S,y.id,N),o.reason.state=O.state,o.reason.throughput=S,o.reason.latency=N,O.state=1,p(O)}return o},reset:function(){A(),h.off(l.a.PLAYBACK_SEEKING,m,t),h.off(l.a.MEDIA_FRAGMENT_LOADED,E,t),h.off(l.a.METRIC_ADDED,_,t),h.off(l.a.QUALITY_CHANGE_REQUESTED,T,t)}},s=Object(f.a)(u).getInstance().getLogger(t),A(),h.on(l.a.PLAYBACK_SEEKING,m,t),h.on(l.a.MEDIA_FRAGMENT_LOADED,E,t),h.on(l.a.METRIC_ADDED,_,t),h.on(l.a.QUALITY_CHANGE_REQUESTED,T,t),t}R.__dashjs_factory_name="L2ARule";var w=r.a.getClassFactory(R),S="manual_weight_selection",I="random_weight_selection",N="dynamic_weight_selection";function C(){var e,t,n,r,a,i,o,s,u,c=this.context;function l(){n=null,r=1,a=100,i=0,o=null,s=null,u=N}function d(){var e=0;if(n)for(var t=0;t<n.length;t++){var r=n[t];r.state.throughput>e&&(e=r.state.throughput)}return e}function h(e,t,n){var r=e.map((function(e,r){return n[r]*Math.pow(e-t[r],2)})).reduce((function(e,t){return e+t}));return(r<0?-1:1)*Math.sqrt(Math.abs(r))}function g(e,t,n){for(var r=0;r<t.length;r++){var a=t[r],i=(s=e,h([(o=a).state.throughput,o.state.latency,o.state.rebuffer,o.state.switch],[s.state.throughput,s.state.latency,s.state.rebuffer,s.state.switch],[1,1,1,1]));p(a,n,Math.exp(-1*Math.pow(i,2)/(2*Math.pow(.1,2))))}var o,s}function p(e,t,n){var r=e.state,a=[.01,.01,.01,.01];r.throughput=r.throughput+(t[0]-r.throughput)*a[0]*n,r.latency=r.latency+(t[1]-r.latency)*a[1]*n,r.rebuffer=r.rebuffer+(t[2]-r.rebuffer)*a[2]*n,r.switch=r.switch+(t[3]-r.switch)*a[3]*n}function m(e,t,n,r,a,i,u){o||(o=s[s.length-1]);var c=e.findWeightVector(t,n,r,a,i,u);null!==c&&-1!==c&&(o=c)}return e={getNextQuality:function(e,c,l,f,p,E,_){var y=l,T=f,b=c,v=function(e){if(!n){n=[];var t=e.bitrateList,a=[];i=t[0].bandwidth,t.forEach((function(e){a.push(e.bandwidth),e.bandwidth<i&&(i=e.bandwidth)})),c=a.map((function(e){return Math.pow(e,2)})).reduce((function(e,t){return e+t})),r=Math.sqrt(c);for(var o=0;o<t.length;o++){var u={qualityIndex:o,bitrate:t[o].bandwidth,state:{throughput:t[o].bandwidth/r,latency:0,rebuffer:0,switch:0}};n.push(u)}s=function(e){var t=[],n=function(e){for(var t=[],n=0;n<e;n++){var r=[Math.random()*d(),Math.random(),Math.random(),Math.random()];t.push(r)}return t}(Math.pow(e.length,2));t.push(n[0]);for(var r=[1,1,1,1],a=1;a<e.length;a++){for(var i=null,o=null,s=0;s<n.length;s++){for(var u=n[s],c=null,l=0;l<t.length;l++){var f=h(u,t[l],r);(null===c||f<c)&&(c=f)}(null===o||c>o)&&(i=u,o=c)}t.push(i)}for(var g=null,p=null,m=0;m<t.length;m++){for(var E=0,_=0;_<t.length;_++)m!==_&&(E+=h(t[m],t[_],r));(null===g||E>g)&&(g=E,p=m)}var y=[];y.push(t[p]),t.splice(p,1);for(;t.length>0;){for(var T=null,b=null,v=0;v<t.length;v++){var A=h(y[0],t[v],r);(null===T||A<T)&&(T=A,b=v)}y.push(t[b]),t.splice(b,1)}return y}(n)}var c;return n}(e),A=c/r;A>1&&(A=d()),l/=a,t.debug("getNextQuality called throughput:".concat(A," latency:").concat(l," bufferSize:").concat(f," currentQualityIndex:").concat(E," playbackRate:").concat(p));var R=v[E],w=R.bitrate*_.getSegmentDuration()/b,C=Math.max(0,w-T);if(T-w<_.getMinBuffer())return t.debug("Buffer is low for bitrate= ".concat(R.bitrate," downloadTime=").concat(w," currentBuffer=").concat(T," rebuffer=").concat(C)),function(e,t){var r=0,a=e;if(n)for(var i=0;i<n.length;i++){var o=n[i];o.bitrate<e.bitrate&&o.bitrate>r&&t>o.bitrate&&(r=o.bitrate,a=o)}return a}(R,b).qualityIndex;switch(u){case S:o=[.4,.4,.4,.4];break;case I:!function(e){o=function(e,t){for(var n=[],r=Math.sqrt(2/e),a=0;a<t;a++)n.push(Math.random()*r);return o=n}(e.length,4)}(v);break;case N:m(_,v,y,T,C,b,p);break;default:m(_,v,y,T,C,b,p)}for(var O=null,M=null,D=null,L=0;L<v.length;L++){var P=v[L],B=P.state,F=[B.throughput,B.latency,B.rebuffer,B.switch],x=o.slice(),k=_.getNextBufferWithBitrate(P.bitrate,T,b),U=k<_.getMinBuffer();U&&t.debug("Buffer is low for bitrate=".concat(P.bitrate," downloadTime=").concat(w," currentBuffer=").concat(T," nextBuffer=").concat(k)),(P.bitrate>c-1e4||U)&&P.bitrate!==i&&(x[0]=100);var G=h(F,[A,0,0,0],x);(null===O||G<O)&&(O=G,M=P.qualityIndex,D=P)}var j=Math.abs(R.bitrate-D.bitrate)/r;return g(R,v,[A,l,C,j]),g(D,v,[A,0,0,j]),M},reset:function(){l()}},t=Object(f.a)(c).getInstance().getLogger(e),l(),e}C.__dashjs_factory_name="LearningAbrController";var O=r.a.getClassFactory(C);var M=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.type=null,this.lastBitrate=null,this.weights={},this.weights.bitrateReward=null,this.weights.bitrateSwitchPenalty=null,this.weights.rebufferPenalty=null,this.weights.latencyPenalty=null,this.weights.playbackSpeedPenalty=null,this.bitrateWSum=0,this.bitrateSwitchWSum=0,this.rebufferWSum=0,this.latencyWSum=0,this.playbackSpeedWSum=0,this.totalQoe=0};function D(){var e,t,n,r,a;function i(){t=null,n=null,r=null,a=null}function o(e,t,n,r){var a=new M;return a.type=e,a.weights.bitrateReward=t||1,a.weights.bitrateSwitchPenalty=1,a.weights.rebufferPenalty=n||1e3,a.weights.latencyPenalty=[],a.weights.latencyPenalty.push({threshold:1.1,penalty:.05*r}),a.weights.latencyPenalty.push({threshold:1e8,penalty:.1*n}),a.weights.playbackSpeedPenalty=r||200,a}function s(e,t,n,r,a){a.bitrateWSum+=a.weights.bitrateReward*e,a.lastBitrate&&(a.bitrateSwitchWSum+=a.weights.bitrateSwitchPenalty*Math.abs(e-a.lastBitrate)),a.lastBitrate=e,a.rebufferWSum+=a.weights.rebufferPenalty*t;for(var i=0;i<a.weights.latencyPenalty.length;i++){var o=a.weights.latencyPenalty[i];if(n<=o.threshold){a.latencyWSum+=o.penalty*n;break}}a.playbackSpeedWSum+=a.weights.playbackSpeedPenalty*Math.abs(1-r),a.totalQoe=a.bitrateWSum-a.bitrateSwitchWSum-a.rebufferWSum-a.latencyWSum-a.playbackSpeedWSum}return e={setupPerSegmentQoe:function(e,i,s){t=o("segment",e,i,s),n=e,r=i,a=s},logSegmentMetrics:function(e,n,r,a){t&&s(e,n,r,a,t)},getPerSegmentQoe:function(){return t},calculateSingleUseQoe:function(e,t,i,u){var c=null;return n&&r&&a&&(c=o("segment",n,r,a)),c?(s(e,t,i,u,c),c.totalQoe):0},reset:function(){i()}},i(),e}D.__dashjs_factory_name="LoLpQoeEvaluator";var L=r.a.getClassFactory(D);function P(e){var t,n,r,a,i,o=e.targetLatency,s=e.bufferMin,u=e.segmentDuration,c=e.qoeEvaluator;function l(){return u}function f(e,t){var n=l();return t>n?e-n:e+n-t}return t={getMinBuffer:function(){return s},getSegmentDuration:l,getNextBufferWithBitrate:function(e,t,n){return f(t,e*u/n)},getNextBuffer:f,findWeightVector:function(e,t,a,i,l,d){var h=null,g=null,p=null,m=Math.abs(t-r);return e.forEach((function(e){n.forEach((function(n){n[0];var r=n[1],i=n[2],E=(n[3],e.bitrate*u/l),_=f(a,E),y=(0===i?10:1/i)*Math.max(1e-5,E-_),T=(0===r?10:1/r)*e.state.latency,b=c.calculateSingleUseQoe(e.bitrate,y,T,d);(null===h||b>h)&&function(e,t,n){if(e>o+n)return!1;return t>=s}(t,_,m)&&(h=b,g=n,p=e.bitrate)}))})),null===g&&null===p&&(g=-1),r=t,g}},a=[.2,.4,.6,.8,1],i=4,n=function e(t,n,r){if(r===n)return t;for(var i=t.length,o=0;o<i;o++)for(var s=t.shift(),u=0;u<a.length;u++)t.push(s.concat(a[u]));return e(t,n,r+1)}(a.map((function(e){return[e]})),i,1),r=0,t}P.__dashjs_factory_name="LoLpWeightSelector";var B=r.a.getClassFactory(P);function F(e){var t,n,r,s,u=(e=e||{}).dashMetrics,c=this.context;return n={getMaxIndex:function(e){try{var n=Object(a.a)(c).create(),l=e.getMediaInfo().type,f=e.getAbrController(),d=e.getStreamInfo(),h=f.getQualityFor(l,d.id),g=e.getMediaInfo(),p=u.getCurrentBufferState(l),m=e.getScheduleController(),E=u.getCurrentBufferLevel(l,!0),_=d&&d.manifestInfo?d.manifestInfo.isDynamic:null,y=m.getPlaybackController(),T=y.getCurrentLiveLatency();if(!e.useLoLPABR()||l===i.a.AUDIO)return n;T||(T=0);var b=y.getPlaybackRate(),v=f.getThroughputHistory().getSafeAverageThroughput(l,_);if(t.debug("Throughput ".concat(Math.round(v)," kbps")),isNaN(v)||!p)return n;if(f.getAbandonmentStateFor(d.id,l)===o.a.ABANDON_LOAD)return n;for(var A=g.bitrateList,R=e.getRepresentationInfo().fragmentDuration,w=A[0].bandwidth/1e3,S=A[A.length-1].bandwidth/1e3,I=0;I<A.length;I++){var N=A[I].bandwidth/1e3;N>S?S=N:N<w&&(w=N)}var C=A[h].bandwidth/1e3,O=u.getCurrentHttpRequest(l,!0),M=(O.tresponse.getTime()-O.trequest.getTime())/1e3,D=M>R?M-R:0;s.setupPerSegmentQoe(R,S,w),s.logSegmentMetrics(C,D,T,b);var L=B(c).create({targetLatency:1.5,bufferMin:.3,segmentDuration:R,qoeEvaluator:s});return n.quality=r.getNextQuality(g,1e3*v,T,E,b,h,L),n.reason={throughput:v,latency:T},n.priority=a.a.PRIORITY.STRONG,m.setTimeToLoadDelay(0),n.quality!==h&&console.log("[TgcLearningRule]["+l+"] requesting switch to index: ",n.quality,"Average throughput",Math.round(v),"kbps"),n}catch(e){throw e}},reset:function(){r.reset(),s.reset()}},t=Object(f.a)(c).getInstance().getLogger(n),r=O(c).create(),s=L(c).create(),n}F.__dashjs_factory_name="LoLPRule";var x=r.a.getClassFactory(F);function k(e){e=e||{};var t,n,r=this.context,o=e.mediaPlayerModel,s=e.customParametersModel,c=e.dashMetrics,l=e.settings;function f(e){return e.filter((function(e){return e.quality>a.a.NO_CHANGE}))}function d(e){var t,n,i,o,s,u={},c=null;if(0!==e.length){for(u[a.a.PRIORITY.STRONG]={quality:a.a.NO_CHANGE,reason:null},u[a.a.PRIORITY.WEAK]={quality:a.a.NO_CHANGE,reason:null},u[a.a.PRIORITY.DEFAULT]={quality:a.a.NO_CHANGE,reason:null},t=0,n=e.length;t<n;t+=1)(i=e[t]).quality!==a.a.NO_CHANGE&&(u[i.priority].quality===a.a.NO_CHANGE||u[i.priority].quality>i.quality)&&(u[i.priority].quality=i.quality,u[i.priority].reason=i.reason||null);return u[a.a.PRIORITY.WEAK].quality!==a.a.NO_CHANGE&&(c=u[a.a.PRIORITY.WEAK]),u[a.a.PRIORITY.DEFAULT].quality!==a.a.NO_CHANGE&&(c=u[a.a.PRIORITY.DEFAULT]),u[a.a.PRIORITY.STRONG].quality!==a.a.NO_CHANGE&&(c=u[a.a.PRIORITY.STRONG]),c&&(o=c.quality,s=c.reason),Object(a.a)(r).create(o,s)}}return{initialize:function(){t=[],n=[],l.get().streaming.abr.useDefaultABRRules&&(l.get().streaming.abr.ABRStrategy===i.a.ABR_STRATEGY_L2A?t.push(w(r).create({dashMetrics:c,settings:l})):l.get().streaming.abr.ABRStrategy===i.a.ABR_STRATEGY_LoLP?t.push(x(r).create({dashMetrics:c})):(t.push(A(r).create({dashMetrics:c,mediaPlayerModel:o,settings:l})),t.push(u(r).create({dashMetrics:c})),l.get().streaming.abr.additionalAbrRules.insufficientBufferRule&&t.push(g(r).create({dashMetrics:c,settings:l})),l.get().streaming.abr.additionalAbrRules.switchHistoryRule&&t.push(T(r).create()),l.get().streaming.abr.additionalAbrRules.droppedFramesRule&&t.push(_(r).create()),l.get().streaming.abr.additionalAbrRules.abandonRequestsRule&&n.push(m(r).create({dashMetrics:c,mediaPlayerModel:o,settings:l})))),s.getAbrCustomRules().forEach((function(e){"qualitySwitchRules"===e.type&&t.push(e.rule(r).create()),"abandonFragmentRules"===e.type&&n.push(e.rule(r).create())}))},reset:function(){[t,n].forEach((function(e){e&&e.length&&e.forEach((function(e){return e.reset&&e.reset()}))})),t=[],n=[]},getMaxQuality:function(e){return d(f(t.map((function(t){return t.getMaxIndex(e)}))))||Object(a.a)(r).create()},getMinSwitchRequest:d,shouldAbandonFragment:function(e,t){return d(f(n.map((function(n){return n.shouldAbandon(e,t)}))))||Object(a.a)(r).create()},getQualitySwitchRules:function(){return t}}}k.__dashjs_factory_name="ABRRulesCollection";var U=r.a.getClassFactory(k);U.QUALITY_SWITCH_RULES="qualitySwitchRules",U.ABANDON_FRAGMENT_RULES="abandonFragmentRules",r.a.updateSingletonFactory(k.__dashjs_factory_name,U);t.a=U},3:function(e,t,n){"use strict";var r=function(){var e,t=[],n={},r={};function a(e,n){for(var r in t){var a=t[r];if(a.context===e&&a.name===n)return a.instance}return null}function i(e,t){return t[e]}function o(e,t,n){e in n&&(n[e]=t)}function s(t,n,r){var a,i=t.__dashjs_factory_name,o=n[i];if(o){var s=o.instance;if(!o.override)return s.apply({context:n,factory:e},r);for(var u in a=t.apply({context:n},r),s=s.apply({context:n,factory:e,parent:a},r))a.hasOwnProperty(u)&&(a[u]=s[u])}else a=t.apply({context:n},r);return a.getClassName=function(){return i},a}return e={extend:function(e,t,n,r){!r[e]&&t&&(r[e]={instance:t,override:n})},getSingletonInstance:a,setSingletonInstance:function(e,n,r){for(var a in t){var i=t[a];if(i.context===e&&i.name===n)return void(t[a].instance=r)}t.push({name:n,context:e,instance:r})},deleteSingletonInstances:function(e){t=t.filter((function(t){return t.context!==e}))},getSingletonFactory:function(e){var r=i(e.__dashjs_factory_name,n);return r||(r=function(n){var r;return void 0===n&&(n={}),{getInstance:function(){return r||(r=a(n,e.__dashjs_factory_name)),r||(r=s(e,n,arguments),t.push({name:e.__dashjs_factory_name,context:n,instance:r})),r}}},n[e.__dashjs_f