@tianfeng98/hls.js
Version:
HLS.js is a JavaScript library that supports playing MPEG-TS and HEVC encoded HLS streams in browsers with support for MSE.
1 lines • 96.6 kB
JavaScript
!function(){"use strict";var e=function(e){return e.MEDIA_ATTACHING="hlsMediaAttaching",e.MEDIA_ATTACHED="hlsMediaAttached",e.MEDIA_DETACHING="hlsMediaDetaching",e.MEDIA_DETACHED="hlsMediaDetached",e.BUFFER_RESET="hlsBufferReset",e.BUFFER_CODECS="hlsBufferCodecs",e.BUFFER_CREATED="hlsBufferCreated",e.BUFFER_APPENDING="hlsBufferAppending",e.BUFFER_APPENDED="hlsBufferAppended",e.BUFFER_EOS="hlsBufferEos",e.BUFFER_FLUSHING="hlsBufferFlushing",e.BUFFER_FLUSHED="hlsBufferFlushed",e.MANIFEST_LOADING="hlsManifestLoading",e.MANIFEST_LOADED="hlsManifestLoaded",e.MANIFEST_PARSED="hlsManifestParsed",e.LEVEL_SWITCHING="hlsLevelSwitching",e.LEVEL_SWITCHED="hlsLevelSwitched",e.LEVEL_LOADING="hlsLevelLoading",e.LEVEL_LOADED="hlsLevelLoaded",e.LEVEL_UPDATED="hlsLevelUpdated",e.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",e.LEVELS_UPDATED="hlsLevelsUpdated",e.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",e.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",e.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",e.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",e.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",e.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",e.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",e.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",e.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",e.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",e.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",e.CUES_PARSED="hlsCuesParsed",e.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",e.INIT_PTS_FOUND="hlsInitPtsFound",e.FRAG_LOADING="hlsFragLoading",e.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",e.FRAG_LOADED="hlsFragLoaded",e.FRAG_DECRYPTED="hlsFragDecrypted",e.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",e.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",e.FRAG_PARSING_METADATA="hlsFragParsingMetadata",e.FRAG_PARSED="hlsFragParsed",e.FRAG_BUFFERED="hlsFragBuffered",e.FRAG_CHANGED="hlsFragChanged",e.FPS_DROP="hlsFpsDrop",e.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",e.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",e.ERROR="hlsError",e.DESTROYING="hlsDestroying",e.KEY_LOADING="hlsKeyLoading",e.KEY_LOADED="hlsKeyLoaded",e.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",e.BACK_BUFFER_REACHED="hlsBackBufferReached",e.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",e}({}),t=function(e){return e.NETWORK_ERROR="networkError",e.MEDIA_ERROR="mediaError",e.KEY_SYSTEM_ERROR="keySystemError",e.MUX_ERROR="muxError",e.OTHER_ERROR="otherError",e}({}),r=function(e){return e.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",e.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",e.KEY_SYSTEM_NO_SESSION="keySystemNoSession",e.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",e.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",e.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",e.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",e.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",e.MANIFEST_LOAD_ERROR="manifestLoadError",e.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",e.MANIFEST_PARSING_ERROR="manifestParsingError",e.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",e.LEVEL_EMPTY_ERROR="levelEmptyError",e.LEVEL_LOAD_ERROR="levelLoadError",e.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",e.LEVEL_PARSING_ERROR="levelParsingError",e.LEVEL_SWITCH_ERROR="levelSwitchError",e.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",e.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",e.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",e.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",e.FRAG_LOAD_ERROR="fragLoadError",e.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",e.FRAG_DECRYPT_ERROR="fragDecryptError",e.FRAG_PARSING_ERROR="fragParsingError",e.FRAG_GAP="fragGap",e.REMUX_ALLOC_ERROR="remuxAllocError",e.KEY_LOAD_ERROR="keyLoadError",e.KEY_LOAD_TIMEOUT="keyLoadTimeOut",e.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",e.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",e.BUFFER_APPEND_ERROR="bufferAppendError",e.BUFFER_APPENDING_ERROR="bufferAppendingError",e.BUFFER_STALLED_ERROR="bufferStalledError",e.BUFFER_FULL_ERROR="bufferFullError",e.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",e.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",e.INTERNAL_EXCEPTION="internalException",e.INTERNAL_ABORTED="aborted",e.UNKNOWN="unknown",e}({}),a=function(){function e(e,t){this.subtle=void 0,this.aesIV=void 0,this.subtle=e,this.aesIV=t}return e.prototype.decrypt=function(e,t){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e)},e}(),i=function(){function e(e,t){this.subtle=void 0,this.key=void 0,this.subtle=e,this.key=t}return e.prototype.expandKey=function(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])},e}();function n(e,t,r){return Uint8Array.prototype.slice?e.slice(t,r):new Uint8Array(Array.prototype.slice.call(e,t,r))}var s=function(){function e(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}var t=e.prototype;return t.uint8ArrayToUint32Array_=function(e){for(var t=new DataView(e),r=new Uint32Array(4),a=0;a<4;a++)r[a]=t.getUint32(4*a);return r},t.initTable=function(){var e=this.sBox,t=this.invSBox,r=this.subMix,a=r[0],i=r[1],n=r[2],s=r[3],o=this.invSubMix,u=o[0],d=o[1],c=o[2],l=o[3],h=new Uint32Array(256),f=0,p=0,m=0;for(m=0;m<256;m++)h[m]=m<128?m<<1:m<<1^283;for(m=0;m<256;m++){var v=p^p<<1^p<<2^p<<3^p<<4;v=v>>>8^255&v^99,e[f]=v,t[v]=f;var y=h[f],g=h[y],b=h[g],S=257*h[v]^16843008*v;a[f]=S<<24|S>>>8,i[f]=S<<16|S>>>16,n[f]=S<<8|S>>>24,s[f]=S,S=16843009*b^65537*g^257*y^16843008*f,u[v]=S<<24|S>>>8,d[v]=S<<16|S>>>16,c[v]=S<<8|S>>>24,l[v]=S,f?(f=y^h[h[h[b^y]]],p^=h[h[p]]):f=p=1}},t.expandKey=function(e){for(var t=this.uint8ArrayToUint32Array_(e),r=!0,a=0;a<t.length&&r;)r=t[a]===this.key[a],a++;if(!r){this.key=t;var i=this.keySize=t.length;if(4!==i&&6!==i&&8!==i)throw new Error("Invalid aes key size="+i);var n,s,o,u,d=this.ksRows=4*(i+6+1),c=this.keySchedule=new Uint32Array(d),l=this.invKeySchedule=new Uint32Array(d),h=this.sBox,f=this.rcon,p=this.invSubMix,m=p[0],v=p[1],y=p[2],g=p[3];for(n=0;n<d;n++)n<i?o=c[n]=t[n]:(u=o,n%i==0?(u=h[(u=u<<8|u>>>24)>>>24]<<24|h[u>>>16&255]<<16|h[u>>>8&255]<<8|h[255&u],u^=f[n/i|0]<<24):i>6&&n%i==4&&(u=h[u>>>24]<<24|h[u>>>16&255]<<16|h[u>>>8&255]<<8|h[255&u]),c[n]=o=(c[n-i]^u)>>>0);for(s=0;s<d;s++)n=d-s,u=3&s?c[n]:c[n-4],l[s]=s<4||n<=4?u:m[h[u>>>24]]^v[h[u>>>16&255]]^y[h[u>>>8&255]]^g[h[255&u]],l[s]=l[s]>>>0}},t.networkToHostOrderSwap=function(e){return e<<24|(65280&e)<<8|(16711680&e)>>8|e>>>24},t.decrypt=function(e,t,r){for(var a,i,n,s,o,u,d,c,l,h,f,p,m,v,y=this.keySize+6,g=this.invKeySchedule,b=this.invSBox,S=this.invSubMix,E=S[0],T=S[1],_=S[2],A=S[3],x=this.uint8ArrayToUint32Array_(r),R=x[0],w=x[1],U=x[2],k=x[3],P=new Int32Array(e),D=new Int32Array(P.length),C=this.networkToHostOrderSwap;t<P.length;){for(l=C(P[t]),h=C(P[t+1]),f=C(P[t+2]),p=C(P[t+3]),o=l^g[0],u=p^g[1],d=f^g[2],c=h^g[3],m=4,v=1;v<y;v++)a=E[o>>>24]^T[u>>16&255]^_[d>>8&255]^A[255&c]^g[m],i=E[u>>>24]^T[d>>16&255]^_[c>>8&255]^A[255&o]^g[m+1],n=E[d>>>24]^T[c>>16&255]^_[o>>8&255]^A[255&u]^g[m+2],s=E[c>>>24]^T[o>>16&255]^_[u>>8&255]^A[255&d]^g[m+3],o=a,u=i,d=n,c=s,m+=4;a=b[o>>>24]<<24^b[u>>16&255]<<16^b[d>>8&255]<<8^b[255&c]^g[m],i=b[u>>>24]<<24^b[d>>16&255]<<16^b[c>>8&255]<<8^b[255&o]^g[m+1],n=b[d>>>24]<<24^b[c>>16&255]<<16^b[o>>8&255]<<8^b[255&u]^g[m+2],s=b[c>>>24]<<24^b[o>>16&255]<<16^b[u>>8&255]<<8^b[255&d]^g[m+3],D[t]=C(a^R),D[t+1]=C(s^w),D[t+2]=C(n^U),D[t+3]=C(i^k),R=l,w=h,U=f,k=p,t+=4}return D.buffer},e}(),o=function(){},u={trace:o,debug:o,log:o,warn:o,info:o,error:o},d=u;function c(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),a=1;a<t;a++)r[a-1]=arguments[a];r.forEach((function(t){d[t]=e[t]?e[t].bind(e):function(e){var t=self.console[e];return t?t.bind(self.console,"["+e+"] >"):o}(t)}))}function l(e,t){if(self.console&&!0===e||"object"==typeof e){c(e,"debug","log","info","warn","error");try{d.log('Debug logs enabled for "'+t+'" in hls.js version 1.0.1')}catch(e){d=u}}else d=u}var h=d;function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){m(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function m(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},v.apply(this,arguments)}function y(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,g(e,t)}function g(e,t){return g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},g(e,t)}var b=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)};function S(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var E,T,_,A,x;E=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,T=/^(?=([^\/?#]*))\1([^]*)$/,_=/(?:\/|^)\.(?=\/)/g,A=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,x={buildAbsoluteURL:function(e,t,r){if(r=r||{},e=e.trim(),!(t=t.trim())){if(!r.alwaysNormalize)return e;var a=x.parseURL(e);if(!a)throw new Error("Error trying to parse base URL.");return a.path=x.normalizePath(a.path),x.buildURLFromParts(a)}var i=x.parseURL(t);if(!i)throw new Error("Error trying to parse relative URL.");if(i.scheme)return r.alwaysNormalize?(i.path=x.normalizePath(i.path),x.buildURLFromParts(i)):t;var n=x.parseURL(e);if(!n)throw new Error("Error trying to parse base URL.");if(!n.netLoc&&n.path&&"/"!==n.path[0]){var s=T.exec(n.path);n.netLoc=s[1],n.path=s[2]}n.netLoc&&!n.path&&(n.path="/");var o={scheme:n.scheme,netLoc:i.netLoc,path:null,params:i.params,query:i.query,fragment:i.fragment};if(!i.netLoc&&(o.netLoc=n.netLoc,"/"!==i.path[0]))if(i.path){var u=n.path,d=u.substring(0,u.lastIndexOf("/")+1)+i.path;o.path=x.normalizePath(d)}else o.path=n.path,i.params||(o.params=n.params,i.query||(o.query=n.query));return null===o.path&&(o.path=r.alwaysNormalize?x.normalizePath(i.path):i.path),x.buildURLFromParts(o)},parseURL:function(e){var t=E.exec(e);return t?{scheme:t[1]||"",netLoc:t[2]||"",path:t[3]||"",params:t[4]||"",query:t[5]||"",fragment:t[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(_,"");e.length!==(e=e.replace(A,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}};var R,w="audio",U="video",k=function(e,t){return t+10<=e.length&&73===e[t]&&68===e[t+1]&&51===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128},P=function(e,t){return t+10<=e.length&&51===e[t]&&68===e[t+1]&&73===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128},D=function(e,t){for(var r=t,a=0;k(e,t);){a+=10,a+=C(e,t+6),P(e,t+10)&&(a+=10),t+=a}if(a>0)return e.subarray(r,r+a)},C=function(e,t){var r=0;return r=(127&e[t])<<21,r|=(127&e[t+1])<<14,r|=(127&e[t+2])<<7,r|=127&e[t+3]},I=function(e,t){return k(e,t)&&C(e,t+6)+10<=e.length-t},L=function(e){for(var t=F(e),r=0;r<t.length;r++){var a=t[r];if(O(a))return K(a)}},O=function(e){return e&&"PRIV"===e.key&&"com.apple.streaming.transportStreamTimestamp"===e.info},B=function(e){var t=String.fromCharCode(e[0],e[1],e[2],e[3]),r=C(e,4);return{type:t,size:r,data:e.subarray(10,10+r)}},F=function(e){for(var t=0,r=[];k(e,t);){for(var a=C(e,t+6),i=(t+=10)+a;t+8<i;){var n=B(e.subarray(t)),s=M(n);s&&r.push(s),t+=n.size+10}P(e,t)&&(t+=10)}return r},M=function(e){return"PRIV"===e.type?N(e):"W"===e.type[0]?V(e):G(e)},N=function(e){if(!(e.size<2)){var t=Y(e.data,!0),r=new Uint8Array(e.data.subarray(t.length+1));return{key:e.type,info:t,data:r.buffer}}},G=function(e){if(!(e.size<2)){if("TXXX"===e.type){var t=1,r=Y(e.data.subarray(t),!0);t+=r.length+1;var a=Y(e.data.subarray(t));return{key:e.type,info:r,data:a}}var i=Y(e.data.subarray(1));return{key:e.type,data:i}}},V=function(e){if("WXXX"===e.type){if(e.size<2)return;var t=1,r=Y(e.data.subarray(t),!0);t+=r.length+1;var a=Y(e.data.subarray(t));return{key:e.type,info:r,data:a}}var i=Y(e.data);return{key:e.type,data:i}},K=function(e){if(8===e.data.byteLength){var t=new Uint8Array(e.data),r=1&t[3],a=(t[4]<<23)+(t[5]<<15)+(t[6]<<7)+t[7];return a/=45,r&&(a+=47721858.84),Math.round(a)}},Y=function(e,t){void 0===t&&(t=!1);var r=z();if(r){var a=r.decode(e);if(t){var i=a.indexOf("\0");return-1!==i?a.substring(0,i):a}return a.replace(/\0/g,"")}for(var n,s,o,u=e.length,d="",c=0;c<u;){if(0===(n=e[c++])&&t)return d;if(0!==n&&3!==n)switch(n>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:d+=String.fromCharCode(n);break;case 12:case 13:s=e[c++],d+=String.fromCharCode((31&n)<<6|63&s);break;case 14:s=e[c++],o=e[c++],d+=String.fromCharCode((15&n)<<12|(63&s)<<6|(63&o)<<0)}}return d};function z(){return R||void 0===self.TextDecoder||(R=new self.TextDecoder("utf-8")),R}var j=function(e){for(var t="",r=0;r<e.length;r++){var a=e[r].toString(16);a.length<2&&(a="0"+a),t+=a}return t},H=Math.pow(2,32)-1,W=[].push,q={video:1,audio:2,id3:3,text:4};function X(e){return String.fromCharCode.apply(null,e)}function Z(e,t){var r=e[t]<<8|e[t+1];return r<0?65536+r:r}function J(e,t){var r=Q(e,t);return r<0?4294967296+r:r}function Q(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function $(e,t,r){e[t]=r>>24,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r}function ee(e,t){var r=[];if(!t.length)return r;for(var a=e.byteLength,i=0;i<a;){var n=J(e,i),s=n>1?i+n:a;if(X(e.subarray(i+4,i+8))===t[0])if(1===t.length)r.push(e.subarray(i+8,s));else{var o=ee(e.subarray(i+8,s),t.slice(1));o.length&&W.apply(r,o)}i=s}return r}function te(e){var t=[],r=e[0],a=8,i=J(e,a);a+=4;a+=0===r?8:16,a+=2;var n=e.length+0,s=Z(e,a);a+=2;for(var o=0;o<s;o++){var u=a,d=J(e,u);u+=4;var c=2147483647&d;if(1===(2147483648&d)>>>31)return h.warn("SIDX has hierarchical references (not supported)"),null;var l=J(e,u);u+=4,t.push({referenceSize:c,subsegmentDuration:l,info:{duration:l/i,start:n,end:n+c-1}}),n+=c,a=u+=4}return{earliestPresentationTime:0,timescale:i,version:r,referencesCount:s,references:t}}function re(e){for(var t=[],r=ee(e,["moov","trak"]),a=0;a<r.length;a++){var i=r[a],n=ee(i,["tkhd"])[0];if(n){var s=n[0],o=J(n,0===s?12:20),u=ee(i,["mdia","mdhd"])[0];if(u){var d=J(u,0===(s=u[0])?12:20),c=ee(i,["mdia","hdlr"])[0];if(c){var l=X(c.subarray(8,12)),h={soun:w,vide:U}[l];if(h){var f=ae(ee(i,["mdia","minf","stbl","stsd"])[0]);t[o]={timescale:d,type:h},t[h]=p({timescale:d,id:o},f)}}}}}return ee(e,["moov","mvex","trex"]).forEach((function(e){var r=J(e,4),a=t[r];a&&(a.default={duration:J(e,12),flags:J(e,20)})})),t}function ae(e){var t=e.subarray(8),r=t.subarray(86),a=X(t.subarray(4,8)),i=a,n="enca"===a||"encv"===a;if(n){var s=ee(t,[a])[0];ee(s.subarray("enca"===a?28:78),["sinf"]).forEach((function(e){var t=ee(e,["schm"])[0];if(t){var r=X(t.subarray(4,8));if("cbcs"===r||"cenc"===r){var a=ee(e,["frma"])[0];a&&(i=X(a))}}}))}switch(i){case"avc1":case"avc2":case"avc3":case"avc4":i+="."+ie(e[111])+ie(e[112])+ie(e[113]);break;case"mp4a":var o=ee(t,[a])[0],u=ee(o.subarray(28),["esds"])[0];u&&u.length>12&&0!==u[11]&&(i+="."+ie(u[11]),i+="."+(u[12]>>>2&63).toString(16).toUpperCase());break;case"hvc1":case"hev1":var d=ee(r,["hvcC"])[0],c=d[1],l=["","A","B","C"][c>>6],h=31&c,f=J(d,2),p=(32&c)>>5?"H":"L",m=d[12],v=d.subarray(6,12);i+="."+l+h,i+="."+f.toString(16).toUpperCase(),i+="."+p+m;for(var y="",g=v.length;g--;){var b=v[g];if(b||y)y="."+b.toString(16).toUpperCase()+y}i+=y;break;case"dvh1":case"dvhe":var S=ee(r,["dvcC"])[0],E=S[2]>>1&127,T=S[2]<<5&32|S[3]>>3&31;i+="."+ne(E)+"."+ne(T);break;case"vp09":var _=ee(r,["vpcC"])[0],A=_[4],x=_[5],R=_[6]>>4&15;i+="."+ne(A)+"."+ne(x)+"."+ne(R);break;case"av01":var w=ee(r,["av1C"])[0],U=w[1]>>>5,k=31&w[1],P=w[2]>>>7?"H":"M",D=(64&w[2])>>6,C=(32&w[2])>>5,I=2===U&&D?C?12:10:D?10:8,L=(16&w[2])>>4,O=(8&w[2])>>3,B=(4&w[2])>>2,F=3&w[2];i+="."+U+"."+ne(k)+P+"."+ne(I)+"."+L+"."+O+B+F+"."+ne(1)+"."+ne(1)+"."+ne(1)+".0"}return{codec:i,encrypted:n}}function ie(e){return("0"+e.toString(16).toUpperCase()).slice(-2)}function ne(e){return(e<10?"0":"")+e}function se(e,t){if(!e||!t)return e;var r=t.keyId;r&&t.isCommonEncryption&&ee(e,["moov","trak"]).forEach((function(e){var t=ee(e,["mdia","minf","stbl","stsd"])[0].subarray(8),a=ee(t,["enca"]),i=a.length>0;i||(a=ee(t,["encv"])),a.forEach((function(e){ee(i?e.subarray(28):e.subarray(78),["sinf"]).forEach((function(e){var t=function(e){var t=ee(e,["schm"])[0];if(t){var r=X(t.subarray(4,8));if("cbcs"===r||"cenc"===r)return ee(e,["schi","tenc"])[0]}return h.error("[eme] missing 'schm' box"),null}(e);if(t){var a=t.subarray(8,24);a.some((function(e){return 0!==e}))||(h.log("[eme] Patching keyId in 'enc"+(i?"a":"v")+">sinf>>tenc' box: "+j(a)+" -> "+j(r)),t.set(r,8))}}))}))}));return e}function oe(e){var t=J(e,0),r=8;1&t&&(r+=4),4&t&&(r+=4);for(var a=0,i=J(e,4),n=0;n<i;n++){if(256&t)a+=J(e,r),r+=4;512&t&&(r+=4),1024&t&&(r+=4),2048&t&&(r+=4)}return a}function ue(e,t){var r=new Uint8Array(e.length+t.length);return r.set(e),r.set(t,e.length),r}function de(e,t){var r=[],a=t.samples,i=t.timescale,n=t.id,s=!1;return ee(a,["moof"]).map((function(o){var u=o.byteOffset-8;ee(o,["traf"]).map((function(o){var d=ee(o,["tfdt"]).map((function(e){var t=e[0],r=J(e,4);return 1===t&&(r*=Math.pow(2,32),r+=J(e,8)),r/i}))[0];return void 0!==d&&(e=d),ee(o,["tfhd"]).map((function(d){var c=J(d,4),l=16777215&J(d,0),h=0,f=0!=(16&l),p=0,m=0!=(32&l),v=8;c===n&&(0!=(1&l)&&(v+=8),0!=(2&l)&&(v+=4),0!=(8&l)&&(h=J(d,v),v+=4),f&&(p=J(d,v),v+=4),m&&(v+=4),"video"===t.type&&(s=function(e){if(!e)return!1;var t=e.indexOf("."),r=t<0?e:e.substring(0,t);return"hvc1"===r||"hev1"===r||"dvh1"===r||"dvhe"===r}(t.codec)),ee(o,["trun"]).map((function(n){var o=n[0],d=16777215&J(n,0),c=0!=(1&d),l=0,f=0!=(4&d),m=0!=(256&d),v=0,y=0!=(512&d),g=0,b=0!=(1024&d),S=0!=(2048&d),E=0,T=J(n,4),_=8;c&&(l=J(n,_),_+=4),f&&(_+=4);for(var A=l+u,x=0;x<T;x++){if(m?(v=J(n,_),_+=4):v=h,y?(g=J(n,_),_+=4):g=p,b&&(_+=4),S&&(E=0===o?J(n,_):Q(n,_),_+=4),t.type===U)for(var R=0;R<g;){var w=J(a,A);if(ce(s,a[A+=4]))le(a.subarray(A,A+w),s?2:1,e+E/i,r);A+=w,R+=w+4}e+=v/i}})))}))}))})),r}function ce(e,t){if(e){var r=t>>1&63;return 39===r||40===r}return 6===(31&t)}function le(e,t,r,a){var i=he(e),n=0;n+=t;for(var s=0,o=0,u=!1,d=0;n<i.length;){s=0;do{if(n>=i.length)break;s+=d=i[n++]}while(255===d);o=0;do{if(n>=i.length)break;o+=d=i[n++]}while(255===d);var c=i.length-n;if(!u&&4===s&&n<i.length){if(u=!0,181===i[n++]){var l=Z(i,n);if(n+=2,49===l){var h=J(i,n);if(n+=4,1195456820===h){var f=i[n++];if(3===f){var p=i[n++],m=64&p,v=m?2+3*(31&p):0,y=new Uint8Array(v);if(m){y[0]=p;for(var g=1;g<v;g++)y[g]=i[n++]}a.push({type:f,payloadType:s,pts:r,bytes:y})}}}}}else if(5===s&&o<c){if(u=!0,o>16){for(var b=[],S=0;S<16;S++){var E=i[n++].toString(16);b.push(1==E.length?"0"+E:E),3!==S&&5!==S&&7!==S&&9!==S||b.push("-")}for(var T=o-16,_=new Uint8Array(T),A=0;A<T;A++)_[A]=i[n++];a.push({payloadType:s,pts:r,uuid:b.join(""),userData:Y(_),userDataBytes:_})}}else if(o<c)n+=o;else if(o>c)break}}function he(e){for(var t=e.byteLength,r=[],a=1;a<t-2;)0===e[a]&&0===e[a+1]&&3===e[a+2]?(r.push(a+2),a+=2):a++;if(0===r.length)return e;var i=t-r.length,n=new Uint8Array(i),s=0;for(a=0;a<i;s++,a++)s===r[0]&&(s++,r.shift()),n[a]=e[s];return n}var fe=function(){function e(e,t){var r=(void 0===t?{}:t).removePKCS7Padding,a=void 0===r||r;if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=e.enableSoftwareAES,this.removePKCS7Padding=a,a)try{var i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle)}catch(e){}null===this.subtle&&(this.useSoftware=!0)}var t=e.prototype;return t.destroy=function(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null},t.isSync=function(){return this.useSoftware},t.flush=function(){var e=this.currentResult,t=this.remainderData;if(!e||t)return this.reset(),null;var r,a,i,s=new Uint8Array(e);return this.reset(),this.removePKCS7Padding?(a=(r=s).byteLength,(i=a&&new DataView(r.buffer).getUint8(a-1))?n(r,0,a-i):r):s},t.reset=function(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)},t.decrypt=function(e,t,r){var a=this;return this.useSoftware?new Promise((function(i,n){a.softwareDecrypt(new Uint8Array(e),t,r);var s=a.flush();s?i(s.buffer):n(new Error("[softwareDecrypt] Failed to decrypt data"))})):this.webCryptoDecrypt(new Uint8Array(e),t,r)},t.softwareDecrypt=function(e,t,r){var a=this.currentIV,i=this.currentResult,o=this.remainderData;this.logOnce("JS AES decrypt"),o&&(e=ue(o,e),this.remainderData=null);var u=this.getValidChunk(e);if(!u.length)return null;a&&(r=a);var d=this.softwareDecrypter;d||(d=this.softwareDecrypter=new s),d.expandKey(t);var c=i;return this.currentResult=d.decrypt(u.buffer,0,r),this.currentIV=n(u,-16).buffer,c||null},t.webCryptoDecrypt=function(e,t,r){var n=this,s=this.subtle;return this.key===t&&this.fastAesKey||(this.key=t,this.fastAesKey=new i(s,t)),this.fastAesKey.expandKey().then((function(t){return s?(n.logOnce("WebCrypto AES decrypt"),new a(s,new Uint8Array(r)).decrypt(e.buffer,t)):Promise.reject(new Error("web crypto not initialized"))})).catch((function(a){return h.warn("[decrypter]: WebCrypto Error, disable WebCrypto API, "+a.name+": "+a.message),n.onWebCryptoError(e,t,r)}))},t.onWebCryptoError=function(e,t,r){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,t,r);var a=this.flush();if(a)return a.buffer;throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data")},t.getValidChunk=function(e){var t=e,r=e.length-e.length%16;return r!==e.length&&(t=n(e,0,r),this.remainderData=n(e,r)),t},t.logOnce=function(e){this.logEnabled&&(h.log("[decrypter]: "+e),this.logEnabled=!1)},e}(),pe="org.id3",me="https://aomedia.org/emsg/ID3";function ve(e,t){return void 0===e&&(e=""),void 0===t&&(t=9e4),{type:e,id:-1,pid:-1,inputTimeScale:t,sequenceNumber:-1,samples:[],dropped:0}}var ye=function(){function e(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}var t=e.prototype;return t.resetInitSegment=function(e,t,r,a){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}},t.resetTimeStamp=function(e){this.initPTS=e,this.resetContiguity()},t.resetContiguity=function(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0},t.canParse=function(e,t){return!1},t.appendFrame=function(e,t,r){},t.demux=function(e,t){this.cachedData&&(e=ue(this.cachedData,e),this.cachedData=null);var r,a=D(e,0),i=a?a.length:0,s=this._audioTrack,o=this._id3Track,u=a?L(a):void 0,d=e.length;for((null===this.basePTS||0===this.frameIndex&&b(u))&&(this.basePTS=ge(u,t,this.initPTS),this.lastPTS=this.basePTS),null===this.lastPTS&&(this.lastPTS=this.basePTS),a&&a.length>0&&o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:a,type:pe,duration:Number.POSITIVE_INFINITY});i<d;){if(this.canParse(e,i)){var c=this.appendFrame(s,e,i);c?(this.frameIndex++,this.lastPTS=c.sample.pts,r=i+=c.length):i=d}else I(e,i)?(a=D(e,i),o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:a,type:pe,duration:Number.POSITIVE_INFINITY}),r=i+=a.length):i++;if(i===d&&r!==d){var l=n(e,r);this.cachedData?this.cachedData=ue(this.cachedData,l):this.cachedData=l}}return{audioTrack:s,videoTrack:ve(),id3Track:o,textTrack:ve()}},t.demuxSampleAes=function(e,t,r){return Promise.reject(new Error("["+this+"] This demuxer does not support Sample-AES decryption"))},t.flush=function(e){var t=this.cachedData;return t&&(this.cachedData=null,this.demux(t,0)),{audioTrack:this._audioTrack,videoTrack:ve(),id3Track:this._id3Track,textTrack:ve()}},t.destroy=function(){},e}(),ge=function(e,t,r){return b(e)?90*e:9e4*t+(r?9e4*r.baseTime/r.timescale:0)};function be(e,t){return 255===e[t]&&240==(246&e[t+1])}function Se(e,t){return 1&e[t+1]?7:9}function Ee(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function Te(e,t){return t+1<e.length&&be(e,t)}function _e(e,t){if(Te(e,t)){var r=Se(e,t);if(t+r>=e.length)return!1;var a=Ee(e,t);if(a<=r)return!1;var i=t+a;return i===e.length||Te(e,i)}return!1}function Ae(a,i,n,s,o){if(!a.samplerate){var u=function(a,i,n,s){var o,u,d,c,l=navigator.userAgent.toLowerCase(),f=s,p=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];o=1+((192&i[n+2])>>>6);var m=(60&i[n+2])>>>2;if(!(m>p.length-1))return d=(1&i[n+2])<<2,d|=(192&i[n+3])>>>6,h.log("manifest codec:"+s+", ADTS type:"+o+", samplingIndex:"+m),/firefox/i.test(l)?m>=6?(o=5,c=new Array(4),u=m-3):(o=2,c=new Array(2),u=m):-1!==l.indexOf("android")?(o=2,c=new Array(2),u=m):(o=5,c=new Array(4),s&&(-1!==s.indexOf("mp4a.40.29")||-1!==s.indexOf("mp4a.40.5"))||!s&&m>=6?u=m-3:((s&&-1!==s.indexOf("mp4a.40.2")&&(m>=6&&1===d||/vivaldi/i.test(l))||!s&&1===d)&&(o=2,c=new Array(2)),u=m)),c[0]=o<<3,c[0]|=(14&m)>>1,c[1]|=(1&m)<<7,c[1]|=d<<3,5===o&&(c[1]|=(14&u)>>1,c[2]=(1&u)<<7,c[2]|=8,c[3]=0),{config:c,samplerate:p[m],channelCount:d,codec:"mp4a.40."+o,manifestCodec:f};var v=new Error("invalid ADTS sampling index:"+m);a.emit(e.ERROR,e.ERROR,{type:t.MEDIA_ERROR,details:r.FRAG_PARSING_ERROR,fatal:!0,error:v,reason:v.message})}(i,n,s,o);if(!u)return;a.config=u.config,a.samplerate=u.samplerate,a.channelCount=u.channelCount,a.codec=u.codec,a.manifestCodec=u.manifestCodec,h.log("parsed codec:"+a.codec+", rate:"+u.samplerate+", channels:"+u.channelCount)}}function xe(e){return 9216e4/e}function Re(e,t,r,a,i){var n,s=a+i*xe(e.samplerate),o=function(e,t){var r=Se(e,t);if(t+r<=e.length){var a=Ee(e,t)-r;if(a>0)return{headerLength:r,frameLength:a}}}(t,r);if(o){var u=o.frameLength,d=o.headerLength,c=d+u,l=Math.max(0,r+c-t.length);l?(n=new Uint8Array(c-d)).set(t.subarray(r+d,t.length),0):n=t.subarray(r+d,r+c);var h={unit:n,pts:s};return l||e.samples.push(h),{sample:h,length:c,missing:l}}var f=t.length-r;return(n=new Uint8Array(f)).set(t.subarray(r,t.length),0),{sample:{unit:n,pts:s},length:f,missing:-1}}var we=null,Ue=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],ke=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],Pe=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],De=[0,1,1,4];function Ce(e,t,r,a,i){if(!(r+24>t.length)){var n=Ie(t,r);if(n&&r+n.frameLength<=t.length){var s=a+i*(9e4*n.samplesPerFrame/n.sampleRate),o={unit:t.subarray(r,r+n.frameLength),pts:s,dts:s};return e.config=[],e.channelCount=n.channelCount,e.samplerate=n.sampleRate,e.samples.push(o),{sample:o,length:n.frameLength,missing:0}}}}function Ie(e,t){var r=e[t+1]>>3&3,a=e[t+1]>>1&3,i=e[t+2]>>4&15,n=e[t+2]>>2&3;if(1!==r&&0!==i&&15!==i&&3!==n){var s=e[t+2]>>1&1,o=e[t+3]>>6,u=1e3*Ue[14*(3===r?3-a:3===a?3:4)+i-1],d=ke[3*(3===r?0:2===r?1:2)+n],c=3===o?1:2,l=Pe[r][a],h=De[a],f=8*l*h,p=Math.floor(l*u/d+s)*h;if(null===we){var m=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);we=m?parseInt(m[1]):0}return!!we&&we<=87&&2===a&&u>=224e3&&0===o&&(e[t+3]=128|e[t+3]),{sampleRate:d,channelCount:c,frameLength:p,samplesPerFrame:f}}}function Le(e,t){return 255===e[t]&&224==(224&e[t+1])&&0!=(6&e[t+1])}function Oe(e,t){return t+1<e.length&&Le(e,t)}function Be(e,t){if(t+1<e.length&&Le(e,t)){var r=Ie(e,t),a=4;null!=r&&r.frameLength&&(a=r.frameLength);var i=t+a;return i===e.length||Oe(e,i)}return!1}var Fe=function(e){function t(t,r){var a;return(a=e.call(this)||this).observer=void 0,a.config=void 0,a.observer=t,a.config=r,a}y(t,e);var r=t.prototype;return r.resetInitSegment=function(t,r,a,i){e.prototype.resetInitSegment.call(this,t,r,a,i),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:r,duration:i,inputTimeScale:9e4,dropped:0}},t.probe=function(e){if(!e)return!1;var t=D(e,0),r=(null==t?void 0:t.length)||0;if(Be(e,r))return!1;for(var a=e.length;r<a;r++)if(_e(e,r))return h.log("ADTS sync word found !"),!0;return!1},r.canParse=function(e,t){return function(e,t){return function(e,t){return t+5<e.length}(e,t)&&be(e,t)&&Ee(e,t)<=e.length-t}(e,t)},r.appendFrame=function(e,t,r){Ae(e,this.observer,t,r,e.manifestCodec);var a=Re(e,t,r,this.basePTS,this.frameIndex);if(a&&0===a.missing)return a},t}(ye),Me=/\/emsg[-/]ID3/i,Ne=function(){function e(e,t){this.remainderData=null,this.timeOffset=0,this.config=void 0,this.videoTrack=void 0,this.audioTrack=void 0,this.id3Track=void 0,this.txtTrack=void 0,this.config=t}var t=e.prototype;return t.resetTimeStamp=function(){},t.resetInitSegment=function(e,t,r,a){var i=this.videoTrack=ve("video",1),n=this.audioTrack=ve("audio",1),s=this.txtTrack=ve("text",1);if(this.id3Track=ve("id3",1),this.timeOffset=0,null!=e&&e.byteLength){var o=re(e);if(o.video){var u=o.video,d=u.id,c=u.timescale,l=u.codec;i.id=d,i.timescale=s.timescale=c,i.codec=l}if(o.audio){var h=o.audio,f=h.id,p=h.timescale,m=h.codec;n.id=f,n.timescale=p,n.codec=m}s.id=q.text,i.sampleDuration=0,i.duration=n.duration=a}},t.resetContiguity=function(){this.remainderData=null},e.probe=function(e){return function(e){for(var t=e.byteLength,r=0;r<t;){var a=J(e,r);if(a>8&&109===e[r+4]&&111===e[r+5]&&111===e[r+6]&&102===e[r+7])return!0;r=a>1?r+a:t}return!1}(e)},t.demux=function(e,t){this.timeOffset=t;var r=e,a=this.videoTrack,i=this.txtTrack;if(this.config.progressive){this.remainderData&&(r=ue(this.remainderData,e));var s=function(e){var t={valid:null,remainder:null},r=ee(e,["moof"]);if(r.length<2)return t.remainder=e,t;var a=r[r.length-1];return t.valid=n(e,0,a.byteOffset-8),t.remainder=n(e,a.byteOffset-8),t}(r);this.remainderData=s.remainder,a.samples=s.valid||new Uint8Array}else a.samples=r;var o=this.extractID3Track(a,t);return i.samples=de(t,a),{videoTrack:a,audioTrack:this.audioTrack,id3Track:o,textTrack:this.txtTrack}},t.flush=function(){var e=this.timeOffset,t=this.videoTrack,r=this.txtTrack;t.samples=this.remainderData||new Uint8Array,this.remainderData=null;var a=this.extractID3Track(t,this.timeOffset);return r.samples=de(e,t),{videoTrack:t,audioTrack:ve(),id3Track:a,textTrack:ve()}},t.extractID3Track=function(e,t){var r=this.id3Track;if(e.samples.length){var a=ee(e.samples,["emsg"]);a&&a.forEach((function(e){var a=function(e){var t=e[0],r="",a="",i=0,n=0,s=0,o=0,u=0,d=0;if(0===t){for(;"\0"!==X(e.subarray(d,d+1));)r+=X(e.subarray(d,d+1)),d+=1;for(r+=X(e.subarray(d,d+1)),d+=1;"\0"!==X(e.subarray(d,d+1));)a+=X(e.subarray(d,d+1)),d+=1;a+=X(e.subarray(d,d+1)),d+=1,i=J(e,12),n=J(e,16),o=J(e,20),u=J(e,24),d=28}else if(1===t){i=J(e,d+=4);var c=J(e,d+=4),l=J(e,d+=4);for(d+=4,s=Math.pow(2,32)*c+l,Number.isSafeInteger(s)||(s=Number.MAX_SAFE_INTEGER,h.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),o=J(e,d),u=J(e,d+=4),d+=4;"\0"!==X(e.subarray(d,d+1));)r+=X(e.subarray(d,d+1)),d+=1;for(r+=X(e.subarray(d,d+1)),d+=1;"\0"!==X(e.subarray(d,d+1));)a+=X(e.subarray(d,d+1)),d+=1;a+=X(e.subarray(d,d+1)),d+=1}return{schemeIdUri:r,value:a,timeScale:i,presentationTime:s,presentationTimeDelta:n,eventDuration:o,id:u,payload:e.subarray(d,e.byteLength)}}(e);if(Me.test(a.schemeIdUri)){var i=b(a.presentationTime)?a.presentationTime/a.timeScale:t+a.presentationTimeDelta/a.timeScale,n=4294967295===a.eventDuration?Number.POSITIVE_INFINITY:a.eventDuration/a.timeScale;n<=.001&&(n=Number.POSITIVE_INFINITY);var s=a.payload;r.samples.push({data:s,len:s.byteLength,dts:i,pts:i,type:me,duration:n})}}))}return r},t.demuxSampleAes=function(e,t,r){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))},t.destroy=function(){},e}(),Ge=function(e,t){var r=0,a=5;t+=a;for(var i=new Uint32Array(1),n=new Uint32Array(1),s=new Uint8Array(1);a>0;){s[0]=e[t];var o=Math.min(a,8),u=8-o;n[0]=4278190080>>>24+u<<u,i[0]=(s[0]&n[0])>>u,r=r?r<<o|i[0]:i[0],t+=1,a-=o}return r},Ve=function(e){function t(t){var r;return(r=e.call(this)||this).observer=void 0,r.observer=t,r}y(t,e);var r=t.prototype;return r.resetInitSegment=function(t,r,a,i){e.prototype.resetInitSegment.call(this,t,r,a,i),this._audioTrack={container:"audio/ac-3",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"ac3",samples:[],manifestCodec:r,duration:i,inputTimeScale:9e4,dropped:0}},r.canParse=function(e,t){return t+64<e.length},r.appendFrame=function(e,t,r){var a=Ke(e,t,r,this.basePTS,this.frameIndex);if(-1!==a)return{sample:e.samples[e.samples.length-1],length:a,missing:0}},t.probe=function(e){if(!e)return!1;var t=D(e,0);if(!t)return!1;var r=t.length;return 11===e[r]&&119===e[r+1]&&void 0!==L(t)&&Ge(e,r)<16},t}(ye);function Ke(e,t,r,a,i){if(r+8>t.length)return-1;if(11!==t[r]||119!==t[r+1])return-1;var n=t[r+4]>>6;if(n>=3)return-1;var s=[48e3,44100,32e3][n],o=63&t[r+4],u=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*o+n];if(r+u>t.length)return-1;var d=t[r+6]>>5,c=0;2===d?c+=2:(1&d&&1!==d&&(c+=2),4&d&&(c+=2));var l=(t[r+6]<<8|t[r+7])>>12-c&1,h=[2,1,2,3,3,4,4,5][d]+l,f=t[r+5]>>3,p=7&t[r+5],m=new Uint8Array([n<<6|f<<1|p>>2,(3&p)<<6|d<<3|l<<2|o>>4,o<<4&224]),v=a+i*(1536/s*9e4),y=t.subarray(r,r+u);return e.config=m,e.channelCount=h,e.samplerate=s,e.samples.push({unit:y,pts:v}),u}var Ye=function(){function e(){this.VideoSample=null}var t=e.prototype;return t.createVideoSample=function(e,t,r,a){return{key:e,frame:!1,pts:t,dts:r,units:[],debug:a,length:0}},t.getLastNalUnit=function(e){var t,r,a=this.VideoSample;if(a&&0!==a.units.length||(a=e[e.length-1]),null!=(t=a)&&t.units){var i=a.units;r=i[i.length-1]}return r},t.pushAccessUnit=function(e,t){if(e.units.length&&e.frame){if(void 0===e.pts){var r=t.samples,a=r.length;if(!a)return void t.dropped++;var i=r[a-1];e.pts=i.pts,e.dts=i.dts}t.samples.push(e)}e.debug.length&&h.log(e.pts+"/"+e.dts+":"+e.debug)},e}(),ze=function(){function e(e){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=e,this.bytesAvailable=e.byteLength,this.word=0,this.bitsAvailable=0}var t=e.prototype;return t.loadWord=function(){var e=this.data,t=this.bytesAvailable,r=e.byteLength-t,a=new Uint8Array(4),i=Math.min(4,t);if(0===i)throw new Error("no bytes available");a.set(e.subarray(r,r+i)),this.word=new DataView(a.buffer).getUint32(0),this.bitsAvailable=8*i,this.bytesAvailable-=i},t.skipBits=function(e){var t;e=Math.min(e,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,e-=(t=e>>3)<<3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)},t.readBits=function(e){var t=Math.min(this.bitsAvailable,e),r=this.word>>>32-t;if(e>32&&h.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0)this.word<<=t;else{if(!(this.bytesAvailable>0))throw new Error("no bits available");this.loadWord()}return(t=e-t)>0&&this.bitsAvailable?r<<t|this.readBits(t):r},t.skipLZ=function(){var e;for(e=0;e<this.bitsAvailable;++e)if(0!=(this.word&2147483648>>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},t.skipUEG=function(){this.skipBits(1+this.skipLZ())},t.skipEG=function(){this.skipBits(1+this.skipLZ())},t.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},t.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},t.readBoolean=function(){return 1===this.readBits(1)},t.readUByte=function(){return this.readBits(8)},t.readUShort=function(){return this.readBits(16)},t.readUInt=function(){return this.readBits(32)},t.skipScalingList=function(e){for(var t=8,r=8,a=0;a<e;a++)0!==r&&(r=(t+this.readEG()+256)%256),t=0===r?t:r},t.readSPS=function(){var e,t,r,a=0,i=0,n=0,s=0,o=this.readUByte.bind(this),u=this.readBits.bind(this),d=this.readUEG.bind(this),c=this.readBoolean.bind(this),l=this.skipBits.bind(this),h=this.skipEG.bind(this),f=this.skipUEG.bind(this),p=this.skipScalingList.bind(this);o();var m=o();if(u(5),l(3),o(),f(),100===m||110===m||122===m||244===m||44===m||83===m||86===m||118===m||128===m){var v=d();if(3===v&&l(1),f(),f(),l(1),c())for(t=3!==v?8:12,r=0;r<t;r++)c()&&p(r<6?16:64)}f();var y=d();if(0===y)d();else if(1===y)for(l(1),h(),h(),e=d(),r=0;r<e;r++)h();f(),l(1);var g=d(),b=d(),S=u(1);0===S&&l(1),l(1),c()&&(a=d(),i=d(),n=d(),s=d());var E=[1,1];if(c()&&c())switch(o()){case 1:E=[1,1];break;case 2:E=[12,11];break;case 3:E=[10,11];break;case 4:E=[16,11];break;case 5:E=[40,33];break;case 6:E=[24,11];break;case 7:E=[20,11];break;case 8:E=[32,11];break;case 9:E=[80,33];break;case 10:E=[18,11];break;case 11:E=[15,11];break;case 12:E=[64,33];break;case 13:E=[160,99];break;case 14:E=[4,3];break;case 15:E=[3,2];break;case 16:E=[2,1];break;case 255:E=[o()<<8|o(),o()<<8|o()]}return{width:Math.ceil(16*(g+1)-2*a-2*i),height:(2-S)*(b+1)*16-(S?2:4)*(n+s),pixelRatio:E}},t.readSliceType=function(){return this.readUByte(),this.readUEG(),this.readUEG()},t.destroy=function(){this.data=null},e}(),je=function(e){function t(){return e.apply(this,arguments)||this}y(t,e);var r=t.prototype;return r.parseAVCPES=function(e,t,r,a,i){var n,s=this,o=this.parseAVCNALu(e,r.data),u=this.VideoSample,d=!1;r.data=null,u&&o.length&&!e.audFound&&(this.pushAccessUnit(u,e),u=this.VideoSample=this.createVideoSample(!1,r.pts,r.dts,"")),o.forEach((function(a){var o;switch(a.type){case 1:var c=!1;n=!0;var l,h=a.data;if(d&&h.length>4){var f=new ze(h).readSliceType();2!==f&&4!==f&&7!==f&&9!==f||(c=!0)}if(c)null!=(l=u)&&l.frame&&!u.key&&(s.pushAccessUnit(u,e),u=s.VideoSample=null);u||(u=s.VideoSample=s.createVideoSample(!0,r.pts,r.dts,"")),u.frame=!0,u.key=c;break;case 5:n=!0,null!=(o=u)&&o.frame&&!u.key&&(s.pushAccessUnit(u,e),u=s.VideoSample=null),u||(u=s.VideoSample=s.createVideoSample(!0,r.pts,r.dts,"")),u.key=!0,u.frame=!0;break;case 6:n=!0,le(a.data,1,r.pts,t.samples);break;case 7:var p,m;n=!0,d=!0;var v=a.data,y=new ze(v).readSPS();if(!e.sps||e.width!==y.width||e.height!==y.height||(null==(p=e.pixelRatio)?void 0:p[0])!==y.pixelRatio[0]||(null==(m=e.pixelRatio)?void 0:m[1])!==y.pixelRatio[1]){e.width=y.width,e.height=y.height,e.pixelRatio=y.pixelRatio,e.sps=[v],e.duration=i;for(var g=v.subarray(1,4),b="avc1.",S=0;S<3;S++){var E=g[S].toString(16);E.length<2&&(E="0"+E),b+=E}e.codec=b}break;case 8:n=!0,e.pps=[a.data];break;case 9:n=!0,e.audFound=!0,u&&s.pushAccessUnit(u,e),u=s.VideoSample=s.createVideoSample(!1,r.pts,r.dts,"");break;case 12:n=!0;break;default:n=!1,u&&(u.debug+="unknown NAL "+a.type+" ")}u&&n&&u.units.push(a)})),a&&u&&(this.pushAccessUnit(u,e),this.VideoSample=null)},r.parseAVCNALu=function(e,t){var r,a,i=t.byteLength,n=e.naluState||0,s=n,o=[],u=0,d=-1,c=0;for(-1===n&&(d=0,c=31&t[0],n=0,u=1);u<i;)if(r=t[u++],n)if(1!==n)if(r)if(1===r){if(a=u-n-1,d>=0){var l={data:t.subarray(d,a),type:c};o.push(l)}else{var h=this.getLastNalUnit(e.samples);h&&(s&&u<=4-s&&h.state&&(h.data=h.data.subarray(0,h.data.byteLength-s)),a>0&&(h.data=ue(h.data,t.subarray(0,a)),h.state=0))}u<i?(d=u,c=31&t[u],n=0):n=-1}else n=0;else n=3;else n=r?0:2;else n=r?0:1;if(d>=0&&n>=0){var f={data:t.subarray(d,i),type:c,state:n};o.push(f)}if(0===o.length){var p=this.getLastNalUnit(e.samples);p&&(p.data=ue(p.data,t))}return e.naluState=n,o},t}(Ye),He=function(){function e(){}return e._ebsp2rbsp=function(e){for(var t=e,r=t.byteLength,a=new Uint8Array(r),i=0,n=0;n<r;n++)n>=2&&3===t[n]&&0===t[n-1]&&0===t[n-2]||(a[i]=t[n],i++);return new Uint8Array(a.buffer,0,i)},e.parseVPS=function(t){var r=e._ebsp2rbsp(t),a=new ze(r);return a.readUByte(),a.readUByte(),a.readBits(4),a.readBits(2),a.readBits(6),{num_temporal_layers:a.readBits(3)+1,temporal_id_nested:a.readBoolean()}},e.parseSPS=function(t){var r=e._ebsp2rbsp(t),a=new ze(r);a.readUByte(),a.readUByte();var i=0,n=0,s=0,o=0;a.readBits(4);var u=a.readBits(3);a.readBoolean();for(var d=a.readBits(2),c=a.readBoolean(),l=a.readBits(5),h=a.readUByte(),f=a.readUByte(),p=a.readUByte(),m=a.readUByte(),v=a.readUByte(),y=a.readUByte(),g=a.readUByte(),b=a.readUByte(),S=a.readUByte(),E=a.readUByte(),T=a.readUByte(),_=[],A=[],x=0;x<u;x++)_.push(a.readBoolean()),A.push(a.readBoolean());if(u>0)for(var R=u;R<8;R++)a.readBits(2);for(var w=0;w<u;w++)_[w]&&(a.readUByte(),a.readUByte(),a.readUByte(),a.readUByte(),a.readUByte(),a.readUByte(),a.readUByte(),a.readUByte(),a.readUByte(),a.readUByte(),a.readUByte()),A[w]&&a.readUByte();a.readUEG();var U=a.readUEG();3==U&&a.readBits(1);var k=a.readUEG(),P=a.readUEG();a.readBoolean()&&(i+=a.readUEG(),n+=a.readUEG(),s+=a.readUEG(),o+=a.readUEG());for(var D=a.readUEG(),C=a.readUEG(),I=a.readUEG(),L=a.readBoolean()?0:u;L<=u;L++)a.readUEG(),a.readUEG(),a.readUEG();if((a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG(),a.readBoolean())&&a.readBoolean())for(var O=0;O<4;O++)for(var B=0;B<(3===O?2:6);B++){if(a.readBoolean()){var F=Math.min(64,1<<4+(O<<1));O>1&&a.readEG();for(var M=0;M<F;M++)a.readEG()}else a.readUEG()}a.readBoolean(),a.readBoolean(),a.readBoolean()&&(a.readUByte(),a.readUEG(),a.readUEG(),a.readBoolean());for(var N=a.readUEG(),G=0,V=0;V<N;V++){var K=!1;if(0!==V&&(K=a.readBoolean()),K){V===N&&a.readUEG(),a.readBoolean(),a.readUEG();for(var Y=0,z=0;z<=G;z++){var j=a.readBoolean(),H=!1;j||(H=a.readBoolean()),(j||H)&&Y++}G=Y}else{var W=a.readUEG(),q=a.readUEG();G=W+q;for(var X=0;X<W;X++)a.readUEG(),a.readBoolean();for(var Z=0;Z<q;Z++)a.readUEG(),a.readBoolean()}}if(a.readBoolean())for(var J=a.readUEG(),Q=0;Q<J;Q++){for(var $=0;$<I+4;$++)a.readBits(1);a.readBits(1)}var ee=0,te=1,re=1,ae=!1,ie=1,ne=1;if(a.readBoolean(),a.readBoolean(),a.readBoolean()){if(a.readBoolean()){var se=a.readUByte();se>0&&se<=16?(te=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][se-1],re=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][se-1]):255===se&&(te=a.readBits(16),re=a.readBits(16))}if(a.readBoolean()&&a.readBoolean(),a.readBoolean())a.readBits(3),a.readBoolean(),a.readBoolean()&&(a.readUByte(),a.readUByte(),a.readUByte());if(a.readBoolean()&&(a.readUEG(),a.readUEG()),a.readBoolean(),a.readBoolean(),a.readBoolean(),a.readBoolean()&&(a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG()),a.readBoolean())if(ie=a.readBits(32),ne=a.readBits(32),a.readBoolean()&&a.readUEG(),a.readBoolean()){var oe=!1,ue=!1,de=!1;oe=a.readBoolean(),ue=a.readBoolean(),(oe||ue)&&((de=a.readBoolean())&&(a.readUByte(),a.readBits(5),a.readBoolean(),a.readBits(5)),a.readBits(4),a.readBits(4),de&&a.readBits(4),a.readBits(5),a.readBits(5),a.readBits(5));for(var ce=0;ce<=u;ce++){var le=a.readBoolean();ae=le;var he=!0,fe=1;le||(he=a.readBoolean());var pe=!1;if(he?a.readUEG():pe=a.readBoolean(),pe||(fe=a.readUEG()+1),oe){for(var me=0;me<fe;me++)a.readUEG(),a.readUEG(),de&&(a.readUEG(),a.readUEG());a.readBoolean()}if(ue){for(var ve=0;ve<fe;ve++)a.readUEG(),a.readUEG(),de&&(a.readUEG(),a.readUEG());a.readBoolean()}}}a.readBoolean()&&(a.readBoolean(),a.readBoolean(),a.readBoolean(),ee=a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG(),a.readUEG())}a.readBoolean();var ye="hvc1."+l+".1.L"+T+".B0",ge=k-(i+n)*(1===U||2===U?2:1),be=P-(s+o)*(1===U?2:1),Se=1;return 1!==te&&1!==re&&(Se=te/re),a.destroy(),a=null,{codec_mimetype:ye,level_string:e.getLevelString(T),profile_idc:l,bit_depth:D+8,ref_frames:1,chroma_format:U,chroma_format_string:e.getChromaFormatString(U),general_level_idc:T,general_profile_space:d,general_tier_flag:c,general_profile_idc:l,general_profile_compatibility_flags_1:h,general_profile_compatibility_flags_2:f,general_profile_compatibility_flags_3:p,general_profile_compatibility_flags_4:m,general_constraint_indicator_flags_1:v,general_constraint_indicator_flags_2:y,general_constraint_indicator_flags_3:g,general_constraint_indicator_flags_4:b,general_constraint_indicator_flags_5:S,general_constraint_indicator_flags_6:E,min_spatial_segmentation_idc:ee,constant_frame_rate:0,chroma_format_idc:U,bit_depth_luma_minus8:D,bit_depth_chroma_minus8:C,frame_rate:{fixed:ae,fps:ne/ie,fps_den:ie,fps_num:ne},sar_ratio:{width:te,height:re},codec_size:{width:ge,height:be},present_size:{width:ge*Se,height:be}}},e.parsePPS=function(t){var r=e._ebsp2rbsp(t),a=new ze(r);a.readUByte(),a.readUByte(),a.readUEG(),a.readUEG(),a.readBoolean(),a.readBoolean(),a.readBits(3),a.readBoolean(),a.readBoolean(),a.readUEG(),a.readUEG(),a.readEG(),a.readBoolean(),a.readBoolean(),a.readBoolean()&&a.readUEG(),a.readEG(),a.readEG(),a.readBoolean(),a.readBoolean(),a.readBoolean(),a.readBoolean();var i=a.readBoolean(),n=a.readBoolean(),s=1;return n&&i?s=0:n?s=3:i&&(s=2),{parallelismType:s}},e.getChromaFormatString=function(e){switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}},e.getProfileString=function(e){switch(e){case 1:return"Main";case 2:return"Main10";case 3:return"MainSP";case 4:return"Rext";case 9:return"SCC";default:return"Unknown"}},e.getLevelString=function(e){return(e/30).toFixed(1)},e}(),We=function(e){function t(){return e.apply(this,arguments)||this}y(t,e);var r=t.prototype;return r.parseAVCPES=function(e,t,r,a,i){var n,s=this,o=this.parseAVCNALu(e,r.data),u=this.VideoSample;r.data=null,u&&o.length&&!e.audFound&&(this.pushAccessUnit(u,e),u=this.VideoSample=this.createVideoSample(!1,r.pts,r.dts,"")),o.forEach((function(a){switch(a.type){case 0:case 1:n=!0,u||(u=s.VideoSample=s.createVideoSample(!0,r.pts,r.dts,"")),u.frame=!0;break;case 19:case 20:case 21:n=!0,u||(u=s.VideoSample=s.createVideoSample(!0,r.pts,r.dts,"")),u.key=!0,u.frame=!0;break;case 32:n=!0,e.vps||(e.vps=[a.data]);break;case 33:if(n=!0,!e.sps){var o=a.data,d=He.parseSPS(o);e.width=d.codec_size.width,e.height=d.codec_size.height,e.pixelRatio=[d.sar_ratio.width,d.sar_ratio.height],e.sps=[o],e.duration=i,e.codec=d.codec_mimetype,e.details=p(p({},e.details),d)}break;case 34:if(n=!0,!e.pps){e.pps=[a.data];var c=He.parsePPS(a.data);e.details=p(p({},e.details),c)}break;case 35:n=!1,e.audFound=!0,u&&s.pushAccessUnit(u,e),u=s.VideoSample=s.createVideoSample(!1,r.pts,r.dts,"");break;case 39:n=!0,le(a.data,1,r.pts,t.samples);break;default:n=!0}u&&n&&u.units.push(a)})),a&&u&&(this.pushAccessUnit(u,e),this.VideoSample=null)},r.parseAVCNALu=function(e,t){var r,a,i=t.byteLength,n=e.naluState||0,s=n,o=[],u=0,d=-1,c=0;for(-1===n&&(d=0,c=t[0]>>1&63,n=0,u=1);u<i;)if(r=t[u++],n)if(1!==n)if(r)if(1===r){if(a=u-n-1,d>=0){var l={data:t.subarray(d,a),type:c};o.push(l)}else{var h=this.getLastNalUnit(e.samples);h&&(s&&u<=4-s&&h.state&&(h.data=h.data.subarray(0,h.data.byteLength-s)),a>0&&(h.data=ue(h.data,t.subarray(0,a)),h.state=0))}u<i?(d=u,c=t[u]>>1&63,n=0):n=-1}else n=0;else n=3;else n=r?0:2;else n=r?0:1;if(d>=0&&n>=0){var f={data:t.subarray(d,i),type:c,state:n};o.push(f)}if(0===o.length){var p=this.getLastNalUnit(e.samples);p&&(p.data=ue(p.data,t))}return e.naluState=n,o},t}(Ye),qe=function(){function e(e,t,r){this.keyData=void 0,this.decrypter=void 0,this.keyData=r,this.decrypter=new fe(t,{removePKCS7Padding:!1})}var t=e.prototype;return t.decryptBuffer=function(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer)},t.decryptAacSample=function(e,t,r){var a=this,i=e[t].unit;if(!(i.length<=16)){var n=i.subarray(16,i.length-i.length%16),s=n.buffer.slice(n.byteOffset,n.byteOffset+n.length);this.decryptBuffer(s).then((function(n){var s=new Uint8Array(n);i.set(s,16),a.decrypter.isSync()||a.decryptAacSamples(e,t+1,r)}))}},t.decryptAacSamples=function(e,t,r){for(;;t++){if(t>=e.length)return void r();if(!(e[t].unit.length<32)&&(this.decryptAacSample(e,t,r),!this.decrypter.isSync()))return}},t.getAvcEncryptedData=function(e){for(var t=16*Math.floor((e.length-48)/160)+16,r=new Int8Array(t),a=0,i=32;i<e.length-16;i+=160,a+=16)r.set(e.subarray(i,i+16),a);return r},t.getAvcDecryptedUnit=function(e,t){for(var r=new Uint8Array(t),a=0,i=32;i<e.length-16;i+=160,a+=16)e.set(r.subarray(a,a+16),i);return e},t.decryptAvcSample=function(e,t,r,a,i){var n=this,s=he(i.data),o=this.getAvcEncryptedData(s);this.decryptBuffer(o.buffer).then((function(o){i.data=n.getAvcDecryptedUnit(s,o),n.decrypter.isSync()||n.decryptAvcSamples(e,t,r+1,a)}))},t.decryptAv