').html((0,s.default)(t.toString())(e))}};e.default=l,t.exports=e.default},function(t,e,r){"use strict";var n={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},i={"'":"'","\\":"\\","\r":"r","\n":"n","\t":"t","\u2028":"u2028","\u2029":"u2029"},a={"&":"&","<":"<",">":">",'"':""","'":"'"},o=new RegExp("[&<>\"']","g"),s=function(t){return null===t?"":(""+t).replace(o,function(t){return a[t]})},l=0,u=function(t,e){var r,a=new RegExp([(n.escape||/(.)^/).source,(n.interpolate||/(.)^/).source,(n.evaluate||/(.)^/).source].join("|")+"|$","g"),o=0,u="__p+='";t.replace(a,function(e,r,n,a,s){return u+=t.slice(o,s).replace(/\\|'|\r|\n|\t|\u2028|\u2029/g,function(t){return"\\"+i[t]}),r&&(u+="'+\n((__t=("+r+"))==null?'':escapeExpr(__t))+\n'"),n&&(u+="'+\n((__t=("+n+"))==null?'':__t)+\n'"),a&&(u+="';\n"+a+"\n__p+='"),o=s+e.length,e}),u+="';\n",n.variable||(u="with(obj||{}){\n"+u+"}\n"),u="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+u+"return __p;\n//# sourceURL=/microtemplates/source["+l+++"]";try{r=new Function(n.variable||"obj","escapeExpr",u)}catch(t){throw t.source=u,t}if(e)return r(e,s);var c=function(t){return r.call(this,t,s)};return c.source="function("+(n.variable||"obj")+"){\n"+u+"}",c};u.settings=n,t.exports=u},function(t,e,r){(function(e){function r(t,e){var r=t[1]||"",i=t[3];if(!i)return r;if(e){var a=n(i);return[r].concat(i.sources.map(function(t){return"/*# sourceURL="+i.sourceRoot+t+" */"})).concat([a]).join("\n")}return[r].join("\n")}function n(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+new e(JSON.stringify(t)).toString("base64")+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=r(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,r){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},i=0;i =n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|t}function g(t){return+t!=t&&(t=0),a.alloc(+t)}function y(t,e){if(a.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return K(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(t).length;default:if(n)return K(t).length;e=(""+e).toLowerCase(),n=!0}}function v(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return D(this,e,r);case"utf8":case"utf-8":return L(this,e,r);case"ascii":return P(this,e,r);case"latin1":case"binary":return C(this,e,r);case"base64":return R(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function m(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function b(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:_(t,e,r,n,i);if("number"==typeof e)return e&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):_(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function _(t,e,r,n,i){function a(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}var o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}var u;if(i){var c=-1;for(u=r;u =D||I)&&(A.logger.log("audioStreamController: retryDate reached, switch back to IDLE state"),this.state=w.IDLE);break;case w.WAITING_INIT_PTS:case w.STOPPED:case w.FRAG_LOADING:case w.PARSING:case w.PARSED:case w.ENDED:}}},{key:"onMediaAttached",value:function(t){var e=this.media=this.mediaBuffer=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),e.addEventListener("seeking",this.onvseeking),e.addEventListener("ended",this.onvended);var r=this.config;this.tracks&&r.autoStartLoad&&this.startLoad(r.startPosition)}},{key:"onMediaDetaching",value:function(){var t=this.media;t&&t.ended&&(A.logger.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var e=this.tracks;e&&e.forEach(function(t){t.details&&t.details.fragments.forEach(function(t){t.loadCounter=void 0})}),t&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()}},{key:"onMediaSeeking",value:function(){this.state===w.ENDED&&(this.state=w.IDLE),this.media&&(this.lastCurrentTime=this.media.currentTime),void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold),this.tick()}},{key:"onMediaEnded",value:function(){this.startPosition=this.lastCurrentTime=0}},{key:"onAudioTracksUpdated",value:function(t){A.logger.log("audio tracks updated"),this.tracks=t.audioTracks}},{key:"onAudioTrackSwitching",value:function(t){var e=!!t.url;this.trackId=t.id,this.state=w.IDLE,this.fragCurrent=null,this.state=w.PAUSED,this.waitingFragment=null,e?this.timer||(this.timer=setInterval(this.ontick,100)):this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),e&&(this.audioSwitch=!0,this.state=w.IDLE,void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold)),this.tick()}},{key:"onAudioTrackLoaded",value:function(t){var e=t.details,r=t.id,n=this.tracks[r],i=e.totalduration,a=0;if(A.logger.log("track "+r+" loaded ["+e.startSN+","+e.endSN+"],duration:"+i),e.live){var o=n.details;o&&e.fragments.length>0?(b.default.mergeDetails(o,e),a=e.fragments[0].start,e.PTSKnown?A.logger.log("live audio playlist sliding:"+a.toFixed(3)):A.logger.log("live audio playlist - outdated PTS, unknown sliding")):(e.PTSKnown=!1,A.logger.log("live audio playlist - first load, unknown sliding"))}else e.PTSKnown=!1;if(n.details=e,!this.startFragRequested){if(-1===this.startPosition){var s=e.startTimeOffset;isNaN(s)?this.startPosition=0:(A.logger.log("start time offset found in playlist, adjust startPosition to "+s),this.startPosition=s)}this.nextLoadPosition=this.startPosition}this.state===w.WAITING_TRACK&&(this.state=w.IDLE),this.tick()}},{key:"onKeyLoaded",value:function(){this.state===w.KEY_LOADING&&(this.state=w.IDLE,this.tick())}},{key:"onFragLoaded",value:function(t){var e=this.fragCurrent,r=t.frag;if(this.state===w.FRAG_LOADING&&e&&"audio"===r.type&&r.level===e.level&&r.sn===e.sn){var n=this.tracks[this.trackId],i=n.details,a=i.totalduration,o=e.level,s=e.sn,l=e.cc,u=this.config.defaultAudioCodec||n.audioCodec||"mp4a.40.2",c=this.stats=t.stats;if("initSegment"===s)this.state=w.IDLE,c.tparsed=c.tbuffered=performance.now(),i.initSegment.data=t.payload,this.hls.trigger(g.default.FRAG_BUFFERED,{stats:c,frag:e,id:"audio"}),this.tick();else{this.state=w.PARSING,this.appended=!1,this.demuxer||(this.demuxer=new h.default(this.hls,"audio"));var f=this.initPTS[l],d=i.initSegment?i.initSegment.data:[];if(d||void 0!==f){this.pendingBuffering=!0,A.logger.log("Demuxing "+s+" of ["+i.startSN+" ,"+i.endSN+"],track "+o);this.demuxer.push(t.payload,d,u,null,e,a,!1,f)}else A.logger.log("unknown video PTS for continuity counter "+l+", waiting for video PTS before demuxing audio frag "+s+" of ["+i.startSN+" ,"+i.endSN+"],track "+o),this.waitingFragment=t,this.state=w.WAITING_INIT_PTS}}this.fragLoadError=0}},{key:"onFragParsingInitSegment",value:function(t){var e=this.fragCurrent,r=t.frag;if(e&&"audio"===t.id&&r.sn===e.sn&&r.level===e.level&&this.state===w.PARSING){var n=t.tracks,i=void 0;if(n.video&&delete n.video,i=n.audio){i.levelCodec="mp4a.40.2",i.id=t.id,this.hls.trigger(g.default.BUFFER_CODECS,n),A.logger.log("audio track:audio,container:"+i.container+",codecs[level/parsed]=["+i.levelCodec+"/"+i.codec+"]");var a=i.initSegment;if(a){var o={type:"audio",data:a,parent:"audio",content:"initSegment"};this.audioSwitch?this.pendingData=[o]:(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(g.default.BUFFER_APPENDING,o))}this.tick()}}}},{key:"onFragParsingData",value:function(t){var e=this,r=this.fragCurrent,n=t.frag;if(r&&"audio"===t.id&&"audio"===t.type&&n.sn===r.sn&&n.level===r.level&&this.state===w.PARSING){var i=this.trackId,a=this.tracks[i],o=this.hls;isNaN(t.endPTS)&&(t.endPTS=t.startPTS+r.duration,t.endDTS=t.startDTS+r.duration),A.logger.log("parsed "+t.type+",PTS:["+t.startPTS.toFixed(3)+","+t.endPTS.toFixed(3)+"],DTS:["+t.startDTS.toFixed(3)+"/"+t.endDTS.toFixed(3)+"],nb:"+t.nb),b.default.updateFragPTSDTS(a.details,r.sn,t.startPTS,t.endPTS);var s=this.audioSwitch,l=this.media,u=!1;if(s&&l)if(l.readyState){var c=l.currentTime;A.logger.log("switching audio track : currentTime:"+c),c>=t.startPTS&&(A.logger.log("switching audio track : flushing all audio"),this.state=w.BUFFER_FLUSHING,o.trigger(g.default.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),u=!0,this.audioSwitch=!1,o.trigger(g.default.AUDIO_TRACK_SWITCHED,{id:i}))}else this.audioSwitch=!1,o.trigger(g.default.AUDIO_TRACK_SWITCHED,{id:i});var f=this.pendingData;this.audioSwitch||([t.data1,t.data2].forEach(function(e){e&&e.length&&f.push({type:t.type,data:e,parent:"audio",content:"data"})}),!u&&f.length&&(f.forEach(function(t){e.state===w.PARSING&&(e.pendingBuffering=!0,e.hls.trigger(g.default.BUFFER_APPENDING,t))}),this.pendingData=[],this.appended=!0)),this.tick()}}},{key:"onFragParsed",value:function(t){var e=this.fragCurrent,r=t.frag;e&&"audio"===t.id&&r.sn===e.sn&&r.level===e.level&&this.state===w.PARSING&&(this.stats.tparsed=performance.now(),this.state=w.PARSED,this._checkAppendedParsed())}},{key:"onBufferCreated",value:function(t){var e=t.tracks.audio;e&&(this.mediaBuffer=e.buffer,this.loadedmetadata=!0)}},{key:"onBufferAppended",value:function(t){if("audio"===t.parent){var e=this.state;e!==w.PARSING&&e!==w.PARSED||(this.pendingBuffering=t.pending>0,this._checkAppendedParsed())}}},{key:"_checkAppendedParsed",value:function(){if(!(this.state!==w.PARSED||this.appended&&this.pendingBuffering)){var t=this.fragCurrent,e=this.stats,r=this.hls;if(t){this.fragPrevious=t,e.tbuffered=performance.now(),r.trigger(g.default.FRAG_BUFFERED,{stats:e,frag:t,id:"audio"});var n=this.mediaBuffer?this.mediaBuffer:this.media;A.logger.log("audio buffered : "+E.default.toString(n.buffered)),this.audioSwitch&&this.appended&&(this.audioSwitch=!1,r.trigger(g.default.AUDIO_TRACK_SWITCHED,{id:this.trackId})),this.state=w.IDLE}this.tick()}}},{key:"onError",value:function(t){var e=t.frag;if(!e||"audio"===e.type)switch(t.details){case T.ErrorDetails.FRAG_LOAD_ERROR:case T.ErrorDetails.FRAG_LOAD_TIMEOUT:if(!t.fatal){var r=this.fragLoadError;r?r++:r=1;var n=this.config;if(r<=n.fragLoadingMaxRetry){this.fragLoadError=r,e.loadCounter=0;var i=Math.min(Math.pow(2,r-1)*n.fragLoadingRetryDelay,n.fragLoadingMaxRetryTimeout);A.logger.warn("audioStreamController: frag loading failed, retry in "+i+" ms"),this.retryDate=performance.now()+i,this.state=w.FRAG_LOADING_WAITING_RETRY}else A.logger.error("audioStreamController: "+t.details+" reaches max retry, redispatch as fatal ..."),t.fatal=!0,this.state=w.ERROR}break;case T.ErrorDetails.FRAG_LOOP_LOADING_ERROR:case T.ErrorDetails.AUDIO_TRACK_LOAD_ERROR:case T.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:case T.ErrorDetails.KEY_LOAD_ERROR:case T.ErrorDetails.KEY_LOAD_TIMEOUT:this.state!==w.ERROR&&(this.state=t.fatal?w.ERROR:w.IDLE,A.logger.warn("audioStreamController: "+t.details+" while loading frag,switch to "+this.state+" state ..."));break;case T.ErrorDetails.BUFFER_FULL_ERROR:if("audio"===t.parent&&(this.state===w.PARSING||this.state===w.PARSED)){var a=this.mediaBuffer,o=this.media.currentTime;if(a&&f.default.isBuffered(a,o)&&f.default.isBuffered(a,o+.5)){var s=this.config;s.maxMaxBufferLength>=s.maxBufferLength&&(s.maxMaxBufferLength/=2,A.logger.warn("audio:reduce max buffer length to "+s.maxMaxBufferLength+"s"),this.fragLoadIdx+=2*s.fragLoadingLoopThreshold),this.state=w.IDLE}else A.logger.warn("buffer full error also media.currentTime is not buffered, flush audio buffer"),this.fragCurrent=null,this.state=w.BUFFER_FLUSHING,this.hls.trigger(g.default.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"})}}}},{key:"onBufferFlushed",value:function(){var t=this,e=this.pendingData;e&&e.length?(A.logger.log("appending pending audio data on Buffer Flushed"),e.forEach(function(e){t.hls.trigger(g.default.BUFFER_APPENDING,e)}),this.appended=!0,this.pendingData=[],this.state=w.PARSED):(this.state=w.IDLE,this.fragPrevious=null,this.tick())}},{key:"state",set:function(t){if(this.state!==t){var e=this.state;this._state=t,A.logger.log("audio stream:"+e+"->"+t)}},get:function(){return this._state}}]),e}(v.default);r.default=k},{24:24,30:30,31:31,32:32,34:34,35:35,45:45,50:50,51:51}],7:[function(t,e,r){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(r,"__esModule",{value:!0});var s=function(){function t(t,e){for(var r=0;r <%=message%> \n"},function(t,e){t.exports='s&&(r=s-l),u=r;u>=0;u--){for(var f=!0,d=0;de.endPTS?1:0})}},{key:"followingBufferedFrag",value:function(t){return t?this.getBufferedFrag(t.endPTS+.5):null}},{key:"_checkFragmentChanged",value:function(){var t,e,r=this.media;if(r&&r.readyState&&!1===r.seeking&&(e=r.currentTime,e>r.playbackRate*this.lastCurrentTime&&(this.lastCurrentTime=e),f.default.isBuffered(r,e)?t=this.getBufferedFrag(e):f.default.isBuffered(r,e+.1)&&(t=this.getBufferedFrag(e+.1)),t)){var n=t;if(n!==this.fragPlaying){this.hls.trigger(g.default.FRAG_CHANGED,{frag:n});var i=n.level;this.fragPlaying&&this.fragPlaying.level===i||this.hls.trigger(g.default.LEVEL_SWITCHED,{level:i}),this.fragPlaying=n}}}},{key:"immediateLevelSwitch",value:function(){if(A.logger.log("immediateLevelSwitch"),!this.immediateSwitch){this.immediateSwitch=!0;var t=this.media,e=void 0;t?(e=t.paused,t.pause()):e=!0,this.previouslyPaused=e}var r=this.fragCurrent;r&&r.loader&&r.loader.abort(),this.fragCurrent=null,this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}},{key:"immediateLevelSwitchEnd",value:function(){var t=this.media;t&&t.buffered.length&&(this.immediateSwitch=!1,f.default.isBuffered(t,t.currentTime)&&(t.currentTime-=1e-4),this.previouslyPaused||t.play())}},{key:"nextLevelSwitch",value:function(){var t=this.media;if(t&&t.readyState){var e=void 0,r=void 0,n=void 0;if(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold,r=this.getBufferedFrag(t.currentTime),r&&r.startPTS>1&&this.flushMainBuffer(0,r.startPTS-1),t.paused)e=0;else{var i=this.hls.nextLoadLevel,a=this.levels[i],o=this.fragLastKbps;e=o&&this.fragCurrent?this.fragCurrent.duration*a.bitrate/(1e3*o)+1:0}if((n=this.getBufferedFrag(t.currentTime+e))&&(n=this.followingBufferedFrag(n))){var s=this.fragCurrent;s&&s.loader&&s.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(n.startPTS,Number.POSITIVE_INFINITY)}}}},{key:"flushMainBuffer",value:function(t,e){this.state=w.BUFFER_FLUSHING;var r={startOffset:t,endOffset:e};this.altAudio&&(r.type="video"),this.hls.trigger(g.default.BUFFER_FLUSHING,r)}},{key:"onMediaAttached",value:function(t){var e=this.media=this.mediaBuffer=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvended=this.onMediaEnded.bind(this),e.addEventListener("seeking",this.onvseeking),e.addEventListener("seeked",this.onvseeked),e.addEventListener("ended",this.onvended);var r=this.config;this.levels&&r.autoStartLoad&&this.hls.startLoad(r.startPosition)}},{key:"onMediaDetaching",value:function(){var t=this.media;t&&t.ended&&(A.logger.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var e=this.levels;e&&e.forEach(function(t){t.details&&t.details.fragments.forEach(function(t){t.loadCounter=void 0,t.backtracked=void 0})}),t&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("seeked",this.onvseeked),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()}},{key:"onMediaSeeking",value:function(){var t=this.media,e=t?t.currentTime:void 0,r=this.config;if(A.logger.log("media seeking to "+e.toFixed(3)),this.state===w.FRAG_LOADING){var n=this.mediaBuffer?this.mediaBuffer:t,i=f.default.bufferInfo(n,e,this.config.maxBufferHole),a=this.fragCurrent;if(0===i.len&&a){var o=r.maxFragLookUpTolerance,s=a.start-o,l=a.start+a.duration+o;el?(a.loader&&(A.logger.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),a.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.state=w.IDLE):A.logger.log("seeking outside of buffer but within currently loaded fragment range")}}else this.state===w.ENDED&&(this.state=w.IDLE);t&&(this.lastCurrentTime=e),this.state!==w.FRAG_LOADING&&void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*r.fragLoadingLoopThreshold),this.loadedmetadata||(this.nextLoadPosition=this.startPosition=e),this.tick()}},{key:"onMediaSeeked",value:function(){A.logger.log("media seeked to "+this.media.currentTime.toFixed(3)),this.tick()}},{key:"onMediaEnded",value:function(){A.logger.log("media ended"),this.startPosition=this.lastCurrentTime=0}},{key:"onManifestLoading",value:function(){A.logger.log("trigger BUFFER_RESET"),this.hls.trigger(g.default.BUFFER_RESET),this._bufferedFrags=[],this.stalled=!1,this.startPosition=this.lastCurrentTime=0}},{key:"onManifestParsed",value:function(t){var e,r=!1,n=!1;t.levels.forEach(function(t){(e=t.audioCodec)&&(-1!==e.indexOf("mp4a.40.2")&&(r=!0),-1!==e.indexOf("mp4a.40.5")&&(n=!0))}),this.audioCodecSwitch=r&&n,this.audioCodecSwitch&&A.logger.log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=t.levels,this.startLevelLoaded=!1,this.startFragRequested=!1;var i=this.config;(i.autoStartLoad||this.forceStartLoad)&&this.hls.startLoad(i.startPosition)}},{key:"onLevelLoaded",value:function(t){var e=t.details,r=t.level,n=this.levels[r],i=e.totalduration,a=0;if(A.logger.log("level "+r+" loaded ["+e.startSN+","+e.endSN+"],duration:"+i),this.levelLastLoaded=r,e.live){var o=n.details;o&&e.fragments.length>0?(b.default.mergeDetails(o,e),a=e.fragments[0].start,this.liveSyncPosition=this.computeLivePosition(a,o),e.PTSKnown?A.logger.log("live playlist sliding:"+a.toFixed(3)):A.logger.log("live playlist - outdated PTS, unknown sliding")):(e.PTSKnown=!1,A.logger.log("live playlist - first load, unknown sliding"))}else e.PTSKnown=!1;if(n.details=e,this.hls.trigger(g.default.LEVEL_UPDATED,{details:e,level:r}),!1===this.startFragRequested){if(-1===this.startPosition||-1===this.lastCurrentTime){var s=e.startTimeOffset;isNaN(s)?e.live?(this.startPosition=this.computeLivePosition(a,e),A.logger.log("configure startPosition to "+this.startPosition)):this.startPosition=0:(s<0&&(A.logger.log("negative start time offset "+s+", count from end of last fragment"),s=a+i+s),A.logger.log("start time offset found in playlist, adjust startPosition to "+s),this.startPosition=s),this.lastCurrentTime=this.startPosition}this.nextLoadPosition=this.startPosition}this.state===w.WAITING_LEVEL&&(this.state=w.IDLE),this.tick()}},{key:"onKeyLoaded",value:function(){this.state===w.KEY_LOADING&&(this.state=w.IDLE,this.tick())}},{key:"onFragLoaded",value:function(t){var e=this.fragCurrent,r=t.frag;if(this.state===w.FRAG_LOADING&&e&&"main"===r.type&&r.level===e.level&&r.sn===e.sn){var n=t.stats,i=this.levels[e.level],a=i.details;if(A.logger.log("Loaded "+e.sn+" of ["+a.startSN+" ,"+a.endSN+"],level "+e.level),this.bitrateTest=!1,this.stats=n,!0===r.bitrateTest&&this.hls.nextLoadLevel)this.state=w.IDLE,this.startFragRequested=!1,n.tparsed=n.tbuffered=performance.now(),this.hls.trigger(g.default.FRAG_BUFFERED,{stats:n,frag:e,id:"main"}),this.tick();else if("initSegment"===r.sn)this.state=w.IDLE,n.tparsed=n.tbuffered=performance.now(),a.initSegment.data=t.payload,this.hls.trigger(g.default.FRAG_BUFFERED,{stats:n,frag:e,id:"main"}),this.tick();else{this.state=w.PARSING;var o=a.totalduration,s=e.level,l=e.sn,u=this.config.defaultAudioCodec||i.audioCodec;this.audioCodecSwap&&(A.logger.log("swapping playlist audio codec"),void 0===u&&(u=this.lastAudioCodec),u&&(u=-1!==u.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5")),this.pendingBuffering=!0,this.appended=!1,A.logger.log("Parsing "+l+" of ["+a.startSN+" ,"+a.endSN+"],level "+s+", cc "+e.cc);var c=this.demuxer;c||(c=this.demuxer=new h.default(this.hls,"main"));var f=this.media,d=f&&f.seeking,p=!d&&(a.PTSKnown||!a.live),y=a.initSegment?a.initSegment.data:[];c.push(t.payload,y,u,i.videoCodec,e,o,p,void 0)}}this.fragLoadError=0}},{key:"onFragParsingInitSegment",value:function(t){var e=this.fragCurrent,r=t.frag;if(e&&"main"===t.id&&r.sn===e.sn&&r.level===e.level&&this.state===w.PARSING){var n,i,a=t.tracks;if(a.audio&&this.altAudio&&delete a.audio,i=a.audio){var o=this.levels[this.level].audioCodec,s=navigator.userAgent.toLowerCase();o&&this.audioCodecSwap&&(A.logger.log("swapping playlist audio codec"),o=-1!==o.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),this.audioCodecSwitch&&1!==i.metadata.channelCount&&-1===s.indexOf("firefox")&&(o="mp4a.40.5"),-1!==s.indexOf("android")&&"audio/mpeg"!==i.container&&(o="mp4a.40.2",A.logger.log("Android: force audio codec to "+o)),i.levelCodec=o,i.id=t.id}i=a.video,i&&(i.levelCodec=this.levels[this.level].videoCodec,i.id=t.id),this.hls.trigger(g.default.BUFFER_CODECS,a);for(n in a){i=a[n],A.logger.log("main track:"+n+",container:"+i.container+",codecs[level/parsed]=["+i.levelCodec+"/"+i.codec+"]");var l=i.initSegment;l&&(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(g.default.BUFFER_APPENDING,{type:n,data:l,parent:"main",content:"initSegment"}))}this.tick()}}},{key:"onFragParsingData",value:function(t){var e=this,r=this.fragCurrent,n=t.frag;if(r&&"main"===t.id&&n.sn===r.sn&&n.level===r.level&&("audio"!==t.type||!this.altAudio)&&this.state===w.PARSING){var i=this.levels[this.level],a=r;if(isNaN(t.endPTS)&&(t.endPTS=t.startPTS+r.duration,t.endDTS=t.startDTS+r.duration),A.logger.log("Parsed "+t.type+",PTS:["+t.startPTS.toFixed(3)+","+t.endPTS.toFixed(3)+"],DTS:["+t.startDTS.toFixed(3)+"/"+t.endDTS.toFixed(3)+"],nb:"+t.nb+",dropped:"+(t.dropped||0)),"video"===t.type)if(a.dropped=t.dropped,a.dropped){if(!a.backtracked)return a.backtracked=!0,this.nextLoadPosition=t.startPTS,this.state=w.IDLE,void this.tick();A.logger.warn("Already backtracked on this fragment, appending with the gap")}else a.backtracked=!1;var o=b.default.updateFragPTSDTS(i.details,a.sn,t.startPTS,t.endPTS,t.startDTS,t.endDTS),s=this.hls;s.trigger(g.default.LEVEL_PTS_UPDATED,{details:i.details,level:this.level,drift:o,type:t.type,start:t.startPTS,end:t.endPTS}),[t.data1,t.data2].forEach(function(r){r&&r.length&&e.state===w.PARSING&&(e.appended=!0,e.pendingBuffering=!0,s.trigger(g.default.BUFFER_APPENDING,{type:t.type,data:r,parent:"main",content:"data"}))}),this.tick()}}},{key:"onFragParsed",value:function(t){var e=this.fragCurrent,r=t.frag;e&&"main"===t.id&&r.sn===e.sn&&r.level===e.level&&this.state===w.PARSING&&(this.stats.tparsed=performance.now(),this.state=w.PARSED,this._checkAppendedParsed())}},{key:"onAudioTrackSwitching",value:function(t){var e=!!t.url,r=t.id;if(!e){if(this.mediaBuffer!==this.media){A.logger.log("switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var n=this.fragCurrent;n.loader&&(A.logger.log("switching to main audio track, cancel main fragment load"),n.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=w.IDLE}var i=this.hls;i.trigger(g.default.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),i.trigger(g.default.AUDIO_TRACK_SWITCHED,{id:r}),this.altAudio=!1}}},{key:"onAudioTrackSwitched",value:function(t){var e=t.id,r=!!this.hls.audioTracks[e].url;if(r){var n=this.videoBuffer;n&&this.mediaBuffer!==n&&(A.logger.log("switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=n)}this.altAudio=r,this.tick()}},{key:"onBufferCreated",value:function(t){var e=t.tracks,r=void 0,n=void 0,i=!1;for(var a in e){var o=e[a];"main"===o.id?(n=a,r=o,"video"===a&&(this.videoBuffer=e[a].buffer)):i=!0}i&&r?(A.logger.log("alternate track found, use "+n+".buffered to schedule main fragment loading"),this.mediaBuffer=r.buffer):this.mediaBuffer=this.media}},{key:"onBufferAppended",value:function(t){if("main"===t.parent){var e=this.state;e!==w.PARSING&&e!==w.PARSED||(this.pendingBuffering=t.pending>0,this._checkAppendedParsed())}}},{key:"_checkAppendedParsed",value:function(){if(!(this.state!==w.PARSED||this.appended&&this.pendingBuffering)){var t=this.fragCurrent;if(t){var e=this.mediaBuffer?this.mediaBuffer:this.media;A.logger.log("main buffered : "+E.default.toString(e.buffered));var r=this._bufferedFrags.filter(function(t){return f.default.isBuffered(e,(t.startPTS+t.endPTS)/2)});r.push(t),this._bufferedFrags=r.sort(function(t,e){return t.startPTS-e.startPTS}),this.fragPrevious=t;var n=this.stats;n.tbuffered=performance.now(),this.fragLastKbps=Math.round(8*n.total/(n.tbuffered-n.tfirst)),this.hls.trigger(g.default.FRAG_BUFFERED,{stats:n,frag:t,id:"main"}),this.state=w.IDLE}this.tick()}}},{key:"onError",value:function(t){var e=t.frag||this.fragCurrent;if(!e||"main"===e.type){var r=this.media,n=r&&f.default.isBuffered(r,r.currentTime)&&f.default.isBuffered(r,r.currentTime+.5);switch(t.details){case T.ErrorDetails.FRAG_LOAD_ERROR:case T.ErrorDetails.FRAG_LOAD_TIMEOUT:case T.ErrorDetails.KEY_LOAD_ERROR:case T.ErrorDetails.KEY_LOAD_TIMEOUT:if(!t.fatal){var i=this.fragLoadError;i?i++:i=1;var a=this.config;if(i<=a.fragLoadingMaxRetry||n||e.autoLevel&&e.level){this.fragLoadError=i,e.loadCounter=0;var o=Math.min(Math.pow(2,i-1)*a.fragLoadingRetryDelay,a.fragLoadingMaxRetryTimeout);A.logger.warn("mediaController: frag loading failed, retry in "+o+" ms"),this.retryDate=performance.now()+o,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.state=w.FRAG_LOADING_WAITING_RETRY}else A.logger.error("mediaController: "+t.details+" reaches max retry, redispatch as fatal ..."),t.fatal=!0,this.state=w.ERROR}break;case T.ErrorDetails.FRAG_LOOP_LOADING_ERROR:t.fatal||(n?(this._reduceMaxBufferLength(e.duration),this.state=w.IDLE):e.autoLevel&&0!==e.level||(t.fatal=!0,this.state=w.ERROR));break;case T.ErrorDetails.LEVEL_LOAD_ERROR:case T.ErrorDetails.LEVEL_LOAD_TIMEOUT:this.state!==w.ERROR&&(t.fatal?(this.state=w.ERROR,A.logger.warn("streamController: "+t.details+",switch to "+this.state+" state ...")):this.state===w.WAITING_LEVEL&&(this.state=w.IDLE));break;case T.ErrorDetails.BUFFER_FULL_ERROR:"main"!==t.parent||this.state!==w.PARSING&&this.state!==w.PARSED||(n?(this._reduceMaxBufferLength(this.config.maxBufferLength),this.state=w.IDLE):(A.logger.warn("buffer full error also media.currentTime is not buffered, flush everything"),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)))}}}},{key:"_reduceMaxBufferLength",value:function(t){var e=this.config;e.maxMaxBufferLength>=t&&(e.maxMaxBufferLength/=2,A.logger.warn("main:reduce max buffer length to "+e.maxMaxBufferLength+"s"),this.fragLoadIdx+=2*e.fragLoadingLoopThreshold)}},{key:"_checkBuffer",value:function(){var t=this.media;if(t&&t.readyState){var e=t.currentTime,r=this.mediaBuffer?this.mediaBuffer:t,n=r.buffered;if(!this.loadedmetadata&&n.length){this.loadedmetadata=!0;var i=t.seeking?e:this.startPosition,a=f.default.isBuffered(r,i);e===i&&a||(A.logger.log("target start position:"+i),a||(i=n.start(0),A.logger.log("target start position not buffered, seek to buffered.start(0) "+i)),A.logger.log("adjust currentTime from "+e+" to "+i),t.currentTime=i)}else if(this.immediateSwitch)this.immediateLevelSwitchEnd();else{var o=f.default.bufferInfo(t,e,0),s=!(t.paused||t.ended||0===t.buffered.length),l=e!==this.lastCurrentTime,u=this.config;if(l)this.stallReported&&(A.logger.warn("playback not stuck anymore @"+e+", after "+Math.round(performance.now()-this.stalled)+"ms"),this.stallReported=!1),this.stalled=void 0,this.nudgeRetry=0;else if(s){var c=performance.now(),d=this.hls;if(this.stalled){var h=c-this.stalled,p=o.len,y=this.nudgeRetry||0;if(p<=.5&&h>1e3*u.lowBufferWatchdogPeriod){this.stallReported||(this.stallReported=!0,A.logger.warn("playback stalling in low buffer @"+e),d.trigger(g.default.ERROR,{type:T.ErrorTypes.MEDIA_ERROR,details:T.ErrorDetails.BUFFER_STALLED_ERROR,fatal:!1,buffer:p}));var v=o.nextStart,m=v-e;if(v&&m=0&&u>=0&&(n={data:t.subarray(d,s),type:a,state:u},f.push(n)),0===f.length){var g=this._getLastNalUnit();if(g){var y=new Uint8Array(g.data.byteLength+t.byteLength);y.set(g.data,0),y.set(t,g.data.byteLength),g.data=y}}return l.naluState=u,f}},{key:"discardEPB",value:function(t){for(var e,r,n=t.byteLength,i=[],a=1;a
/gi,"\n")}Object.defineProperty(r,"__esModule",{value:!0}),r.fixLineBreaks=void 0;var u=t(52),c=function(t){return t&&t.__esModule?t:{default:t}}(u),f=function(){return{decode:function(t){if(!t)return"";if("string"!=typeof t)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}};a.prototype={set:function(t,e){this.get(t)||""===e||(this.values[t]=e)},get:function(t,e,r){return r?this.has(t)?this.values[t]:e[r]:this.has(t)?this.values[t]:e},has:function(t){return t in this.values},alt:function(t,e,r){for(var n=0;n\">\n<% if(typeof imageLink !== 'undefined') { %>\n\n<% } %>\n
>1,c=-7,f=r?i-1:0,d=r?-1:1,h=t[e+f];for(f+=d,a=h&(1<<-c)-1,h>>=-c,c+=s;c>0;a=256*a+t[e+f],f+=d,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=256*o+t[e+f],f+=d,c-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(h?-1:1);o+=Math.pow(2,n),a-=u}return(h?-1:1)*o*Math.pow(2,a-n)},e.write=function(t,e,r,n,i,a){var o,s,l,u=8*a-i-1,c=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:a-1,p=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),e+=o+f>=1?d/l:d*Math.pow(2,1-f),e*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+h]=255&s,h+=p,s/=256,i-=8);for(o=o<0;t[r+h]=255&o,h+=p,o/=256,u-=8);t[r+h-p]|=128*g}},function(t,e,r){(function(t,r){function n(t,e){for(var r=-1,n=null==t?0:t.length,i=0,a=[];++rl))return!1;var c=o.get(t);if(c&&o.get(e))return c==e;var f=-1,d=!0,h=i&Kt?new x:void 0;for(o.set(t,e),o.set(e,t);++f
No comments:
Post a Comment