xgplayer-hls.js 160 KB

123
  1. !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("xgplayer")):"function"==typeof define&&define.amd?define(["xgplayer"],t):(e=e||self).HlsPlayer=t(e.Player)}(this,(function(e){"use strict";e=e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;var t={VISIBILITY_CHANGE:"VISIBILITY_CHANGE"},i={SEEK:"SEEK"},r={LADER_START:"LOADER_START",LOADER_DATALOADED:"LOADER_DATALOADED",LOADER_COMPLETE:"LOADER_COMPLETE",LOADER_RESPONSE_HEADERS:"LOADER_RESPONSE_HEADERS",LOADER_ERROR:"LOADER_ERROR",LOADER_RETRY:"LOADER_RETRY",LOADER_TTFB:"LOADER_TTFB"},n={DEMUX_START:"DEMUX_START",DEMUX_COMPLETE:"DEMUX_COMPLETE",DEMUX_ERROR:"DEMUX_ERROR",METADATA_PARSED:"METADATA_PARSED",SEI_PARSED:"SEI_PARSED",VIDEO_METADATA_CHANGE:"VIDEO_METADATA_CHANGE",AUDIO_METADATA_CHANGE:"AUDIO_METADATA_CHANGE",MEDIA_INFO:"MEDIA_INFO",ISKEYFRAME:"ISKEYFRAME"},s={REMUX_METADATA:"REMUX_METADATA",REMUX_MEDIA:"REMUX_MEDIA",MEDIA_SEGMENT:"MEDIA_SEGMENT",REMUX_ERROR:"REMUX_ERROR",INIT_SEGMENT:"INIT_SEGMENT",DETECT_CHANGE_STREAM:"DETECT_CHANGE_STREAM",DETECT_CHANGE_STREAM_DISCONTINUE:"DETECT_CHANGE_STREAM_DISCONTINUE",DETECT_AUDIO_GAP:"DETECT_AUDIO_GAP",DETECT_LARGE_GAP:"DETECT_LARGE_GAP",DETECT_AUDIO_OVERLAP:"DETECT_AUDIO_OVERLAP",RANDOM_ACCESS_POINT:"RANDOM_ACCESS_POINT",DETECT_FRAG_ID_DISCONTINUE:"DETECT_FRAG_ID_DISCONTINUE"},a={SOURCE_UPDATE_END:"SOURCE_UPDATE_END",MSE_ERROR:"MSE_ERROR",MSE_WRONG_TRACK_ADD:"MSE_WRONG_TRACK_ADD"},o={RETRY_TIME_EXCEEDED:"RETRY_TIME_EXCEEDED"},u=Object.assign({},r,n,s,a,o,i,t),l=[],h=[];for(var c in u)u.hasOwnProperty(c)&&l.push(u[c]);for(var d in u)u.hasOwnProperty(d)&&h.push(u[d]);var f={ALLEVENTS:u,HLS_EVENTS:o,REMUX_EVENTS:s,DEMUX_EVENTS:n,MSE_EVENTS:a,LOADER_EVENTS:r,FlvAllowedEvents:l,HlsAllowedEvents:h,CRYPTO_EVENTS:{START_DECRYPTOO:"START_DECRYPTO",DECRYPTED:"DECRYPTED"},PLAYER_EVENTS:i,BROWSER_EVENTS:t},p=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var y=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._baseURL="",this._list={},this._ts={},this.version=0,this.sequence=-1,this.targetduration=0,this.duration=0,this.fragLength=0,this._lastget=void 0,this.end=!1,this.autoclear=t.autoclear||!1,this.logger=t.logger,this.downloadedUrls=[],this._avgSegmentDuration=4}return p(e,[{key:"push",value:function(e,t,i,r,n,s){this._ts[e]||(this._ts[e]={duration:t,downloaded:!1,downloading:!1,start:this.duration,discontinue:!!i,id:r,cc:n,isLast:s||!1},this._list[this.duration]=e,this.duration+=t,this.fragLength+=1)}},{key:"deleteFrag",value:function(e){this._ts[e]&&(this._ts[e].start>this._lastget.time&&(this._lastget={duration:this._ts[e].duration,time:this._ts[e].start,downloaded:!1,downloading:!1,url:e,id:this._ts[e].id}),delete this._list[this._ts[e].start],delete this._ts[e],this.fragLength-=1)}},{key:"_calcAvgFrgmentDuration",value:function(e){if(!e.frags)return e.targetduration;var t=e.frags.length;return Math.floor(e.duration/t/1e3)}},{key:"pushM3U8",value:function(e,t){if(!e)throw new Error("No m3u8 data received.");if(this.version=e.version,this.targetduration=e.targetduration,this._avgSegmentDuration=Math.min(this.targetduration,this._calcAvgFrgmentDuration(e)),e.encrypt&&!this.encrypt&&(this.encrypt=e.encrypt),this.end=e.end||!1,e.sequence||(e.sequence=0),!(e.sequence>this.sequence))throw new Error("Old m3u8 file received, "+e.sequence);var i=e.frags.length;this.logger&&this.logger.log("PLAYLIST","new playlist ["+e.sequence+", "+(e.sequence+i-1)+"]"),this.sequence=e.sequence;for(var r=[],n=0;n<i;n++){var s=e.frags[n];!this._ts[s.url]&&this.downloadedUrls.indexOf(s.url)<0&&(r.push(s.url),this.push(s.url,s.duration,s.discontinue,s.id,s.cc,s.isLast))}if(r.length<1)throw new Error("Can not read ts file list.");if(t)for(var a=this.getTsList(),o=0;o<a.length;o++)r.indexOf(a[o])<0&&this.deleteFrag(a[o])}},{key:"getTsList",value:function(){return Object.keys(this._ts)}},{key:"downloaded",value:function(e,t){var i=this._ts[e];i&&(i.downloaded=t)}},{key:"downloading",value:function(e,t){var i=this._ts[e];i&&(i.downloading=t)}},{key:"getTsByName",value:function(e){return this._ts[e]}},{key:"getTs",value:function(e){var t=Object.keys(this._list),i=void 0;if(void 0===e&&(e=this._lastget?this._lastget.time+this._lastget.duration:0),!(t.length<1||e>=this.duration)){t=t.sort((function(e,t){return parseFloat(e)-parseFloat(t)}));for(var r=0;r<t.length&&e>=parseInt(t[r]);r++){var n=this._list[t[r]];i={url:n,downloaded:this._ts[n].downloaded,downloading:this._ts[n].downloading,time:parseInt(t[r]),duration:parseInt(this._ts[n].duration),id:this._ts[n].id,cc:this._ts[n].cc,isLast:this._ts[n].isLast},this.autoclear&&this._lastget&&(delete this._ts[this._lastget.url],delete this._list[this._lastget.time]),this._lastget=i}return i&&this.downloadedUrls.push(i.url),i}}},{key:"getLastDownloadedTs",value:function(){for(var e=Object.keys(this._list).sort((function(e,t){return Number(e)-Number(t)})),t=void 0,i=0;i<e.length;i++){var r=this._list[e[i]],n=this._ts[r].downloaded,s=this._ts[r].downloading;if(!n)break;t={url:r,downloaded:n,downloading:s,time:parseInt(e[i]),duration:parseInt(this._ts[r].duration)}}return t}},{key:"clear",value:function(){this._baseURL="",this._list={},this._ts={},this.version=0,this.sequence=-1,this.targetduration=0,this.duration=0}},{key:"clearDownloaded",value:function(){for(var e=Object.keys(this._ts),t=0,i=e.length;t<i;t++){var r=this._ts[e[t]];r.downloaded=!1,r.downloading=!1}}},{key:"destroy",value:function(){this._baseURL="",this._list={},this._ts={},this.version=0,this.sequence=-1,this.targetduration=0,this.duration=0,this.fragLength=0,this._lastget=void 0,this.autoclear=!1}},{key:"resetSequence",value:function(){this.sequence=-1}},{key:"list",get:function(){return this._list}},{key:"baseURL",set:function(e){this.baseURL!==e&&(this.clear(),this._baseURL=e)},get:function(){return this._baseURL}},{key:"avgSegmentDuration",get:function(){return this._avgSegmentDuration}}]),e}(),_=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var m=function e(){v(this,e),this.mimetype="",this.init=null,this.data=[],this.bufferDuration=0},g=function(){function e(){v(this,e),this.sources={}}return _(e,[{key:"getSource",value:function(e){return this.sources[e]}},{key:"createSource",value:function(e){return this.sources[e]=new m,this.sources[e]}},{key:"clear",value:function(){this.sources={}}},{key:"destroy",value:function(){this.clear()}}]),e}(),E=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var b=function(){function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),!(t instanceof ArrayBuffer))throw new Error("data is invalid");this.buffer=t,this.dataview=new DataView(t),this.dataview.position=0}return E(e,[{key:"back",value:function(e){this.position-=e}},{key:"getUint8",value:function(e){return this.dataview.getUint8(e)}},{key:"skip",value:function(t){for(var i=Math.floor(t/4),r=t%4,n=0;n<i;n++)e.readByte(this.dataview,4);r>0&&e.readByte(this.dataview,r)}},{key:"readUint8",value:function(){return e.readByte(this.dataview,1)}},{key:"readUint16",value:function(){return e.readByte(this.dataview,2)}},{key:"readUint24",value:function(){return e.readByte(this.dataview,3)}},{key:"readUint32",value:function(){return e.readByte(this.dataview,4)}},{key:"readUint64",value:function(){return e.readByte(this.dataview,8)}},{key:"readInt8",value:function(){return e.readByte(this.dataview,1,!0)}},{key:"readInt16",value:function(){return e.readByte(this.dataview,2,!0)}},{key:"readInt32",value:function(){return e.readByte(this.dataview,4,!0)}},{key:"writeUint32",value:function(e){return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e])}},{key:"length",get:function(){return this.buffer.byteLength}},{key:"position",set:function(e){this.dataview.position=e},get:function(){return this.dataview.position}}],[{key:"readByte",value:function(e,t,i){var r=void 0;switch(t){case 1:r=i?e.getInt8(e.position):e.getUint8(e.position);break;case 2:r=i?e.getInt16(e.position):e.getUint16(e.position);break;case 3:if(i)throw new Error("not supported for readByte 3");r=e.getUint8(e.position)<<16,r|=e.getUint8(e.position+1)<<8,r|=e.getUint8(e.position+2);break;case 4:r=i?e.getInt32(e.position):e.getUint32(e.position);break;case 8:if(i)throw new Error("not supported for readBody 8");r=e.getUint32(e.position)<<32,r|=e.getUint32(e.position+4);break;default:r=""}return e.position+=t,r}}]),e}(),T="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},S=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();function k(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":T(t))&&"function"!=typeof t?e:t}function A(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":T(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function D(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var R=function(){function e(){D(this,e),this.id=-1,this.sequenceNumber=0,this.samples=[],this.droppedSamples=[],this.length=0}return S(e,[{key:"reset",value:function(){this.sequenceNumber=0,this.samples=[],this.length=0}},{key:"destroy",value:function(){this.reset(),this.id=-1}}]),e}(),w=function(e){function t(){D(this,t);var e=k(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.TAG="AudioTrack",e.type="audio",e}return A(t,e),t}(R),O=function(e){function t(){D(this,t);var e=k(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.TAG="VideoTrack",e.type="video",e.dropped=0,e.sequenceNumber=0,e}return A(t,e),S(t,[{key:"reset",value:function(){this.sequenceNumber=0,this.samples=[],this.length=0,this.dropped=0}}]),t}(R),L=(function(){function e(){D(this,e),this.audioTrack=null,this.videoTrack=null}S(e,[{key:"destroy",value:function(){this.audioTrack=null,this.videoTrack=null}}])}(),function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}());var x=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.length=t||0,this.historyLen=t||0,this.array=[],this.offset=0}return L(e,[{key:"push",value:function(e){this.array.push(e),this.length+=e.byteLength,this.historyLen+=e.byteLength}},{key:"shift",value:function(e){if(this.array.length<1)return new Uint8Array(0);if(void 0===e)return this._shiftBuffer();if(this.offset+e===this.array[0].length){var t=this.array[0].slice(this.offset,this.offset+e);return this.offset=0,this.array.shift(),this.length-=e,t}if(this.offset+e<this.array[0].length){var i=this.array[0].slice(this.offset,this.offset+e);return this.offset+=e,this.length-=e,i}for(var r=new Uint8Array(e),n=0;this.array.length>0&&e>0;){if(this.offset+e<this.array[0].length){var s=this.array[0].slice(this.offset,this.offset+e);r.set(s,n),this.offset+=e,this.length-=e,e=0;break}var a=this.array[0].length-this.offset;r.set(this.array[0].slice(this.offset,this.array[0].length),n),this.array.shift(),this.offset=0,n+=a,this.length-=a,e-=a}return r}},{key:"clear",value:function(){this.array=[],this.length=0,this.offset=0}},{key:"destroy",value:function(){this.clear(),this.historyLen=0}},{key:"_shiftBuffer",value:function(){return this.length-=this.array[0].length,this.offset=0,this.array.shift()}},{key:"toInt",value:function(e,t){for(var i=0,r=this.offset+e;r<this.offset+t+e;)r<this.array[0].length?i=256*i+this.array[0][r]:this.array[1]&&(i=256*i+this.array[1][r-this.array[0].length]),r++;return i}}]),e}(),U=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();function M(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var C=function(){function e(t){M(this,e);var i={sampleRate:48e3,channelCount:2,codec:"mp4a.40.2",config:[41,401,136,0],duration:0,id:2,refSampleDuration:21,sampleRateIndex:3,timescale:1e3,type:"audio"};return t?Object.assign({},i,t):i}return U(e,[{key:"destroy",value:function(){this.init=null}}]),e}(),B=function(){function e(t){M(this,e);var i={avcc:null,sps:new Uint8Array(0),pps:new Uint8Array(0),chromaFormat:420,codec:"avc1.640020",codecHeight:720,codecWidth:1280,duration:0,frameRate:{fixed:!0,fps:25,fps_num:25e3,fps_den:1e3},id:1,level:"3.2",presentHeight:720,presentWidth:1280,profile:"High",refSampleDuration:40,parRatio:{height:1,width:1},timescale:1e3,type:"video"};return t?Object.assign({},i,t):i}return U(e,[{key:"destroy",value:function(){this.init=null,this.sps=null,this.pps=null}}]),e}(),P=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();function I(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var F=function(){function e(t){I(this,e);var i=e.getDefault();return t?Object.assign({},i,t):i}return P(e,null,[{key:"getDefault",value:function(){return{dts:-1,pts:-1,originDts:-1,data:new Uint8Array}}}]),e}(),G=function(){function e(t){I(this,e);var i=e.getDefault();return t?Object.assign({},i,t):i}return P(e,null,[{key:"getDefault",value:function(){return{dts:-1,pts:void 0,isKeyframe:!1,originDts:-1,data:new Uint8Array,nals:[]}}}]),e}(),N=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var j=function(e){for(var t in e)if(e.hasOwnProperty(t)&&null===e[t])return!1;return!0},V=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.mimeType=null,this.duration=null,this.hasVideo=!1,this.video={codec:null,width:null,height:null,profile:null,level:null,frameRate:{fixed:!0,fps:25,fps_num:25e3,fps_den:1e3},chromaFormat:null,parRatio:{width:1,height:1}},this.hasAudio=!1,this.audio={codec:null,sampleRate:null,sampleRateIndex:null,channelCount:null}}return N(e,[{key:"isComplete",value:function(){return e.isBaseInfoReady(this)&&e.isVideoReady(this)&&e.isAudioReady(this)}}],[{key:"isBaseInfoReady",value:function(e){return j(e)}},{key:"isVideoReady",value:function(e){return!e.hasVideo||j(e.video)}},{key:"isAudioReady",value:function(e){return!e.hasAudio||j(e.video)}}]),e}(),H=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var X=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var i=Object.assign({},e.getDefault(),t);this.id=i.id,this.url=i.url,this.start=i.start,this.duration=i.duration,this.discontinue=i.discontinue,this.cc=i.cc}return H(e,null,[{key:"getDefault",value:function(){return{id:-1,url:"",start:-1,duration:-1,discontinue:!1,cc:-1}}}]),e}();function Y(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function W(e,t){return e(t={exports:{}},t.exports),t.exports}var z=W((function(e){var t=Object.prototype.hasOwnProperty,i="~";function r(){}function n(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function s(e,t,r,s,a){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new n(r,s||e,a),u=i?i+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],o]:e._events[u].push(o):(e._events[u]=o,e._eventsCount++),e}function a(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(i=!1)),o.prototype.eventNames=function(){var e,r,n=[];if(0===this._eventsCount)return n;for(r in e=this._events)t.call(e,r)&&n.push(i?r.slice(1):r);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},o.prototype.listeners=function(e){var t=i?i+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var n=0,s=r.length,a=new Array(s);n<s;n++)a[n]=r[n].fn;return a},o.prototype.listenerCount=function(e){var t=i?i+e:e,r=this._events[t];return r?r.fn?1:r.length:0},o.prototype.emit=function(e,t,r,n,s,a){var o=i?i+e:e;if(!this._events[o])return!1;var u,l,h=this._events[o],c=arguments.length;if(h.fn){switch(h.once&&this.removeListener(e,h.fn,void 0,!0),c){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,t),!0;case 3:return h.fn.call(h.context,t,r),!0;case 4:return h.fn.call(h.context,t,r,n),!0;case 5:return h.fn.call(h.context,t,r,n,s),!0;case 6:return h.fn.call(h.context,t,r,n,s,a),!0}for(l=1,u=new Array(c-1);l<c;l++)u[l-1]=arguments[l];h.fn.apply(h.context,u)}else{var d,f=h.length;for(l=0;l<f;l++)switch(h[l].once&&this.removeListener(e,h[l].fn,void 0,!0),c){case 1:h[l].fn.call(h[l].context);break;case 2:h[l].fn.call(h[l].context,t);break;case 3:h[l].fn.call(h[l].context,t,r);break;case 4:h[l].fn.call(h[l].context,t,r,n);break;default:if(!u)for(d=1,u=new Array(c-1);d<c;d++)u[d-1]=arguments[d];h[l].fn.apply(h[l].context,u)}}return!0},o.prototype.on=function(e,t,i){return s(this,e,t,i,!1)},o.prototype.once=function(e,t,i){return s(this,e,t,i,!0)},o.prototype.removeListener=function(e,t,r,n){var s=i?i+e:e;if(!this._events[s])return this;if(!t)return a(this,s),this;var o=this._events[s];if(o.fn)o.fn!==t||n&&!o.once||r&&o.context!==r||a(this,s);else{for(var u=0,l=[],h=o.length;u<h;u++)(o[u].fn!==t||n&&!o[u].once||r&&o[u].context!==r)&&l.push(o[u]);l.length?this._events[s]=1===l.length?l[0]:l:a(this,s)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&a(this,t)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=i,o.EventEmitter=o,e.exports=o})),K="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},q=function e(t,i,r){null===t&&(t=Function.prototype);var n=Object.getOwnPropertyDescriptor(t,i);if(void 0===n){var s=Object.getPrototypeOf(t);return null===s?void 0:e(s,i,r)}if("value"in n)return n.value;var a=n.get;return void 0!==a?a.call(r):void 0},Z=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();function Q(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var J="__TO__",$=function(){function e(t,i){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];Q(this,e),this._emitter=new z,this._emitter.off||(this._emitter.off=this._emitter.removeListener),this.mediaInfo=new V,this._instanceMap={},this._clsMap={},this._inited=!1,this.allowedEvents=r,this._configs=i,this._player=t,this._hooks={}}return Z(e,[{key:"getInstance",value:function(e){var t=this._instanceMap[e];return t||null}},{key:"initInstance",value:function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];var n=i[0],s=i[1],a=i[2],o=i[3];if(this._clsMap[e]){var u=new this._clsMap[e](n,s,a,o);return this._instanceMap[e]=u,u.init&&u.init(),u}throw new Error(e+"未在context中注册")}},{key:"init",value:function(e){if(!this._inited){for(var t in this._clsMap)this._clsMap.hasOwnProperty(t)&&!this._instanceMap[t]&&this.initInstance(t,e);this._inited=!0}}},{key:"registry",value:function(e,t){var i=this,r=this._emitter,n=this._isMessageNameValid.bind(this),s=this,a=function(t){function i(t,r,n){Q(this,i);var a=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":K(t))&&"function"!=typeof t?e:t}(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t,r,n));return a.listeners={},a.onceListeners={},a.TAG=e,a._context=s,a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":K(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(i,t),Z(i,[{key:"on",value:function(t,i){return n(t),this.listeners[t]?this.listeners[t].push(i):this.listeners[t]=[i],r.on(""+t+J+e,i),r.on(t,i)}},{key:"before",value:function(e,t){n(e),s._hooks[e]?s._hooks[e].push(t):s._hooks[e]=[t]}},{key:"once",value:function(t,i){return n(t),this.onceListeners[t]?this.onceListeners[t].push(i):this.onceListeners[t]=[i],r.once(""+t+J+e,i),r.once(t,i)}},{key:"emit",value:function(e){n(e);for(var t=s._hooks?s._hooks[e]:null,i=arguments.length,a=Array(i>1?i-1:0),o=1;o<i;o++)a[o-1]=arguments[o];if(t)for(var u=0,l=t.length;u<l;u++){var h=t[u];h.apply(void 0,a)}return r.emit.apply(r,[e].concat(a))}},{key:"emitTo",value:function(e,t){n(t);for(var i=arguments.length,s=Array(i>2?i-2:0),a=2;a<i;a++)s[a-2]=arguments[a];return r.emit.apply(r,[""+t+J+e].concat(s))}},{key:"off",value:function(e,t){return n(e),r.off(e,t)}},{key:"removeListeners",value:function(){var t=Object.prototype.hasOwnProperty.bind(this.listeners);for(var i in this.listeners)if(t(i))for(var n=this.listeners[i]||[],s=0;s<n.length;s++){var a=n[s];r.off(i,a),r.off(""+i+J+e,a)}for(var o in this.onceListeners)if(t(o))for(var u=this.onceListeners[o]||[],l=0;l<u.length;l++){var h=u[l];r.off(o,h),r.off(""+o+J+e,h)}}},{key:"destroy",value:function(){if(this.removeListeners(),this.listeners={},delete s._instanceMap[e],q(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"destroy",this))return q(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"destroy",this).call(this);this._context=null}},{key:"_player",get:function(){return this._context?this._context._player:null},set:function(e){this._context&&(this._context._player=e)}},{key:"_pluginConfig",get:function(){return this._context?this._context._configs:null}}]),i}(t);return this._clsMap[e]=a,function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return i.initInstance.apply(i,[e].concat(r))}}},{key:"seek",value:function(e){this._emitter.emit(f.PLAYER_EVENTS.SEEK,e)}},{key:"destroyInstances",value:function(){var e=this;Object.keys(this._instanceMap).forEach((function(t){e._instanceMap[t].destroy&&e._instanceMap[t].destroy()}))}},{key:"destroy",value:function(){this.destroyInstances(),this._emitter&&this._emitter.removeAllListeners(),this._emitter=null,this.allowedEvents=[],this._clsMap=null,this._hooks=null,this._player=null,this._configs=null}},{key:"_isMessageNameValid",value:function(e){if(!this.allowedEvents.indexOf(e)<0)throw new Error("unregistered message name: "+e)}}]),e}(),ee=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var te=f.CRYPTO_EVENTS,ie=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.inputBuffer=t.inputbuffer,this.outputBuffer=t.outputbuffer,this.key=t.key,this.iv=t.iv,this.method=t.method,this.crypto=window.crypto||window.msCrypto}return ee(e,[{key:"init",value:function(){this.on(te.START_DECRYPTO,this.decrypto.bind(this))}},{key:"decrypto",value:function(){var e=this;this.aeskey?this.decryptoData():this.crypto.subtle.importKey("raw",this.key.buffer,{name:"AES-CBC"},!1,["encrypt","decrypt"]).then((function(t){e.aeskey=t,e.decryptoData()}))}},{key:"decryptoData",value:function(){var e=this,t=this._context.getInstance(this.inputBuffer),i=this._context.getInstance(this.outputBuffer),r=t.shift();r&&this.crypto.subtle.decrypt({name:"AES-CBC",iv:this.iv.buffer},this.aeskey,r).then((function(t){i.push(new Uint8Array(t)),e.emit(te.DECRYPTED),e.decryptoData(r)}))}}]),e}(),re=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var ne=f.MSE_EVENTS,se=function(){function e(t,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i&&(this._context=i,this.emit=i._emitter.emit.bind(i._emitter)),this.TAG="MSE",this.configs=Object.assign({},t),this.container=this.configs.container,this.format=this.configs.format,this.mediaSource=null,this.sourceBuffers={},this.preloadTime=this.configs.preloadTime||1,this.onSourceOpen=this.onSourceOpen.bind(this),this.onTimeUpdate=this.onTimeUpdate.bind(this),this.onUpdateEnd=this.onUpdateEnd.bind(this),this.onWaiting=this.onWaiting.bind(this),this.opened=!1}return re(e,[{key:"init",value:function(){this.mediaSource=new self.MediaSource,this.mediaSource.addEventListener("sourceopen",this.onSourceOpen),this._url=null,this.container.addEventListener("timeupdate",this.onTimeUpdate),this.container.addEventListener("waiting",this.onWaiting)}},{key:"resetContext",value:function(t,i){if(this._context=t,this.emit=t._emitter.emit.bind(t._emitter),!i)for(var r=0;r<Object.keys(this.sourceBuffers).length;r++){var n=this.sourceBuffers[Object.keys(this.sourceBuffers)[r]];n.updating||e.clearBuffer(n)}}},{key:"onTimeUpdate",value:function(){this.emit("TIME_UPDATE",this.container)}},{key:"onWaiting",value:function(){this.emit("WAITING",this.container)}},{key:"onSourceOpen",value:function(){this.opened=!0,this.addSourceBuffers()}},{key:"onUpdateEnd",value:function(){this.emit(ne.SOURCE_UPDATE_END),this.doAppend()}},{key:"addSourceBuffers",value:function(){if(this.mediaSource&&"open"===this.mediaSource.readyState&&this.opened){var e=this._context.getInstance("PRE_SOURCE_BUFFER"),t=this._context.getInstance("TRACKS"),i=void 0;if(e&&t){e=e.sources;for(var r=!1,n=0,s=Object.keys(e).length;n<s;n++){var a=Object.keys(e)[n];r=!1,"audio"===a?i=t.audioTrack:"video"===a&&(i=t.videoTrack),i&&null!==e[a].init&&e[a].data.length&&(r=!0)}if(r){if(Object.keys(this.sourceBuffers).length>1)return;for(var o=0,u=Object.keys(e).length;o<u;o++){var l=Object.keys(e)[o];if(!this.sourceBuffers[l]){var h=e[l],c="video"===l?"video/mp4;codecs="+h.mimetype:"audio/mp4;codecs="+h.mimetype;try{var d=this.mediaSource.addSourceBuffer(c);this.sourceBuffers[l]=d,d.addEventListener("updateend",this.onUpdateEnd)}catch(e){if(22===e.code&&Object.keys(this.sourceBuffers).length>0)return this.emit(ne.MSE_WRONG_TRACK_ADD,l);this.emit(ne.MSE_ERROR,this.TAG,new Error(e.message))}}}Object.keys(this.sourceBuffers).length===this.sourceBufferLen&&this.doAppend()}}}}},{key:"doAppend",value:function(){if(this.mediaSource&&"closed"!==this.mediaSource.readyState){this._doCleanupSourceBuffer();var e=this._context.getInstance("PRE_SOURCE_BUFFER");if(e&&!(Object.keys(this.sourceBuffers).length<this.sourceBufferLen))for(var t=0;t<Object.keys(this.sourceBuffers).length;t++){var i=Object.keys(this.sourceBuffers)[t],r=this.sourceBuffers[i];if(!r.updating){var n=e.sources[i];if(this["no"+i])n.data=[],n.init.buffer=null;else if(n&&!n.inited)try{r.appendBuffer(n.init.buffer.buffer),n.inited=!0}catch(e){}else if(n){var s=n.data.shift();if(s)try{r.appendBuffer(s.buffer.buffer)}catch(e){n.data.unshift(s)}}}}}}},{key:"endOfStream",value:function(){try{"open"===this.mediaSource.readyState&&this.mediaSource.endOfStream()}catch(e){}}},{key:"remove",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;try{for(var i=0;i<Object.keys(this.sourceBuffers).length;i++){var r=this.sourceBuffers[Object.keys(this.sourceBuffers)[i]];r.updating||e>t&&r.remove(t,e)}}catch(e){}}},{key:"_doCleanupSourceBuffer",value:function(){for(var e=this.container.currentTime,t={video:[],audio:[]},i=0;i<Object.keys(this.sourceBuffers).length;i++){for(var r=Object.keys(this.sourceBuffers)[i],n=this.sourceBuffers[r],s=n.buffered,a=!1,o=0;o<s.length;o++){var u=s.start(o),l=s.end(o);if(u<=e&&e<l+3){if(e-u>=180){a=!0;var h=e-180;t[r].push({start:u,end:h})}}else l<e&&e-u>=180&&(a=!0,t[r].push({start:u,end:l}))}a&&!n.updating&&this._doRemoveRanges(t)}}},{key:"_doRemoveRanges",value:function(e){for(var t in e)if(this.sourceBuffers[t]&&!this.sourceBuffers[t].updating)for(var i=this.sourceBuffers[t],r=e[t];r.length&&!i.updating;){var n=r.shift();try{n&&n.end>n.start&&i.remove(n.start,n.end)}catch(e){}}}},{key:"cleanBuffers",value:function(){for(var t=this,i=[],r=function(r){var n=t.sourceBuffers[Object.keys(t.sourceBuffers)[r]],s=void 0;s=n.updating?new Promise((function(t){n.addEventListener("updateend",(function i(){var r=3;setTimeout((function i(){n.updating?r>0?(setTimeout(i,200),r--):t():(e.clearBuffer(n),n.addEventListener("updateend",(function(){t()})))}),200),n.removeEventListener("updateend",i)}))})):new Promise((function(t){e.clearBuffer(n),n.addEventListener("updateend",(function(){t()}))})),i.push(s)},n=0;n<Object.keys(this.sourceBuffers).length;n++)r(n);return Promise.all(i)}},{key:"removeBuffers",value:function(){for(var t=this,i=[],r=function(r){var n=t.sourceBuffers[Object.keys(t.sourceBuffers)[r]];n.removeEventListener("updateend",t.onUpdateEnd);var s=void 0;s=n.updating?new Promise((function(t){n.addEventListener("updateend",(function i(){var r=3;setTimeout((function i(){n.updating?r>0?(setTimeout(i,200),r--):t():(e.clearBuffer(n),n.addEventListener("updateend",(function(){t()})))}),200),n.removeEventListener("updateend",i)}))})):new Promise((function(t){e.clearBuffer(n),n.addEventListener("updateend",(function(){t()}))})),i.push(s)},n=0;n<Object.keys(this.sourceBuffers).length;n++)r(n);return Promise.all(i)}},{key:"destroy",value:function(){var e=this;return this.container?(this.container.removeEventListener("timeupdate",this.onTimeUpdate),this.container.removeEventListener("waiting",this.onWaiting),this.mediaSource.removeEventListener("sourceopen",this.onSourceOpen),this.removeBuffers().then((function(){for(var t=Object.keys(e.sourceBuffers),i=0;i<t.length;i++){var r=e.sourceBuffers[t[i]];delete e.sourceBuffers[t[i]],"open"===e.mediaSource.readyState&&e.mediaSource.removeSourceBuffer(r)}e.endOfStream();try{window.URL.revokeObjectURL(e.url)}catch(e){}e.url=null,e.configs={},e.container=null,e.mediaSource=null,e.sourceBuffers={},e.preloadTime=1,e.onSourceOpen=null,e.onTimeUpdate=null,e.onUpdateEnd=null,e.onWaiting=null,e.noaudio=void 0,e.novideo=void 0}))):Promise.resolve()}},{key:"sourceBufferLen",get:function(){return this._context.mediaInfo?(!!this._context.mediaInfo.hasVideo&&!this.novideo)+(!!this._context.mediaInfo.hasAudio&&!this.noaudio):this.noaudio||this.novideo?1:2}},{key:"url",set:function(e){this._url=e},get:function(){if(!this._url)try{this._url=window.URL.createObjectURL(this.mediaSource)}catch(e){}return this._url}}],[{key:"clearBuffer",value:function(e){try{for(var t=e.buffered,i=.1,r=0,n=t.length;r<n;r++)i=t.end(r);e.remove(0,i)}catch(e){}}}]),e}(),ae=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var oe=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._firstCheckpoint=0,this._lastCheckpoint=0,this._intervalBytes=0,this._lastSamplingBytes=0,this._now=Date.now}return ae(e,[{key:"reset",value:function(){this._firstCheckpoint=this._lastCheckpoint=0,this._intervalBytes=0,this._lastSamplingBytes=0}},{key:"addBytes",value:function(e){var t=this._now()-this._lastCheckpoint;0===this._firstCheckpoint?(this._firstCheckpoint=this._now(),this._lastCheckpoint=this._firstCheckpoint,this._intervalBytes+=e):t<5e3?this._intervalBytes+=e:(this._lastSamplingBytes=this._intervalBytes/(t/1e3),this._intervalBytes=e,this._lastCheckpoint=this._now())}},{key:"currentKBps",get:function(){this.addBytes(0);var e=(this._now()-this._lastCheckpoint)/1e3;return 0===e&&(e=1),this._intervalBytes/e/1024}},{key:"lastSamplingKBps",get:function(){return this.addBytes(0),0!==this._lastSamplingBytes?this._lastSamplingBytes/1024:this._now()-this._lastCheckpoint>=500?this.currentKBps:0}}]),e}(),ue="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},le="function"==typeof Symbol&&"symbol"===ue(Symbol.iterator)?function(e){return void 0===e?"undefined":ue(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":ue(e)},he=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var ce=f.LOADER_EVENTS,de=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.configs=Object.assign({},t),this.url=null,this.status=0,this.error=null,this._reader=null,this._canceled=!1,this._destroyed=!1,this.readtype=this.configs.readtype,this.buffer=this.configs.buffer||"LOADER_BUFFER",this._loaderTaskNo=0,this._ttfb=0,this._speed=new oe,window.AbortController&&(this.abortControllerEnabled=!0)}return he(e,[{key:"init",value:function(){this.on(ce.LADER_START,this.load.bind(this))}},{key:"fetch",value:function(e){function t(t,i,r){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e,t,i){var r=this,n=null;this.abortControllerEnabled&&(this.abortController=new window.AbortController),Object.assign(t,{signal:this.abortController?this.abortController.signal:void 0});var s=(new Date).getTime();return Promise.race([fetch(e,t),new Promise((function(e,t){n=setTimeout((function(){t({code:999,message:"fetch timeout"}),r.abortController&&r.abortController.abort()}),i||1e4)}))]).then((function(e){n&&(clearTimeout(n),n=null);var t=(new Date).getTime();return r.emit(ce.LOADER_TTFB,{start:s,end:t,elapsed:t-s}),e}))}))},{key:"internalLoad",value:function(e,t,i,r){var n=this,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments[5];if(!this._destroyed)return this.loading=!0,this.fetch(this.url,t,a).then((function(o){if(!n._destroyed&&n.emit(ce.LOADER_RESPONSE_HEADERS,n.TAG,o.headers),o.ok)return n.status=o.status,Promise.resolve().then((function(){n._onFetchResponse(o)})),Promise.resolve(o);i-- >0?n._retryTimer=setTimeout((function(){return n.emit(ce.LOADER_RETRY,n.TAG,{response:o,reason:"response not ok",retryTime:r-i}),n.internalLoad(e,t,i,r,s,a)}),s):(n.loading=!1,n.emit(ce.LOADER_ERROR,n.TAG,{code:o.status||21,message:o.status+" ("+o.statusText+")"}))})).catch((function(o){if(n._destroyed)n.loading=!1;else if(i-- >0)n._retryTimer=setTimeout((function(){return n.emit(ce.LOADER_RETRY,n.TAG,{error:o,reason:"fetch error",retryTime:r-i}),n.internalLoad(e,t,i,r,s,a)}),s);else{if(n.loading=!1,o&&"AbortError"===o.name)return;n.emit(ce.LOADER_ERROR,n.TAG,Object.assign({code:21},o))}}))}},{key:"load",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=i.retryCount,n=i.retryDelay,s=i.loadTimeout;r=void 0===r?3:r,this.url=e,this._canceled=!1;var a=this.getParams(t);return this.internalLoad(e,a,r,r,n,s)}},{key:"_onFetchResponse",value:function(e){var t=this,i=this,r=this._context.getInstance(this.buffer);this._loaderTaskNo++;var n=this._loaderTaskNo;if(!0===e.ok)switch(this.readtype){case 2:e.json().then((function(e){i.loading=!1,i._canceled||i._destroyed||(r?(r.push(e),i.emit(ce.LOADER_COMPLETE,r)):i.emit(ce.LOADER_COMPLETE,e))}));break;case 1:e.text().then((function(e){i.loading=!1,i._canceled||i._destroyed||(r?(r.push(e),i.emit(ce.LOADER_COMPLETE,r)):i.emit(ce.LOADER_COMPLETE,e))}));break;case 3:e.arrayBuffer().then((function(e){i.loading=!1,i._canceled||i._destroyed||(r?(r.push(new Uint8Array(e)),t._speed.addBytes(e.byteLength),i.emit(ce.LOADER_COMPLETE,r)):i.emit(ce.LOADER_COMPLETE,e))})).catch((function(){}));break;case 0:default:return this._onReader(e.body.getReader(),n)}}},{key:"_onReader",value:function(e,t){var i=this,r=this._context.getInstance(this.buffer);if(!r&&this._reader||this._destroyed)try{this._reader.cancel()}catch(e){}this._reader=e,!1!==this.loading&&(this._noDataTimer=setTimeout((function(){!1!==i.loading&&i.emit(ce.LOADER_COMPLETE)}),3e3),this._reader&&this._reader.read().then((function(n){if(clearTimeout(i._noDataTimer),!i._canceled&&!i._destroyed)return n.done?(i.loading=!1,i.status=0,void Promise.resolve().then((function(){i.emit(ce.LOADER_COMPLETE,r)}))):(r.push(n.value),i._speed.addBytes(n.value.byteLength),Promise.resolve().then((function(){i.emit(ce.LOADER_DATALOADED,r)})),i._onReader(e,t));if(i._reader)try{i._reader.cancel()}catch(e){}})).catch((function(e){clearTimeout(i._noDataTimer),i.loading=!1,e&&"AbortError"===e.name||i.emit(ce.LOADER_ERROR,i.TAG,e)})))}},{key:"getParams",value:function(e){var t=Object.assign({},e),i=new Headers,r={method:"GET",headers:i,mode:"cors",cache:"default"};if("object"===le(this.configs.headers)){var n=this.configs.headers;for(var s in n)n.hasOwnProperty(s)&&i.append(s,n[s])}if("object"===le(t.headers)){var a=t.headers;for(var o in a)a.hasOwnProperty(o)&&i.append(o,a[o])}return!1===t.cors&&(r.mode="same-origin"),t.withCredentials&&(r.credentials="include"),r}},{key:"cancel",value:function(){if(this._reader){try{this._reader.cancel()}catch(e){}this._reader=null,this.loading=!1}clearTimeout(this._noDataTimer),this._canceled=!0,this.abortController&&this.abortController.abort()}},{key:"destroy",value:function(){this._destroyed=!0,clearTimeout(this._retryTimer),clearTimeout(this._noDataTimer),this.cancel(),this._speed.reset()}},{key:"currentSpeed",get:function(){return this._speed.lastSamplingKBps}}],[{key:"isSupported",value:function(){return!!window.fetch}},{key:"type",get:function(){return"loader"}}]),e}(),fe=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var pe=new(function(){function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);try{var i=/xgd=(\d)/.exec(document.cookie);this._status=!!i,this._level=i&&i[1]}catch(e){this._status=!1}["group","groupEnd","log","warn","error"].forEach((function(e){t[e]=function(i,r,n,s,a,o,u,l,h,c){var d;if(t._status){var f=i,p=[r,n,s,a,o,u,l,h,c].filter((function(e){return void 0!==e}));(d=console)[e].apply(d,["["+f+"]:"].concat(function(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}(p)))}}}))}return fe(e,[{key:"enable",get:function(){return this._status}},{key:"long",get:function(){return"2"===this._level}}]),e}()),ye=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var _e=f.LOADER_EVENTS,ve=f.REMUX_EVENTS,me=f.DEMUX_EVENTS,ge=f.HLS_EVENTS,Ee=f.CRYTO_EVENTS,be=f.MSE_EVENTS,Te=/#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g,Se=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.configs=Object.assign({},t),this.url="",this.sequence=0,this._playlist=null,this.retrytimes=this.configs.retrytimes||3,this.preloadTime=this.configs.preloadTime,this.container=this.configs.container,this._m3u8lasttime=0,this._timmer=setInterval(this._checkStatus.bind(this),300),this._lastCheck=0,this.m3u8Text=null}return ye(e,[{key:"init",value:function(){var e=this._player.hlsOps,t=e.XgBuffer,i=e.Tracks,r=e.Playlist,n=e.RemuxedBufferManager,s=e.Compatibility,a=e.FetchLoader,o=e.TsDemuxer,u=e.Mp4Remuxer,l=e.Mse;this._context.registry("M3U8_BUFFER",t),this._context.registry("TS_BUFFER",t),this._context.registry("TRACKS",i),this._playlist=this._context.registry("PLAYLIST",r)({autoclear:!0}),this._context.registry("PRE_SOURCE_BUFFER",n),this._context.registry("COMPATIBILITY",s),this._m3u8loader=this._context.registry("M3U8_LOADER",a)({buffer:"M3U8_BUFFER",readtype:1}),this._tsloader=this._context.registry("TS_LOADER",a)({buffer:"TS_BUFFER",readtype:3}),this._context.registry("TS_DEMUXER",o)({inputbuffer:"TS_BUFFER"}),this._context.registry("MP4_REMUXER",u),this.mse=this._context.registry("MSE",l)({container:this.container}),this.initEvents()}},{key:"initEvents",value:function(){this.on(_e.LOADER_COMPLETE,this._onLoadComplete.bind(this)),this.on(_e.LOADER_RETRY,this._handleFetchRetry.bind(this)),this.on(ve.INIT_SEGMENT,this.mse.addSourceBuffers.bind(this.mse)),this.on(ve.MEDIA_SEGMENT,this.mse.doAppend.bind(this.mse)),this.on(me.METADATA_PARSED,this._onMetadataParsed.bind(this)),this.on(me.SEI_PARSED,this._handleSEIParsed.bind(this)),this.on(me.DEMUX_COMPLETE,this._onDemuxComplete.bind(this)),this.on(_e.LOADER_ERROR,this._onLoadError.bind(this)),this.on(me.DEMUX_ERROR,this._onDemuxError.bind(this)),this.on(ve.REMUX_ERROR,this._onRemuxError.bind(this)),this.on(be.MSE_ERROR,this._handleMseError.bind(this))}},{key:"_onError",value:function(e,t,i,r){var n={code:i.code,errorType:e,errorDetails:"["+t+"]: "+(i?i.message:""),errorFatal:r};this._player.emit("HLS_ERROR",n)}},{key:"_onDemuxComplete",value:function(){this.emit(ve.REMUX_MEDIA,"ts")}},{key:"_onMetadataParsed",value:function(e){"video"===e&&(this._context.mediaInfo.hasVideo=!0),"audio"===e&&(this._context.mediaInfo.hasAudio=!0),this.emit(ve.REMUX_METADATA,e)}},{key:"_onLoadError",value:function(e,t){!this._tsloader.loading&&!this._m3u8loader.loading&&this.retrytimes>=1?(this.retrytimes--,this._onError(_e.LOADER_ERROR,e,t,!1)):this.retrytimes<=1&&(this._player.emit("error",{code:t.code,errorType:"network",ex:"["+e+"]: "+t.message,errd:{}}),this._onError(_e.LOADER_ERROR,e,t,!0),this.emit(ge.RETRY_TIME_EXCEEDED),this.mse.endOfStream())}},{key:"_onDemuxError",value:function(e,t,i){void 0===i&&(i=!0),this._player.emit("error",{code:t.code,errorType:"network",ex:"["+e+"]: "+(t?t.message:""),errd:{}}),this._onError(_e.LOADER_ERROR,e,t,i)}},{key:"_onRemuxError",value:function(e,t,i){void 0===i&&(i=!0),this._player.emit("error",{errorType:"parse",ex:"["+e+"]: "+t.message,errd:{}}),this._onError(ve.REMUX_ERROR,e,t,i)}},{key:"_handleMseError",value:function(e,t,i){void 0===i&&(i=!1),this._player.emit("error",{errorType:"format",ex:"["+e+"]: "+t.message,errd:{}}),this._onError(be.MSE_ERROR,e,t,i)}},{key:"_handleSEIParsed",value:function(e){this._player.emit("SEI_PARSED",e)}},{key:"_onLoadComplete",value:function(e){if("M3U8_BUFFER"===e.TAG){var t=void 0;try{this.m3u8Text=e.shift();var i=Te.exec(this.m3u8Text);i&&i[2]?this.load(i[2]):t=this._player.hlsOps.M3U8Parser.parse(this.m3u8Text,this.url)}catch(e){this._onError("M3U8_PARSER_ERROR","M3U8_PARSER",e,!1)}if(!t)return void(this.retrytimes>0?(this.retrytimes--,this._preload()):(this.emit(ge.RETRY_TIME_EXCEEDED),this.mse.endOfStream()));try{this._playlist.pushM3U8(t,!0)}catch(e){this._onError("M3U8_PARSER_ERROR","PLAYLIST",e,!1)}if(this._playlist.encrypt&&this._playlist.encrypt.uri&&!this._playlist.encrypt.key){var r=this._player.hlsOps.XgBuffer;this._context.registry("DECRYPT_BUFFER",r)(),this._context.registry("KEY_BUFFER",r)(),this._tsloader.buffer="DECRYPT_BUFFER",this._keyLoader=this._context.registry("KEY_LOADER",de)({buffer:"KEY_BUFFER",readtype:3});var n=this._player.config.retry||{},s=n.count,a=n.delay;this.emitTo("KEY_LOADER",_e.LADER_START,this._playlist.encrypt.uri,{},s,a)}else this._m3u8Loaded(t)}else"TS_BUFFER"===e.TAG?(this.retrytimes=this.configs.retrytimes||3,this._playlist.downloaded(this._tsloader.url,!0),this.emit(me.DEMUX_START)):"DECRYPT_BUFFER"===e.TAG?(this.retrytimes=this.configs.retrytimes||3,this._playlist.downloaded(this._tsloader.url,!0),this.emitTo("CRYPTO",Ee.START_DECRYPT)):"KEY_BUFFER"===e.TAG&&(this.retrytimes=this.configs.retrytimes||3,this._playlist.encrypt.key=e.shift(),this._crypto=this._context.registry("CRYPTO",ie)({key:this._playlist.encrypt.key,iv:this._playlist.encrypt.ivb,method:this._playlist.encrypt.method,inputbuffer:"DECRYPT_BUFFER",outputbuffer:"TS_BUFFER"}),this._crypto.on(Ee.DECRYPTED,this._onDcripted.bind(this)))}},{key:"_handleFetchRetry",value:function(e,t){this._player.emit("retry",Object.assign({tag:e},t))}},{key:"_onDcripted",value:function(){this.emit(me.DEMUX_START)}},{key:"_m3u8Loaded",value:function(e){this.preloadTime||(this.preloadTime=this._playlist.targetduration?this._playlist.targetduration:5),this._playlist.fragLength>0&&this._playlist.sequence<e.sequence?this.retrytimes=this.configs.retrytimes||3:this.retrytimes>0?(this.retrytimes--,this._preload()):(this.emit(ge.RETRY_TIME_EXCEEDED),this.mse.endOfStream())}},{key:"_checkStatus",value:function(){if(!(this.retrytimes<1&&Date.now()-this._lastCheck<4e3))if(this.retrytimes<1&&clearInterval(this._timmer),this._lastCheck=(new Date).getTime(),this.container.buffered.length<1)this._preload();else{var e=this.container.currentTime,t=this.container.buffered.start(this.container.buffered.length-1);this.container.readyState<=2&&(e<t?(this.container.currentTime=t,e=t):this._preload());var i=this.container.buffered.end(this.container.buffered.length-1);e<i-2*this.preloadTime&&(this.container.currentTime=i-this.preloadTime),e>i-this.preloadTime&&this._preload()}}},{key:"_preload",value:function(){if(!this._tsloader.loading&&!this._m3u8loader.loading){var e=this._playlist.getTs(),t=this._player.config.retry||{},i=t.count,r=t.delay;if(!e||e.downloaded||e.downloading){var n=this.preloadTime?this.preloadTime:0,s=(new Date).getTime();(!e||e.downloaded)&&(s-this._m3u8lasttime)/1e3>n&&(this._m3u8lasttime=s,this.emitTo("M3U8_LOADER",_e.LADER_START,this.url,{},i,r))}else this._playlist.downloading(e.url,!0),this.emitTo("TS_LOADER",_e.LADER_START,e.url,{},i,r)}}},{key:"load",value:function(e){this.url=e,this._preload()}},{key:"destroy",value:function(){clearInterval(this._timmer),this.off(_e.LOADER_COMPLETE,this._onLoadComplete),this.off(ve.INIT_SEGMENT,this.mse.addSourceBuffers),this.off(ve.MEDIA_SEGMENT,this.mse.doAppend),this.off(me.METADATA_PARSED,this._onMetadataParsed),this.off(me.DEMUX_COMPLETE,this._onDemuxComplete),this.mse=null,this.m3u8Text=null}}]),e}(),ke=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Ae=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return ke(e,null,[{key:"getSilentFrame",value:function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null}}]),e}(),De=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Re=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return De(e,null,[{key:"isHeader",value:function(t,i){return!!(i+1<t.length&&e.isHeaderPattern(t,i))}},{key:"getFrameDuration",value:function(e){return 9216e4/e}},{key:"isHeaderPattern",value:function(e,t){return 255===e[t]&&240==(246&e[t+1])}},{key:"getHeaderLength",value:function(e,t){return 1&e[t+1]?7:9}},{key:"getFullFrameLength",value:function(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}},{key:"parseFrameHeader",value:function(t,i,r,n,s){var a,o=void 0,u=t.length;if(a=e.getHeaderLength(t,i),o=e.getFullFrameLength(t,i),(o-=a)>0&&i+a+o<=u)return{headerLength:a,frameLength:o,stamp:r+n*s}}},{key:"appendFrame",value:function(t,i,r,n,s){var a=e.getFrameDuration(t),o=e.parseFrameHeader(i,r,n,s,a);if(o){var u=o.stamp,l=o.headerLength,h=o.frameLength;return{sample:{unit:i.subarray(r+l,r+l+h),pts:u,dts:u},length:h+l}}}}]),e}(),we=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Oe=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.TAG="Golomb",this._buffer=t,this._bufferIndex=0,this._totalBytes=t.byteLength,this._totalBits=8*t.byteLength,this._currentWord=0,this._currentWordBitsLeft=0}return we(e,[{key:"destroy",value:function(){this._buffer=null}},{key:"_fillCurrentWord",value:function(){var e=this._totalBytes-this._bufferIndex,t=Math.min(4,e),i=new Uint8Array(4);i.set(this._buffer.subarray(this._bufferIndex,this._bufferIndex+t)),this._currentWord=new DataView(i.buffer).getUint32(0),this._bufferIndex+=t,this._currentWordBitsLeft=8*t}},{key:"readBits",value:function(e){var t=Math.min(this._currentWordBitsLeft,e),i=this._currentWord>>>32-t;if(e>32)throw new Error("Cannot read more than 32 bits at a time");return this._currentWordBitsLeft-=t,this._currentWordBitsLeft>0?this._currentWord<<=t:this._totalBytes-this._bufferIndex>0&&this._fillCurrentWord(),(t=e-t)>0&&this._currentWordBitsLeft?i<<t|this.readBits(t):i}},{key:"readBool",value:function(){return 1===this.readBits(1)}},{key:"readByte",value:function(){return this.readBits(8)}},{key:"_skipLeadingZero",value:function(){var e=void 0;for(e=0;e<this._currentWordBitsLeft;e++)if(0!=(this._currentWord&2147483648>>>e))return this._currentWord<<=e,this._currentWordBitsLeft-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}},{key:"readUEG",value:function(){var e=this._skipLeadingZero();return this.readBits(e+1)-1}},{key:"readSEG",value:function(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}},{key:"readSliceType",value:function(){return this.readByte(),this.readUEG(),this.readUEG()}}]),e}(),Le=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var xe=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return Le(e,null,[{key:"_ebsp2rbsp",value:function(e){for(var t=e,i=t.byteLength,r=new Uint8Array(i),n=0,s=0;s<i;s++)s>=2&&3===t[s]&&0===t[s-1]&&0===t[s-2]||(r[n]=t[s],n++);return new Uint8Array(r.buffer,0,n)}},{key:"parseSPS",value:function(t){var i=e._ebsp2rbsp(t),r=new Oe(i);r.readByte();var n=r.readByte();r.readByte();var s=r.readByte();r.readUEG();var a=e.getProfileString(n),o=e.getLevelString(s),u=1,l=420,h=8;if((100===n||110===n||122===n||244===n||44===n||83===n||86===n||118===n||128===n||138===n||144===n)&&(3===(u=r.readUEG())&&r.readBits(1),u<=3&&(l=[0,420,422,444][u]),h=r.readUEG()+8,r.readUEG(),r.readBits(1),r.readBool()))for(var c=3!==u?8:12,d=0;d<c;d++)r.readBool()&&(d<6?e._skipScalingList(r,16):e._skipScalingList(r,64));r.readUEG();var f=r.readUEG();if(0===f)r.readUEG();else if(1===f){r.readBits(1),r.readSEG(),r.readSEG();for(var p=r.readUEG(),y=0;y<p;y++)r.readSEG()}r.readUEG(),r.readBits(1);var _=r.readUEG(),v=r.readUEG(),m=r.readBits(1);0===m&&r.readBits(1),r.readBits(1);var g=0,E=0,b=0,T=0;r.readBool()&&(g=r.readUEG(),E=r.readUEG(),b=r.readUEG(),T=r.readUEG());var S=1,k=1,A=0,D=!0,R=0,w=0;if(r.readBool()){if(r.readBool()){var O=r.readByte();O>0&&O<16?(S=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][O-1],k=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][O-1]):255===O&&(S=r.readByte()<<8|r.readByte(),k=r.readByte()<<8|r.readByte())}if(r.readBool()&&r.readBool(),r.readBool()&&(r.readBits(4),r.readBool()&&r.readBits(24)),r.readBool()&&(r.readUEG(),r.readUEG()),r.readBool()){var L=r.readBits(32),x=r.readBits(32);D=r.readBool(),A=(R=x)/(w=2*L)}}var U=1;1===S&&1===k||(U=S/k);var M=0,C=0;0===u?(M=1,C=2-m):(M=3===u?1:2,C=(1===u?2:1)*(2-m));var B=16*(_+1),P=16*(v+1)*(2-m);B-=(g+E)*M,P-=(b+T)*C;var I=Math.ceil(B*U);return r.destroy(),r=null,{profile_string:a,level_string:o,bit_depth:h,chroma_format:l,chroma_format_string:e.getChromaFormatString(l),frame_rate:{fixed:D,fps:A,fps_den:w,fps_num:R},par_ratio:{width:S,height:k},codec_size:{width:B,height:P},present_size:{width:I,height:P}}}},{key:"_skipScalingList",value:function(e,t){for(var i=8,r=8,n=0;n<t;n++)0!==r&&(r=(i+e.readSEG()+256)%256),i=0===r?i:r}},{key:"getProfileString",value:function(e){switch(e){case 66:return"Baseline";case 77:return"Main";case 88:return"Extended";case 100:return"High";case 110:return"High10";case 122:return"High422";case 244:return"High444";default:return"Unknown"}}},{key:"getLevelString",value:function(e){return(e/10).toFixed(1)}},{key:"getChromaFormatString",value:function(e){switch(e){case 420:return"4:2:0";case 422:return"4:2:2";case 444:return"4:4:4";default:return"Unknown"}}},{key:"toVideoMeta",value:function(e){var t={};e&&e.codec_size&&(t.codecWidth=e.codec_size.width,t.codecHeight=e.codec_size.height,t.presentWidth=e.present_size.width,t.presentHeight=e.present_size.height),t.profile=e.profile_string,t.level=e.level_string,t.bitDepth=e.bit_depth,t.chromaFormat=e.chroma_format,t.parRatio={width:e.par_ratio.width,height:e.par_ratio.height},t.frameRate=e.frame_rate;var i=t.frameRate.fps_den,r=t.frameRate.fps_num;return t.refSampleDuration=Math.floor(t.timescale*(i/r)),t}}]),e}(),Ue=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Me=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return Ue(e,null,[{key:"EBSP2RBSP",value:function(e){return e.filter((function(t,i){return i<2||!(0===e[i-2]&&0===e[i-1]&&3===t)}))}},{key:"EBSP2SODB",value:function(e){var t=e[e.byteLength-1];return t&&128===t?e.slice(0,e.byteLength-1):e}}]),e}(),Ce=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Be=function(e){for(var t="",i=0;i<e.byteLength;i++)t+=String.fromCharCode(e[i]);return t},Pe=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return Ce(e,null,[{key:"_resolveNalu",value:function(e){return e.length>=1?Me.EBSP2SODB(Me.EBSP2RBSP(e.slice(1))):null}},{key:"parse",value:function(t){var i=e._resolveNalu(t),r=e.switchPayloadType(i),n=r.payloadType,s=r.offset,a=i.slice(s);switch(n){case 5:return e.user_data_unregistered(a);default:return{code:n,content:a}}}},{key:"switchPayloadType",value:function(e){for(var t=new DataView(e.buffer),i=0,r=0;255===t.getUint8(r);)r++,i+=255;return{payloadType:i+=t.getUint8(r++),offset:r}}},{key:"getPayloadLength",value:function(e){for(var t=new DataView(e.buffer),i=0,r=0;255===t.getUint8(r);)r++,i+=255;return{payloadLength:i+=t.getUint8(r++),offset:r}}},{key:"user_data_unregistered",value:function(t){var i=e.getPayloadLength(t),r=i.payloadLength,n=i.offset;if(r<16)return{uuid:"",content:null};var s=t.slice(n);return{code:5,uuid:Be(s.slice(0,16)),content:Be(s.slice(16,r))}}}]),e}(),Ie=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Fe=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return Ie(e,null,[{key:"getNalunits",value:function(t){if(t.length-t.position<4)return[];var i=t.dataview,r=t.position;return 1===i.getInt32(r)||0===i.getInt16(r)&&1===i.getInt8(r+2)?e.getAnnexbNals(t):e.getAvccNals(t)}},{key:"getAnnexbNals",value:function(t){for(var i=[],r=e.getHeaderPositionAnnexB(t),n=r.pos,s=n;n<t.length-4;){var a=t.buffer.slice(n,n+r.headerLength);r.pos===t.position&&t.skip(r.headerLength),s=(r=e.getHeaderPositionAnnexB(t)).pos;var o={header:a,body:new Uint8Array(t.buffer.slice(n+a.byteLength,s))};e.analyseNal(o),o.type<=9&&0!==o.type&&i.push(o),t.skip(s-t.position),n=s}return i}},{key:"getAvccNals",value:function(t){for(var i=[];t.position<t.length-4;){var r=t.dataview.getInt32(t.dataview.position);if(!(t.length-t.position>=r))break;var n=t.buffer.slice(t.position,t.position+4);t.skip(4);var s=new Uint8Array(t.buffer.slice(t.position,t.position+r));t.skip(r);var a={header:n,body:s};e.analyseNal(a),a.type<=9&&0!==a.type&&i.push(a)}return i}},{key:"analyseNal",value:function(e){var t=31&e.body[0];switch(e.type=t,t){case 1:e.ndr=!0;break;case 5:e.idr=!0;break;case 6:try{e.sei=Pe.parse(e.body)}catch(e){}break;case 7:e.sps=xe.parseSPS(e.body);break;case 8:e.pps=!0}}},{key:"getHeaderPositionAnnexB",value:function(e){for(var t=e.position,i=0,r=e.length;3!==i&&4!==i&&t<r-4;)0===e.dataview.getInt16(t)?1===e.dataview.getInt16(t+2)?i=4:1===e.dataview.getInt8(t+2)?i=3:t++:t++;return t===r-4&&(0===e.dataview.getInt16(t)?1===e.dataview.getInt16(t+2)?i=4:t=r:(t++,0===e.dataview.getInt16(t)&&1===e.dataview.getInt8(t)?i=3:t=r)),{pos:t,headerLength:i}}},{key:"getAvcc",value:function(e,t){var i=new Uint8Array(e.byteLength+t.byteLength+11);i[0]=1,i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=255,i[5]=225;var r=6;return i.set(new Uint8Array([e.byteLength>>>8&255,255&e.byteLength]),r),r+=2,i.set(e,r),i[r+=e.byteLength]=1,r++,i.set(new Uint8Array([t.byteLength>>>8&255,255&t.byteLength]),r),r+=2,i.set(t,r),i}}]),e}(),Ge=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Ne=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.TAG="Golomb",this._buffer=t,this._bufferIndex=0,this._totalBytes=t.byteLength,this._totalBits=8*t.byteLength,this._currentWord=0,this._currentWordBitsLeft=0}return Ge(e,[{key:"destroy",value:function(){this._buffer=null}},{key:"_fillCurrentWord",value:function(){var e=this._totalBytes-this._bufferIndex,t=Math.min(4,e),i=new Uint8Array(4);i.set(this._buffer.subarray(this._bufferIndex,this._bufferIndex+t)),this._currentWord=new DataView(i.buffer).getUint32(0),this._bufferIndex+=t,this._currentWordBitsLeft=8*t}},{key:"readBits",value:function(e){var t=Math.min(this._currentWordBitsLeft,e),i=this._currentWord>>>32-t;if(e>32)throw new Error("Cannot read more than 32 bits at a time");return this._currentWordBitsLeft-=t,this._currentWordBitsLeft>0?this._currentWord<<=t:this._totalBytes-this._bufferIndex>0&&this._fillCurrentWord(),(t=e-t)>0&&this._currentWordBitsLeft?i<<t|this.readBits(t):i}},{key:"readBool",value:function(){return 1===this.readBits(1)}},{key:"readByte",value:function(){return this.readBits(8)}},{key:"_skipLeadingZero",value:function(){var e=void 0;for(e=0;e<this._currentWordBitsLeft;e++)if(0!=(this._currentWord&2147483648>>>e))return this._currentWord<<=e,this._currentWordBitsLeft-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}},{key:"readUEG",value:function(){var e=this._skipLeadingZero();return this.readBits(e+1)-1}},{key:"readSEG",value:function(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}},{key:"readSliceType",value:function(){return this.readByte(),this.readUEG(),this.readUEG()}}]),e}(),je=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Ve=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return je(e,null,[{key:"_ebsp2rbsp",value:function(e){for(var t=e,i=t.byteLength,r=new Uint8Array(i),n=0,s=0;s<i;s++)s>=2&&3===t[s]&&0===t[s-1]&&0===t[s-2]||(r[n]=t[s],n++);return new Uint8Array(r.buffer,0,n)}},{key:"parseSPS",value:function(t){var i,r,n,s,a,o,u=e._ebsp2rbsp(t),l=new Ne(u),h=0,c=0,d=0,f=0,p=0,y=0,_=0,v=0,m=0;return l.readByte(),l.readByte(),l.readBits(4),i=l.readBits(3),l.readBits(1),o=e._readProfileTierLevel(l,i),l.readUEG(),3===(r=l.readUEG())&&(h=l.readBits(1)),c=l.readUEG(),d=l.readUEG(),1===(n=l.readBits(1))&&(f=l.readUEG(),p=l.readUEG(),y=l.readUEG(),_=l.readUEG()),s=l.readUEG(),a=l.readUEG(),1===n&&(c-=(v=1!==r&&2!==r||0!==h?1:2)*p+v*f,d-=(m=1===r&&0===h?2:1)*_+m*y),l.destroy(),l=null,{width:c,height:d,general_profile_space:o.general_profile_space,general_tier_flag:o.general_tier_flag,general_profile_idc:o.general_profile_idc,general_level_idc:o.general_level_idc,chromaFormatIdc:r,bitDepthLumaMinus8:s,bitDepthChromaMinus8:a}}},{key:"_readProfileTierLevel",value:function(e,t){var i,r,n,s;i=e.readBits(2)||0,r=e.readBits(1)||0,n=e.readBits(5)||0,e.readBits(16),e.readBits(16),e.readBits(1),e.readBits(1),e.readBits(1),e.readBits(1),e.readBits(16),e.readBits(16),e.readBits(12),s=e.readBits(8)||0;for(var a=[],o=[],u=0;u<t;u++)a[u]=e.readBits(1),o[u]=e.readBits(1);t>0&&e.readBits(2*(8-t));for(var l=0;l<t;l++)0!==a[l]&&(e.readBits(2),e.readBits(1),e.readBits(5),e.readBits(16),e.readBits(16),e.readBits(4),e.readBits(16),e.readBits(16),e.readBits(12)),0!==o[l]&&e.readBits(8);return{general_profile_space:i,general_tier_flag:r,general_profile_idc:n,general_level_idc:s}}},{key:"_skipScalingList",value:function(e,t){for(var i=8,r=8,n=0;n<t;n++)0!==r&&(r=(i+e.readSEG()+256)%256),i=0===r?i:r}},{key:"getProfileString",value:function(e){switch(e){case 66:return"Baseline";case 77:return"Main";case 88:return"Extended";case 100:return"High";case 110:return"High10";case 122:return"High422";case 244:return"High444";default:return"Unknown"}}},{key:"getLevelString",value:function(e){return(e/10).toFixed(1)}},{key:"getChromaFormatString",value:function(e){switch(e){case 420:return"4:2:0";case 422:return"4:2:2";case 444:return"4:4:4";default:return"Unknown"}}},{key:"toVideoMeta",value:function(e){var t={};return e&&e.codec_size?(t.codecWidth=e.codec_size.width,t.codecHeight=e.codec_size.height,t.presentWidth=e.present_size.width,t.presentHeight=e.present_size.height):e.width&&e.height&&(t.codecWidth=e.width,t.codecHeight=e.height,t.presentWidth=e.width,t.presentHeight=e.height),t.profile=e.profile_string,t.level=e.level_string,t.bitDepth=e.bit_depth,t.chromaFormat=e.chroma_format,t}}]),e}(),He=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Xe=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return He(e,null,[{key:"EBSP2RBSP",value:function(e){return e.filter((function(t,i){return i<2||!(0===e[i-2]&&0===e[i-1]&&3===t)}))}},{key:"EBSP2SODB",value:function(e){var t=e[e.byteLength-1];return t&&128===t?e.slice(0,e.byteLength-1):e}}]),e}(),Ye=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var We=function(e){for(var t="",i=0;i<e.byteLength;i++)t+=String.fromCharCode(e[i]);return t},ze=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return Ye(e,null,[{key:"_resolveNalu",value:function(e){return e.length>=1?Xe.EBSP2SODB(Xe.EBSP2RBSP(e.slice(1))):null}},{key:"parse",value:function(t){var i=e._resolveNalu(t),r=e.switchPayloadType(i),n=r.payloadType,s=r.offset,a=i.slice(s);switch(n){case 5:return e.user_data_unregistered(a);default:return{code:n,content:a}}}},{key:"switchPayloadType",value:function(e){for(var t=new DataView(e.buffer),i=0,r=0;255===t.getUint8(r);)r++,i+=255;return{payloadType:i+=t.getUint8(r++),offset:r}}},{key:"getPayloadLength",value:function(e){for(var t=new DataView(e.buffer),i=0,r=0;255===t.getUint8(r);)r++,i+=255;return{payloadLength:i+=t.getUint8(r++),offset:r}}},{key:"user_data_unregistered",value:function(t){var i=e.getPayloadLength(t),r=i.payloadLength,n=i.offset;if(r<16)return{uuid:"",content:null};var s=t.slice(n);return{code:5,uuid:We(s.slice(0,16)),content:We(s.slice(16,r))}}}]),e}(),Ke=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var qe=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return Ke(e,null,[{key:"getNalunits",value:function(t){if(t.length-t.position<4)return[];var i=t.dataview,r=t.position;return 1===i.getInt32(r)||0===i.getInt16(r)&&1===i.getInt8(r+2)?e.getAnnexbNals(t):e.getHvccNals(t)}},{key:"getAnnexbNals",value:function(t){for(var i=[],r=e.getHeaderPositionAnnexB(t),n=r.pos,s=n;n<t.length-4;){var a=t.buffer.slice(n,n+r.headerLength);r.pos===t.position&&t.skip(r.headerLength),s=(r=e.getHeaderPositionAnnexB(t)).pos;var o={header:a,body:new Uint8Array(t.buffer.slice(n+a.byteLength,s))};e.analyseNal(o),o.type<=40&&i.push(o),t.skip(s-t.position),n=s}return i}},{key:"getHvccNals",value:function(t){for(var i=[];t.position<t.length-4;){var r=t.dataview.getInt32(t.dataview.position);if(!(t.length-t.position>=r))break;var n=t.buffer.slice(t.position,t.position+4);t.skip(4);var s=new Uint8Array(t.buffer.slice(t.position,t.position+r));t.skip(r);var a={header:n,body:s};try{e.analyseNal(a)}catch(e){continue}a.type<=40&&i.push(a)}return i}},{key:"analyseNal",value:function(e){var t=e.body[0]>>>1&63;switch(e.type=t,t){case 0:e.slice_trail_n=!0;break;case 1:e.slice_trail_r=!0,e.key=!0;break;case 2:e.slice_tsa_n=!0;break;case 3:e.slice_tsa_r=!0,e.key=!0;break;case 4:e.slice_stsa_n=!0;break;case 5:e.slice_stsa_r=!0,e.key=!0;break;case 6:e.slice_radl_n=!0;break;case 7:e.slice_radl_r=!0,e.key=!0;break;case 8:e.slice_rasl_n=!0;break;case 9:e.slice_rasl_r=!0,e.key=!0;break;case 16:e.slice_bla_w_lp=!0;break;case 17:e.slice_bla_w_radl=!0;break;case 18:e.slice_bla_n_lp=!0;break;case 19:e.slice_idl_w_radl=!0,e.key=!0;break;case 20:e.slice_idr_n_lp=!0,e.key=!0;break;case 21:e.slice_cra_nut=!0,e.key=!0;break;case 32:e.vps=!0;break;case 33:e.sps=Ve.parseSPS(e.body);break;case 34:e.pps=!0;break;case 35:break;case 36:e.aud=!0;break;case 37:e.eob=!0;break;case 38:e.fd=!0;break;case 39:try{e.sei=ze.parse(e.body.slice(1))}catch(e){}break;case 40:e.sei=ze.parse(e.body.slice(1))}}},{key:"getHeaderPositionAnnexB",value:function(e){for(var t=e.position,i=0,r=e.length;3!==i&&4!==i&&t<r-4;)0===e.dataview.getInt16(t)?1===e.dataview.getInt16(t+2)?i=4:1===e.dataview.getInt8(t+2)?i=3:t++:t++;return t===r-4&&(0===e.dataview.getInt16(t)?1===e.dataview.getInt16(t+2)&&(i=4):(t++,0===e.dataview.getInt16(t)&&1===e.dataview.getInt8(t)?i=3:t=r)),{pos:t,headerLength:i}}}]),e}(),Ze=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();function Qe(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}var Je=f.REMUX_EVENTS,$e=function(){function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.TAG="Compatibility",this.nextAudioDts=0,this.nextVideoDts=0,this.lastAudioSamplesLen=0,this.lastVideoSamplesLen=0,this.lastVideoDts=void 0,this.lastAudioDts=void 0,this.allAudioSamplesCount=0,this.allVideoSamplesCount=0,this._firstAudioSample=null,this._firstVideoSample=null,this.filledAudioSamples=[],this.filledVideoSamples=[],this._lastSegmentId=0,this._currentSegmentId=0,this.videoLastSample=null,this.audioLastSample=null,Object.defineProperties(this,{_videoLargeGap:{set:function(e){t.___videoLargeGap=e,0!==e&&t.emit(Je.DETECT_LARGE_GAP,"video",e)},get:function(){return t.___videoLargeGap||0}},_audioLargeGap:{set:function(e){t.___audioLargeGap=e,0!==e&&t.emit(Je.DETECT_LARGE_GAP,"audio",e)},get:function(){return t.___audioLargeGap||0}}}),this.audioUnsyncTime=0}return Ze(e,[{key:"init",value:function(){this.before(Je.REMUX_MEDIA,this.doFix.bind(this))}},{key:"reset",value:function(){this.nextAudioDts=null,this.nextVideoDts=null,this.lastAudioSamplesLen=0,this.lastVideoSamplesLen=0,this.lastVideoDts=void 0,this.lastAudioDts=void 0,this._audioLargeGap=0,this._videoLargeGap=0,this.videoLastSample=null,this.audioLastSample=null,this.filledAudioSamples=[],this.filledVideoSamples=[],this.audioUnsyncTime=0}},{key:"_isSegmentsContinuous",value:function(){return 0===this._lastSegmentId||this._currentSegmentId-this._lastSegmentId==1}},{key:"doFix",value:function(){var t=void 0,i=void 0,r=void 0,n=0;this.videoTrack.samples.length&&(t=(i=this.videoTrack.samples[0]).options,pe.long&&pe.log(this.TAG,this.videoTrack.samples.slice())),this.audioTrack.samples.length&&(r=this.audioTrack.samples[0],pe.long&&pe.log(this.TAG,this.audioTrack.samples.slice())),i&&r&&(n=r.dts-i.dts),this._currentSegmentId=t&&t.id||this._currentSegmentId+1,pe.log(this.TAG,"lastSeg:"+this._lastSegmentId+" , currentSeg:"+this._currentSegmentId+", discontinue:"+(t&&t.discontinue)+" vSamp0:"+(i&&i.dts)+" aSamp0:"+(r&&r.dts));var s=this.getFirstSample(),a=s.isFirstAudioSamples,o=s.isFirstVideoSamples;this.recordSamplesCount(),this._firstVideoSample&&this.fixVideoRefSampleDuration(this.videoTrack.meta,this.videoTrack.samples);var u=e.detectChangeStream(this.videoTrack.samples,o),l=u.changed,h=u.changedIdxes;if(l){for(var c=!1,d=0;d<h.length;d++)this.fixChangeStreamVideo(h[d],o)&&(c=!0);c||this.doFixVideo(o)}else if(!this._isSegmentsContinuous()&&t&&void 0!==t.start){this.videoLastSample=null;var f=t.start;n<0&&(f-=n),pe.log(this.TAG,"fix video for _isSegmentsContinuous(), delta:",n),this.doFixVideo(o,f),this.emit(Je.DETECT_FRAG_ID_DISCONTINUE,t.start/1e3)}else this.doFixVideo(o);this._appendSampleForLastSegment(t&&t.isLast);var p=e.detectChangeStream(this.audioTrack.samples,a),y=p.changed,_=p.changedIdxes;if(y){for(var v=!1,m=0;m<_.length;m++)this.fixChangeStreamAudio(_[m],a)&&(v=!0);if(v)return;this.doFixAudio(a)}else if(!this._isSegmentsContinuous()&&t&&void 0!==t.start){pe.log(this.TAG,"fix audio for _isSegmentsContinuous()");var g=this.audioTrack.samples[0];this.nextAudioDts=t.start||g&&g.dts,this.doFixAudio(a,t.start),this.emit(Je.DETECT_FRAG_ID_DISCONTINUE,t.start/1e3)}else this.doFixAudio(a);this.removeInvalidSamples(),this._lastSegmentId=this._currentSegmentId}},{key:"doFixVideo",value:function(t,i){for(var r=this.videoTrack,n=r.samples,s=r.meta,a=n.length,o=0;o<a;o++){var u=n[o];u.originDts=u.dts,u.originPts=u.pts}if(n&&a&&this._firstVideoSample){var l=n[0];if(pe.log(this.TAG,"doFixVideo:: lastVideoDts: "+this.lastVideoDts+" , _videoLargeGap: "+this._videoLargeGap+" ,streamChangeStart:"+i+", lastVideoSample:[dts="+(this.videoLastSample&&this.videoLastSample.dts)+" , pts="+(this.videoLastSample&&this.videoLastSample.pts)+"] , firstDTS:"+l.dts+" ,firstPTS:"+l.pts+" ,lastDTS:"+n[a-1].dts+" , lastPTS: "+n[a-1].pts),!t&&void 0===i&&this.videoLastSample&&e.detectVideoLargeGap(this.videoLastSample?this.videoLastSample.dts:0,l.dts+this._videoLargeGap)&&(this._videoLargeGap=this.videoLastSample.dts+s.refSampleDuration-l.dts),0!==this._videoLargeGap&&(e.doFixLargeGap(n,this._videoLargeGap),this._videoLargeGap!==this.preVideoGap&&(this.preVideoGap=this._videoLargeGap,this.emit(Je.DETECT_CHANGE_STREAM_DISCONTINUE,"video",{prevDts:this.videoLastSample&&this.videoLastSample.originDts,curDts:l.originDts}))),t||void 0===i||0===i||(this._videoLargeGap=i-l.dts,e.doFixLargeGap(n,this._videoLargeGap)),t&&this._firstAudioSample){var h=this._firstVideoSample.originDts,c=h-this._firstAudioSample.dts;if(c>2*s.refSampleDuration&&c<10*s.refSampleDuration){for(var d=Math.floor(c/s.refSampleDuration),f=0;f<d;f++){var p=Object.assign({},l);p.dts=h-(f+1)*s.refSampleDuration,p.pts=p.dts+p.cts,n.unshift(p),this.filledVideoSamples.push({dts:p.dts,size:p.data.byteLength})}this._firstVideoSample=this.filledVideoSamples[0]||this._firstVideoSample}else Math.abs(c)>2*s.refSampleDuration&&!this._videoLargeGap&&(this._videoLargeGap=-1*c,e.doFixLargeGap(n,-1*c))}for(var y=n.length,_=1;_<y;_++){var v=n[_],m=n[_-1],g=v.dts-v.pts;Math.abs(g)<2e3&&Math.abs(v.dts-m.dts)>1e4&&(v.dts=m.dts+s.refSampleDuration,v.pts=m.pts+s.refSampleDuration)}var E=n.pop();if(n.length&&(n[n.length-1].duration=E.dts-n[n.length-1].dts),y<4){var b=n[n.length-1],T=(b=b||E).options&&b.options.duration,S=s.refSampleDuration;if(T&&S&&T/S>5)for(var k=b.pts,A=b.dts,D=0;D<3;D++){A+=S,k+=S;var R=Object.assign({},b,{dts:A,pts:k});2===D&&(R.duration=T),n.push(R)}E=null}if(this.videoLastSample){var w=this.videoLastSample;w.duration=l.dts-w.dts,n.unshift(this.videoLastSample)}this.videoLastSample=E,n[n.length-1]&&(this.lastVideoDts=n[n.length-1].dts),this.videoTrack.samples=n}}},{key:"_appendSampleForLastSegment",value:function(e){e&&this.videoLastSample&&this.videoTrack.samples.push(this.videoLastSample)}},{key:"doFixAudio",value:function(t,i){var r=this,n=this.audioTrack,s=n.samples,a=n.meta;if(s&&s.length){this.fixAudioRefSampleDuration(a);for(var o=0,u=s.length;o<u;o++){var l=s[o];l.originDts=l.dts}var h=s.length,c=Ae.getSilentFrame(a.originCodec,a.channelCount),d=Math.floor(a.refSampleDuration),f=this._firstAudioSample,p=s[0];if(pe.log(this.TAG,"doFixAudio:: audioDtsBase:"+this.audioDtsBase+" , _audioLargeGap: "+this._audioLargeGap+", streamChangeStart:"+i+" , nextAudioDts:"+this.nextAudioDts+", audio: firstDTS:"+p.dts+" ,firstPTS:"+p.pts+" ,lastDTS:"+s[h-1].dts+" , lastPTS: "+s[h-1].pts),!t&&null===this.nextAudioDts&&p.options&&p.options.start&&void 0!==i&&(i=p.options.start),!t&&void 0===i&&this.nextAudioDts&&e.detectAudioLargeGap(this.nextAudioDts||0,p.dts+this._audioLargeGap)){var y=this.nextAudioDts-p.dts;this._audioLargeGap=Math.abs(y-this._videoLargeGap)<200?this._videoLargeGap:y}if(0!==this._audioLargeGap?(e.doFixLargeGap(s,this._audioLargeGap),this._audioLargeGap!==this.preAudioGap&&(this.preAudioGap=this._audioLargeGap,this.emit(Je.DETECT_CHANGE_STREAM_DISCONTINUE,"audio",{prevDts:this.lastAudioOriginDts,curDts:p.originDts}))):t||void 0===i&&!e.detectAudioLargeGap(this.nextAudioDts,p.dts)||(void 0!==i&&0!==i&&(this.nextAudioDts=i),this._audioLargeGap=this.nextAudioDts-p.dts,p.options.start&&!p.options.start.isContinue&&e.doFixLargeGap(s,this._audioLargeGap)),this._firstVideoSample&&t){var _=this._firstVideoSample.originDts||this._firstVideoSample.dts,v=f.dts-_;if(v===this._videoLargeGap);else if(v>a.refSampleDuration&&v<10*a.refSampleDuration){var m=Math.floor((f.dts-_)/a.refSampleDuration);pe.warn(this.TAG,"fill "+m+" frames for av align");for(var g=0;g<m;g++){var E={data:c,datasize:c.byteLength,dts:f.dts-(g+1)*a.refSampleDuration,filtered:0};s.unshift(E),this.filledAudioSamples.push({dts:E.dts,size:E.data.byteLength})}this._firstAudioSample=this.filledAudioSamples[0]||this._firstAudioSample}else v<-1*a.refSampleDuration&&(this._audioLargeGap=-1*v,e.doFixLargeGap(s,-1*v))}var b=void 0,T=s[0].dts;if(this.nextAudioDts){b=T-this.nextAudioDts;var S=Math.abs(b);if(b>=d&&b<1e4&&c){for(var k=Math.ceil(b/d),A=0;A<k;A++){var D=T-(A+1)*d,R={dts:D>this.nextAudioDts?D:this.nextAudioDts,pts:D>this.nextAudioDts?D:this.nextAudioDts,datasize:c.byteLength,filtered:0,data:c};this.filledAudioSamples.push({dts:R.dts,size:R.data.byteLength}),this.audioTrack.samples.unshift(R),p=R}this.emit(Je.DETECT_AUDIO_GAP,b,k)}else S<a.refSampleDuration&&S>0?(p.dts=this.nextAudioDts,p.pts=this.nextAudioDts):b<0&&S<d&&(e.doFixLargeGap(s,-1*b),this.emit(Je.DETECT_AUDIO_OVERLAP,b))}for(var w=s[0].dts+d,O=1;O<s.length;){var L=s[O],x=L.dts-w;if(x<=-1*d)pe.warn("drop 1 audio sample for "+x+" ms overlap"),s.splice(O,1);else if(x>=10*d){var U=Math.round(x/d);if(U>1e3)break;pe.warn(this.TAG,"inject "+U+" audio frame for "+x+" ms gap, index="+O);for(var M=0;M<U;M++){var C={data:c,datasize:c.byteLength,dts:w,originDts:w,filtered:0};s.splice(O,0,C),w+=d,O++}L.dts=L.pts=L.originDts=w,w+=d,O++}else L.dts=L.pts=L.originDts=w,w+=d,O++}var B=a.refSampleDuration-d;s.forEach((function(e,t){if(0!==t){var i=s[t-1];e.dts=e.pts=i.dts+i.duration}e.duration=d,r.audioUnsyncTime=r.audioUnsyncTime+B,r.audioUnsyncTime>=1&&(e.duration+=1,r.audioUnsyncTime-=1)}));var P=s[s.length-1];this.lastAudioDts=P.dts;var I=P.duration;this.lastAudioSamplesLen=h,this.nextAudioDts=this.lastAudioDts+(I||d),this.lastAudioOriginDts=P.originDts,this.audioTrack.samples=e.sortAudioSamples(s)}}},{key:"fixChangeStreamVideo",value:function(e){pe.log(this.TAG,"fixChangeStreamVideo(), changeIdx=",e);var t=this.videoTrack.samples,i=0===e?this.lastVideoDts?this.lastVideoDts:this.getStreamChangeStart(t[0]):t[e-1].dts,r=t[e].dts,n=Math.abs(i-r)<=1e4;if(this.emit(Je.DETECT_CHANGE_STREAM,"video",r),n)return t[e].options?t[e].options.isContinue=!0:t[e].options={isContinue:!0},!1;this.emit(Je.DETECT_CHANGE_STREAM_DISCONTINUE,"video",{prevDts:i,curDts:r});var s=t.slice(0,e),a=t.slice(e),o=t[e],u=void 0;return this._videoLargeGap=0,this.videoLastSample=null,this.lastVideoDts=null,u=o.options&&void 0!==o.options.start?o.options.start:i-this.videoDtsBase,this.videoTrack.samples=t.slice(0,e),this.doFixVideo(!1),this.videoTrack.samples=t.slice(e),this.doFixVideo(!1,u),this.videoTrack.samples=s.concat(a),!0}},{key:"fixChangeStreamAudio",value:function(e){pe.log(this.TAG,"fixChangeStreamAudio(), changeIdx=",e);var t=this.audioTrack.samples,i=0===e?this.lastAudioDts:t[e-1].dts,r=t[e].dts,n=Math.abs(i-r)<=1e4;if(this.emit(Je.DETECT_CHANGE_STREAM,"audio",r),n)return t[e].options?t[e].options.isContinue=!0:t[e].options={isContinue:!0},!1;this.emit(Je.DETECT_CHANGE_STREAM_DISCONTINUE,"audio",{prevDts:i,curDts:r}),this._audioLargeGap=0;var s=this.nextAudioDts;this.nextAudioDts=null;var a=t.slice(0,e),o=t.slice(e),u=t[e],l=void 0;return u.options&&void 0!==u.options.start?l=u.options.start:(l=s,u.options.isContinue=!0),this.audioTrack.samples=a,this.doFixAudio(!1),this.audioTrack.samples=o,this.doFixAudio(!1,l),this.audioTrack.samples=a.concat(o),!0}},{key:"getFirstSample",value:function(){var t=this.videoTrack.samples,i=this.audioTrack.samples,r=!1,n=!1;return!this._firstVideoSample&&t.length&&(this._firstVideoSample=e.findFirstVideoSample(t),this.removeInvalidSamples(),r=!0),!this._firstAudioSample&&i.length&&(this._firstAudioSample=e.findFirstAudioSample(i),this.removeInvalidSamples(),n=!0),{isFirstVideoSamples:r,isFirstAudioSamples:n}}},{key:"fixVideoRefSampleDuration",value:function(t,i){if(t){var r=this.allVideoSamplesCount,n=this._firstVideoSample.dts,s=this.filledVideoSamples.length;if(e.isRefSampleDurationValid(t.refSampleDuration)){if(t.refSampleDuration&&i.length>=5){var a=(i[i.length-1].dts-i[0].dts)/(i.length-1);if(a>0&&a<1e3){var o=Math.floor(Math.abs(t.refSampleDuration-a)<=5?t.refSampleDuration:a);e.isRefSampleDurationValid(o)&&(t.refSampleDuration=o)}}}else if(i.length>=1){var u=i[i.length-1].dts,l=Math.floor((u-n)/(r+s-1));e.isRefSampleDurationValid(l)&&(t.refSampleDuration=l)}e.isRefSampleDurationValid(t.refSampleDuration)||(t.refSampleDuration=66)}}},{key:"fixAudioRefSampleDuration",value:function(e){e&&(e.refSampleDuration=1024*e.timescale/e.sampleRate)}},{key:"recordSamplesCount",value:function(){var e=this.audioTrack,t=this.videoTrack;this.allAudioSamplesCount+=e.samples.length,this.allVideoSamplesCount+=t.samples.length}},{key:"removeInvalidSamples",value:function(){var e=this.audioTrack.samples[0],t=this.videoTrack.samples[0];e&&(this.audioTrack.samples=this.audioTrack.samples.filter((function(t,i){return t===e||t.dts>=e.dts}))),t&&(this.videoTrack.samples=this.videoTrack.samples.filter((function(e,i){return e===t||e.dts>=t.dts})))}},{key:"getStreamChangeStart",value:function(e){return e.options&&e.options.start?e.options.start-this.dtsBase:1/0}},{key:"tracks",get:function(){return this._context.getInstance("TRACKS")}},{key:"audioTrack",get:function(){return this.tracks&&this.tracks.audioTrack?this.tracks.audioTrack:{samples:[],meta:{}}}},{key:"videoTrack",get:function(){return this.tracks&&this.tracks.videoTrack?this.tracks.videoTrack:{samples:[],meta:{}}}},{key:"dtsBase",get:function(){var e=this._context.getInstance("MP4_REMUXER");return e?e._dtsBase:0}},{key:"audioDtsBase",get:function(){var e=this._context.getInstance("MP4_REMUXER");return e&&null!==e._audioDtsBase?e._audioDtsBase:this.dtsBase}},{key:"videoDtsBase",get:function(){var e=this._context.getInstance("MP4_REMUXER");return e&&null!==e._videoDtsBase?e._videoDtsBase:this.dtsBase}}],[{key:"sortAudioSamples",value:function(e){return 1===e.length?e:[].concat(Qe(e)).sort((function(e,t){return e.dts-t.dts}))}},{key:"isRefSampleDurationValid",value:function(e){return e&&e>0&&!Number.isNaN(e)}},{key:"findFirstAudioSample",value:function(t){return t&&0!==t.length?e.sortAudioSamples(t)[0]:null}},{key:"findFirstVideoSample",value:function(e){if(!e.length)return null;for(var t=[].concat(Qe(e)).sort((function(e,t){return e.dts-t.dts})),i=0,r=t.length;i<r;i++)if(t[i].isKeyframe)return t[i]}},{key:"detectVideoLargeGap",value:function(e,t){if(null!==e){return e-t>=1e3||t-e>=1e3}}},{key:"detectAudioLargeGap",value:function(e,t){if(null!==e)return e-t>=1e3||t-e>=1e3}},{key:"doFixLargeGap",value:function(e,t){for(var i=0,r=e.length;i<r;i++){var n=e[i];n.dts+=t,n.pts&&(n.pts+=t)}var s=e[0];s&&0===s.dts&&(s.dts=s.pts=1)}},{key:"detectChangeStream",value:function(e,t){for(var i=!1,r=[],n=0,s=e.length;n<s;n++){var a=e[n];!a.options||!a.options.meta||t&&0===n||(i=!0,r.push(n))}return{changed:i,changedIdxes:r}}}]),e}(),et=W((function(e){var t=Object.prototype.hasOwnProperty,i="~";function r(){}function n(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function s(e,t,r,s,a){if("function"!=typeof r)throw new TypeError("The listener must be a function");var o=new n(r,s||e,a),u=i?i+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],o]:e._events[u].push(o):(e._events[u]=o,e._eventsCount++),e}function a(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(i=!1)),o.prototype.eventNames=function(){var e,r,n=[];if(0===this._eventsCount)return n;for(r in e=this._events)t.call(e,r)&&n.push(i?r.slice(1):r);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},o.prototype.listeners=function(e){var t=i?i+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var n=0,s=r.length,a=new Array(s);n<s;n++)a[n]=r[n].fn;return a},o.prototype.listenerCount=function(e){var t=i?i+e:e,r=this._events[t];return r?r.fn?1:r.length:0},o.prototype.emit=function(e,t,r,n,s,a){var o=i?i+e:e;if(!this._events[o])return!1;var u,l,h=this._events[o],c=arguments.length;if(h.fn){switch(h.once&&this.removeListener(e,h.fn,void 0,!0),c){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,t),!0;case 3:return h.fn.call(h.context,t,r),!0;case 4:return h.fn.call(h.context,t,r,n),!0;case 5:return h.fn.call(h.context,t,r,n,s),!0;case 6:return h.fn.call(h.context,t,r,n,s,a),!0}for(l=1,u=new Array(c-1);l<c;l++)u[l-1]=arguments[l];h.fn.apply(h.context,u)}else{var d,f=h.length;for(l=0;l<f;l++)switch(h[l].once&&this.removeListener(e,h[l].fn,void 0,!0),c){case 1:h[l].fn.call(h[l].context);break;case 2:h[l].fn.call(h[l].context,t);break;case 3:h[l].fn.call(h[l].context,t,r);break;case 4:h[l].fn.call(h[l].context,t,r,n);break;default:if(!u)for(d=1,u=new Array(c-1);d<c;d++)u[d-1]=arguments[d];h[l].fn.apply(h[l].context,u)}}return!0},o.prototype.on=function(e,t,i){return s(this,e,t,i,!1)},o.prototype.once=function(e,t,i){return s(this,e,t,i,!0)},o.prototype.removeListener=function(e,t,r,n){var s=i?i+e:e;if(!this._events[s])return this;if(!t)return a(this,s),this;var o=this._events[s];if(o.fn)o.fn!==t||n&&!o.once||r&&o.context!==r||a(this,s);else{for(var u=0,l=[],h=o.length;u<h;u++)(o[u].fn!==t||n&&!o[u].once||r&&o[u].context!==r)&&l.push(o[u]);l.length?this._events[s]=1===l.length?l[0]:l:a(this,s)}return this},o.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&a(this,t)):(this._events=new r,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=i,o.EventEmitter=o,e.exports=o})),tt="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},it=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var i=[],r=!0,n=!1,s=void 0;try{for(var a,o=e[Symbol.iterator]();!(r=(a=o.next()).done)&&(i.push(a.value),!t||i.length!==t);r=!0);}catch(e){n=!0,s=e}finally{try{!r&&o.return&&o.return()}finally{if(n)throw s}}return i}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},rt="function"==typeof Symbol&&"symbol"===tt(Symbol.iterator)?function(e){return void 0===e?"undefined":tt(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":tt(e)},nt=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var st=Fe,at=qe,ot={1:["video","MPEG-1"],2:["video","MPEG-2"],27:["video","AVC.H264"],36:["video","HVC.H265"],234:["video","VC-1"],3:["audio","MPEG-1"],4:["audio","MPEG-2"],15:["audio","MPEG-2.AAC"],17:["audio","MPEG-4.AAC"],128:["audio","LPCM"],129:["audio","AC3"],6:["audio","AC3"],130:["audio","DTS"],131:["audio","Dolby TrueHD"],132:["audio","AC3-Plus"],133:["audio","DTS-HD"],134:["audio","DTS-MA"],161:["audio","AC3-Plus-SEC"],162:["audio","DTS-HD-SEC"]},ut=function(e){function t(e){var i=e.videoTrack,r=e.audioTrack;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":tt(t))&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return n.TAG="TsDemuxer",n.demuxing=!1,n.videoTrack=i,n.audioTrack=r,n.pat=[],n.pmt=[],n._hasVideoMeta=!1,n._hasAudioMeta=!1,n.gopId=0,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":tt(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),nt(t,null,[{key:"EVENTS",get:function(){return{DEMUX_COMPLETE:"DEMUX_COMPLETE",METADATA_PARSED:"METADATA_PARSED",VIDEO_SAMPLE_PARSED:"VIDEO_SAMPLE_PARSED",AUDIO_SAMPLE_PARSED:"AUDIO_SAMPLES_PARSED",SEI_PARSED:"SEI_PARSED"}}}]),nt(t,[{key:"demux",value:function(e,i,r){if(e&&pe.log(this.TAG,"do demux: id="+e.id+",demuxing="+this.demuxing),!this.demuxing){for(var n={pat:[],pmt:[]},s={};i.length>=188;){if(i.length>=1&&71!==i.array[0][i.offset])throw new Error("Untrust sync code: "+i.array[0][i.offset]+", try to recover;");for(;i.length>=1&&71!==i.array[0][i.offset];)i.shift(1);if(!(i.length<188)){var a=i.shift(188),o=new b(a.buffer),u={};t.read(o,u,n);var l=s[u.header.pid];u.pes?(u.pes.codec=u.header.codec,u.pes.streamType=u.header.streamType,s[u.header.pid]||(s[u.header.pid]=[]),s[u.header.pid].push(u.pes),u.pes.ES.buffer=[u.pes.ES.buffer]):l&&l[l.length-1].ES.buffer.push(u.payload.stream)}}for(var h=Object.assign({},e),c=Object.assign({},e),d=r&&this._hasVideoMeta&&!this._hasAudioMeta,f=r&&this._hasAudioMeta&&!this._hasVideoMeta,p=0;p<Object.keys(s).length;p++)for(var y=s[Object.keys(s)[p]],_=0;_<y.length;_++){var v=y[_];v.id=Object.keys(s)[p];var m=15===v.streamType||17===v.streamType;"audio"===v.type&&!d&&m?(v.ES.buffer=t.mergeAudioES(v.ES.buffer),this.pushAudioSample(v,h),h={}):"video"!==v.type||f||(v.ES.buffer=t.mergeVideoES(v.ES.buffer),"HVC.H265"===v.codec?this.pushVideoSampleHEVC(y[_],c):this.pushVideoSample(y[_],c),c={spsFound:!!c.spsFound})}}}},{key:"pushAudioSample",value:function(e,i){var r=new C({audioSampleRate:e.ES.frequence,sampleRate:e.ES.frequence,channelCount:e.ES.channel,codec:"mp4a.40."+e.ES.audioObjectType,originCodec:"mp4a.40."+e.ES.originAudioObjectType,originObjectType:e.ES.originAudioObjectType,config:e.ES.audioConfig,id:2,sampleRateIndex:e.ES.frequencyIndex});r.refSampleDuration=Math.floor(1024/r.audioSampleRate*r.timescale);var n=t.compareMeta(this.audioTrack.meta,r,!0);this._hasAudioMeta&&n||(this._hasAudioMeta=!0,i?i.meta=Object.assign({},r):i={meta:Object.assign({},r)},this.emit(t.EVENTS.METADATA_PARSED,"audio",r));var s=0;e.ES.buffer.skip(e.pesHeaderLength+9);for(var a=!1;e.ES.buffer.position<e.ES.buffer.length;)if(Re.isHeader(new Uint8Array(e.ES.buffer.buffer),e.ES.buffer.position)&&e.ES.buffer.position+5<e.ES.buffer.length){var o=Re.appendFrame(this.audioTrack.meta.sampleRate,new Uint8Array(e.ES.buffer.buffer),e.ES.buffer.position,e.pts,s);if(!o||!o.sample)break;e.ES.buffer.skip(o.length);var u=new F({dts:o.sample.dts,pts:o.sample.pts,data:o.sample.unit,options:a?{}:i});i.meta&&(a=!0),u.dts=u.pts=Math.ceil(u.pts/90),this.emit(t.EVENTS.AUDIO_SAMPLE_PARSED,u),s++}else e.ES.buffer.skip(1)}},{key:"pushVideoSample",value:function(e,i){for(var r=this,n=st.getNalunits(e.ES.buffer),s=new B,a=i.spsFound,o=0,u=!1,l=!1,h=[],c=0;c<n.length;c++){var d=n[c];if(d.type<9&&!d.sei&&(o+=4+d.body.byteLength),d.sps){u=d,s.sps=d.body,s.chromaFormat=u.sps.chroma_format,s.codec="avc1.";for(var f=1;f<4;f++){var p=u.body[f].toString(16);p.length<2&&(p="0"+p),s.codec+=p}s.codecHeight=u.sps.codec_size.height,s.codecWidth=u.sps.codec_size.width,s.frameRate=u.sps.frame_rate,s.id=1,s.level=u.sps.level_string,s.presentHeight=u.sps.present_size.height,s.presentWidth=u.sps.present_size.width,s.profile=u.sps.profile_string,s.refSampleDuration=Math.floor(s.timescale*(u.sps.frame_rate.fps_den/u.sps.frame_rate.fps_num)),s.sarRatio=u.sps.sar_ratio?u.sps.sar_ratio:u.sps.par_ratio}else d.pps?(s.pps=d.body,l=d):d.sei&&h.push(d.sei)}if(u&&l){s.avcc=st.getAvcc(u.body,l.body);var y=t.compareMeta(this.videoTrack.meta,s,!0);this._hasVideoMeta&&y||(i?i.meta=Object.assign({},s):i={meta:Object.assign({},s)},a||this.emit(t.EVENTS.METADATA_PARSED,"video",s),i.spsFound=!0,this._hasVideoMeta=!0)}for(var _=new Uint8Array(o),v=0,m=!1,g=0;g<n.length;g++){var E=n[g];if(!(E.type&&E.type>=9)){var b=E.body.byteLength;E.idr&&(m=!0),E.sei||(_.set(new Uint8Array([b>>>24&255,b>>>16&255,b>>>8&255,255&b]),v),v+=4,_.set(E.body,v),v+=b)}}var T=parseInt(e.dts/90),S=parseInt(e.pts/90);h.length&&h.forEach((function(e){e.dts=T,r.emit(t.EVENTS.SEI_PARSED,e)}));var k=new G({dts:T,pts:S,cts:S-T,originDts:e.dts,purePts:e.purePts,isKeyframe:m,data:_,nals:n,options:i,firstInGop:m,gopId:m?++this.gopId:this.gopId});this.emit(t.EVENTS.VIDEO_SAMPLE_PARSED,k)}},{key:"pushVideoSampleHEVC",value:function(e,i){var r=this,n=at.getNalunits(e.ES.buffer);n=n.filter((function(e){return e.body&&e.body.length}));var s=new B;s.streamType=36;for(var a=0,o=!1,u=!1,l=!1,h=[],c=!1,d=!1,f=!1,p=!1,y=0;y<n.length;y++){var _=n[y];if(_.vps){if(c)continue;c=!0}else if(_.sps){if(d)continue;d=!0}else if(_.pps){if(f)continue;f=!0}else if(_.key)20!==_.type&&19!==_.type||(p=!0);else if(0===_.type);else if(35===_.type)continue;_.sps?(u=_,s.sps=_.body,s.presentWidth=u.sps.width,s.presentHeight=u.sps.height,s.general_profile_space=u.sps.general_profile_space,s.general_tier_flag=u.sps.general_tier_flag,s.general_profile_idc=u.sps.general_profile_idc,s.general_level_idc=u.sps.general_level_idc,s.codec="hev1.1.6.L93.B0",s.chromaFormatIdc=u.sps.chromaFormatIdc,s.bitDepthLumaMinus8=u.sps.bitDepthLumaMinus8,s.bitDepthChromaMinus8=u.sps.bitDepthChromaMinus8):_.pps?(s.pps=_.body,l=_):_.vps?(s.vps=_.body,o=_):_.sei&&h.push(_.sei),_.type<=40&&(a+=4+_.body.byteLength)}if(u&&l&&o){var v=t.compareMeta(this.videoTrack.meta,s,!0);this._hasVideoMeta&&v||(i?i.meta=Object.assign({},s):i={meta:Object.assign({},s)},s.streamType=36,this.videoTrack.meta=s,this._hasVideoMeta=!0,this.emit(t.EVENTS.METADATA_PARSED,"video",s))}var m=new Uint8Array(a),g=0,E=!1;c=!1,d=!1,f=!1;for(var b=0;b<n.length;b++){var T=n[b];if(!(T.type&&T.type>40)){if(T.vps){if(c)continue;c=!0}else if(T.sps){if(d)continue;d=!0}else if(T.pps){if(f)continue;f=!0}else if(T.key);else if(0===T.type);else if(35===T.type)continue;var S=T.body.byteLength;T.key&&(E=!0),m.set(new Uint8Array([S>>>24&255,S>>>16&255,S>>>8&255,255&S]),g),g+=4,m.set(T.body,g),g+=S}}var k=parseInt(e.dts/90),A=parseInt(e.pts/90);h&&h.forEach((function(e){e.dts=k,r.emit(t.EVENTS.SEI_PARSED,e)}));var D=new G({dts:k,pts:A,cts:A-k,originDts:e.dts,purePts:e.purePts,isKeyframe:E,data:m,nals:n,options:i,firstInGop:p,gopId:p?++this.gopId:this.gopId});this.emit(t.EVENTS.VIDEO_SAMPLE_PARSED,D)}},{key:"destroy",value:function(){this.removeAllListeners(),this.configs={},this.demuxing=!1,this.pat=[],this.pmt=[],this._hasVideoMeta=!1,this._hasAudioMeta=!1}}],[{key:"compareArray",value:function(e,t,i){var r=0,n=0;if("Uint8Array"===i?(r=e.byteLength,n=t.byteLength):"Array"===i&&(r=e.length,n=t.length),r!==n)return!1;for(var s=0;s<r;s++)if(e[s]!==t[s])return!1;return!0}},{key:"compareMeta",value:function(e,i,r){if(!e||!i)return!1;for(var n=0,s=Object.keys(e).length;n<s;n++){var a=e[Object.keys(e)[n]],o=i[Object.keys(e)[n]];if(!a&&!o)return!0;if(null==a&&o||a&&void 0===o)return!1;if("object"!==(void 0===a?"undefined":rt(a))){if(r&&"duration"!==Object.keys(e)[n]&&"refSampleDuration"!==Object.keys(e)[n]&&"refSampleDurationFixed"!==Object.keys(e)[n]&&a!==o)return!1}else if(void 0!==a.byteLength){if(void 0===o.byteLength)return!1;if(!t.compareArray(a,o,"Uint8Array"))return!1}else if(void 0!==a.length){if(void 0===o.length)return!1;if(!t.compareArray(a,o,"Array"))return!1}else if(!t.compareMeta(a,o))return!1}return!0}},{key:"mergeVideoES",value:function(e){for(var t=void 0,i=0,r=0,n=0;n<e.length;n++)i+=e[n].length-e[n].position;t=new Uint8Array(i);for(var s=0;s<e.length;s++){var a=e[s];t.set(new Uint8Array(a.buffer,a.position),r),r+=a.length-a.position}return new b(t.buffer)}},{key:"mergeAudioES",value:function(e){for(var t=void 0,i=0,r=0,n=0;n<e.length;n++)i+=e[n].length;t=new Uint8Array(i);for(var s=0;s<e.length;s++){var a=e[s];t.set(new Uint8Array(a.buffer),r),r+=a.length}return new b(t.buffer)}},{key:"read",value:function(e,i,r){t.readHeader(e,i),t.readPayload(e,i,r),"MEDIA"!==i.header.packet||1!==i.header.payload||i.unknownPIDs||(i.pes=t.PES(i))}},{key:"readPayload",value:function(e,i,r){var n=i.header.pid;switch(n){case 0:t.PAT(e,i,r);break;case 1:t.CAT(e,i,r);break;case 2:t.TSDT(e,i,r);break;case 8191:break;default:for(var s=!1,a=0,o=r.pat.length;a<o;a++)if(r.pat[a].pid===n){s=!0;break}if(s)t.PMT(e,i,r);else{for(var u=[],l=0,h=r.pmt.length;l<h;l++)if(r.pmt[l].pid===n){u.push(r.pmt[l]);break}if(u.length>0){var c=u[0].streamType;t.Media(e,i,c)}else i.unknownPIDs=!0}}}},{key:"readHeader",value:function(e,t){var i={};i.sync=e.readUint8();var r=e.readUint16();i.error=r>>>15,i.payload=r>>>14&1,i.priority=r>>>13&1,i.pid=8191&r,r=e.readUint8(),i.scrambling=r>>6&3,i.adaptation=r>>4&3,i.continuity=15&r,i.packet=0===i.pid?"PAT":"MEDIA",t.header=i}},{key:"PAT",value:function(e,t,i){var r={},n=e.readUint8();e.skip(n),n=e.readUint8(),r.tabelID=n,n=e.readUint16(),r.error=n>>>7,r.zero=n>>>6&1,r.sectionLength=4095&n,r.streamID=e.readUint16(),r.current=1&e.readUint8(),r.sectionNumber=e.readUint8(),r.lastSectionNumber=e.readUint8();for(var s=(r.sectionLength-9)/4,a=[],o=0;o<s;o++){var u=e.readUint16(),l=8191&e.readUint16();a.push({program:u,pid:l,type:0===u?"network":"mapPID"})}a.length>0&&(i.pat=i.pat.concat(a)),r.list=a,r.program=e.readUint16(),r.pid=8191&e.readUint16(),t.payload=r}},{key:"PMT",value:function(e,t,i){t.header.packet="PMT";var r=e.position;r+=e.getUint8(r);var n=(r+=1)+3+((15&e.getUint8(r+1))<<8|e.getUint8(r+2))-4;r+=12+((15&e.getUint8(r+10))<<8|e.getUint8(r+11));for(var s=[];r<n;){var a=(31&e.getUint8(r+1))<<8|e.getUint8(r+2);s.push({streamType:e.getUint8(r),pid:a}),r+=5+((15&e.getUint8(r+3))<<8|e.getUint8(r+4))}i.pmt=s,e.skip(n+4)}},{key:"Media",value:function(e,t,i){var r=t.header,n={},s=it(ot[i],2),a=s[0],o=s[1];if(r.streamType=i,r.type=a,r.codec=o,3===r.adaptation&&(n.adaptationLength=e.readUint8(),n.adaptationLength>0)){var u=e.readUint8();n.discontinue=u>>>7,n.access=u>>>6&1,n.priority=u>>>5&1,n.PCR=u>>>4&1,n.OPCR=u>>>3&1,n.splicePoint=u>>>2&1,n.transportPrivate=u>>>1&1,n.adaptationField=1&u;var l=e.position;if(1===n.PCR&&(n.programClockBase=e.readUint32()<<1,u=e.readUint16(),n.programClockBase|=u>>>15,n.programClockExtension=511&u),1===n.OPCR&&(n.originProgramClockBase=e.readUint32()<<1,u=e.readUint16(),n.originProgramClockBase+=u>>>15,n.originProgramClockExtension=511&u),1===n.splicePoint&&(n.spliceCountdown=e.readUint8()),1===n.transportPrivate)for(var h=e.readUint8(),c=[],d=0;d<h;d++)c.push(e.readUint8());if(1===n.adaptationField){var f=e.readUint8(),p=e.readUint8(),y=e.position,_=p>>>6&1,v=p>>>5&1;1===p>>>7&&(p=e.readUint16(),n.ltwValid=p>>>15,n.ltwOffset=61439&p),1===_&&(p=e.readUint24(),n.piecewiseRate=4194303&p),1===v&&(p=e.readInt8(),n.spliceType=p>>>4,n.dtsNextAU1=p>>>1&7,n.marker1=1&p,p=e.readUint16(),n.dtsNextAU2=p>>>1,n.marker2=1&p,p=e.readUint16(),n.dtsNextAU3=p),e.skip(f-1-(e.position-y))}var m=n.adaptationLength-1-(e.position-l);e.skip(m)}n.stream=new b(e.buffer.slice(e.position)),t.payload=n}},{key:"PES",value:function(e){var i={},r=e.payload.stream;if(1!==r.readUint24())i.ES={},i.ES.buffer=r;else{var n=r.readUint8();n>=224&&n<=239&&(i.type="video"),n>=192&&n<=223&&(i.type="audio");var s=r.readUint16();if(i.packetLength=s,"video"!==i.type&&"audio"!==i.type)throw new Error("format is not supported");var a=r.readUint8();if(2!==a>>>6)throw new Error("error when parse pes header");a=r.readUint8(),i.ptsDTSFlag=a>>>6,i.escrFlag=a>>>5&1,i.esRateFlag=a>>>4&1,i.dsmFlag=a>>>3&1,i.additionalFlag=a>>>2&1,i.crcFlag=a>>>1&1,i.extensionFlag=1&a,i.pesHeaderLength=r.readUint8();var o=i.pesHeaderLength,u=[];u.push(r.readUint8()),u.push(r.readUint8()),u.push(r.readUint8()),u.push(r.readUint8()),u.push(r.readUint8());var l=536870912*(14&u[0])+4194304*(255&u[1])+16384*(254&u[2])+128*(255&u[3])+(254&u[4])/2;if(i.purePts=l,r.dataview.position-=5,u=[],a=r.readUint8(),u.push(a>>>1&7),a=r.readUint16(),u.push(a>>>1),a=r.readUint16(),u.push(a>>>1),i.pts=u[0]<<30|u[1]<<15|u[2],o-=5,"video"===i.type&&(i.dts=i.pts),3===i.ptsDTSFlag){var h=[];a=r.readUint8(),h.push(a>>>1&7),a=r.readUint16(),h.push(a>>>1),a=r.readUint16(),h.push(a>>>1),i.dts=h[0]<<30|h[1]<<15|h[2],o-=5}if(1===i.escrFlag){var c=[],d=[];a=r.readUint8(),c.push(a>>>3&7),c.push(3&a),a=r.readUint16(),c.push(a>>>13),c.push(3&a),a=r.readUint16(),c.push(a>>>13),d.push(3&a),a=r.readUint8(),d.push(a>>>1),i.escr=300*(c[0]<<30|c[1]<<28|c[2]<<15|c[3]<<13|c[4])+(d[0]<<7|d[1]),o-=6}if(1===i.esRateFlag&&(a=r.readUint24(),i.esRate=a>>>1&4194303,o-=3),1===i.dsmFlag)throw new Error("not support DSM_trick_mode");if(1===i.additionalFlag&&(a=r.readUint8(),i.additionalCopyInfo=127&a,o-=1),1===i.crcFlag&&(i.pesCRC=r.readUint16(),o-=2),1===i.extensionFlag)throw new Error("not support extension");o>0&&r.skip(o),i.dts>i.pts&&(i.dts=i.pts),i.ES=t.ES(r,i.type,e.header.streamType)}return i}},{key:"ES",value:function(e,i,r){var n={};if("video"===i)n.buffer=e;else{if("audio"!==i)throw new Error("ES "+i+" is not supported");15!==r&&17!==r||(n=t.parseADTSHeader(e)),n.buffer=e}return n}},{key:"parseADTSHeader",value:function(e){var i={},r=e.readUint16();if(r>>>4!=4095)throw new Error("aac ES parse Error");return i.id=0==(r>>>3&1)?"MPEG-4":"MPEG-2",i.layer=r>>>1&3,i.absent=1&r,r=e.readUint16(),i.audioObjectType=1+(r>>>14&3),i.profile=i.audioObjectType-1,i.frequencyIndex=r>>>10&15,i.frequence=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350][i.frequencyIndex],i.channel=r>>>6&7,i.frameLength=(3&r)<<11|e.readUint16()>>>5,t.getAudioConfig(i),e.skip(1),i.buffer=e,i}},{key:"TSDT",value:function(e,t,i){t.payload={}}},{key:"CAT",value:function(e,t,i){var r={};r.tableID=e.readUint8();var n=e.readUint16();r.sectionIndicator=n>>>7,r.sectionLength=4095&n,e.skip(2),n=e.readUint8(),r.version=n>>>3,r.currentNextIndicator=1&n,r.sectionNumber=e.readUint8(),r.lastSectionNumber=e.readUint8();this.sectionLength;r.crc32=e.readUint32(),t.payload=r}},{key:"getAudioConfig",value:function(e){var t=navigator.userAgent.toLowerCase(),i=void 0,r=void 0;e.originAudioObjectType=e.audioObjectType,/firefox/i.test(t)?e.frequencyIndex>=8?(e.audioObjectType=5,i=new Array(4),r=e.frequencyIndex-3):(e.audioObjectType=2,i=new Array(2),r=e.frequencyIndex):-1!==t.indexOf("android")?(e.audioObjectType=2,i=new Array(2),r=e.frequencyIndex):(e.audioObjectType=5,i=new Array(4),e.frequencyIndex>=6?r=e.frequencyIndex-3:(1===e.channel&&(e.audioObjectType=2,i=new Array(2)),r=e.frequencyIndex)),i[0]=e.audioObjectType<<3,i[0]|=(14&e.frequencyIndex)>>1,i[1]=(1&e.frequencyIndex)<<7,i[1]|=e.channel<<3,5===e.audioObjectType&&(i[1]|=(14&r)>>1,i[2]=(1&r)<<7,i[2]|=8,i[3]=0),e.audioConfig=i}}]),t}(et),lt=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var ht=f.DEMUX_EVENTS,ct=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.configs=Object.assign({},t),this.demuxer=null}return lt(e,[{key:"init",value:function(){this.on(ht.DEMUX_START,this.demux.bind(this))}},{key:"initDemuxer",value:function(){this.demuxer.on(ut.EVENTS.METADATA_PARSED,this.onMetaDataParsed.bind(this)),this.demuxer.on(ut.EVENTS.VIDEO_SAMPLE_PARSED,this.onVideoSampleParsed.bind(this)),this.demuxer.on(ut.EVENTS.AUDIO_SAMPLE_PARSED,this.onAudioSampleParsed.bind(this)),this.demuxer.on(ut.EVENTS.SEI_PARSED,this.emit.bind(this,ht.SEI_PARSED))}},{key:"demux",value:function(e,t){if(this._tracks){this._tracks.audioTrack||(this._tracks.audioTrack=new w),this._tracks.videoTrack||(this._tracks.videoTrack=new O),this.demuxer||(this.demuxer=new ut(this._tracks),this.initDemuxer());try{this.demuxer.demux(e,this.inputBuffer,t)}catch(e){this.emit(ht.DEMUX_ERROR,this.TAG,e,!1)}var i=this._tracks.videoTrack&&this._tracks.videoTrack.samples.length?1:0,r=this._tracks.audioTrack&&this._tracks.audioTrack.samples.length?1:0;this.emit(ht.DEMUX_COMPLETE,i,r)}}},{key:"onMetaDataParsed",value:function(e,t){var i=this._tracks,r=i.videoTrack,n=i.audioTrack,s=r;switch(e){case"video":s=r;break;case"audio":s=n;break;default:s=r}s.meta=t,this.emit(ht.METADATA_PARSED,e,t)}},{key:"onVideoSampleParsed",value:function(e){e.isKeyframe&&this.emit(ht.ISKEYFRAME,e.pts),this._tracks.videoTrack.samples.push(e)}},{key:"onAudioSampleParsed",value:function(e){this._tracks.audioTrack.samples.push(e)}},{key:"destroy",value:function(){this.off(ht.DEMUX_START,this.demux),this.configs={},this.demuxer&&this.demuxer.destroy()}},{key:"inputBuffer",get:function(){return this._context.getInstance(this.configs.inputbuffer)}},{key:"_tracks",get:function(){return this._context.getInstance("TRACKS")}}]),e}(),dt=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var ft=/^(?:[a-zA-Z0-9+\-.]+:)?\/\//,pt=/^((?:[a-zA-Z0-9+\-.]+:)?\/\/[^/?#]*)?([^?#]*\/)?/;var yt=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return dt(e,null,[{key:"parse",value:function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r={duration:0};if(t&&t.split){var n=t.split(/\r|\n/),s=(n=n.filter((function(e){return e}))).shift();if(!s.match("#EXTM3U"))throw new Error('Invalid m3u8 file: not "#EXTM3U"');s=n.shift();for(var a=!1,o=0;s;){var u=s.match(/#(.[A-Z|-]*):(.*)/),l=s.match(/#(.[A-Z|-]*)/);if(l&&u&&u.length>2)switch(u[1]){case"EXT-X-VERSION":r.version=parseInt(u[2]);break;case"EXT-X-MEDIA-SEQUENCE":r.sequence=parseInt(u[2]);break;case"EXT-X-TARGETDURATION":r.targetduration=parseFloat(u[2]);break;case"EXTINF":o=e.parseFrag(u,n,r,i,a,o),a=!1;break;case"EXT-X-KEY":e.parseDecrypt(u[2],r)}if(l&&l.length>1)switch(l[1]){case"EXT-X-DISCONTINUITY":a=!0;break;case"EXT-X-ENDLIST":var h=r.frags[r.frags.length-1];h.isLast=!0,r.end=!0}s=n[o++]}return r}}},{key:"parseFrag",value:function(e,t,i,r,n,s){i.frags||(i.frags=[]);var a=new X({start:i.duration,duration:parseInt(1e3*parseFloat(e[2]))});if(a.duration<200)return s;i.duration+=a.duration;var o=t[s++];if((o.match(/#(.*):(.*)/)||o.match(/^#/))&&(o=t[s++]),a.url=function(e,t){if(!t||!e||ft.test(e))return e;var i=pt.exec(t);return i?"/"===e[0]?i[1]+e:i[1]+i[2]+e:e}(o,r),a.discontinue=n,i.frags.length){var u=i.frags[i.frags.length-1];a.id=u.id+1,a.cc=n?u.cc+1:u.cc}else a.id=i.sequence||1,a.cc=0;return i.frags.push(a),s}},{key:"parseDecrypt",value:function(e,t){t.encrypt={};var i=e.split(",");for(var r in i){var n=i[r];if(n.match(/METHOD=(.*)/)&&(t.encrypt.method=n.match(/METHOD=(.*)/)[1]),n.match(/URI="(.*)"/)&&(t.encrypt.uri=n.match(/URI="(.*)"/)[1]),n.match(/IV=0x(.*)/)){var s=n.match(/IV=0x(.*)/)[1],a=Math.ceil(s.length/2);t.encrypt.ivb=new Uint8Array(a);for(var o=a-1;o>=0;o--){var u=parseInt(s.substr(2*o,2),16);t.encrypt.ivb[o]=u}t.encrypt.iv=s}}}},{key:"isHTTPS",value:function(e){return/^https:\/\//i.test(e)}}]),e}(),_t=W((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){for(var t=0,i=arguments.length,r=Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];var s=!0,a=!1,o=void 0;try{for(var u,l=r[Symbol.iterator]();!(s=(u=l.next()).done);s=!0){var h=u.value;t+=h.length}}catch(e){a=!0,o=e}finally{try{!s&&l.return&&l.return()}finally{if(a)throw o}}var c=new e(t),d=0,f=!0,p=!1,y=void 0;try{for(var _,v=r[Symbol.iterator]();!(f=(_=v.next()).done);f=!0){var m=_.value;c.set(m,d),d+=m.length}}catch(e){p=!0,y=e}finally{try{!f&&v.return&&v.return()}finally{if(p)throw y}}return c}}));Y(_t);var vt=Y(W((function(e){var t,i=(t=_t)&&t.__esModule?t:{default:t};e.exports=i.default}))),mt=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var gt=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.buffer=t||new Uint8Array(0)}return mt(e,[{key:"write",value:function(){for(var e=this,t=arguments.length,i=Array(t),r=0;r<t;r++)i[r]=arguments[r];i.forEach((function(t){e.buffer=vt(Uint8Array,e.buffer,t)}))}}],[{key:"writeUint32",value:function(e){return new Uint8Array([e>>24,e>>16&255,e>>8&255,255&e])}},{key:"readAsInt",value:function(e){var t="";return e.forEach((function(e){t+=e.toString(16).padStart(2,"0")})),parseInt(t,16)}}]),e}(),Et=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var bt=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return Et(e,null,[{key:"size",value:function(e){return gt.writeUint32(e)}},{key:"initBox",value:function(t,i){for(var r=new gt,n=arguments.length,s=Array(n>2?n-2:0),a=2;a<n;a++)s[a-2]=arguments[a];return r.write.apply(r,[e.size(t),e.type(i)].concat(s)),r.buffer}},{key:"extension",value:function(e,t){return new Uint8Array([e,t>>16&255,t>>8&255,255&t])}},{key:"ftyp",value:function(){return e.initBox(24,"ftyp",new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]))}},{key:"ftypHEVC",value:function(){return e.initBox(24,"ftyp",new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,100,97,115,104]))}},{key:"moov",value:function(t){var i=t.type,r=t.meta,n=8,s=e.mvhd(r.duration,r.timescale),a=void 0;a="video"===i?e.videoTrak(r):e.audioTrak(r);var o=e.mvex(r.duration,r.timescale||1e3,r.id);return[s,a,o].forEach((function(e){n+=e.byteLength})),e.initBox(n,"moov",s,a,o)}},{key:"mvhd",value:function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3,r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return e.initBox(8+r.length,"mvhd",new Uint8Array(r))}},{key:"videoTrak",value:function(t){var i=8,r=e.tkhd({id:1,duration:t.duration,timescale:t.timescale||1e3,width:t.presentWidth,height:t.presentHeight,type:"video"}),n=e.mdia({type:"video",timescale:t.timescale||1e3,duration:t.duration,avcc:t.avcc,parRatio:t.parRatio,width:t.presentWidth,height:t.presentHeight,streamType:t.streamType});return[r,n].forEach((function(e){i+=e.byteLength})),e.initBox(i,"trak",r,n)}},{key:"audioTrak",value:function(t){var i=8,r=e.tkhd({id:2,duration:t.duration,timescale:t.timescale||1e3,width:0,height:0,type:"audio"}),n=e.mdia({type:"audio",timescale:t.timescale||1e3,duration:t.duration,channelCount:t.channelCount,samplerate:t.sampleRate,config:t.config});return[r,n].forEach((function(e){i+=e.byteLength})),e.initBox(i,"trak",r,n)}},{key:"tkhd",value:function(t){var i=t.id,r=t.duration,n=t.width,s=t.height,a=new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>>8&255,255&n,0,0,s>>>8&255,255&s,0,0]);return e.initBox(8+a.byteLength,"tkhd",a)}},{key:"edts",value:function(t){var i=new gt,r=t.duration,n=t.mediaTime;return i.write(e.size(36),e.type("edts")),i.write(e.size(28),e.type("elst")),i.write(new Uint8Array([0,0,0,1,r>>24&255,r>>16&255,r>>8&255,255&r,n>>24&255,n>>16&255,n>>8&255,255&n,0,0,0,1])),i.buffer}},{key:"mdia",value:function(t){var i=8,r=e.mdhd(t.timescale,t.duration),n=e.hdlr(t.type),s=e.minf(t);return[r,n,s].forEach((function(e){i+=e.byteLength})),e.initBox(i,"mdia",r,n,s)}},{key:"mdhd",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e3,i=arguments[1],r=new Uint8Array([0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,i>>>16&255,i>>>8&255,255&i,85,196,0,0]);return e.initBox(12+r.byteLength,"mdhd",e.extension(0,0),r)}},{key:"hdlr",value:function(t){var i=[0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0];return"audio"===t&&(i.splice.apply(i,[8,4].concat([115,111,117,110])),i.splice.apply(i,[24,13].concat([83,111,117,110,100,72,97,110,100,108,101,114,0]))),e.initBox(8+i.length,"hdlr",new Uint8Array(i))}},{key:"minf",value:function(t){var i=8,r="video"===t.type?e.vmhd():e.smhd(),n=e.dinf(),s=e.stbl(t);return[r,n,s].forEach((function(e){i+=e.byteLength})),e.initBox(i,"minf",r,n,s)}},{key:"vmhd",value:function(){return e.initBox(20,"vmhd",new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]))}},{key:"smhd",value:function(){return e.initBox(16,"smhd",new Uint8Array([0,0,0,0,0,0,0,0]))}},{key:"dinf",value:function(){var t=new gt;return t.write(e.size(36),e.type("dinf"),e.size(28),e.type("dref"),new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1])),t.buffer}},{key:"stbl",value:function(t){var i=8,r=e.stsd(t),n=e.stts(),s=e.stsc(),a=e.stsz(),o=e.stco();return[r,n,s,a,o].forEach((function(e){i+=e.byteLength})),e.initBox(i,"stbl",r,n,s,a,o)}},{key:"stsd",value:function(t){var i=void 0;return i="audio"===t.type?e.mp4a(t):36===t.streamType?e.hvc1(t):e.avc1(t),e.initBox(16+i.byteLength,"stsd",e.extension(0,0),new Uint8Array([0,0,0,1]),i)}},{key:"mp4a",value:function(t){var i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,t.samplerate>>8&255,255&t.samplerate,0,0]),r=e.esds(t.config);return e.initBox(8+i.byteLength+r.byteLength,"mp4a",i,r)}},{key:"esds",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[43,146,8,0],i=t.length,r=new gt,n=new Uint8Array([0,0,0,0,3,23+i,0,1,0,4,15+i,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([i]).concat(t).concat([6,1,2]));return r.write(e.size(8+n.byteLength),e.type("esds"),n),r.buffer}},{key:"avc1",value:function(t){var i=new gt,r=t.width,n=t.height,s=t.parRatio.width,a=t.parRatio.height,o=t.avcc,u=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,r>>8&255,255&r,n>>8&255,255&n,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),l=new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192]),h=new Uint8Array([s>>24,s>>16&255,s>>8&255,255&s,a>>24,a>>16&255,a>>8&255,255&a]);return i.write(e.size(40+u.byteLength+o.byteLength+l.byteLength),e.type("avc1"),u,e.size(8+o.byteLength),e.type("avcC"),o,e.size(20),e.type("btrt"),l,e.size(16),e.type("pasp"),h),i.buffer}},{key:"hvc1",value:function(t){var i=new gt,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,t.width>>8&255,255&t.width,t.height>>8&255,255&t.height,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255,0,0,0,122,104,118,99,67,1,1,96,0,0,0,144,0,0,0,0,0,93,240,0,252,253,248,248,0,0,15,3,160,0,1,0,24,64,1,12,1,255,255,1,96,0,0,3,0,144,0,0,3,0,0,3,0,93,153,152,9,161,0,1,0,45,66,1,1,1,96,0,0,3,0,144,0,0,3,0,0,3,0,93,160,2,128,128,45,22,89,153,164,147,43,154,128,128,128,130,0,0,3,0,2,0,0,3,0,50,16,162,0,1,0,7,68,1,193,114,180,98,64]);return i.write(e.size(8+r.byteLength+10),e.type("hvc1"),r,e.size(10),e.type("fiel"),new Uint8Array([1,0])),i.buffer}},{key:"stts",value:function(){var t=new Uint8Array([0,0,0,0,0,0,0,0]);return e.initBox(16,"stts",t)}},{key:"stsc",value:function(){var t=new Uint8Array([0,0,0,0,0,0,0,0]);return e.initBox(16,"stsc",t)}},{key:"stco",value:function(){var t=new Uint8Array([0,0,0,0,0,0,0,0]);return e.initBox(16,"stco",t)}},{key:"stsz",value:function(){var t=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]);return e.initBox(20,"stsz",t)}},{key:"mvex",value:function(t){var i=arguments[2],r=new gt,n=gt.writeUint32(t);return r.write(e.size(56),e.type("mvex"),e.size(16),e.type("mehd"),e.extension(0,0),n,e.trex(i)),r.buffer}},{key:"trex",value:function(t){var i=new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return e.initBox(8+i.byteLength,"trex",i)}},{key:"moof",value:function(t){var i=8,r=e.mfhd(),n=e.traf(t);return[r,n].forEach((function(e){i+=e.byteLength})),e.initBox(i,"moof",r,n)}},{key:"mfhd",value:function(){var t=gt.writeUint32(e.sequence);return e.sequence+=1,e.initBox(16,"mfhd",e.extension(0,0),t)}},{key:"traf",value:function(t){var i=8,r=e.tfhd(t.id),n=e.tfdt(t.time),s=e.sdtp(t),a=e.trun(t,s.byteLength);return[r,n,a,s].forEach((function(e){i+=e.byteLength})),e.initBox(i,"traf",r,n,a,s)}},{key:"tfhd",value:function(t){var i=gt.writeUint32(t);return e.initBox(16,"tfhd",e.extension(0,0),i)}},{key:"tfdt",value:function(t){return e.initBox(16,"tfdt",e.extension(0,0),gt.writeUint32(t))}},{key:"trun",value:function(t,i){var r=new gt,n=gt.writeUint32(t.samples.length),s=gt.writeUint32(92+16*t.samples.length+i);return r.write(e.size(20+16*t.samples.length),e.type("trun"),new Uint8Array([0,0,15,1]),n,s),t.samples.forEach((function(e){var t=e.flags;r.write(new Uint8Array([e.duration>>>24&255,e.duration>>>16&255,e.duration>>>8&255,255&e.duration,e.size>>>24&255,e.size>>>16&255,e.size>>>8&255,255&e.size,t.isLeading<<2|t.dependsOn,t.isDependedOn<<6|t.hasRedundancy<<4|t.isNonSync,0,0,e.cts>>>24&255,e.cts>>>16&255,e.cts>>>8&255,255&e.cts]))})),r.buffer}},{key:"sdtp",value:function(t){var i=new gt;return i.write(e.size(12+t.samples.length),e.type("sdtp"),e.extension(0,0)),t.samples.forEach((function(e){var t=e.flags,r=t.isLeading<<6|t.dependsOn<<4|t.isDependedOn<<2|t.hasRedundancy;i.write(new Uint8Array([r]))})),i.buffer}},{key:"mdat",value:function(t){var i=new gt,r=8;t.samples.forEach((function(e){r+=e.size})),i.write(e.size(r),e.type("mdat"));var n=new Uint8Array(r),s=0;return n.set(i.buffer,s),s+=8,t.samples.forEach((function(e){e.buffer.forEach((function(e){n.set(e,s),s+=e.byteLength}))})),n}}]),e}();bt.type=function(e){return new Uint8Array([e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)])},bt.sequence=1;var Tt="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},St=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var kt=function(e){function t(e){var i=e.videoMeta,r=e.audioMeta,n=e.curTime;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var s=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":Tt(t))&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return s.TAG="Fmp4Remuxer",s._dtsBase=1e3*n,s._videoMeta=i,s._audioMeta=r,s._audioDtsBase=null,s._videoDtsBase=null,s._isDtsBaseInited=!1,s.isFirstVideo=!0,s.isFirstAudio=!0,s.videoAllDuration=0,s.audioAllDuration=0,s.audioRemuxed=0,s.videoRemuxed=0,s.mp4Durations={keys:[]},s}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":Tt(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),St(t,[{key:"destroy",value:function(){this._dtsBase=-1,this._isDtsBaseInited=!1,this.mp4Durations={keys:[]},this.removeAllListeners()}},{key:"remux",value:function(e,t){!this._isDtsBaseInited&&this.calcDtsBase(e,t),this.remuxVideo(t),this.remuxAudio(e),pe.groupEnd()}},{key:"resetDtsBase",value:function(){this._dtsBase=0}},{key:"seek",value:function(e){pe.log(this.TAG,"set dtsBase for seek(),time=",e),this._isDtsBaseInited?(this._isDtsBaseInited=!1,this._dtsBase=1e3*e):this._dtsBase=1e3*e,this._audioDtsBase=this._videoDtsBase=null}},{key:"remuxInitSegment",value:function(e,t){pe.log(this.TAG,"remuxInitSegment: type=",e);var i=new gt,r=36===t.streamType?bt.ftypHEVC():bt.ftyp(),n=bt.moov({type:e,meta:t});return i.write(r,n),i}},{key:"calcDtsBase",value:function(e,t){if(!e&&t.samples.length){var i=t.samples[0],r=void 0;return i.options&&i.options.start&&(r=i.options.start),this._videoDtsBase=i.dts-(r||this._dtsBase),void(this._isDtsBaseInited=!0)}if(e&&e.samples.length||t&&t.samples.length){var n=null,s=null,a=null;if(e&&e.samples&&e.samples.length){var o=e.samples[0];n=o.dts,o.options&&o.options.start&&(a=o.options.start)}if(t&&t.samples&&t.samples.length){var u=t.samples[0];s=u.dts,u.options&&u.options.start&&(a=u.options.start)}var l=n-s;n&&l<0&&null!==a&&t.samples.forEach((function(e){e.dts-=l,e.pts&&(e.pts-=l)})),this._videoDtsBase=(s||n)-(a||this._dtsBase),this._audioDtsBase=(n||s)-(a||this._dtsBase),this._dtsBase=Math.min(s,n),this._isDtsBaseInited=!0,pe.log(this.TAG,"calcDtsBase"),pe.log(this.TAG,"video first dts: "+s+" , start:"+a+" , _videoDtsBase:"+this._videoDtsBase+" , _dtsBase:"+this._dtsBase),pe.log(this.TAG,"audio first dts: "+n+" , start:"+a+" , _audioDtsBase:"+this._audioDtsBase+", _dtsBase:"+this._dtsBase)}}},{key:"remuxVideo",value:function(e){var i=this,r=e||{};if(e&&e.samples&&e.samples.length){var n=r.samples;if(r.meta){for(var s=-1,a=null,o=[],u={samples:[]},l=1e4;n.length&&l-- >0;){var h=n.shift(),c=h.isKeyframe,d=h.options;if(!this.isFirstVideo&&d&&d.meta){a=this.remuxInitSegment("video",d.meta),d.meta=null,n.unshift(h),d.isContinue||(this._videoDtsBase=0);break}var f=Math.max(0,h.dts-this.videoDtsBase);-1===s&&(s=f);var p=void 0,y=void 0;void 0!==h.pts&&(p=(y=h.pts-this._dtsBase)-f),void 0!==h.cts&&(y=h.cts+f,p=h.cts);var _={buffer:[],size:0},v=0;if(h.duration)v=h.duration;else if(n.length>=1){v=n[0].dts-this.videoDtsBase-f}else v=o.length>=1?o[o.length-1].duration:this._videoMeta.refSampleDuration;this.videoAllDuration+=v,pe.long&&pe.log(this.TAG,"video dts "+f,"pts "+y,"cts: "+p,c,"originDts "+h.originDts,"duration "+v),v>=0&&(u.samples.push(_),_.buffer.push(h.data),_.size+=h.data.byteLength,o.push({dts:f,cts:p,pts:y,data:h.data,size:h.data.byteLength,isKeyframe:c,duration:v,flags:{isLeading:0,dependsOn:c?2:1,isDependedOn:c?1:0,hasRedundancy:0,isNonSync:c?0:1},originDts:f,type:"video"}),this.mp4Durations[y]=v,this.mp4Durations.keys.push(y)),c&&this.emit(t.EVENTS.RANDOM_ACCESS_POINT,y)}if(this.mp4Durations.keys.length>1e4){var m=this.mp4Durations;this.mp4Durations={},this.mp4Durations.keys=m.keys.slice(-100),this.mp4Durations.keys.forEach((function(e){i.mp4Durations[e]=m[e]}))}o.length&&pe.log(this.TAG,"remux to mp4 video:",[s/1e3,o[o.length-1].dts/1e3]);var g=new gt;if(o.length&&r.meta){var E=bt.moof({id:r.meta.id,time:s,samples:o}),b=bt.mdat(u);g.write(E,b),this.segmentRemuxed("video",g,o[o.length-1].pts-o[0].pts)}if(a&&(this.segmentRemuxed("video",a),n.length))return r.samples=n,this.remuxVideo(r);this.isFirstVideo=!1,this.emit(t.EVENTS.TRACK_REMUXED,"video",g),r.samples=[],r.length=0}}}},{key:"remuxAudio",value:function(e){var i=(e||{}).samples,r=-1,n=[],s=null,a={samples:[]};if(i&&i.length){for(var o=1e4,u=!1;i.length&&o-- >0;){var l=i.shift(),h=l.data,c=l.options;if(!this.isFirstAudio&&c&&c.meta){s=this.remuxInitSegment("audio",c.meta),c.meta=null,i.unshift(l),c.isContinue||(this._audioDtsBase=0);break}var d=Math.max(0,l.dts-this.audioDtsBase),f=l.originDts;u||(r=d,u=!0);var p=0;if(l.duration)p=l.duration;else if(this._audioMeta.refSampleDurationFixed)p=this._audioMeta.refSampleDurationFixed;else if(i.length>=1){p=i[0].dts-this.audioDtsBase-d}else p=n.length>=1?n[n.length-1].duration:this._audioMeta.refSampleDuration;this.audioAllDuration+=p;var y={dts:d,pts:d,cts:0,size:h.byteLength,duration:l.duration?l.duration:p,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0,isNonSync:0},isKeyframe:!0,originDts:f,type:"audio"},_={buffer:[],size:0};p>=0&&(_.buffer.push(h),_.size+=h.byteLength,a.samples.push(_),n.push(y))}var v=new gt;if(n.length&&e.meta){pe.log(this.TAG,"remux to mp4 audio:",[r/1e3,n[n.length-1].dts/1e3]);var m=bt.moof({id:e.meta.id,time:r,samples:n}),g=bt.mdat(a);v.write(m,g),this.segmentRemuxed("audio",v,n[n.length-1].dts-n[0].dts)}if(s&&(this.segmentRemuxed("audio",s),i.length))return e.samples=i,this.remuxAudio(e);this.isFirstAudio=!1,this.emit(t.EVENTS.TRACK_REMUXED,"audio",v),e.samples=[],e.length=0}}},{key:"segmentRemuxed",value:function(e,i,r){this.emit(t.EVENTS.MEDIA_SEGMENT,e,i,r)}},{key:"videoDtsBase",get:function(){return null!==this._videoDtsBase?this._videoDtsBase:this._dtsBase},set:function(e){this._videoDtsBase=e}},{key:"audioDtsBase",get:function(){return null!==this._audioDtsBase?this._audioDtsBase:this._dtsBase}}],[{key:"EVENTS",get:function(){return{MEDIA_SEGMENT:"MEDIA_SEGMENT",INIT_SEGMENT:"INIT_SEGMENT",RANDOM_ACCESS_POINT:"RANDOM_ACCESS_POINT",TRACK_REMUXED:"TRACK_REMUXED"}}}]),t}(et),At=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();function Dt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Rt=f.REMUX_EVENTS,wt=f.PLAYER_EVENTS,Ot=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;Dt(this,e),this.TAG="Mp4Remuxer",this._curTime=t,this.remuxer||this.initRemuxer()}return At(e,[{key:"init",value:function(){this.on(Rt.REMUX_MEDIA,this.remux.bind(this)),this.on(Rt.REMUX_METADATA,this.onMetaDataReady.bind(this)),this.on(Rt.DETECT_CHANGE_STREAM,this.resetDtsBase.bind(this)),this.on(Rt.DETECT_FRAG_ID_DISCONTINUE,this.seek.bind(this)),this.on(wt.SEEK,this.seek.bind(this))}},{key:"initRemuxer",value:function(){this.remuxer=new kt({audioMeta:null,videoMeta:null,curTime:this._curTime}),this.remuxer.on(kt.EVENTS.MEDIA_SEGMENT,this.writeToSource.bind(this)),this.remuxer.on(kt.EVENTS.TRACK_REMUXED,this.onTrackRemuxed.bind(this))}},{key:"remux",value:function(){this.remuxer._videoMeta||(this.remuxer._videoMeta=this.videoMeta,this.remuxer._audioMeta=this.audioMeta);var e=this._context.getInstance("TRACKS"),t=e.audioTrack,i=e.videoTrack;return this.remuxer.remux(t,i)}},{key:"resetDtsBase",value:function(){this.remuxer&&this.remuxer.resetDtsBase()}},{key:"seek",value:function(e){this.remuxer&&this.remuxer.seek(e)}},{key:"onMetaDataReady",value:function(e){this.remuxer||this.initRemuxer();var t=void 0;"audio"===e?t=this._context.getInstance("TRACKS").audioTrack:t=this._context.getInstance("TRACKS").videoTrack;var i=this._context.getInstance("PRE_SOURCE_BUFFER"),r=i.getSource(e);r||(r=i.createSource(e)),r.mimetype=t.meta.codec,r.init=this.remuxer.remuxInitSegment(e,t.meta),this.emit(Rt.INIT_SEGMENT,e)}},{key:"onTrackRemuxed",value:function(e){this.emit(Rt.MEDIA_SEGMENT,e)}},{key:"writeToSource",value:function(e,t,i){var r=this._context.getInstance("PRE_SOURCE_BUFFER"),n=r.getSource(e);n||(n=r.createSource(e)),n.data.push(t),i&&(n.bufferDuration=i+(n.bufferDuration||0))}},{key:"destroy",value:function(){this.remuxer&&this.remuxer.destroy(),this.remuxer=null}},{key:"videoMeta",get:function(){return this._context.getInstance("TRACKS").videoTrack.meta}},{key:"audioMeta",get:function(){return this._context.getInstance("TRACKS").audioTrack.meta}}]),e}(),Lt={Mse:se,Tracks:R,RemuxedBufferManager:g,XgBuffer:x,FetchLoader:de,Compatibility:$e,Mp4Remuxer:Ot,Crypto:ie,M3U8Parser:yt,TsDemuxer:ct,Playlist:y},xt="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},Ut=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}(),Mt=function e(t,i,r){null===t&&(t=Function.prototype);var n=Object.getOwnPropertyDescriptor(t,i);if(void 0===n){var s=Object.getPrototypeOf(t);return null===s?void 0:e(s,i,r)}if("value"in n)return n.value;var a=n.get;return void 0!==a?a.call(r):void 0};var Ct=f.HlsAllowedEvents,Bt=f.REMUX_EVENTS,Pt=e.util,It=function(t){function i(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i);var t=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":xt(t))&&"function"!=typeof t?e:t}(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e));return t.hlsOps={},t.hlsOps=Object.assign(t.hlsOps,Lt),Pt.deepCopy(t.hlsOps,e),t._played=!1,t}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":xt(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(i,t),Ut(i,[{key:"_initEvents",value:function(){var e=this;this.__core__.once(Bt.INIT_SEGMENT,(function(){var t=e._context.getInstance("MSE");if(!e.started){var r=Pt.createDom("xg-live","正在直播",{},"xgplayer-live");Pt.addClass(e.root,"xgplayer-is-live"),e.controls.appendChild(r)}e.started=!0,Mt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"start",e).call(e,t.url)}))}},{key:"start",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.url;e&&!this.started&&(this._context||(this._context=new $(this,this.hlsOps,Ct)),this.hlsOps||(this.hlsOps={},this.hlsOps=Object.assign(this.hlsOps,Lt),Pt.deepCopy(this.hlsOps,this.config),this._played=!1),this.__core__=this._context.registry("HLS_LIVE_CONTROLLER",Se)({player:this,container:this.video,preloadTime:this.config.preloadTime}),this._context.init(),this.url=e,this.__core__.load(e),this._initEvents(),this.started=!0)}},{key:"play",value:function(){var e=this;if(this._played)return this.src=this.config.url,void this.once("canplay",(function(){e.video.play()}));this._played=!0,Mt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"play",this).call(this)}},{key:"destroy",value:function(){var e=this;this._context&&this._context.destroy();var t=new Promise((function(t){e.__core__&&e.__core__.mse?e.__core__.mse.destroy().then((function(){setTimeout((function(){t()}),50)})):setTimeout((function(){t()}),50)}));return Mt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"destroy",this).call(this),t}},{key:"src",set:function(e){var t=this;this.onWaiting=this.onWaiting.bind(this),this.__core__.mse.destroy().then((function(){t._context.destroy(),t._context=null,t.started=!1,t.video.currentTime=0,t.start(e)}))}}],[{key:"isSupported",value:function(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')}},{key:"install",value:function(t,i){return e.install(t,i)}}]),i}(e);It.install=e.install.bind(e);var Ft=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Gt=qe,Nt=Fe,jt=f.LOADER_EVENTS,Vt=f.DEMUX_EVENTS,Ht=f.HLS_EVENTS,Xt=f.CRYTO_EVENTS,Yt=/#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g,Wt=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.configs=Object.assign({},t),this.url="",this.sequence=0,this._playlist=null,this.retrytimes=this.configs.retrytimes||3,this.preloadTime=this.configs.preloadTime,this.container=this.configs.container,this._m3u8lasttime=0,this._timmer=setInterval(this._checkStatus.bind(this),50),this._lastCheck=0,this.m3u8Text=null}return Ft(e,[{key:"init",value:function(){var e=this._player.hlsOps,t=e.XgBuffer,i=e.Tracks,r=e.Playlist,n=e.FetchLoader,s=e.TsDemuxer;this._context.registry("M3U8_BUFFER",t),this._context.registry("TS_BUFFER",t),this._context.registry("TRACKS",i),this._playlist=this._context.registry("PLAYLIST",r)({autoclear:!0}),this._m3u8loader=this._context.registry("M3U8_LOADER",n)({buffer:"M3U8_BUFFER",readtype:1}),this._tsloader=this._context.registry("TS_LOADER",n)({buffer:"TS_BUFFER",readtype:3}),this._context.registry("TS_DEMUXER",s)({inputbuffer:"TS_BUFFER"}),this.initEvents()}},{key:"initEvents",value:function(){this.on(jt.LOADER_COMPLETE,this._onLoadComplete.bind(this)),this.on(Vt.METADATA_PARSED,this._onMetadataParsed.bind(this)),this.on(Vt.SEI_PARSED,this._handleSEIParsed.bind(this)),this.on(Vt.DEMUX_COMPLETE,this._onDemuxComplete.bind(this)),this.on(jt.LOADER_ERROR,this._onLoadError.bind(this)),this.on(Vt.DEMUX_ERROR,this._onDemuxError.bind(this))}},{key:"_onError",value:function(e,t,i,r){var n={errorType:e,errorDetails:"["+t+"]: "+(i?i.message:""),errorFatal:r};this._player.emit("HLS_ERROR",n)}},{key:"_onDemuxComplete",value:function(){var e=this;if(this._player.video){var t=this._context.getInstance("TRACKS"),i=t.videoTrack,r=t.audioTrack;i.samples.forEach((function(t){if(!t.analyzed){t.analyzed=!0;var r=new b(t.data.buffer),n=void 0,s=(n=e._isHEVC(i.meta)?Gt.getHvccNals(r):Nt.getNalunits(r)).reduce((function(e,t){return e+4+t.body.byteLength}),0),a=new Uint8Array(s),o=0;n.forEach((function(e){a.set([0,0,0,1],o),o+=4,a.set(new Uint8Array(e.body),o),o+=e.body.byteLength})),t.data=a}})),this._player.video.onDemuxComplete(i,r)}}},{key:"_onMetadataParsed",value:function(e){if("audio"===e){var t=this._context.getInstance("TRACKS").audioTrack;t&&t.meta&&this._setMetaToAudio(t.meta)}else{var i=this._context.getInstance("TRACKS").videoTrack;i&&i.meta&&this._setMetaToVideo(i.meta)}}},{key:"_setMetaToAudio",value:function(e){this._player.video&&this._player.video.setAudioMeta(e)}},{key:"_setMetaToVideo",value:function(e){this._player.video&&this._player.video.setVideoMeta(e)}},{key:"_onLoadError",value:function(e,t){!this._tsloader.loading&&!this._m3u8loader.loading&&this.retrytimes>1?(this.retrytimes--,this._onError(jt.LOADER_ERROR,e,t,!1)):this.retrytimes<=1&&(this._onError(jt.LOADER_ERROR,e,t,!0),this.emit(Ht.RETRY_TIME_EXCEEDED),this._player.video&&this._player.video.handleEnded())}},{key:"_onDemuxError",value:function(e,t,i){void 0===i&&(i=!0),this._onError(jt.LOADER_ERROR,e,t,i)}},{key:"_handleSEIParsed",value:function(e){this._player.emit("SEI_PARSED",e)}},{key:"_onLoadComplete",value:function(e){if("M3U8_BUFFER"===e.TAG){var t=void 0;try{this.m3u8Text=e.shift();var i=Yt.exec(this.m3u8Text);i&&i[2]?this.load(i[2]):t=this._player.hlsOps.M3U8Parser.parse(this.m3u8Text,this.url)}catch(e){this._onError("M3U8_PARSER_ERROR","M3U8_PARSER",e,!1)}if(!t)return void(this.retrytimes>0?(this.retrytimes--,this._preload()):(this.emit(Ht.RETRY_TIME_EXCEEDED),this._player.video&&this._player.video.handleEnded()));try{this._playlist.pushM3U8(t,!0)}catch(e){this._onError("M3U8_PARSER_ERROR","PLAYLIST",e,!1)}if(this._playlist.encrypt&&this._playlist.encrypt.uri&&!this._playlist.encrypt.key){var r=this._player.hlsOps,n=r.XgBuffer,s=r.FetchLoader;this._context.registry("DECRYPT_BUFFER",n)(),this._context.registry("KEY_BUFFER",n)(),this._tsloader.buffer="DECRYPT_BUFFER",this._keyLoader=this._context.registry("KEY_LOADER",s)({buffer:"KEY_BUFFER",readtype:3}),this.emitTo("KEY_LOADER",jt.LADER_START,this._playlist.encrypt.uri)}else this._m3u8Loaded(t)}else if("TS_BUFFER"===e.TAG)this.retrytimes=this.configs.retrytimes||3,this._playlist.downloaded(this._tsloader.url,!0),this.emit(Vt.DEMUX_START);else if("DECRYPT_BUFFER"===e.TAG)this.retrytimes=this.configs.retrytimes||3,this._playlist.downloaded(this._tsloader.url,!0),this.emitTo("CRYPTO",Xt.START_DECRYPT);else if("KEY_BUFFER"===e.TAG){var a=this._player.hlsOps.Crypto;this.retrytimes=this.configs.retrytimes||3,this._playlist.encrypt.key=e.shift(),this._crypto=this._context.registry("CRYPTO",a)({key:this._playlist.encrypt.key,iv:this._playlist.encrypt.ivb,method:this._playlist.encrypt.method,inputbuffer:"DECRYPT_BUFFER",outputbuffer:"TS_BUFFER"}),this._crypto.on(Xt.DECRYPTED,this._onDcripted.bind(this))}}},{key:"_onDcripted",value:function(){this.emit(Vt.DEMUX_START)}},{key:"_m3u8Loaded",value:function(e){this.preloadTime||(this.preloadTime=this._playlist.targetduration?this._playlist.targetduration:5),this._playlist.fragLength>0&&this._playlist.sequence<e.sequence?this.retrytimes=this.configs.retrytimes||3:this.retrytimes>0?(this.retrytimes--,this._preload()):(this.emit(Ht.RETRY_TIME_EXCEEDED),this._player.video&&this._player.video.handleEnded())}},{key:"_checkStatus",value:function(){if(!(this.retrytimes<1&&(new Date).getTime()-this._lastCheck<1e4))if(this._lastCheck=(new Date).getTime(),this.container.buffered.length<1)this._preload();else{var e=this.container.currentTime;this.container.readyState<=2&&this._preload(),e>this.container.buffered.end(this.container.buffered.length-1)-this.preloadTime&&this._preload()}}},{key:"_preload",value:function(){if(!this._tsloader.loading&&!this._m3u8loader.loading){var e=this._playlist.getTs();if(!e||e.downloaded||e.downloading){var t=this.preloadTime?this.preloadTime:0,i=(new Date).getTime();(!e||e.downloaded)&&(i-this._m3u8lasttime)/1e3>t&&(this._m3u8lasttime=i,this.emitTo("M3U8_LOADER",jt.LADER_START,this.url))}else this._playlist.downloading(e.url,!0),this.emitTo("TS_LOADER",jt.LADER_START,e.url)}}},{key:"_isHEVC",value:function(e){return e&&"hev1.1.6.L93.B0"===e.codec}},{key:"load",value:function(e){this.url=e,this._preload()}},{key:"destroy",value:function(){clearInterval(this._timmer),this.off(jt.LOADER_COMPLETE,this._onLoadComplete),this.off(Vt.METADATA_PARSED,this._onMetadataParsed),this.off(Vt.DEMUX_COMPLETE,this._onDemuxComplete),this.m3u8Text=null}}]),e}(),zt={Tracks:R,XgBuffer:x,FetchLoader:de,Crypto:ie,M3U8Parser:yt,TsDemuxer:ct,Playlist:y},Kt="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},qt=function e(t,i,r){null===t&&(t=Function.prototype);var n=Object.getOwnPropertyDescriptor(t,i);if(void 0===n){var s=Object.getPrototypeOf(t);return null===s?void 0:e(s,i,r)}if("value"in n)return n.value;var a=n.get;return void 0!==a?a.call(r):void 0},Zt=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var Qt=f.HlsAllowedEvents,Jt=function(t){function i(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),t.mediaType||(t.mediaType="live-video",t.videoConfig?t.videoConfig.preloadtime=t.preloadTime||5:t.videoConfig={preloadtime:t.preloadTime||5});var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":Kt(t))&&"function"!=typeof t?e:t}(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t));return r.hlsOps={},r.util=e.util,r.hlsOps=Object.assign(r.hlsOps,zt),r.util.deepCopy(r.hlsOps,t),r.playerInited||r.initPlayer(),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":Kt(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(i,t),Zt(i,null,[{key:"isSupported",value:function(){var e="WebAssembly"in window,t=!1;return"customElements"in window&&window.customElements.define&&(t=window.customElements.get("live-video")),e&&t}}]),Zt(i,[{key:"initPlayer",value:function(){this.video.width=Number.parseInt(this.hlsOps.width||600),this.video.height=Number.parseInt(this.hlsOps.height||337.5),this.video.style.outline="none",this.playerInited=!0}},{key:"_initEvents",value:function(){var e=this;this.once("canplay",(function(){e.video.play()}))}},{key:"start",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.hlsOps.url;e&&!this.started&&(this.playerInited||this.initPlayer(),this._context||(this._context=new $(Qt)),this.__core__=this._context.registry("HLS_LIVE_CONTROLLER",Wt)({player:this,container:this.video,preloadTime:this.config.preloadTime}),this._context.init(),this.url=e,this.__core__.load(e),qt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"start",this).call(this,e),this._initEvents(),this.started=!0,this.addLiveFlag())}},{key:"play",value:function(){this.started&&(this._context.destroy(),this._context=new $(Qt),this.__core__=this._context.registry("HLS_LIVE_CONTROLLER",Wt)({player:this,container:this.video,preloadTime:this.config.preloadTime}),this._context.init(),this._initEvents(),this.__core__.load(this.url)),qt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"play",this).call(this)}},{key:"addLiveFlag",value:function(){if(e.util.addClass(this.root,"xgplayer-is-live"),!e.util.findDom(this.root,"xg-live")){var t=e.util.createDom("xg-live","正在直播",{},"xgplayer-live");this.controls.appendChild(t)}}},{key:"destroy",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return new Promise((function(r){qt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"destroy",e).call(e);var n=e.video,s=e.root;qt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"destroy",e).call(e,t),n&&n.remove?n.remove():s&&s.removeChild(n),n&&n.destroy(),setTimeout((function(){r()}),50)}))}},{key:"src",set:function(e){this.onWaiting=this.onWaiting.bind(this),this._context.destroy(),this._context=null,this.started=!1,this.video.currentTime=0,this.start(e)}}],[{key:"install",value:function(t,i){return e.install(t,i)}}]),i}(e);Jt.install=e.install.bind(e);var $t=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var ei=function(){function t(i){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Jt.isSupported()&&i.useWASM?new Jt(i):It.isSupported()?new It(i):new e(i)}return $t(t,null,[{key:"install",value:function(t,i){return e.install(t,i)}}]),t}();ei.EVENTS=f;var ti=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();var ii=f.LOADER_EVENTS,ri=f.REMUX_EVENTS,ni=f.DEMUX_EVENTS,si=f.CRYTO_EVENTS,ai=f.MSE_EVENTS,oi=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.TAG="HlsVodController",this.configs=Object.assign({},t),this.url="",this.sequence=0,this._playlist=null,this.retrytimes=this.configs.retrytimes||3,this.container=this.configs.container,this.preloadTime=this.configs.preloadTime||5,this.mse=this.configs.mse,this._lastSeekTime=0,this.m3u8Text=null}return ti(e,[{key:"init",value:function(){this._context.registry("M3U8_BUFFER",x),this._tsBuffer=this._context.registry("TS_BUFFER",x)(),this._tracks=this._context.registry("TRACKS",R)(),this._playlist=this._context.registry("PLAYLIST",y)({autoclear:!1}),this._presource=this._context.registry("PRE_SOURCE_BUFFER",g)(),this._compat=this._context.registry("COMPATIBILITY",$e)(),this._context.registry("M3U8_LOADER",de)({buffer:"M3U8_BUFFER",readtype:1}),this._tsloader=this._context.registry("TS_LOADER",de)({buffer:"TS_BUFFER",readtype:3}),this._demuxer=this._context.registry("TS_DEMUXER",ct)({inputbuffer:"TS_BUFFER"}),this._context.registry("MP4_REMUXER",Ot)(this._player.currentTime),this.mse||(this.mse=new se({container:this.container,preloadTime:this.preloadTime},this._context),this.mse.init()),this.initEvents()}},{key:"initEvents",value:function(){this._onLoaderCompete=this._onLoaderCompete.bind(this),this._onLoadError=this._onLoadError.bind(this),this._onInitSegment=this._onInitSegment.bind(this),this._handleSEIParsed=this._handleSEIParsed.bind(this),this._onMediaSegment=this._onMediaSegment.bind(this),this._onMetadataParsed=this._onMetadataParsed.bind(this),this._onDemuxComplete=this._onDemuxComplete.bind(this),this._onDemuxError=this._onDemuxError.bind(this),this._onRemuxError=this._onRemuxError.bind(this),this._handleMseError=this._handleMseError.bind(this),this._onUpdateEnd=this._onUpdateEnd.bind(this),this._onTimeUpdate=this._onTimeUpdate.bind(this),this._onWaiting=this._onWaiting.bind(this),this.on(ii.LOADER_COMPLETE,this._onLoaderCompete),this.on(ii.LOADER_ERROR,this._onLoadError),this.on(ri.INIT_SEGMENT,this._onInitSegment),this.on(ni.SEI_PARSED,this._handleSEIParsed),this.on(ri.MEDIA_SEGMENT,this._onMediaSegment),this.on(ni.METADATA_PARSED,this._onMetadataParsed),this.on(ni.DEMUX_COMPLETE,this._onDemuxComplete),this.on(ni.DEMUX_ERROR,this._onDemuxError),this.on(ri.REMUX_ERROR,this._onRemuxError),this.on(ai.MSE_ERROR,this._handleMseError),this.on(ai.SOURCE_UPDATE_END,this._onUpdateEnd),this.on("TIME_UPDATE",this._onTimeUpdate),this.on(ai.SOURCE_UPDATE_END,this._onTimeUpdate),this.on("WAITING",this._onWaiting)}},{key:"_onError",value:function(e,t,i,r){var n={errorType:e,errorDetails:"["+t+"]: "+(i?i.message:""),errorFatal:r};this._player&&this._player.emit("HLS_ERROR",n)}},{key:"_onLoadError",value:function(e,t){this._player.emit("error",{errorType:"network",ex:"["+e+"]: "+t.message,errd:{}}),this._onError(ii.LOADER_ERROR,e,t,!0)}},{key:"_onDemuxError",value:function(e,t,i){void 0===i&&(i=!0),this._player.emit("error",{errorType:"parse",ex:"["+e+"]: "+t.message,errd:{}}),this._onError(ii.LOADER_ERROR,e,t,i)}},{key:"_onRemuxError",value:function(e,t,i){void 0===i&&(i=!0),this._player.emit("error",{errorType:"parse",ex:"["+e+"]: "+t.message,errd:{}}),this._onError(ri.REMUX_ERROR,e,t,i)}},{key:"_handleMseError",value:function(e,t,i){void 0===i&&(i=!1),this._player.emit("error",{errorType:"format",ex:"["+e+"]: "+t.message,errd:{}}),this._onError(ai.MSE_ERROR,e,t,i)}},{key:"_onWaiting",value:function(e){var t=!0;pe.log(this.TAG,"waiting.......",this._player.video.currentTime),this._seekToBufferStart();var i=Object.keys(this._playlist.list),r=i.length;if(r){for(var n=0;n<r;n++)1e3*this.container.currentTime<parseInt(i[n])&&(t=!1);if(t){var s=this._playlist.getTs(1e3*this.container.currentTime);s?s.downloaded&&(this._player.emit("ended"),this.mse.endOfStream()):(this._player.emit("ended"),this.mse.endOfStream())}}}},{key:"_seekToBufferStart",value:function(){var e=this._player.video,t=e.buffered,i=[0,0],r=e.currentTime;if(t)for(var n=0,s=t.length;n<s;n++)if(i[0]=t.start(n),i[1]=t.end(n),i[0]<=r&&r<=i[1])return;var a=i[0];0===r&&r<a&&Math.abs(r-a)<5&&(e.currentTime=a)}},{key:"_checkEnd",value:function(){var e=this._player.video,t=e.buffered,i=t.length;if(i){var r=t.end(i-1);Math.abs(r-e.duration)<1&&this.mse.endOfStream()}}},{key:"_onUpdateEnd",value:function(){this._checkEnd(),this._seekToBufferStart(),this._preload(this._player.currentTime)}},{key:"_onTimeUpdate",value:function(){this._seekToBufferStart(),this._preload(this._player.currentTime)}},{key:"_onDemuxComplete",value:function(){this.emit(ri.REMUX_MEDIA,"ts")}},{key:"_handleSEIParsed",value:function(e){this._player.emit("SEI_PARSED",e)}},{key:"_onMetadataParsed",value:function(e){try{var t=this._tracks[e+"Track"].meta;pe.warn(this.TAG,"meta detect or changed , ",e,Object.assign({},t))}catch(e){}var i=parseInt(this._playlist.duration);"video"===e?(this._context.mediaInfo.hasVideo=!0,this._tracks.videoTrack.meta.duration=i):"audio"===e&&(this._context.mediaInfo.hasAudio=!0,this._tracks.audioTrack.meta.duration=i),this.emit(ri.REMUX_METADATA,e)}},{key:"_onMediaSegment",value:function(){Object.keys(this.mse.sourceBuffers).length<1&&this.mse.addSourceBuffers(),this.mse.doAppend()}},{key:"_onInitSegment",value:function(){this.mse.addSourceBuffers()}},{key:"_onLoaderCompete",value:function(e){if("M3U8_BUFFER"===e.TAG){this.m3u8Text=e.shift();try{var t=yt.parse(this.m3u8Text,this.url);this._playlist.pushM3U8(t)}catch(e){this._onError("M3U8_PARSER_ERROR","PLAYLIST",e,!0)}if(this._playlist.encrypt&&this._playlist.encrypt.uri&&!this._playlist.encrypt.key)this._context.registry("DECRYPT_BUFFER",x)(),this._context.registry("KEY_BUFFER",x)(),this._tsloader.buffer="DECRYPT_BUFFER",this._keyLoader=this._context.registry("KEY_LOADER",de)({buffer:"KEY_BUFFER",readtype:3}),this.emitTo("KEY_LOADER",ii.LADER_START,this._playlist.encrypt.uri);else{this.preloadTime||(this._playlist.targetduration?(this.preloadTime=this._playlist.targetduration,this.mse.preloadTime=this._playlist.targetduration):(this.preloadTime=5,this.mse.preloadTime=5));var i=this._playlist.getTs(1e3*(this._player.currentTime+.5));i?(this._logDownSegment(i),this._playlist.downloading(i.url,!0),this.emitTo("TS_LOADER",ii.LADER_START,i.url)):this.retrytimes>0&&(this.retrytimes--,this.emitTo("M3U8_LOADER",ii.LADER_START,this.url))}}else if("TS_BUFFER"===e.TAG)this._playlist.downloaded(this._tsloader.url,!0),this._demuxer.demux(Object.assign({url:this._tsloader.url},this._playlist._ts[this._tsloader.url]),!0),this._preload(this.mse.container.currentTime);else if("DECRYPT_BUFFER"===e.TAG)this.retrytimes=this.configs.retrytimes||3,this._playlist.downloaded(this._tsloader.url,!0),this.emitTo("CRYPTO",si.START_DECRYPT,Object.assign({url:this._tsloader.url},this._playlist._ts[this._tsloader.url]));else if("KEY_BUFFER"===e.TAG){this.retrytimes=this.configs.retrytimes||3,this._playlist.encrypt.key=e.shift(),this._crypto=this._context.registry("CRYPTO",ie)({key:this._playlist.encrypt.key,iv:this._playlist.encrypt.ivb,method:this._playlist.encrypt.method,inputbuffer:"DECRYPT_BUFFER",outputbuffer:"TS_BUFFER"}),this._crypto.on(si.DECRYPTED,this._onDcripted.bind(this));var r=this._playlist.getTs();r?(this._playlist.downloading(r.url,!0),this.emitTo("TS_LOADER",ii.LADER_START,r.url)):this.retrytimes>0&&(this.retrytimes--,this.emitTo("M3U8_LOADER",ii.LADER_START,this.url))}}},{key:"_onDcripted",value:function(){this.emit(ni.DEMUX_START)}},{key:"seek",value:function(e){for(var t=this._player.video,i=0;i<t.buffered.length;i++)if(e>=t.buffered.start(i)&&e<t.buffered.end(i))return;pe.warn(this.TAG,"seek: ",e,"tsloading:",this._tsloader.loading);var r=this._playlist.getTs(1e3*(e+.5));r&&this._tsloader.loading&&this._tsloader.url===r.url||(this._lastSeekTime=e,this._tsloader.destroy(),this._tsloader=this._context.registry("TS_LOADER",de)({buffer:"TS_BUFFER",readtype:3}),this._presource.sources.video&&(this._presource.sources.video.data=[]),this._presource.sources.audio&&(this._presource.sources.audio.data=[]),this._tracks.audioTrack&&(this._tracks.audioTrack.samples=[]),this._tracks.videoTrack&&(this._tracks.videoTrack.samples=[]),this._compat&&this._compat.reset(),this._tsBuffer&&(this._tsBuffer.array=[],this._tsBuffer.length=0,this._tsBuffer.offset=0),this._playlist.clearDownloaded(),this._context.seek(e),this._preload(e))}},{key:"replay",value:function(){this._compat.reset(),this._playlist.clearDownloaded()}},{key:"load",value:function(e){this.url=e,this.emitTo("M3U8_LOADER",ii.LADER_START,e,null,0)}},{key:"_preload",value:function(e){if(e=Math.floor(e),!this._tsloader.loading){pe.log(this.TAG,"preload: time=",e);var t=this.mse.container,i=-1;!e&&t.buffered.length&&(e=t.buffered.start(0));for(var r=0;r<t.buffered.length;r++)e>=Math.floor(t.buffered.start(r))&&e<=Math.ceil(t.buffered.end(r))&&(i=t.buffered.end(r));if(i<0){var n=this._playlist.getTs(1e3*(e+.5));n&&n.downloaded&&(n=this._playlist.getTs(n.time+n.duration)),!n||n.downloading||n.downloaded||(this._logDownSegment(n),this._playlist.downloading(n.url,!0),this.emitTo("TS_LOADER",ii.LADER_START,n.url))}else if(i<e+this.preloadTime){var s=this._playlist.getLastDownloadedTs()||this._playlist.getTs(1e3*i);if(!s)return;var a=s.time+s.duration,o=s.time;if(s.downloaded)for(var u=1e3;u-- >0&&(a+=10,(s=this._playlist.getTs(a))&&!(s.time>o)););!s||s.downloading||s.downloaded||(this._logDownSegment(s),this._playlist.downloading(s.url,!0),this.emitTo("TS_LOADER",ii.LADER_START,s.url))}}}},{key:"cleanBuffer",value:function(){var e=this,t=this._player.currentTime,i=this._player.video,r=i.buffered;if(r&&r.length){var n=[0,0],s=i.currentTime;if(r)for(var a=0,o=r.length;a<o&&(n[0]=r.start(a),n[1]=r.end(a),!(n[0]<=s&&s<=n[1]));a++);var u=n[0],l=n[1];(t-u>10||r.length>1)&&(this.mse.remove(Math.max(Math.min(t-10,l-10),.1),0),this.bufferClearTimer=setTimeout((function(){e.bufferClearTimer=null}),5e3))}}},{key:"destory",value:function(){this.configs={},this.url="",this.sequence=0,this._playlist=null,this.retrytimes=3,this.container=void 0,this.preloadTime=5,this._lastSeekTime=0,this.m3u8Text=null,this.mse=null,this.off(ii.LOADER_COMPLETE,this._onLoaderCompete),this.off(ii.LOADER_ERROR,this._onLoadError),this.off(ri.INIT_SEGMENT,this._onInitSegment),this.off(ri.MEDIA_SEGMENT,this._onMediaSegment),this.off(ni.METADATA_PARSED,this._onMetadataParsed),this.off(ni.DEMUX_COMPLETE,this._onDemuxComplete),this.off("TIME_UPDATE",this._onTimeUpdate),this.off("WAITING",this._onWaiting)}},{key:"_logDownSegment",value:function(e){e&&(pe.groupEnd(),pe.group(this.TAG,"load "+e.id+": ["+e.time/1e3+" , "+(e.time+e.duration)/1e3+"], downloading: "+e.downloading+" , donwloaded: "+e.downloaded))}}]),e}(),ui="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},li=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}(),hi=function e(t,i,r,n){var s=Object.getOwnPropertyDescriptor(t,i);if(void 0===s){var a=Object.getPrototypeOf(t);null!==a&&e(a,i,r,n)}else if("value"in s&&s.writable)s.value=r;else{var o=s.set;void 0!==o&&o.call(n,r)}return r},ci=function e(t,i,r){null===t&&(t=Function.prototype);var n=Object.getOwnPropertyDescriptor(t,i);if(void 0===n){var s=Object.getPrototypeOf(t);return null===s?void 0:e(s,i,r)}if("value"in n)return n.value;var a=n.get;return void 0!==a?a.call(r):void 0};var di=function(e,t){var i=Date.now(),r=null,n=!0;return function(){for(var s=arguments.length,a=Array(s),o=0;o<s;o++)a[o]=arguments[o];var u=Date.now();n&&(i=Date.now(),n=!1,e.apply(void 0,a)),u-i>t?(i=u,e.apply(void 0,a)):(r&&window.clearTimeout(r),r=setTimeout((function(){e.apply(void 0,a)}),t))}},fi=f.HlsAllowedEvents,pi=f.REMUX_EVENTS,yi=f.HLS_EVENTS,_i=f.MSE_EVENTS,vi=function(t){function i(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":ui(t))&&"function"!=typeof t?e:t}(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t));return r.hlsOps={},r.util=e.util,r.util.deepCopy(r.hlsOps,t),r._handleSetCurrentTime=di(r._handleSetCurrentTime.bind(r),200),r.onWaiting=r.onWaiting.bind(r),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":ui(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(i,t),li(i,[{key:"_handleSetCurrentTime",value:function(e){(e=parseFloat(e))!==this.currentTime&&(hi(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"currentTime",e,this),this._context&&this.__core__.seek(e))}},{key:"play",value:function(){var e=this;return this.video.play().catch((function(t){t&&20===t.code&&e.once("canplay",(function(){e.video.play()}))}))}},{key:"replay",value:function(){var e=this;this.__core__.mse.cleanBuffers().then((function(){e.__core__.replay(),ci(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"replay",e).call(e)}))}},{key:"_initEvents",value:function(){var t=this;this.__core__.once(pi.INIT_SEGMENT,(function(){var e=t.__core__.mse;ci(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"start",t).call(t,e.url)})),this.__core__.once(yi.RETRY_TIME_EXCEEDED,(function(){t.emit("error",new e.Errors("network",t.config.url))})),this.__core__.on(_i.SOURCE_UPDATE_END,(function(){t._onSourceUpdateEnd()})),this.once("canplay",(function(){t.config.autoplay&&t.play()}))}},{key:"initHlsBackupEvents",value:function(e,t){var r=this;e.once(pi.INIT_SEGMENT,(function(){if(!r.video.src){console.log("挂载 src blob");var t=e.mse;ci(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"start",r).call(r,t.url)}})),e.once(f.REMUX_EVENTS.MEDIA_SEGMENT,(function(){r.__core__=e,r.__core__.mse.cleanBuffers().then((function(){r.__core__.mse.resetContext(t),r.__core__.mse.doAppend(),r._context=t}))})),e.once(f.LOADER_EVENTS.LOADER_ERROR,(function(){t.destroy()}))}},{key:"_onSourceUpdateEnd",value:function(){if(1===this.video.readyState||2===this.video.readyState){var e=this.detectBufferGap(),t=e.gap,i=e.start,r=e.method;t&&("ceil"===r&&this.currentTime<Math[r](i)||"floor"===r&&this.currentTime>Math[r](i))&&(this.currentTime=Math[r](i))}}},{key:"start",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.url;e&&!this.started&&(this._context||(this._context=new $(this,this.hlsOps,fi)),this.__core__=this._context.registry("HLS_VOD_CONTROLLER",oi)({player:this,container:this.video,preloadTime:this.config.preloadTime}),this._context.init(),this.__core__.load(e),this._initEvents(),this.started=!0)}},{key:"switchURL",value:function(e){this.config.url=e;var t=new $(this,this.hlsOps,fi),i=t.registry("HLS_VOD_CONTROLLER",oi)({player:this,container:this.video,mse:this.__core__.mse,preloadTime:this.config.preloadTime});this.newContext=t,this.newHls=i,t.init(),this._context.destroy(),this.initHlsBackupEvents(i,t),this.__core__.mse.cleanBuffers().then((function(){i.load(e)}))}},{key:"destroy",value:function(){var e=this;return new Promise((function(t){e.__core__&&e.__core__.mse?(e.__core__.mse.destroy().then((function(){e._context&&e._context.destroy(),ci(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"destroy",e).call(e),t()})),setTimeout((function(){t()}),100)):(ci(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"destroy",e).call(e),setTimeout((function(){t()}),50))}))}},{key:"detectBufferGap",value:function(){for(var e=this.video,t={gap:!1,start:-1},i=0===this.currentTime,r=0;r<e.buffered.length;r++){var n=e.buffered.start(r),s=e.buffered.end(r);if((!e.played.length||n<=this.currentTime&&s-this.currentTime>=.5)&&!i)break;var a=n-this.currentTime,o=this.currentTime-s;if(a>.01&&(a<=2||i)){t={gap:!0,start:n,method:"ceil"};break}t=o>.1&&(o<=2||i)?{gap:!0,start:s,method:"floor"}:{gap:!1,start:-1}}return t}},{key:"currentTime",get:function(){return ci(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"currentTime",this)},set:function(e){this._handleSetCurrentTime(e)}},{key:"src",get:function(){return this.currentSrc},set:function(e){var t=this;this.onWaiting=this.onWaiting.bind(this),this.__core__.mse.destroy().then((function(){t._context.destroy(),t._context=null,t.video.src="",t.video.load(),t.started=!1,t.video.currentTime=0,t.paused?t.play():(t.pause(),t.once("canplay",(function(){t.play()}))),t.start(e)}))}},{key:"context",get:function(){return this._context}}],[{key:"isSupported",value:function(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')}},{key:"install",value:function(t,i){return e.install(t,i)}}]),i}(e),mi=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}();return function(){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),e.isLive?new ei(e):new vi(e)}return mi(t,null,[{key:"isSupported",value:function(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')}},{key:"install",value:function(t,i){return e.install(t,i)}}]),t}()}));
  2. //# sourceMappingURL=index.min.js.map