UNPKG

ps-tcplayer

Version:

Tencent Cloud Player component with Vue2/Vue3 compatibility

1,281 lines (1,280 loc) 532 kB
"undefined" != typeof window && function(e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.Hls = t() : e.Hls = t() }(this, (function() { return function(e) { var t = {}; function r(i) { if (t[i]) return t[i].exports; var a = t[i] = { i: i, l: !1, exports: {} }; return e[i].call(a.exports, a, a.exports, r), a.l = !0, a.exports } return r.m = e, r.c = t, r.d = function(e, t, i) { r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: i }) } , r.r = function(e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) } , r.t = function(e, t) { if (1 & t && (e = r(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var i = Object.create(null); if (r.r(i), Object.defineProperty(i, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for (var a in e) r.d(i, a, function(t) { return e[t] } .bind(null, a)); return i } , r.n = function(e) { var t = e && e.__esModule ? function() { return e.default } : function() { return e } ; return r.d(t, "a", t), t } , r.o = function(e, t) { return Object.prototype.hasOwnProperty.call(e, t) } , r.p = "/dist/", r(r.s = 14) }([function(e, t, r) { "use strict"; r.d(t, "a", (function() { return d } )), r.d(t, "b", (function() { return c } )); var i = r(5); function a() {} var n = { trace: a, debug: a, log: a, warn: a, info: a, error: a } , s = n; function o(e, t) { return t = "[" + e + "] > " + t } var l = Object(i.a)(); function u(e) { var t = l.console[e]; return t ? function() { for (var r = arguments.length, i = new Array(r), a = 0; a < r; a++) i[a] = arguments[a]; i[0] && (i[0] = o(e, i[0])), t.apply(l.console, i) } : a } var d = function(e) { if (l.console && !0 === e || "object" == typeof e) { !function(e) { for (var t = arguments.length, r = new Array(t > 1 ? t - 1 : 0), i = 1; i < t; i++) r[i - 1] = arguments[i]; r.forEach((function(t) { s[t] = e[t] ? e[t].bind(e) : u(t) } )) }(e, "debug", "log", "info", "warn", "error"); try { s.log() } catch (e) { s = n } } else s = n } , c = s } , function(e, t, r) { "use strict"; t.a = { MEDIA_ATTACHING: "hlsMediaAttaching", MEDIA_ATTACHED: "hlsMediaAttached", MEDIA_DETACHING: "hlsMediaDetaching", MEDIA_DETACHED: "hlsMediaDetached", BUFFER_RESET: "hlsBufferReset", BUFFER_CODECS: "hlsBufferCodecs", BUFFER_CREATED: "hlsBufferCreated", BUFFER_APPENDING: "hlsBufferAppending", BUFFER_APPENDED: "hlsBufferAppended", BUFFER_EOS: "hlsBufferEos", BUFFER_FLUSHING: "hlsBufferFlushing", BUFFER_FLUSHED: "hlsBufferFlushed", MANIFEST_LOADING: "hlsManifestLoading", MANIFEST_LOADED: "hlsManifestLoaded", MANIFEST_PARSED: "hlsManifestParsed", LEVEL_SWITCHING: "hlsLevelSwitching", LEVEL_SWITCHED: "hlsLevelSwitched", LEVEL_LOADING: "hlsLevelLoading", LEVEL_LOADED: "hlsLevelLoaded", LEVEL_UPDATED: "hlsLevelUpdated", LEVEL_PTS_UPDATED: "hlsLevelPtsUpdated", AUDIO_TRACKS_UPDATED: "hlsAudioTracksUpdated", AUDIO_TRACK_SWITCHING: "hlsAudioTrackSwitching", AUDIO_TRACK_SWITCHED: "hlsAudioTrackSwitched", AUDIO_TRACK_LOADING: "hlsAudioTrackLoading", AUDIO_TRACK_LOADED: "hlsAudioTrackLoaded", SUBTITLE_TRACKS_UPDATED: "hlsSubtitleTracksUpdated", SUBTITLE_TRACK_SWITCH: "hlsSubtitleTrackSwitch", SUBTITLE_TRACK_LOADING: "hlsSubtitleTrackLoading", SUBTITLE_TRACK_LOADED: "hlsSubtitleTrackLoaded", SUBTITLE_FRAG_PROCESSED: "hlsSubtitleFragProcessed", INIT_PTS_FOUND: "hlsInitPtsFound", FRAG_LOADING: "hlsFragLoading", FRAG_LOAD_PROGRESS: "hlsFragLoadProgress", FRAG_LOAD_EMERGENCY_ABORTED: "hlsFragLoadEmergencyAborted", FRAG_LOADED: "hlsFragLoaded", FRAG_DECRYPTED: "hlsFragDecrypted", FRAG_PARSING_INIT_SEGMENT: "hlsFragParsingInitSegment", FRAG_PARSING_USERDATA: "hlsFragParsingUserdata", FRAG_PARSING_METADATA: "hlsFragParsingMetadata", FRAG_PARSING_DATA: "hlsFragParsingData", FRAG_PARSED: "hlsFragParsed", FRAG_BUFFERED: "hlsFragBuffered", FRAG_CHANGED: "hlsFragChanged", FPS_DROP: "hlsFpsDrop", FPS_DROP_LEVEL_CAPPING: "hlsFpsDropLevelCapping", ERROR: "hlsError", DESTROYING: "hlsDestroying", KEY_LOADING: "hlsKeyLoading", KEY_LOADED: "hlsKeyLoaded", STREAM_STATE_TRANSITION: "hlsStreamStateTransition", LIVE_BACK_BUFFER_REACHED: "hlsLiveBackBufferReached" } } , function(e, t, r) { "use strict"; var i, a; r.d(t, "b", (function() { return i } )), r.d(t, "a", (function() { return a } )), function(e) { e.NETWORK_ERROR = "networkError", e.MEDIA_ERROR = "mediaError", e.KEY_SYSTEM_ERROR = "keySystemError", e.MUX_ERROR = "muxError", e.OTHER_ERROR = "otherError" }(i || (i = {})), function(e) { e.KEY_SYSTEM_NO_KEYS = "keySystemNoKeys", e.KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess", e.KEY_SYSTEM_NO_SESSION = "keySystemNoSession", e.KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed", e.KEY_SYSTEM_NO_INIT_DATA = "keySystemNoInitData", e.MANIFEST_LOAD_ERROR = "manifestLoadError", e.MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut", e.MANIFEST_PARSING_ERROR = "manifestParsingError", e.MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError", e.LEVEL_LOAD_ERROR = "levelLoadError", e.LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut", e.LEVEL_SWITCH_ERROR = "levelSwitchError", e.AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError", e.AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut", e.FRAG_LOAD_ERROR = "fragLoadError", e.FRAG_LOAD_TIMEOUT = "fragLoadTimeOut", e.FRAG_DECRYPT_ERROR = "fragDecryptError", e.FRAG_PARSING_ERROR = "fragParsingError", e.REMUX_ALLOC_ERROR = "remuxAllocError", e.KEY_LOAD_ERROR = "keyLoadError", e.KEY_LOAD_TIMEOUT = "keyLoadTimeOut", e.BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError", 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" }(a || (a = {})) } , function(e, t, r) { "use strict"; r.d(t, "a", (function() { return i } )); var i = Number.isFinite || function(e) { return "number" == typeof e && isFinite(e) } } , function(e, t, r) { "use strict"; r.d(t, "b", (function() { return o } )); var i, a = r(5), n = function() { function e() {} return e.isHeader = 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 } , e.isFooter = 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 } , e.getID3Data = function(t, r) { for (var i = r, a = 0; e.isHeader(t, r); ) { a += 10, a += e._readSize(t, r + 6), e.isFooter(t, r + 10) && (a += 10), r += a } if (a > 0) return t.subarray(i, i + a) } , e._readSize = 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] } , e.getTimeStamp = function(t) { for (var r = e.getID3Frames(t), i = 0; i < r.length; i++) { var a = r[i]; if (e.isTimeStampFrame(a)) return e._readTimeStamp(a) } } , e.isTimeStampFrame = function(e) { return e && "PRIV" === e.key && "com.apple.streaming.transportStreamTimestamp" === e.info } , e._getFrameData = function(t) { var r = String.fromCharCode(t[0], t[1], t[2], t[3]) , i = e._readSize(t, 4); return { type: r, size: i, data: t.subarray(10, 10 + i) } } , e.getID3Frames = function(t) { for (var r = 0, i = []; e.isHeader(t, r); ) { for (var a = e._readSize(t, r + 6), n = (r += 10) + a; r + 8 < n; ) { var s = e._getFrameData(t.subarray(r)) , o = e._decodeFrame(s); o && i.push(o), r += s.size + 10 } e.isFooter(t, r) && (r += 10) } return i } , e._decodeFrame = function(t) { return "PRIV" === t.type ? e._decodePrivFrame(t) : "T" === t.type[0] ? e._decodeTextFrame(t) : "W" === t.type[0] ? e._decodeURLFrame(t) : void 0 } , e._readTimeStamp = function(e) { if (8 === e.data.byteLength) { var t = new Uint8Array(e.data) , r = 1 & t[3] , i = (t[4] << 23) + (t[5] << 15) + (t[6] << 7) + t[7]; return i /= 45, r && (i += 47721858.84), Math.round(i) } } , e._decodePrivFrame = function(t) { if (!(t.size < 2)) { var r = e._utf8ArrayToStr(t.data, !0) , i = new Uint8Array(t.data.subarray(r.length + 1)); return { key: t.type, info: r, data: i.buffer } } } , e._decodeTextFrame = function(t) { if (!(t.size < 2)) { if ("TXXX" === t.type) { var r = 1 , i = e._utf8ArrayToStr(t.data.subarray(r), !0); r += i.length + 1; var a = e._utf8ArrayToStr(t.data.subarray(r)); return { key: t.type, info: i, data: a } } var n = e._utf8ArrayToStr(t.data.subarray(1)); return { key: t.type, data: n } } } , e._decodeURLFrame = function(t) { if ("WXXX" === t.type) { if (t.size < 2) return; var r = 1 , i = e._utf8ArrayToStr(t.data.subarray(r)); r += i.length + 1; var a = e._utf8ArrayToStr(t.data.subarray(r)); return { key: t.type, info: i, data: a } } var n = e._utf8ArrayToStr(t.data); return { key: t.type, data: n } } , e._utf8ArrayToStr = function(e, t) { void 0 === t && (t = !1); var r = s(); if (r) { var i = r.decode(e); if (t) { var a = i.indexOf("\0"); return -1 !== a ? i.substring(0, a) : i } return i.replace(/\0/g, "") } for (var n, o, l, 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: o = e[c++], d += String.fromCharCode((31 & n) << 6 | 63 & o); break; case 14: o = e[c++], l = e[c++], d += String.fromCharCode((15 & n) << 12 | (63 & o) << 6 | (63 & l) << 0) } } return d } , e }(); function s() { var e = Object(a.a)(); return i || void 0 === e.TextDecoder || (i = new e.TextDecoder("utf-8")), i } var o = n._utf8ArrayToStr; t.a = n } , function(e, t, r) { "use strict"; function i() { return "undefined" == typeof window ? self : window } r.d(t, "a", (function() { return i } )) } , function(e, t, r) { var i, a, n, s, o; i = /^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/?#]*)?((?:[^\/\?#]*\/)*.*?)??(;.*?)?(\?.*?)?(#.*?)?$/, a = /^([^\/?#]*)(.*)$/, n = /(?:\/|^)\.(?=\/)/g, s = /(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g, o = { buildAbsoluteURL: function(e, t, r) { if (r = r || {}, e = e.trim(), !(t = t.trim())) { if (!r.alwaysNormalize) return e; var i = o.parseURL(e); if (!i) throw new Error("Error trying to parse base URL."); return i.path = o.normalizePath(i.path), o.buildURLFromParts(i) } var n = o.parseURL(t); if (!n) throw new Error("Error trying to parse relative URL."); if (n.scheme) return r.alwaysNormalize ? (n.path = o.normalizePath(n.path), o.buildURLFromParts(n)) : t; var s = o.parseURL(e); if (!s) throw new Error("Error trying to parse base URL."); if (!s.netLoc && s.path && "/" !== s.path[0]) { var l = a.exec(s.path); s.netLoc = l[1], s.path = l[2] } s.netLoc && !s.path && (s.path = "/"); var u = { scheme: s.scheme, netLoc: n.netLoc, path: null, params: n.params, query: n.query, fragment: n.fragment }; if (!n.netLoc && (u.netLoc = s.netLoc, "/" !== n.path[0])) if (n.path) { var d = s.path , c = d.substring(0, d.lastIndexOf("/") + 1) + n.path; u.path = o.normalizePath(c) } else u.path = s.path, n.params || (u.params = s.params, n.query || (u.query = s.query)); return null === u.path && (u.path = r.alwaysNormalize ? o.normalizePath(n.path) : n.path), o.buildURLFromParts(u) }, parseURL: function(e) { var t = i.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(n, ""); e.length !== (e = e.replace(s, "")).length; ) ; return e.split("").reverse().join("") }, buildURLFromParts: function(e) { return e.scheme + e.netLoc + e.path + e.params + e.query + e.fragment } }, e.exports = o } , function(e, t, r) { "use strict"; var i = function() { function e(e, t) { 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 }() , a = function() { function e(e, t) { 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 }(); var n = 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.initTable() } var t = e.prototype; return t.uint8ArrayToUint32Array_ = function(e) { for (var t = new DataView(e), r = new Uint32Array(4), i = 0; i < 4; i++) r[i] = t.getUint32(4 * i); return r } , t.initTable = function() { var e = this.sBox , t = this.invSBox , r = this.subMix , i = r[0] , a = r[1] , n = r[2] , s = r[3] , o = this.invSubMix , l = o[0] , u = o[1] , d = o[2] , c = o[3] , h = new Uint32Array(256) , f = 0 , g = 0 , p = 0; for (p = 0; p < 256; p++) h[p] = p < 128 ? p << 1 : p << 1 ^ 283; for (p = 0; p < 256; p++) { var v = g ^ g << 1 ^ g << 2 ^ g << 3 ^ g << 4; v = v >>> 8 ^ 255 & v ^ 99, e[f] = v, t[v] = f; var m = h[f] , y = h[m] , b = h[y] , T = 257 * h[v] ^ 16843008 * v; i[f] = T << 24 | T >>> 8, a[f] = T << 16 | T >>> 16, n[f] = T << 8 | T >>> 24, s[f] = T, T = 16843009 * b ^ 65537 * y ^ 257 * m ^ 16843008 * f, l[v] = T << 24 | T >>> 8, u[v] = T << 16 | T >>> 16, d[v] = T << 8 | T >>> 24, c[v] = T, f ? (f = m ^ h[h[h[b ^ m]]], g ^= h[h[g]]) : f = g = 1 } } , t.expandKey = function(e) { for (var t = this.uint8ArrayToUint32Array_(e), r = !0, i = 0; i < t.length && r; ) r = t[i] === this.key[i], i++; if (!r) { this.key = t; var a = this.keySize = t.length; if (4 !== a && 6 !== a && 8 !== a) throw new Error("Invalid aes key size=" + a); var n, s, o, l, u = this.ksRows = 4 * (a + 6 + 1), d = this.keySchedule = new Uint32Array(u), c = this.invKeySchedule = new Uint32Array(u), h = this.sBox, f = this.rcon, g = this.invSubMix, p = g[0], v = g[1], m = g[2], y = g[3]; for (n = 0; n < u; n++) n < a ? o = d[n] = t[n] : (l = o, n % a == 0 ? (l = h[(l = l << 8 | l >>> 24) >>> 24] << 24 | h[l >>> 16 & 255] << 16 | h[l >>> 8 & 255] << 8 | h[255 & l], l ^= f[n / a | 0] << 24) : a > 6 && n % a == 4 && (l = h[l >>> 24] << 24 | h[l >>> 16 & 255] << 16 | h[l >>> 8 & 255] << 8 | h[255 & l]), d[n] = o = (d[n - a] ^ l) >>> 0); for (s = 0; s < u; s++) n = u - s, l = 3 & s ? d[n] : d[n - 4], c[s] = s < 4 || n <= 4 ? l : p[h[l >>> 24]] ^ v[h[l >>> 16 & 255]] ^ m[h[l >>> 8 & 255]] ^ y[h[255 & l]], c[s] = c[s] >>> 0 } } , t.networkToHostOrderSwap = function(e) { return e << 24 | (65280 & e) << 8 | (16711680 & e) >> 8 | e >>> 24 } , t.decrypt = function(e, t, r, i) { for (var a, n, s, o, l, u, d, c, h, f, g, p, v, m, y, b, T, E = this.keySize + 6, S = this.invKeySchedule, _ = this.invSBox, A = this.invSubMix, R = A[0], w = A[1], k = A[2], L = A[3], D = this.uint8ArrayToUint32Array_(r), C = D[0], I = D[1], O = D[2], x = D[3], P = new Int32Array(e), M = new Int32Array(P.length), F = this.networkToHostOrderSwap; t < P.length; ) { for (h = F(P[t]), f = F(P[t + 1]), g = F(P[t + 2]), p = F(P[t + 3]), l = h ^ S[0], u = p ^ S[1], d = g ^ S[2], c = f ^ S[3], v = 4, m = 1; m < E; m++) a = R[l >>> 24] ^ w[u >> 16 & 255] ^ k[d >> 8 & 255] ^ L[255 & c] ^ S[v], n = R[u >>> 24] ^ w[d >> 16 & 255] ^ k[c >> 8 & 255] ^ L[255 & l] ^ S[v + 1], s = R[d >>> 24] ^ w[c >> 16 & 255] ^ k[l >> 8 & 255] ^ L[255 & u] ^ S[v + 2], o = R[c >>> 24] ^ w[l >> 16 & 255] ^ k[u >> 8 & 255] ^ L[255 & d] ^ S[v + 3], l = a, u = n, d = s, c = o, v += 4; a = _[l >>> 24] << 24 ^ _[u >> 16 & 255] << 16 ^ _[d >> 8 & 255] << 8 ^ _[255 & c] ^ S[v], n = _[u >>> 24] << 24 ^ _[d >> 16 & 255] << 16 ^ _[c >> 8 & 255] << 8 ^ _[255 & l] ^ S[v + 1], s = _[d >>> 24] << 24 ^ _[c >> 16 & 255] << 16 ^ _[l >> 8 & 255] << 8 ^ _[255 & u] ^ S[v + 2], o = _[c >>> 24] << 24 ^ _[l >> 16 & 255] << 16 ^ _[u >> 8 & 255] << 8 ^ _[255 & d] ^ S[v + 3], v += 3, M[t] = F(a ^ C), M[t + 1] = F(o ^ I), M[t + 2] = F(s ^ O), M[t + 3] = F(n ^ x), C = h, I = f, O = g, x = p, t += 4 } return i ? (y = M.buffer, b = y.byteLength, (T = b && new DataView(y).getUint8(b - 1)) ? y.slice(0, b - T) : y) : M.buffer } , t.destroy = function() { this.key = void 0, this.keySize = void 0, this.ksRows = void 0, this.sBox = void 0, this.invSBox = void 0, this.subMix = void 0, this.invSubMix = void 0, this.keySchedule = void 0, this.invKeySchedule = void 0, this.rcon = void 0 } , e }() , s = r(2) , o = r(0) , l = r(1) , u = r(5) , d = Object(u.a)() , c = function() { function e(e, t, r) { var i = (void 0 === r ? {} : r).removePKCS7Padding , a = void 0 === i || i; if (this.logEnabled = !0, this.observer = e, this.config = t, this.removePKCS7Padding = a, a) try { var n = d.crypto; n && (this.subtle = n.subtle || n.webkitSubtle) } catch (e) {} this.disableWebCrypto = !this.subtle } var t = e.prototype; return t.isSync = function() { return this.disableWebCrypto && this.config.enableSoftwareAES } , t.decrypt = function(e, t, r, s) { var l = this; if (this.disableWebCrypto && this.config.enableSoftwareAES) { this.logEnabled && (o.b.log("JS AES decrypt"), this.logEnabled = !1); var u = this.decryptor; u || (this.decryptor = u = new n), u.expandKey(t), s(u.decrypt(e, 0, r, this.removePKCS7Padding)) } else { this.logEnabled && (o.b.log("WebCrypto AES decrypt"), this.logEnabled = !1); var d = this.subtle; this.key !== t && (this.key = t, this.fastAesKey = new a(d,t)), this.fastAesKey.expandKey().then((function(a) { new i(d,r).decrypt(e, a).catch((function(i) { l.onWebCryptoError(i, e, t, r, s) } )).then((function(e) { s(e) } )) } )).catch((function(i) { l.onWebCryptoError(i, e, t, r, s) } )) } } , t.onWebCryptoError = function(e, t, r, i, a) { this.config.enableSoftwareAES ? (o.b.log("WebCrypto Error, disable WebCrypto API"), this.disableWebCrypto = !0, this.logEnabled = !0, this.decrypt(t, r, i, a)) : (o.b.error("decrypting error : " + e.message), this.observer.trigger(l.a.ERROR, { type: s.b.MEDIA_ERROR, details: s.a.FRAG_DECRYPT_ERROR, fatal: !0, reason: e.message })) } , t.destroy = function() { var e = this.decryptor; e && (e.destroy(), this.decryptor = void 0) } , e }(); t.a = c } , function(e, t, r) { "use strict"; var i = Object.prototype.hasOwnProperty , a = "~"; function n() {} function s(e, t, r) { this.fn = e, this.context = t, this.once = r || !1 } function o(e, t, r, i, n) { if ("function" != typeof r) throw new TypeError("The listener must be a function"); var o = new s(r,i || e,n) , l = a ? a + t : t; return e._events[l] ? e._events[l].fn ? e._events[l] = [e._events[l], o] : e._events[l].push(o) : (e._events[l] = o, e._eventsCount++), e } function l(e, t) { 0 == --e._eventsCount ? e._events = new n : delete e._events[t] } function u() { this._events = new n, this._eventsCount = 0 } Object.create && (n.prototype = Object.create(null), (new n).__proto__ || (a = !1)), u.prototype.eventNames = function() { var e, t, r = []; if (0 === this._eventsCount) return r; for (t in e = this._events) i.call(e, t) && r.push(a ? t.slice(1) : t); return Object.getOwnPropertySymbols ? r.concat(Object.getOwnPropertySymbols(e)) : r } , u.prototype.listeners = function(e) { var t = a ? a + e : e , r = this._events[t]; if (!r) return []; if (r.fn) return [r.fn]; for (var i = 0, n = r.length, s = new Array(n); i < n; i++) s[i] = r[i].fn; return s } , u.prototype.listenerCount = function(e) { var t = a ? a + e : e , r = this._events[t]; return r ? r.fn ? 1 : r.length : 0 } , u.prototype.emit = function(e, t, r, i, n, s) { var o = a ? a + e : e; if (!this._events[o]) return !1; var l, u, d = this._events[o], c = arguments.length; if (d.fn) { switch (d.once && this.removeListener(e, d.fn, void 0, !0), c) { case 1: return d.fn.call(d.context), !0; case 2: return d.fn.call(d.context, t), !0; case 3: return d.fn.call(d.context, t, r), !0; case 4: return d.fn.call(d.context, t, r, i), !0; case 5: return d.fn.call(d.context, t, r, i, n), !0; case 6: return d.fn.call(d.context, t, r, i, n, s), !0 } for (u = 1, l = new Array(c - 1); u < c; u++) l[u - 1] = arguments[u]; d.fn.apply(d.context, l) } else { var h, f = d.length; for (u = 0; u < f; u++) switch (d[u].once && this.removeListener(e, d[u].fn, void 0, !0), c) { case 1: d[u].fn.call(d[u].context); break; case 2: d[u].fn.call(d[u].context, t); break; case 3: d[u].fn.call(d[u].context, t, r); break; case 4: d[u].fn.call(d[u].context, t, r, i); break; default: if (!l) for (h = 1, l = new Array(c - 1); h < c; h++) l[h - 1] = arguments[h]; d[u].fn.apply(d[u].context, l) } } return !0 } , u.prototype.on = function(e, t, r) { return o(this, e, t, r, !1) } , u.prototype.once = function(e, t, r) { return o(this, e, t, r, !0) } , u.prototype.removeListener = function(e, t, r, i) { var n = a ? a + e : e; if (!this._events[n]) return this; if (!t) return l(this, n), this; var s = this._events[n]; if (s.fn) s.fn !== t || i && !s.once || r && s.context !== r || l(this, n); else { for (var o = 0, u = [], d = s.length; o < d; o++) (s[o].fn !== t || i && !s[o].once || r && s[o].context !== r) && u.push(s[o]); u.length ? this._events[n] = 1 === u.length ? u[0] : u : l(this, n) } return this } , u.prototype.removeAllListeners = function(e) { var t; return e ? (t = a ? a + e : e, this._events[t] && l(this, t)) : (this._events = new n, this._eventsCount = 0), this } , u.prototype.off = u.prototype.removeListener, u.prototype.addListener = u.prototype.on, u.prefixed = a, u.EventEmitter = u, e.exports = u } , function(e, t, r) { "use strict"; var i = r(1) , a = r(2) , n = r(7) , s = r(3) , o = r(0) , l = r(5); function u(e, t) { return 255 === e[t] && 240 == (246 & e[t + 1]) } function d(e, t) { return 1 & e[t + 1] ? 7 : 9 } function c(e, t) { return (3 & e[t + 3]) << 11 | e[t + 4] << 3 | (224 & e[t + 5]) >>> 5 } function h(e, t) { return !!(t + 1 < e.length && u(e, t)) } function f(e, t) { if (h(e, t)) { var r = d(e, t); t + 5 < e.length && (r = c(e, t)); var i = t + r; if (i === e.length || i + 1 < e.length && u(e, i)) return !0 } return !1 } function g(e, t, r, n, s) { if (!e.samplerate) { var l = function(e, t, r, n) { var s, l, u, d, c, h = navigator.userAgent.toLowerCase(), f = n, g = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350]; if (s = 1 + ((192 & t[r + 2]) >>> 6), !((l = (60 & t[r + 2]) >>> 2) > g.length - 1)) return d = (1 & t[r + 2]) << 2, d |= (192 & t[r + 3]) >>> 6, o.b.log("manifest codec:" + n + ",ADTS data:type:" + s + ",sampleingIndex:" + l + "[" + g[l] + "Hz],channelConfig:" + d), /firefox/i.test(h) ? l >= 6 ? (s = 5, c = new Array(4), u = l - 3) : (s = 2, c = new Array(2), u = l) : -1 !== h.indexOf("android") ? (s = 2, c = new Array(2), u = l) : (s = 5, c = new Array(4), n && (-1 !== n.indexOf("mp4a.40.29") || -1 !== n.indexOf("mp4a.40.5")) || !n && l >= 6 ? u = l - 3 : ((n && -1 !== n.indexOf("mp4a.40.2") && (l >= 6 && 1 === d || /vivaldi/i.test(h)) || !n && 1 === d) && (s = 2, c = new Array(2)), u = l)), c[0] = s << 3, c[0] |= (14 & l) >> 1, c[1] |= (1 & l) << 7, c[1] |= d << 3, 5 === s && (c[1] |= (14 & u) >> 1, c[2] = (1 & u) << 7, c[2] |= 8, c[3] = 0), { config: c, samplerate: g[l], channelCount: d, codec: "mp4a.40." + s, manifestCodec: f }; e.trigger(i.a.ERROR, { type: a.b.MEDIA_ERROR, details: a.a.FRAG_PARSING_ERROR, fatal: !0, reason: "invalid ADTS sampling index:" + l }) }(t, r, n, s); e.config = l.config, e.samplerate = l.samplerate, e.channelCount = l.channelCount, e.codec = l.codec, e.manifestCodec = l.manifestCodec, o.b.log("parsed codec:" + e.codec + ",rate:" + l.samplerate + ",nb channel:" + l.channelCount) } } function p(e) { return 9216e4 / e } function v(e, t, r, i, a) { var n = function(e, t, r, i, a) { var n, s, o = e.length; if (n = d(e, t), s = c(e, t), (s -= n) > 0 && t + n + s <= o) return { headerLength: n, frameLength: s, stamp: r + i * a } }(t, r, i, a, p(e.samplerate)); if (n) { var s = n.stamp , o = n.headerLength , l = n.frameLength , u = { unit: t.subarray(r + o, r + o + l), pts: s, dts: s }; return e.samples.push(u), { sample: u, length: l + o } } } var m = r(4) , y = function() { function e(e, t, r) { this.observer = e, this.config = r, this.remuxer = t } var t = e.prototype; return t.resetInitSegment = function(e, t, r, i) { this._audioTrack = { container: "audio/adts", type: "audio", id: 0, sequenceNumber: 0, isAAC: !0, samples: [], len: 0, manifestCodec: t, duration: i, inputTimeScale: 9e4 } } , t.resetTimeStamp = function() {} , e.probe = function(e) { if (!e) return !1; for (var t = (m.a.getID3Data(e, 0) || []).length, r = e.length; t < r; t++) if (f(e, t)) return o.b.log("ADTS sync word found !"), !0; return !1 } , t.append = function(e, t, r, i) { for (var a = this._audioTrack, n = m.a.getID3Data(e, 0) || [], l = m.a.getTimeStamp(n), u = Object(s.a)(l) ? 90 * l : 9e4 * t, d = 0, c = u, f = e.length, p = n.length, y = [{ pts: c, dts: c, data: n }]; p < f - 1; ) if (h(e, p) && p + 5 < f) { g(a, this.observer, e, p, a.manifestCodec); var b = v(a, e, p, u, d); if (!b) { o.b.log("Unable to parse AAC frame"); break } p += b.length, c = b.sample.pts, d++ } else m.a.isHeader(e, p) ? (n = m.a.getID3Data(e, p), y.push({ pts: c, dts: c, data: n }), p += n.length) : p++; this.remuxer.remux(a, { samples: [] }, { samples: y, inputTimeScale: 9e4 }, { samples: [] }, t, r, i) } , t.destroy = function() {} , e }() , b = r(10) , T = { BitratesMap: [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], SamplingRateMap: [44100, 48e3, 32e3, 22050, 24e3, 16e3, 11025, 12e3, 8e3], SamplesCoefficients: [[0, 72, 144, 12], [0, 0, 0, 0], [0, 72, 144, 12], [0, 144, 144, 12]], BytesInSlot: [0, 1, 1, 4], appendFrame: function(e, t, r, i, a) { if (!(r + 24 > t.length)) { var n = this.parseHeader(t, r); if (n && r + n.frameLength <= t.length) { var s = i + a * (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 } } } }, parseHeader: function(e, t) { var r = e[t + 1] >> 3 & 3 , i = e[t + 1] >> 1 & 3 , a = e[t + 2] >> 4 & 15 , n = e[t + 2] >> 2 & 3 , s = e[t + 2] >> 1 & 1; if (1 !== r && 0 !== a && 15 !== a && 3 !== n) { var o = 3 === r ? 3 - i : 3 === i ? 3 : 4 , l = 1e3 * T.BitratesMap[14 * o + a - 1] , u = 3 === r ? 0 : 2 === r ? 1 : 2 , d = T.SamplingRateMap[3 * u + n] , c = e[t + 3] >> 6 == 3 ? 1 : 2 , h = T.SamplesCoefficients[r][i] , f = T.BytesInSlot[i] , g = 8 * h * f; return { sampleRate: d, channelCount: c, frameLength: parseInt(h * l / d + s, 10) * f, samplesPerFrame: g } } }, isHeaderPattern: function(e, t) { return 255 === e[t] && 224 == (224 & e[t + 1]) && 0 != (6 & e[t + 1]) }, isHeader: function(e, t) { return !!(t + 1 < e.length && this.isHeaderPattern(e, t)) }, probe: function(e, t) { if (t + 1 < e.length && this.isHeaderPattern(e, t)) { var r = this.parseHeader(e, t) , i = 4; r && r.frameLength && (i = r.frameLength); var a = t + i; if (a === e.length || a + 1 < e.length && this.isHeaderPattern(e, a)) return !0 } return !1 } } , E = T , S = function() { function e(e) { 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 , i = new Uint8Array(4) , a = Math.min(4, t); if (0 === a) throw new Error("no bytes available"); i.set(e.subarray(r, r + a)), this.word = new DataView(i.buffer).getUint32(0), this.bitsAvailable = 8 * a, this.bytesAvailable -= a } , t.skipBits = function(e) { var t; 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; return e > 32 && o.b.error("Cannot read more than 32 bits at a time"), this.bitsAvailable -= t, this.bitsAvailable > 0 ? this.word <<= t : this.bytesAvailable > 0 && this.loadWord(), (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) { var t, r = 8, i = 8; for (t = 0; t < e; t++) 0 !== i && (i = (r + this.readEG() + 256) % 256), r = 0 === i ? r : i } , t.readSPS = function() { var e, t, r, i, a, n, s, o = 0, l = 0, u = 0, d = 0, c = this.readUByte.bind(this), h = this.readBits.bind(this), f = this.readUEG.bind(this), g = this.readBoolean.bind(this), p = this.skipBits.bind(this), v = this.skipEG.bind(this), m = this.skipUEG.bind(this), y = this.skipScalingList.bind(this); if (c(), e = c(), h(5), p(3), c(),