{"version":3,"file":"index.js","sources":["../../../node_modules/core-js/internals/global.js","../../../node_modules/core-js/internals/fails.js","../../../node_modules/core-js/internals/descriptors.js","../../../node_modules/core-js/internals/object-property-is-enumerable.js","../../../node_modules/core-js/internals/create-property-descriptor.js","../../../node_modules/core-js/internals/classof-raw.js","../../../node_modules/core-js/internals/indexed-object.js","../../../node_modules/core-js/internals/require-object-coercible.js","../../../node_modules/core-js/internals/to-indexed-object.js","../../../node_modules/core-js/internals/is-object.js","../../../node_modules/core-js/internals/to-primitive.js","../../../node_modules/core-js/internals/to-object.js","../../../node_modules/core-js/internals/has.js","../../../node_modules/core-js/internals/document-create-element.js","../../../node_modules/core-js/internals/ie8-dom-define.js","../../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../node_modules/core-js/internals/an-object.js","../../../node_modules/core-js/internals/object-define-property.js","../../../node_modules/core-js/internals/create-non-enumerable-property.js","../../../node_modules/core-js/internals/set-global.js","../../../node_modules/core-js/internals/shared-store.js","../../../node_modules/core-js/internals/inspect-source.js","../../../node_modules/core-js/internals/native-weak-map.js","../../../node_modules/core-js/internals/is-pure.js","../../../node_modules/core-js/internals/shared.js","../../../node_modules/core-js/internals/uid.js","../../../node_modules/core-js/internals/shared-key.js","../../../node_modules/core-js/internals/hidden-keys.js","../../../node_modules/core-js/internals/internal-state.js","../../../node_modules/core-js/internals/redefine.js","../../../node_modules/core-js/internals/path.js","../../../node_modules/core-js/internals/get-built-in.js","../../../node_modules/core-js/internals/to-integer.js","../../../node_modules/core-js/internals/to-length.js","../../../node_modules/core-js/internals/to-absolute-index.js","../../../node_modules/core-js/internals/array-includes.js","../../../node_modules/core-js/internals/object-keys-internal.js","../../../node_modules/core-js/internals/enum-bug-keys.js","../../../node_modules/core-js/internals/object-get-own-property-names.js","../../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../../node_modules/core-js/internals/own-keys.js","../../../node_modules/core-js/internals/copy-constructor-properties.js","../../../node_modules/core-js/internals/is-forced.js","../../../node_modules/core-js/internals/export.js","../../../node_modules/core-js/internals/native-promise-constructor.js","../../../node_modules/core-js/internals/redefine-all.js","../../../node_modules/core-js/internals/a-possible-prototype.js","../../../node_modules/core-js/internals/object-set-prototype-of.js","../../../node_modules/core-js/internals/engine-user-agent.js","../../../node_modules/core-js/internals/engine-v8-version.js","../../../node_modules/core-js/internals/native-symbol.js","../../../node_modules/core-js/internals/use-symbol-as-uid.js","../../../node_modules/core-js/internals/well-known-symbol.js","../../../node_modules/core-js/internals/set-to-string-tag.js","../../../node_modules/core-js/internals/set-species.js","../../../node_modules/core-js/internals/a-function.js","../../../node_modules/core-js/internals/an-instance.js","../../../node_modules/core-js/internals/iterators.js","../../../node_modules/core-js/internals/is-array-iterator-method.js","../../../node_modules/core-js/internals/function-bind-context.js","../../../node_modules/core-js/internals/to-string-tag-support.js","../../../node_modules/core-js/internals/classof.js","../../../node_modules/core-js/internals/get-iterator-method.js","../../../node_modules/core-js/internals/iterator-close.js","../../../node_modules/core-js/internals/iterate.js","../../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../../node_modules/core-js/internals/species-constructor.js","../../../node_modules/core-js/internals/html.js","../../../node_modules/core-js/internals/engine-is-ios.js","../../../node_modules/core-js/internals/engine-is-node.js","../../../node_modules/core-js/internals/task.js","../../../node_modules/core-js/internals/engine-is-webos-webkit.js","../../../node_modules/core-js/internals/microtask.js","../../../node_modules/core-js/internals/new-promise-capability.js","../../../node_modules/core-js/internals/promise-resolve.js","../../../node_modules/core-js/internals/host-report-errors.js","../../../node_modules/core-js/internals/perform.js","../../../node_modules/core-js/internals/engine-is-browser.js","../../../node_modules/core-js/modules/es.promise.js","../../xgplayer-helper-utils/es/common/func/debounce.js","../../xgplayer-helper-utils/es/common/func/caculate.js","../../xgplayer-helper-utils/es/common/func/softSolution-probe.js","../../xgplayer-helper-utils/es/common/index.js","../../../node_modules/core-js/modules/es.symbol.description.js","../../../node_modules/core-js/internals/object-keys.js","../../../node_modules/core-js/internals/object-define-properties.js","../../../node_modules/core-js/internals/object-create.js","../../../node_modules/core-js/internals/add-to-unscopables.js","../../../node_modules/core-js/internals/correct-prototype-getter.js","../../../node_modules/core-js/internals/object-get-prototype-of.js","../../../node_modules/core-js/internals/iterators-core.js","../../../node_modules/core-js/internals/create-iterator-constructor.js","../../../node_modules/core-js/internals/define-iterator.js","../../../node_modules/core-js/modules/es.array.iterator.js","../../../node_modules/core-js/internals/dom-iterables.js","../../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../xgplayer-helper-utils/es/events/index.js","../../../node_modules/core-js/internals/array-method-is-strict.js","../../../node_modules/core-js/modules/es.array.sort.js","../../xgplayer-helper-models/es/playlist.js","../../xgplayer-helper-models/es/remuxed-buffer.js","../../xgplayer-helper-models/es/data-view.js","../../xgplayer-helper-models/es/track.js","../../xgplayer-helper-models/es/u8a-buffer.js","../../xgplayer-helper-models/es/track-meta.js","../../xgplayer-helper-models/es/track-sample.js","../../xgplayer-helper-models/es/media-info.js","../../xgplayer-helper-models/es/ts-frag.js","../../xgplayer-helper-utils/node_modules/eventemitter3/index.js","../../xgplayer-helper-utils/es/context/index.js","../../xgplayer-helper-utils/es/crypto/index.js","../../../node_modules/core-js/internals/string-multibyte.js","../../../node_modules/core-js/modules/es.string.iterator.js","../../../node_modules/core-js/internals/native-url.js","../../../node_modules/core-js/internals/object-assign.js","../../../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../../../node_modules/core-js/internals/create-property.js","../../../node_modules/core-js/internals/array-from.js","../../../node_modules/core-js/internals/string-punycode-to-ascii.js","../../../node_modules/core-js/internals/get-iterator.js","../../../node_modules/core-js/modules/web.url-search-params.js","../../../node_modules/core-js/modules/web.url.js","../../xgplayer-helper-utils/es/mse/index.js","../../xgplayer-helper-utils/es/loader-fetch/speed.js","../../xgplayer-helper-utils/es/loader-fetch/fetch-loader.js","../../xgplayer-helper-utils/es/loader-fetch/xhr-loader.js","../../xgplayer-helper-utils/es/common/dev-logger.js","../../xgplayer-helper-codec/es/aac/index.js","../../xgplayer-helper-codec/es/aac/adts.js","../../xgplayer-helper-codec/es/avc/golomb.js","../../xgplayer-helper-codec/es/avc/sps.js","../../xgplayer-helper-codec/es/avc/rbsp.js","../../xgplayer-helper-codec/es/avc/sei.js","../../xgplayer-helper-codec/es/avc/nalunit.js","../../xgplayer-helper-codec/es/hevc/golomb.js","../../xgplayer-helper-codec/es/hevc/sps.js","../../xgplayer-helper-codec/es/hevc/rbsp.js","../../xgplayer-helper-codec/es/hevc/sei.js","../../xgplayer-helper-codec/es/hevc/nalunit.js","../../xgplayer-helper-codec/es/compat/hls.js","../../xgplayer-helper-transmuxers/node_modules/eventemitter3/index.js","../../xgplayer-helper-transmuxers/es/hls/ts-demuxer.js","../../xgplayer-helper-transmuxers/es/hls/ts.js","../../../node_modules/core-js/internals/regexp-flags.js","../../../node_modules/core-js/internals/regexp-sticky-helpers.js","../../../node_modules/core-js/internals/regexp-exec.js","../../../node_modules/core-js/modules/es.regexp.exec.js","../../../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../../../node_modules/core-js/internals/advance-string-index.js","../../../node_modules/core-js/internals/get-substitution.js","../../../node_modules/core-js/internals/regexp-exec-abstract.js","../../../node_modules/core-js/modules/es.string.replace.js","../../xgplayer-helper-transmuxers/es/hls/m3u8.js","../../../node_modules/concat-typed-array/lib/concat.js","../../../node_modules/concat-typed-array/lib/index.js","../../xgplayer-helper-transmuxers/es/mp4-remux/buffer.js","../../xgplayer-helper-transmuxers/es/mp4-remux/fmp4.js","../../xgplayer-helper-transmuxers/es/mp4-remux/remuxer.js","../../xgplayer-helper-transmuxers/es/mp4-remux/index.js","../src/hls-vod.js","../src/index.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","module.exports = false;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.12.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n return !String(Symbol()) ||\n // Chrome 38 Symbol has incorrect toString conversion\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","module.exports = typeof window == 'object';\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromiseConstructorPrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructorPrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromiseConstructorPrototype = PromiseConstructor.prototype;\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructorPrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromiseConstructorPrototype['catch'], { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","/**\n * @param {number} num\n * @param {number} fixed\n * @return {number}\n */\nexport default (function (fn, wait) {\n var lastTime = Date.now();\n var timer = null;\n var isFirstTime = true;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var now = Date.now();\n\n if (isFirstTime) {\n lastTime = Date.now();\n isFirstTime = false;\n fn.apply(void 0, args);\n }\n\n if (now - lastTime > wait) {\n lastTime = now;\n fn.apply(void 0, args);\n } else {\n if (timer) {\n window.clearTimeout(timer);\n }\n\n timer = setTimeout(function () {\n fn.apply(void 0, args);\n }, wait);\n }\n };\n});","/**\n *\n * @param {number} num\n * @param {number} fixed\n * @return {number}\n */\nvar fixedFloat = function fixedFloat(num, fixed) {\n return parseFloat(Number(num).toFixed(fixed));\n};\n\nexport default {\n fixedFloat: fixedFloat\n};","export default function () {\n var webAudioEnable = false;\n var webglEnable = false;\n\n try {\n var AudioContext = window.AudioContext || window.webkitAudioContext;\n var ctx = new AudioContext();\n ctx.close();\n ctx = null;\n webAudioEnable = true;\n } catch (e) {}\n\n try {\n var cvs = document.createElement('canvas');\n var validContextNames = ['webgl', 'experimental-webgl', 'moz-webgl', 'webkit-3d'];\n\n for (var i = 0; i < validContextNames.length; i++) {\n var glCtx = cvs.getContext(validContextNames[i]);\n\n if (glCtx) {\n glCtx = null;\n cvs = null;\n webglEnable = true;\n break;\n }\n }\n } catch (e) {}\n\n var WebComponentSupported = 'customElements' in window && window.customElements.define;\n var isComponentDefined;\n\n if (WebComponentSupported) {\n var mVideo = window.customElements.get('live-video');\n isComponentDefined = mVideo && mVideo.isSupported();\n }\n\n return webAudioEnable && webglEnable && isComponentDefined;\n}","// import './func/buffer-dump'\nimport debounce from './func/debounce';\nimport caculate from './func/caculate';\nimport softSolutionProbe from './func/softSolution-probe';\nexport { debounce, caculate, softSolutionProbe };","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var BROWSER_EVENTS = {\n VISIBILITY_CHANGE: 'VISIBILITY_CHANGE'\n};\nvar PLAYER_EVENTS = {\n SEEK: 'SEEK'\n};\nvar LOADER_EVENTS = {\n LADER_START: 'LOADER_START',\n LOADER_DATALOADED: 'LOADER_DATALOADED',\n LOADER_COMPLETE: 'LOADER_COMPLETE',\n LOADER_RESPONSE_HEADERS: 'LOADER_RESPONSE_HEADERS',\n LOADER_ERROR: 'LOADER_ERROR',\n LOADER_RETRY: 'LOADER_RETRY',\n LOADER_TTFB: 'LOADER_TTFB'\n};\nvar DEMUX_EVENTS = {\n DEMUX_START: 'DEMUX_START',\n DEMUX_COMPLETE: 'DEMUX_COMPLETE',\n DEMUX_ERROR: 'DEMUX_ERROR',\n METADATA_PARSED: 'METADATA_PARSED',\n SEI_PARSED: 'SEI_PARSED',\n VIDEO_METADATA_CHANGE: 'VIDEO_METADATA_CHANGE',\n AUDIO_METADATA_CHANGE: 'AUDIO_METADATA_CHANGE',\n MEDIA_INFO: 'MEDIA_INFO',\n ISKEYFRAME: 'ISKEYFRAME'\n};\nvar REMUX_EVENTS = {\n REMUX_METADATA: 'REMUX_METADATA',\n REMUX_MEDIA: 'REMUX_MEDIA',\n MEDIA_SEGMENT: 'MEDIA_SEGMENT',\n REMUX_ERROR: 'REMUX_ERROR',\n INIT_SEGMENT: 'INIT_SEGMENT',\n DETECT_CHANGE_STREAM: 'DETECT_CHANGE_STREAM',\n DETECT_CHANGE_STREAM_DISCONTINUE: 'DETECT_CHANGE_STREAM_DISCONTINUE',\n DETECT_AUDIO_GAP: 'DETECT_AUDIO_GAP',\n DETECT_LARGE_GAP: 'DETECT_LARGE_GAP',\n DETECT_AUDIO_OVERLAP: 'DETECT_AUDIO_OVERLAP',\n RANDOM_ACCESS_POINT: 'RANDOM_ACCESS_POINT',\n DETECT_FRAG_ID_DISCONTINUE: 'DETECT_FRAG_ID_DISCONTINUE'\n};\nvar MSE_EVENTS = {\n SOURCE_UPDATE_END: 'SOURCE_UPDATE_END',\n MSE_ERROR: 'MSE_ERROR',\n MSE_WRONG_TRACK_ADD: 'MSE_WRONG_TRACK_ADD'\n}; // hls专有events\n\nvar HLS_EVENTS = {\n RETRY_TIME_EXCEEDED: 'RETRY_TIME_EXCEEDED'\n};\nvar CRYPTO_EVENTS = {\n START_DECRYPTOO: 'START_DECRYPTO',\n DECRYPTED: 'DECRYPTED'\n};\nvar ALLEVENTS = Object.assign({}, LOADER_EVENTS, DEMUX_EVENTS, REMUX_EVENTS, MSE_EVENTS, HLS_EVENTS, PLAYER_EVENTS, BROWSER_EVENTS);\nvar FlvAllowedEvents = [];\nvar HlsAllowedEvents = [];\n\nfor (var key in ALLEVENTS) {\n if (ALLEVENTS.hasOwnProperty(key)) {\n FlvAllowedEvents.push(ALLEVENTS[key]);\n }\n}\n\nfor (var _key in ALLEVENTS) {\n if (ALLEVENTS.hasOwnProperty(_key)) {\n HlsAllowedEvents.push(ALLEVENTS[_key]);\n }\n}\n\nexport default {\n ALLEVENTS: ALLEVENTS,\n HLS_EVENTS: HLS_EVENTS,\n REMUX_EVENTS: REMUX_EVENTS,\n DEMUX_EVENTS: DEMUX_EVENTS,\n MSE_EVENTS: MSE_EVENTS,\n LOADER_EVENTS: LOADER_EVENTS,\n FlvAllowedEvents: FlvAllowedEvents,\n HlsAllowedEvents: HlsAllowedEvents,\n CRYPTO_EVENTS: CRYPTO_EVENTS,\n PLAYER_EVENTS: PLAYER_EVENTS,\n BROWSER_EVENTS: BROWSER_EVENTS\n};","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * @typedef {Object} TSFrag\n * @property {number} duration\n * @property {boolean} downloaded\n * @property {boolean} downloading\n * @property {number=} start\n * @property {number} cc\n * @property {boolean} discontinue\n */\nvar Playlist = /*#__PURE__*/function () {\n function Playlist(configs) {\n _classCallCheck(this, Playlist);\n\n /** @type {string} */\n this._baseURL = '';\n /** @type {Object.} */\n\n this._list = {};\n /** @type {Object.} */\n\n this._ts = {};\n /** @type {number} */\n\n this.version = 0;\n /** @type {number} */\n\n this.sequence = -1;\n /** @type {number} */\n\n this.targetduration = 0;\n /** @type {number} */\n\n this.duration = 0;\n /** @type {number} */\n\n this.fragLength = 0;\n /** @type {TSFrag | undefined} */\n\n this._lastget = undefined;\n /** @type {boolean} */\n\n this.end = false; // 判断live | vod , 对点播或直播结束时存在 EXT-X-ENDLIST\n\n /** @type {boolean} */\n\n this.autoclear = configs.autoclear || false;\n /** @type {*} */\n\n this.logger = configs.logger;\n /** @type {string[]} */\n\n this.downloadedUrls = [];\n }\n /**\n * @return {Object}\n */\n\n\n _createClass(Playlist, [{\n key: \"list\",\n get: function get() {\n return this._list;\n }\n /**\n * @param {string} baseURL\n */\n\n }, {\n key: \"baseURL\",\n get:\n /**\n * base cdn url for ts fragments\n * @return {string}\n */\n function get() {\n return this._baseURL;\n }\n /**\n * add a ts frag to play list\n * @param {string} tsURL ts frag url\n * @param {number} duration ts frag duration\n * @param {boolean} discontinue has #EXT-X-DISCONTINUITY tag before this frag\n * @param {number} id\n * @param {number} cc\n */\n ,\n set: function set(baseURL) {\n if (this.baseURL !== baseURL) {\n this.clear();\n this._baseURL = baseURL;\n }\n }\n }, {\n key: \"push\",\n value: function push(tsURL, duration, discontinue, id, cc, isLast) {\n if (!this._ts[tsURL]) {\n this._ts[tsURL] = {\n duration: duration,\n downloaded: false,\n downloading: false,\n start: this.duration,\n discontinue: !!discontinue,\n id: id,\n cc: cc,\n isLast: isLast || false\n };\n this._list[this.duration] = tsURL;\n this.duration += duration;\n this.fragLength += 1;\n }\n }\n /**\n * delete a fragment from playlist\n * @param {string} url\n */\n\n }, {\n key: \"deleteFrag\",\n value: function deleteFrag(url) {\n if (this._ts[url]) {\n if (this._ts[url].start > this._lastget.time) {\n this._lastget = {\n duration: this._ts[url].duration,\n time: this._ts[url].start,\n downloaded: false,\n downloading: false,\n url: url,\n id: this._ts[url].id\n };\n }\n\n delete this._list[this._ts[url].start];\n delete this._ts[url];\n this.fragLength -= 1;\n }\n }\n /**\n * add m3u8 to current play list\n * @param {*} data\n * @param {boolean} deletepre\n */\n\n }, {\n key: \"pushM3U8\",\n value: function pushM3U8(data, deletepre) {\n // 常规信息替换\n if (!data) {\n throw new Error(\"No m3u8 data received.\");\n }\n\n this.version = data.version;\n this.targetduration = data.targetduration;\n\n if (data.encrypt && !this.encrypt) {\n this.encrypt = data.encrypt;\n }\n\n this.end = data.end || false;\n\n if (!data.sequence) {\n data.sequence = 0;\n } // 新分片信息\n\n\n if (data.sequence > this.sequence) {\n var len = data.frags.length;\n\n if (this.logger) {\n this.logger.log('PLAYLIST', \"new playlist [\".concat(data.sequence, \", \").concat(data.sequence + len, \"]\"));\n }\n\n this.sequence = data.sequence;\n var newfraglist = [];\n\n for (var i = 0; i < len; i++) {\n var frag = data.frags[i];\n\n if (!this._ts[frag.url] && this.downloadedUrls.indexOf(frag.url) < 0) {\n newfraglist.push(frag.url);\n this.push(frag.url, frag.duration, frag.discontinue, frag.id, frag.cc, frag.isLast);\n }\n }\n\n if (newfraglist.length < 1) {\n throw new Error(\"Can not read ts file list.\");\n }\n\n if (deletepre) {\n var tslist = this.getTsList();\n\n for (var _i = 0; _i < tslist.length; _i++) {\n if (newfraglist.indexOf(tslist[_i]) < 0) {\n this.deleteFrag(tslist[_i]);\n }\n }\n }\n } else {\n throw new Error(\"Old m3u8 file received, \".concat(data.sequence));\n }\n }\n /**\n * return ts url list\n * @return {string[]}\n */\n\n }, {\n key: \"getTsList\",\n value: function getTsList() {\n return Object.keys(this._ts);\n }\n /**\n * mark a ts frag as downloaded / not downloaded\n * @param {string} tsname\n * @param {boolean} isloaded\n */\n\n }, {\n key: \"downloaded\",\n value: function downloaded(tsname, isloaded) {\n var ts = this._ts[tsname];\n\n if (ts) {\n ts.downloaded = isloaded;\n }\n }\n /**\n * mark a ts frag as loading / not loading\n * @param {string} tsname\n * @param {boolean} loading\n */\n\n }, {\n key: \"downloading\",\n value: function downloading(tsname, loading) {\n var ts = this._ts[tsname];\n\n if (ts) {\n ts.downloading = loading;\n }\n }\n /**\n * get a frag by ts name\n * @param name\n * @return {TSFrag}\n */\n\n }, {\n key: \"getTsByName\",\n value: function getTsByName(name) {\n return this._ts[name];\n }\n /**\n * get ts frag by timestamp\n * @param {number} time\n * @return {undefined|TSFrag}\n */\n\n }, {\n key: \"getTs\",\n value: function getTs(time) {\n var timelist = Object.keys(this._list);\n var ts;\n\n if (time === undefined) {\n if (this._lastget) {\n time = this._lastget.time + this._lastget.duration;\n } else {\n time = 0;\n }\n }\n\n if (timelist.length < 1 || time >= this.duration) {\n return undefined;\n }\n\n timelist = timelist.sort(function (a, b) {\n return parseFloat(a) - parseFloat(b);\n });\n\n for (var i = 0; i < timelist.length; i++) {\n if (time >= parseInt(timelist[i])) {\n var url = this._list[timelist[i]];\n var downloaded = this._ts[url].downloaded;\n var downloading = this._ts[url].downloading;\n ts = {\n url: url,\n downloaded: downloaded,\n downloading: downloading,\n time: parseInt(timelist[i]),\n duration: parseInt(this._ts[url].duration),\n id: this._ts[url].id,\n cc: this._ts[url].cc,\n isLast: this._ts[url].isLast\n };\n\n if (this.autoclear && this._lastget) {\n delete this._ts[this._lastget.url];\n delete this._list[this._lastget.time];\n }\n\n this._lastget = ts;\n } else {\n break;\n }\n }\n\n if (ts) {\n this.downloadedUrls.push(ts.url);\n }\n\n return ts;\n }\n /**\n * get last downloaded ts frag\n * @return {TSFrag|undefined}\n */\n\n }, {\n key: \"getLastDownloadedTs\",\n value: function getLastDownloadedTs() {\n var timelist = Object.keys(this._list).sort(function (a, b) {\n var result = Number(a) - Number(b);\n return result;\n });\n var found;\n\n for (var i = 0; i < timelist.length; i++) {\n var url = this._list[timelist[i]];\n var downloaded = this._ts[url].downloaded;\n var downloading = this._ts[url].downloading;\n\n if (downloaded) {\n found = {\n url: url,\n downloaded: downloaded,\n downloading: downloading,\n time: parseInt(timelist[i]),\n duration: parseInt(this._ts[url].duration)\n };\n } else {\n break;\n }\n }\n\n return found;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._baseURL = '';\n this._list = {};\n this._ts = {};\n this.version = 0;\n this.sequence = -1;\n this.targetduration = 0;\n this.duration = 0;\n }\n }, {\n key: \"clearDownloaded\",\n value: function clearDownloaded() {\n var list = Object.keys(this._ts);\n\n for (var i = 0, l = list.length; i < l; i++) {\n var ts = this._ts[list[i]];\n ts.downloaded = false;\n ts.downloading = false;\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._baseURL = '';\n this._list = {};\n this._ts = {};\n this.version = 0;\n this.sequence = -1;\n this.targetduration = 0;\n this.duration = 0;\n this.fragLength = 0;\n this._lastget = undefined;\n this.autoclear = false;\n }\n }, {\n key: \"resetSequence\",\n value: function resetSequence() {\n this.sequence = -1;\n }\n }]);\n\n return Playlist;\n}();\n\nexport default Playlist;","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nexport var RemuxedBuffer = function RemuxedBuffer() {\n _classCallCheck(this, RemuxedBuffer);\n\n /** @type{string} */\n this.mimetype = '';\n /** @type{Uint8Array|null} */\n\n this.init = null;\n /** @type{Uint8Array[]} */\n\n this.data = [];\n /** @type{number} */\n\n this.bufferDuration = 0;\n};\n\nvar RemuxedBufferManager = /*#__PURE__*/function () {\n function RemuxedBufferManager() {\n _classCallCheck(this, RemuxedBufferManager);\n\n /** @type{Object.} */\n this.sources = {};\n }\n /**\n *\n * @param {string} name\n * @return {RemuxedBuffer}\n */\n\n\n _createClass(RemuxedBufferManager, [{\n key: \"getSource\",\n value: function getSource(name) {\n return this.sources[name];\n }\n /**\n * @param {string} name\n * @return {RemuxedBuffer}\n */\n\n }, {\n key: \"createSource\",\n value: function createSource(name) {\n this.sources[name] = new RemuxedBuffer();\n return this.sources[name];\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.sources = {};\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.clear();\n }\n }]);\n\n return RemuxedBufferManager;\n}();\n\nexport default RemuxedBufferManager;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar XGDataView = /*#__PURE__*/function () {\n function XGDataView(buffer) {\n _classCallCheck(this, XGDataView);\n\n if (buffer instanceof ArrayBuffer) {\n /** @type {ArrayBuffer} */\n this.buffer = buffer;\n /** @type {DataView} */\n\n this.dataview = new DataView(buffer);\n /** @type {number} */\n\n this.dataview.position = 0;\n } else {\n throw new Error('data is invalid');\n }\n }\n /**\n * byffer length\n * @return {number}\n */\n\n\n _createClass(XGDataView, [{\n key: \"length\",\n get: function get() {\n return this.buffer.byteLength;\n }\n /**\n * set current read position of data-view\n * @param value\n */\n\n }, {\n key: \"position\",\n get:\n /**\n * set current read position of data-view\n * @param value\n */\n function get() {\n return this.dataview.position;\n }\n /**\n * move read position backward\n * @param count\n */\n ,\n set: function set(value) {\n this.dataview.position = value;\n }\n }, {\n key: \"back\",\n value: function back(count) {\n this.position -= count;\n }\n /**\n * move read position forward\n * @param count\n */\n\n }, {\n key: \"skip\",\n value: function skip(count) {\n var loop = Math.floor(count / 4);\n var last = count % 4;\n\n for (var i = 0; i < loop; i++) {\n XGDataView.readByte(this.dataview, 4);\n }\n\n if (last > 0) {\n XGDataView.readByte(this.dataview, last);\n }\n }\n /**\n * [readByte 从DataView中读取数据]\n * @param {DataView} buffer [DataView实例]\n * @param {Number} size [读取字节数]\n * @return {Number} [整数]\n */\n\n }, {\n key: \"readUint8\",\n value:\n /**\n * @return {Number}\n */\n function readUint8() {\n return XGDataView.readByte(this.dataview, 1);\n }\n /**\n * @return {Number}\n */\n\n }, {\n key: \"readUint16\",\n value: function readUint16() {\n return XGDataView.readByte(this.dataview, 2);\n }\n /**\n * @return {Number}\n */\n\n }, {\n key: \"readUint24\",\n value: function readUint24() {\n return XGDataView.readByte(this.dataview, 3);\n }\n /**\n * @return {Number}\n */\n\n }, {\n key: \"readUint32\",\n value: function readUint32() {\n return XGDataView.readByte(this.dataview, 4);\n }\n /**\n * @return {Number}\n */\n\n }, {\n key: \"readUint64\",\n value: function readUint64() {\n return XGDataView.readByte(this.dataview, 8);\n }\n /**\n * @return {Number}\n */\n\n }, {\n key: \"readInt8\",\n value: function readInt8() {\n return XGDataView.readByte(this.dataview, 1, true);\n }\n /**\n * @return {Number}\n */\n\n }, {\n key: \"readInt16\",\n value: function readInt16() {\n return XGDataView.readByte(this.dataview, 2, true);\n }\n /**\n * @return {Number}\n */\n\n }, {\n key: \"readInt32\",\n value: function readInt32() {\n return XGDataView.readByte(this.dataview, 4, true);\n }\n /**\n * @return {Uint8Array}\n */\n\n }, {\n key: \"writeUint32\",\n value: function writeUint32(value) {\n return new Uint8Array([value >>> 24 & 0xff, value >>> 16 & 0xff, value >>> 8 & 0xff, value & 0xff]);\n }\n }], [{\n key: \"readByte\",\n value: function readByte(buffer, size, sign) {\n var res;\n\n switch (size) {\n case 1:\n if (sign) {\n res = buffer.getInt8(buffer.position);\n } else {\n res = buffer.getUint8(buffer.position);\n }\n\n break;\n\n case 2:\n if (sign) {\n res = buffer.getInt16(buffer.position);\n } else {\n res = buffer.getUint16(buffer.position);\n }\n\n break;\n\n case 3:\n if (sign) {\n throw new Error('not supported for readByte 3');\n } else {\n res = buffer.getUint8(buffer.position) << 16;\n res |= buffer.getUint8(buffer.position + 1) << 8;\n res |= buffer.getUint8(buffer.position + 2);\n }\n\n break;\n\n case 4:\n if (sign) {\n res = buffer.getInt32(buffer.position);\n } else {\n res = buffer.getUint32(buffer.position);\n }\n\n break;\n\n case 8:\n if (sign) {\n throw new Error('not supported for readBody 8');\n } else {\n res = buffer.getUint32(buffer.position) << 32;\n res |= buffer.getUint32(buffer.position + 4);\n }\n\n break;\n\n default:\n res = '';\n }\n\n buffer.position += size;\n return res;\n }\n }]);\n\n return XGDataView;\n}();\n\nexport default XGDataView;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Track = /*#__PURE__*/function () {\n function Track() {\n _classCallCheck(this, Track);\n\n /** @type {number} */\n this.id = -1;\n /** @type {number} */\n\n this.sequenceNumber = 0;\n /** @type {*} */\n\n this.samples = [];\n /** @type {*} */\n\n this.droppedSamples = [];\n /** @type {number} */\n\n this.length = 0;\n }\n\n _createClass(Track, [{\n key: \"reset\",\n value: function reset() {\n this.sequenceNumber = 0;\n this.samples = [];\n this.length = 0;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.reset();\n this.id = -1;\n }\n }]);\n\n return Track;\n}();\n\nexport { Track as default };\nexport var AudioTrack = /*#__PURE__*/function (_Track) {\n _inherits(AudioTrack, _Track);\n\n var _super = _createSuper(AudioTrack);\n\n function AudioTrack() {\n var _this;\n\n _classCallCheck(this, AudioTrack);\n\n _this = _super.call(this);\n /** @type {string} */\n\n _this.TAG = 'AudioTrack';\n /** @type {string} */\n\n _this.type = 'audio';\n return _this;\n }\n\n return AudioTrack;\n}(Track);\nexport var VideoTrack = /*#__PURE__*/function (_Track2) {\n _inherits(VideoTrack, _Track2);\n\n var _super2 = _createSuper(VideoTrack);\n\n function VideoTrack() {\n var _this2;\n\n _classCallCheck(this, VideoTrack);\n\n _this2 = _super2.call(this);\n /** @type {string} */\n\n _this2.TAG = 'VideoTrack';\n /** @type {string} */\n\n _this2.type = 'video';\n /** @type {number} */\n\n _this2.dropped = 0;\n /** @type {number} */\n\n _this2.sequenceNumber = 0;\n return _this2;\n }\n\n _createClass(VideoTrack, [{\n key: \"reset\",\n value: function reset() {\n this.sequenceNumber = 0;\n this.samples = [];\n this.length = 0;\n this.dropped = 0;\n }\n }]);\n\n return VideoTrack;\n}(Track);\nexport var Tracks = /*#__PURE__*/function () {\n function Tracks() {\n _classCallCheck(this, Tracks);\n\n this.audioTrack = null;\n this.videoTrack = null;\n }\n\n _createClass(Tracks, [{\n key: \"destroy\",\n value: function destroy() {\n this.audioTrack = null;\n this.videoTrack = null;\n }\n }]);\n\n return Tracks;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar XgBuffer = /*#__PURE__*/function () {\n /**\n * A buffer to store loaded data.\n *\n * @class LoaderBuffer\n * @param {number} length - Optional the buffer size\n */\n function XgBuffer(length) {\n _classCallCheck(this, XgBuffer);\n\n this.length = length || 0;\n this.historyLen = length || 0;\n this.array = [];\n this.offset = 0;\n }\n /**\n * The function to push data.\n *\n * @param {Uint8Array} data - The data to push into the buffer\n */\n\n\n _createClass(XgBuffer, [{\n key: \"push\",\n value: function push(data) {\n this.array.push(data);\n this.length += data.byteLength;\n this.historyLen += data.byteLength;\n }\n /**\n * The function to shift data.\n *\n * @param {number} length - The size of shift.\n */\n\n }, {\n key: \"shift\",\n value: function shift(length) {\n if (this.array.length < 1) {\n return new Uint8Array(0);\n }\n\n if (length === undefined) {\n return this._shiftBuffer();\n }\n\n if (this.offset + length === this.array[0].length) {\n var _ret = this.array[0].slice(this.offset, this.offset + length);\n\n this.offset = 0;\n this.array.shift();\n this.length -= length;\n return _ret;\n }\n\n if (this.offset + length < this.array[0].length) {\n var _ret2 = this.array[0].slice(this.offset, this.offset + length);\n\n this.offset += length;\n this.length -= length;\n return _ret2;\n }\n\n var ret = new Uint8Array(length);\n var tmpoff = 0;\n\n while (this.array.length > 0 && length > 0) {\n if (this.offset + length < this.array[0].length) {\n var tmp = this.array[0].slice(this.offset, this.offset + length);\n ret.set(tmp, tmpoff);\n this.offset += length;\n this.length -= length;\n length = 0;\n break;\n } else {\n // console.log('mark1')\n var templength = this.array[0].length - this.offset;\n ret.set(this.array[0].slice(this.offset, this.array[0].length), tmpoff);\n this.array.shift();\n this.offset = 0;\n tmpoff += templength;\n this.length -= templength;\n length -= templength;\n }\n }\n\n return ret;\n }\n /**\n * Function to clear the buffer.\n */\n\n }, {\n key: \"clear\",\n value: function clear() {\n this.array = [];\n this.length = 0;\n this.offset = 0;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.clear();\n this.historyLen = 0;\n }\n /**\n * Function to shift one unit8Array.\n */\n\n }, {\n key: \"_shiftBuffer\",\n value: function _shiftBuffer() {\n this.length -= this.array[0].length;\n this.offset = 0;\n return this.array.shift();\n }\n /**\n * Convert uint8 data to number.\n *\n * @param {number} start - the start postion.\n * @param {number} length - the length of data.\n */\n\n }, {\n key: \"toInt\",\n value: function toInt(start, length) {\n var retInt = 0;\n var i = this.offset + start;\n\n while (i < this.offset + length + start) {\n if (i < this.array[0].length) {\n retInt = retInt * 256 + this.array[0][i];\n } else if (this.array[1]) {\n retInt = retInt * 256 + this.array[1][i - this.array[0].length];\n }\n\n i++;\n }\n\n return retInt;\n }\n }]);\n\n return XgBuffer;\n}();\n\nexport default XgBuffer;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nexport var AudioTrackMeta = /*#__PURE__*/function () {\n function AudioTrackMeta(meta) {\n _classCallCheck(this, AudioTrackMeta);\n\n var _default = {\n sampleRate: 48000,\n channelCount: 2,\n codec: 'mp4a.40.2',\n config: [41, 401, 136, 0],\n duration: 0,\n id: 2,\n refSampleDuration: 21,\n sampleRateIndex: 3,\n timescale: 1000,\n type: 'audio'\n };\n\n if (meta) {\n return Object.assign({}, _default, meta);\n }\n\n return _default;\n }\n\n _createClass(AudioTrackMeta, [{\n key: \"destroy\",\n value: function destroy() {\n this.init = null;\n }\n }]);\n\n return AudioTrackMeta;\n}();\nexport var VideoTrackMeta = /*#__PURE__*/function () {\n function VideoTrackMeta(meta) {\n _classCallCheck(this, VideoTrackMeta);\n\n var _default = {\n avcc: null,\n sps: new Uint8Array(0),\n pps: new Uint8Array(0),\n chromaFormat: 420,\n codec: 'avc1.640020',\n codecHeight: 720,\n codecWidth: 1280,\n duration: 0,\n frameRate: {\n fixed: true,\n fps: 25,\n fps_num: 25000,\n fps_den: 1000\n },\n id: 1,\n level: '3.2',\n presentHeight: 720,\n presentWidth: 1280,\n profile: 'High',\n refSampleDuration: 40,\n parRatio: {\n height: 1,\n width: 1\n },\n timescale: 1000,\n type: 'video'\n };\n\n if (meta) {\n return Object.assign({}, _default, meta);\n }\n\n return _default;\n }\n\n _createClass(VideoTrackMeta, [{\n key: \"destroy\",\n value: function destroy() {\n this.init = null;\n this.sps = null;\n this.pps = null;\n }\n }]);\n\n return VideoTrackMeta;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * @typedef {Object} TAudioSample\n * @property {number} dts\n * @property {number} pts\n * @property {number} originDts\n * @property {Uint8Array} data\n */\n\n/**\n * @typedef {Object} TVideoSample\n * @property {number} dts\n * @property {number} pts\n * @property {boolean} isKeyframe\n * @property {number} originDts\n * @property {Uint8Array} data\n * @property {Array} nals\n */\nexport var AudioSample = /*#__PURE__*/function () {\n function AudioSample(info) {\n _classCallCheck(this, AudioSample);\n\n var _default = AudioSample.getDefault();\n\n if (!info) {\n return _default;\n }\n\n return Object.assign({}, _default, info);\n }\n /**\n * default audio sample\n * @return {TAudioSample}\n */\n\n\n _createClass(AudioSample, null, [{\n key: \"getDefault\",\n value: function getDefault() {\n return {\n dts: -1,\n pts: -1,\n originDts: -1,\n data: new Uint8Array()\n };\n }\n }]);\n\n return AudioSample;\n}();\nexport var VideoSample = /*#__PURE__*/function () {\n /**\n * @constructor\n * @param info\n * @return {TVideoSample}\n */\n function VideoSample(info) {\n _classCallCheck(this, VideoSample);\n\n var _default = VideoSample.getDefault();\n\n if (!info) {\n return _default;\n }\n\n var sample = Object.assign({}, _default, info);\n return sample;\n }\n /**\n * default video sample\n * @return {TVideoSample}\n */\n\n\n _createClass(VideoSample, null, [{\n key: \"getDefault\",\n value: function getDefault() {\n return {\n dts: -1,\n pts: undefined,\n isKeyframe: false,\n // is Random access point\n originDts: -1,\n data: new Uint8Array(),\n nals: []\n };\n }\n }]);\n\n return VideoSample;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * @typedef {Object} VideoMediaInfo\n * @property {string|null} codec\n * @property {number|null} width\n * @property {number|null} height\n * @property {string|null} profile\n * @property {{fixed: boolean,fps: number,fps_num: number,fps_den: number}} frameRate\n * @property {string|null} chromaFormat\n * @property {{width:number,height:number}} parRatio\n */\n\n/**\n * @typedef {Object} AudioMediaInfo\n * @property {string|null} codec\n * @property {number|null} sampleRate\n * @property {number|null} sampleRateIndex\n * @property {number|null} channelCount\n */\n\n/**\n * @param {Object} obj\n * @return {boolean}\n */\nvar isObjectFilled = function isObjectFilled(obj) {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (obj[key] === null) {\n return false;\n }\n }\n }\n\n return true;\n};\n\nvar MediaInfo = /*#__PURE__*/function () {\n function MediaInfo() {\n _classCallCheck(this, MediaInfo);\n\n this.mimeType = null;\n this.duration = null;\n /** @type {boolean} */\n\n this.hasVideo = false;\n /**\n * video media info\n * @type {VideoMediaInfo}\n */\n\n this.video = {\n codec: null,\n width: null,\n height: null,\n profile: null,\n level: null,\n frameRate: {\n fixed: true,\n fps: 25,\n fps_num: 25000,\n fps_den: 1000\n },\n chromaFormat: null,\n parRatio: {\n width: 1,\n height: 1\n }\n };\n /** @type {boolean} */\n\n this.hasAudio = false;\n /**\n * video media info\n * @type {AudioMediaInfo}\n */\n\n this.audio = {\n codec: null,\n sampleRate: null,\n sampleRateIndex: null,\n channelCount: null\n };\n }\n\n _createClass(MediaInfo, [{\n key: \"isComplete\",\n value: function isComplete() {\n return MediaInfo.isBaseInfoReady(this) && MediaInfo.isVideoReady(this) && MediaInfo.isAudioReady(this);\n }\n }], [{\n key: \"isBaseInfoReady\",\n value: function isBaseInfoReady(mediaInfo) {\n return isObjectFilled(mediaInfo);\n }\n }, {\n key: \"isVideoReady\",\n value: function isVideoReady(mediaInfo) {\n if (!mediaInfo.hasVideo) {\n return true;\n }\n\n return isObjectFilled(mediaInfo.video);\n }\n }, {\n key: \"isAudioReady\",\n value: function isAudioReady(mediaInfo) {\n if (!mediaInfo.hasAudio) {\n return true;\n }\n\n return isObjectFilled(mediaInfo.video);\n }\n }]);\n\n return MediaInfo;\n}();\n\nexport { MediaInfo as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * @typedef {Object} TsFragProps\n * @property {number} start\n * @property {number} duration\n * @property {url} url\n * @property {boolean} discontinue\n * @property {number} id\n * @property {number} cc\n */\nvar TsFrag = /*#__PURE__*/function () {\n /**\n *\n * @param {TsFragProps} props\n */\n function TsFrag(props) {\n _classCallCheck(this, TsFrag);\n\n var merged = Object.assign({}, TsFrag.getDefault(), props);\n /**\n * @type {TsFragProps.id}\n */\n\n this.id = merged.id;\n /**\n * @type {TsFragProps.url}\n */\n\n this.url = merged.url;\n /**\n * @type {TsFragProps.start}\n */\n\n this.start = merged.start;\n /**\n * @type {TsFragProps.duration}\n */\n\n this.duration = merged.duration;\n /**\n * @type {TsFragProps.discontinue}\n */\n\n this.discontinue = merged.discontinue;\n /**\n * @type {TsFragProps.cc}\n */\n\n this.cc = merged.cc;\n }\n\n _createClass(TsFrag, null, [{\n key: \"getDefault\",\n value:\n /**\n *\n * @return TsFrag\n */\n function getDefault() {\n return {\n id: -1,\n url: '',\n start: -1,\n duration: -1,\n discontinue: false,\n cc: -1\n };\n }\n }]);\n\n return TsFrag;\n}();\n\nexport { TsFrag as default };","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport EVENTS from '../events';\nimport { MediaInfo } from 'xgplayer-helper-models';\nimport EventEmitter from 'eventemitter3';\nvar DIRECT_EMIT_FLAG = '__TO__';\n\nvar Context = /*#__PURE__*/function () {\n /**\n *\n * @param {*} player\n * @param {*} configs\n * @param {string[]}allowedEvents\n */\n function Context(player, configs) {\n var allowedEvents = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n _classCallCheck(this, Context);\n\n this._emitter = new EventEmitter();\n\n if (!this._emitter.off) {\n this._emitter.off = this._emitter.removeListener;\n }\n\n this.mediaInfo = new MediaInfo();\n this._instanceMap = {}; // 所有的解码流程实例\n\n this._clsMap = {}; // 构造函数的map\n\n this._inited = false;\n this.allowedEvents = allowedEvents;\n this._configs = configs;\n this._player = player;\n this._hooks = {}; // 注册在事件前/后的钩子,例如 before('DEMUX_COMPLETE')\n }\n /**\n * 从上下文中获取解码流程实例,如果没有实例,构造一个\n * @param {string} tag\n * @returns {*}\n */\n\n\n _createClass(Context, [{\n key: \"getInstance\",\n value: function getInstance(tag) {\n var instance = this._instanceMap[tag];\n\n if (instance) {\n return instance;\n } else {\n // throw new Error(`${tag}实例尚未初始化`)\n return null;\n }\n }\n /**\n * 初始化具体实例\n * @param {string} tag\n * @param {any[]}args\n */\n\n }, {\n key: \"initInstance\",\n value: function initInstance(tag) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var a = args[0],\n b = args[1],\n c = args[2],\n d = args[3];\n\n if (this._clsMap[tag]) {\n var newInstance = new this._clsMap[tag](a, b, c, d);\n this._instanceMap[tag] = newInstance;\n\n if (newInstance.init) {\n newInstance.init(); // TODO: lifecircle\n }\n\n return newInstance;\n } else {\n throw new Error(\"\".concat(tag, \"\\u672A\\u5728context\\u4E2D\\u6CE8\\u518C\"));\n }\n }\n /**\n * 避免大量的initInstance调用,初始化所有的组件\n * @param {*} config\n */\n\n }, {\n key: \"init\",\n value: function init(config) {\n if (this._inited) {\n return;\n }\n\n for (var tag in this._clsMap) {\n // if not inited, init an instance\n if (this._clsMap.hasOwnProperty(tag) && !this._instanceMap[tag]) {\n this.initInstance(tag, config);\n }\n }\n\n this._inited = true;\n }\n /**\n * 注册一个上下文流程,提供安全的事件发送机制\n * @param {string} tag\n * @param {*} cls\n */\n\n }, {\n key: \"registry\",\n value: function registry(tag, cls) {\n var _this2 = this;\n\n var emitter = this._emitter;\n\n var checkMessageName = this._isMessageNameValid.bind(this);\n\n var self = this;\n\n var enhanced = /*#__PURE__*/function (_cls) {\n _inherits(enhanced, _cls);\n\n var _super = _createSuper(enhanced);\n\n function enhanced(a, b, c) {\n var _this;\n\n _classCallCheck(this, enhanced);\n\n _this = _super.call(this, a, b, c);\n _this.listeners = {};\n _this.onceListeners = {};\n _this.TAG = tag;\n _this._context = self;\n return _this;\n }\n /**\n * @param {string} messageName\n * @param {function} callback\n */\n\n\n _createClass(enhanced, [{\n key: \"on\",\n value: function on(messageName, callback) {\n checkMessageName(messageName);\n\n if (this.listeners[messageName]) {\n this.listeners[messageName].push(callback);\n } else {\n this.listeners[messageName] = [callback];\n }\n\n emitter.on(\"\".concat(messageName).concat(DIRECT_EMIT_FLAG).concat(tag), callback); // 建立定向通信监听\n\n return emitter.on(messageName, callback);\n }\n /**\n * @param {string} messageName\n * @param {function} callback\n */\n\n }, {\n key: \"before\",\n value: function before(messageName, callback) {\n checkMessageName(messageName);\n\n if (self._hooks[messageName]) {\n self._hooks[messageName].push(callback);\n } else {\n self._hooks[messageName] = [callback];\n }\n }\n /**\n * @param {string} messageName\n * @param {function} callback\n */\n\n }, {\n key: \"once\",\n value: function once(messageName, callback) {\n checkMessageName(messageName);\n\n if (this.onceListeners[messageName]) {\n this.onceListeners[messageName].push(callback);\n } else {\n this.onceListeners[messageName] = [callback];\n }\n\n emitter.once(\"\".concat(messageName).concat(DIRECT_EMIT_FLAG).concat(tag), callback);\n return emitter.once(messageName, callback);\n }\n /**\n * @param {string} messageName\n * @param {any[]} args\n */\n\n }, {\n key: \"emit\",\n value: function emit(messageName) {\n checkMessageName(messageName); // console.log('emit ', messageName);\n\n var beforeList = self._hooks ? self._hooks[messageName] : null;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n if (beforeList) {\n for (var i = 0, len = beforeList.length; i < len; i++) {\n var callback = beforeList[i]; // eslint-disable-next-line standard/no-callback-literal\n\n callback.apply(void 0, args);\n }\n }\n\n return emitter.emit.apply(emitter, [messageName].concat(args));\n }\n /**\n * 定向发送给某个组件单例的消息\n * @param {string} messageName\n * @param {any[]} args\n */\n\n }, {\n key: \"emitTo\",\n value: function emitTo(tag, messageName) {\n checkMessageName(messageName);\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n args[_key3 - 2] = arguments[_key3];\n }\n\n return emitter.emit.apply(emitter, [\"\".concat(messageName).concat(DIRECT_EMIT_FLAG).concat(tag)].concat(args));\n }\n /**\n * 定向发送给某个组件单例的消息\n * @param {string} messageName\n * @param {function} callback\n */\n\n }, {\n key: \"off\",\n value: function off(messageName, callback) {\n checkMessageName(messageName);\n return emitter.off(messageName, callback);\n }\n }, {\n key: \"removeListeners\",\n value: function removeListeners() {\n var hasOwn = Object.prototype.hasOwnProperty.bind(this.listeners);\n\n for (var messageName in this.listeners) {\n if (hasOwn(messageName)) {\n var callbacks = this.listeners[messageName] || [];\n\n for (var i = 0; i < callbacks.length; i++) {\n var callback = callbacks[i];\n emitter.off(messageName, callback);\n emitter.off(\"\".concat(messageName).concat(DIRECT_EMIT_FLAG).concat(tag), callback);\n }\n }\n }\n\n for (var _messageName in this.onceListeners) {\n if (hasOwn(_messageName)) {\n var _callbacks = this.onceListeners[_messageName] || [];\n\n for (var _i = 0; _i < _callbacks.length; _i++) {\n var _callback = _callbacks[_i];\n emitter.off(_messageName, _callback);\n emitter.off(\"\".concat(_messageName).concat(DIRECT_EMIT_FLAG).concat(tag), _callback);\n }\n }\n }\n }\n /**\n * 在组件销毁时,默认将它注册的事件全部卸载,确保不会造成内存泄漏\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n // step1 unlisten events\n this.removeListeners();\n this.listeners = {}; // step2 release from context\n\n delete self._instanceMap[tag];\n\n if (_get(_getPrototypeOf(enhanced.prototype), \"destroy\", this)) {\n return _get(_getPrototypeOf(enhanced.prototype), \"destroy\", this).call(this);\n }\n\n this._context = null;\n }\n }, {\n key: \"_player\",\n get: function get() {\n if (!this._context) {\n return null;\n }\n\n return this._context._player;\n },\n set: function set(v) {\n if (this._context) {\n this._context._player = v;\n }\n }\n }, {\n key: \"_pluginConfig\",\n get: function get() {\n if (!this._context) {\n return null;\n }\n\n return this._context._configs;\n }\n }]);\n\n return enhanced;\n }(cls);\n\n this._clsMap[tag] = enhanced;\n /**\n * get instance immediately\n * e.g const instance = context.registry(tag, Cls)(config)\n * */\n\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this2.initInstance.apply(_this2, [tag].concat(args));\n };\n }\n /**\n * 各个模块处理seek\n * @param {number} time\n */\n\n }, {\n key: \"seek\",\n value: function seek(time) {\n this._emitter.emit(EVENTS.PLAYER_EVENTS.SEEK, time);\n }\n /**\n * 对存在的实例进行\n */\n\n }, {\n key: \"destroyInstances\",\n value: function destroyInstances() {\n var _this3 = this;\n\n Object.keys(this._instanceMap).forEach(function (tag) {\n if (_this3._instanceMap[tag].destroy) {\n _this3._instanceMap[tag].destroy();\n }\n });\n }\n /**\n * 编解码流程无需关注事件的解绑\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.destroyInstances();\n\n this._emitter.removeAllListeners();\n\n this._emitter = null;\n this.allowedEvents = [];\n this._clsMap = null;\n this._hooks = null;\n this._player = null;\n this._configs = null;\n }\n /**\n * 对信道进行收拢\n * @param {string} messageName\n * @private\n */\n\n }, {\n key: \"_isMessageNameValid\",\n value: function _isMessageNameValid(messageName) {\n if (!this.allowedEvents.indexOf(messageName) < 0) {\n throw new Error(\"unregistered message name: \".concat(messageName));\n }\n }\n }]);\n\n return Context;\n}();\n\nexport default Context;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport EVENTS from '../events';\nvar CRYPTO_EVENTS = EVENTS.CRYPTO_EVENTS;\n\nvar Crypto = /*#__PURE__*/function () {\n function Crypto(config) {\n _classCallCheck(this, Crypto);\n\n this.inputBuffer = config.inputbuffer;\n this.outputBuffer = config.outputbuffer;\n this.key = config.key;\n this.iv = config.iv;\n this.method = config.method;\n this.crypto = window.crypto || window.msCrypto;\n }\n\n _createClass(Crypto, [{\n key: \"init\",\n value: function init() {\n this.on(CRYPTO_EVENTS.START_DECRYPTO, this.decrypto.bind(this));\n }\n }, {\n key: \"decrypto\",\n value: function decrypto() {\n var _this = this;\n\n if (!this.aeskey) {\n var sbkey = this.crypto.subtle.importKey('raw', this.key.buffer, {\n name: 'AES-CBC'\n }, false, ['encrypt', 'decrypt']);\n sbkey.then(function (key) {\n _this.aeskey = key;\n\n _this.decryptoData();\n });\n } else {\n this.decryptoData();\n }\n }\n }, {\n key: \"decryptoData\",\n value: function decryptoData() {\n var _this2 = this;\n\n var inputbuffer = this._context.getInstance(this.inputBuffer);\n\n var outputbuffer = this._context.getInstance(this.outputBuffer);\n\n var data = inputbuffer.shift();\n\n if (data) {\n this.crypto.subtle.decrypt({\n name: 'AES-CBC',\n iv: this.iv.buffer\n }, this.aeskey, data).then(function (res) {\n outputbuffer.push(new Uint8Array(res));\n\n _this2.emit(CRYPTO_EVENTS.DECRYPTED);\n\n _this2.decryptoData(data);\n });\n }\n }\n }]);\n\n return Crypto;\n}();\n\nexport default Crypto;","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:?@[\\\\]]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:?@[\\\\]]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport EVENTS from '../events';\nvar MSE_EVENTS = EVENTS.MSE_EVENTS;\n\nvar MSE = /*#__PURE__*/function () {\n function MSE(configs, context) {\n _classCallCheck(this, MSE);\n\n if (context) {\n this._context = context;\n this.emit = context._emitter.emit.bind(context._emitter);\n }\n\n this.TAG = 'MSE';\n this.configs = Object.assign({}, configs);\n this.container = this.configs.container;\n this.format = this.configs.format; // hls | flv\n\n this.mediaSource = null;\n this.sourceBuffers = {};\n this.preloadTime = this.configs.preloadTime || 1;\n this.onSourceOpen = this.onSourceOpen.bind(this);\n this.onTimeUpdate = this.onTimeUpdate.bind(this);\n this.onUpdateEnd = this.onUpdateEnd.bind(this);\n this.onWaiting = this.onWaiting.bind(this);\n this.opened = false;\n }\n\n _createClass(MSE, [{\n key: \"init\",\n value: function init() {\n // eslint-disable-next-line no-undef\n this.mediaSource = new self.MediaSource();\n this.mediaSource.addEventListener('sourceopen', this.onSourceOpen);\n this._url = null;\n this.container.addEventListener('timeupdate', this.onTimeUpdate);\n this.container.addEventListener('waiting', this.onWaiting);\n }\n }, {\n key: \"resetContext\",\n value: function resetContext(newCtx, keepBuffer) {\n this._context = newCtx;\n this.emit = newCtx._emitter.emit.bind(newCtx._emitter);\n\n if (!keepBuffer) {\n for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {\n var buffer = this.sourceBuffers[Object.keys(this.sourceBuffers)[i]];\n\n if (!buffer.updating) {\n MSE.clearBuffer(buffer);\n }\n }\n }\n }\n }, {\n key: \"onTimeUpdate\",\n value: function onTimeUpdate() {\n this.emit('TIME_UPDATE', this.container);\n }\n }, {\n key: \"onWaiting\",\n value: function onWaiting() {\n this.emit('WAITING', this.container);\n }\n }, {\n key: \"onSourceOpen\",\n value: function onSourceOpen() {\n this.opened = true;\n this.addSourceBuffers();\n }\n }, {\n key: \"onUpdateEnd\",\n value: function onUpdateEnd() {\n this.emit(MSE_EVENTS.SOURCE_UPDATE_END);\n this.doAppend();\n }\n }, {\n key: \"addSourceBuffers\",\n value: function addSourceBuffers() {\n if (!this.mediaSource || this.mediaSource.readyState !== 'open' || !this.opened) {\n return;\n }\n\n var sources = this._context.getInstance('PRE_SOURCE_BUFFER');\n\n var tracks = this._context.getInstance('TRACKS');\n\n var track;\n\n if (!sources || !tracks) {\n return;\n }\n\n sources = sources.sources;\n var add = false;\n\n for (var i = 0, k = Object.keys(sources).length; i < k; i++) {\n var type = Object.keys(sources)[i];\n add = false;\n\n if (type === 'audio') {\n track = tracks.audioTrack;\n } else if (type === 'video') {\n track = tracks.videoTrack; // return;\n }\n\n if (track && sources[type].init !== null && sources[type].data.length) {\n add = true;\n }\n }\n\n if (add) {\n if (Object.keys(this.sourceBuffers).length > 1) {\n return;\n }\n\n for (var _i = 0, _k = Object.keys(sources).length; _i < _k; _i++) {\n var _type = Object.keys(sources)[_i];\n\n if (this.sourceBuffers[_type]) {\n continue;\n }\n\n var source = sources[_type];\n var mime = _type === 'video' ? 'video/mp4;codecs=' + source.mimetype : 'audio/mp4;codecs=' + source.mimetype;\n\n try {\n // console.log('add sourcebuffer', mime);\n var sourceBuffer = this.mediaSource.addSourceBuffer(mime);\n this.sourceBuffers[_type] = sourceBuffer;\n sourceBuffer.addEventListener('updateend', this.onUpdateEnd);\n } catch (e) {\n if (e.code === 22 && Object.keys(this.sourceBuffers).length > 0) {\n return this.emit(MSE_EVENTS.MSE_WRONG_TRACK_ADD, _type);\n }\n\n this.emit(MSE_EVENTS.MSE_ERROR, this.TAG, new Error(e.message));\n }\n }\n\n if (Object.keys(this.sourceBuffers).length === this.sourceBufferLen) {\n this.doAppend();\n }\n }\n }\n }, {\n key: \"doAppend\",\n value: function doAppend() {\n if (!this.mediaSource || this.mediaSource.readyState === 'closed') return;\n\n this._doCleanupSourceBuffer();\n\n var sources = this._context.getInstance('PRE_SOURCE_BUFFER');\n\n if (!sources) return;\n\n if (Object.keys(this.sourceBuffers).length < this.sourceBufferLen) {\n return;\n }\n\n for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {\n var type = Object.keys(this.sourceBuffers)[i];\n var sourceBuffer = this.sourceBuffers[type];\n if (sourceBuffer.updating) continue;\n var source = sources.sources[type];\n\n if (this[\"no\".concat(type)]) {\n source.data = [];\n source.init.buffer = null;\n continue;\n }\n\n if (source && !source.inited) {\n try {\n // console.log('append init buffer: ', type)\n sourceBuffer.appendBuffer(source.init.buffer.buffer);\n source.inited = true;\n } catch (e) {// DO NOTHING\n }\n } else if (source) {\n var data = source.data.shift();\n\n if (data) {\n try {\n // console.log('append buffer: ', type);\n sourceBuffer.appendBuffer(data.buffer.buffer);\n } catch (e) {\n source.data.unshift(data);\n }\n }\n }\n }\n }\n }, {\n key: \"endOfStream\",\n value: function endOfStream() {\n try {\n var readyState = this.mediaSource.readyState;\n\n if (readyState === 'open') {\n this.mediaSource.endOfStream();\n }\n } catch (e) {}\n }\n }, {\n key: \"remove\",\n value: function remove(end) {\n var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n try {\n for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {\n var buffer = this.sourceBuffers[Object.keys(this.sourceBuffers)[i]];\n\n if (!buffer.updating) {\n if (end > start) {\n buffer.remove(start, end);\n }\n }\n }\n } catch (e) {}\n }\n }, {\n key: \"_doCleanupSourceBuffer\",\n value: function _doCleanupSourceBuffer() {\n var currentTime = this.container.currentTime;\n var autoCleanupMinBackwardDuration = 60 * 3;\n var _pendingRemoveRanges = {\n video: [],\n audio: []\n };\n\n for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {\n var type = Object.keys(this.sourceBuffers)[i];\n var sourceBuffer = this.sourceBuffers[type];\n var buffered = sourceBuffer.buffered;\n var doRemove = false;\n\n for (var j = 0; j < buffered.length; j++) {\n var start = buffered.start(j);\n var end = buffered.end(j);\n\n if (start <= currentTime && currentTime < end + 3) {\n if (currentTime - start >= autoCleanupMinBackwardDuration) {\n doRemove = true;\n var removeEnd = currentTime - autoCleanupMinBackwardDuration;\n\n _pendingRemoveRanges[type].push({\n start: start,\n end: removeEnd\n });\n }\n } else if (end < currentTime && currentTime - start >= autoCleanupMinBackwardDuration) {\n doRemove = true;\n\n _pendingRemoveRanges[type].push({\n start: start,\n end: end\n });\n }\n }\n\n if (doRemove && !sourceBuffer.updating) {\n this._doRemoveRanges(_pendingRemoveRanges);\n }\n }\n }\n }, {\n key: \"_doRemoveRanges\",\n value: function _doRemoveRanges(_pendingRemoveRanges) {\n for (var type in _pendingRemoveRanges) {\n if (!this.sourceBuffers[type] || this.sourceBuffers[type].updating) {\n continue;\n }\n\n var sb = this.sourceBuffers[type];\n var ranges = _pendingRemoveRanges[type];\n\n while (ranges.length && !sb.updating) {\n var range = ranges.shift();\n\n try {\n if (range && range.end > range.start) {\n sb.remove(range.start, range.end);\n }\n } catch (e) {}\n }\n }\n }\n }, {\n key: \"cleanBuffers\",\n value: function cleanBuffers() {\n var _this = this;\n\n var taskList = [];\n\n var _loop = function _loop(i) {\n var buffer = _this.sourceBuffers[Object.keys(_this.sourceBuffers)[i]];\n\n var task = void 0;\n\n if (buffer.updating) {\n task = new Promise(function (resolve) {\n var doCleanBuffer = function doCleanBuffer() {\n var retryTime = 3;\n\n var clean = function clean() {\n if (!buffer.updating) {\n MSE.clearBuffer(buffer);\n buffer.addEventListener('updateend', function () {\n resolve();\n });\n } else if (retryTime > 0) {\n setTimeout(clean, 200);\n retryTime--;\n } else {\n resolve();\n }\n };\n\n setTimeout(clean, 200);\n buffer.removeEventListener('updateend', doCleanBuffer);\n };\n\n buffer.addEventListener('updateend', doCleanBuffer);\n });\n } else {\n task = new Promise(function (resolve) {\n MSE.clearBuffer(buffer);\n buffer.addEventListener('updateend', function () {\n resolve();\n });\n }); // task = Promise.resolve()\n }\n\n taskList.push(task);\n };\n\n for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {\n _loop(i);\n }\n\n return Promise.all(taskList);\n }\n }, {\n key: \"removeBuffers\",\n value: function removeBuffers() {\n var _this2 = this;\n\n var taskList = [];\n\n var _loop2 = function _loop2(i) {\n var buffer = _this2.sourceBuffers[Object.keys(_this2.sourceBuffers)[i]];\n\n buffer.removeEventListener('updateend', _this2.onUpdateEnd);\n var task = void 0;\n\n if (buffer.updating) {\n task = new Promise(function (resolve) {\n var doCleanBuffer = function doCleanBuffer() {\n var retryTime = 3;\n\n var clean = function clean() {\n if (!buffer.updating) {\n MSE.clearBuffer(buffer);\n buffer.addEventListener('updateend', function () {\n resolve();\n });\n } else if (retryTime > 0) {\n setTimeout(clean, 200);\n retryTime--;\n } else {\n resolve();\n }\n };\n\n setTimeout(clean, 200);\n buffer.removeEventListener('updateend', doCleanBuffer);\n };\n\n buffer.addEventListener('updateend', doCleanBuffer);\n });\n } else {\n task = new Promise(function (resolve) {\n MSE.clearBuffer(buffer);\n buffer.addEventListener('updateend', function () {\n resolve();\n });\n }); // task = Promise.resolve()\n }\n\n taskList.push(task);\n };\n\n for (var i = 0; i < Object.keys(this.sourceBuffers).length; i++) {\n _loop2(i);\n }\n\n return Promise.all(taskList);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this3 = this;\n\n if (!this.container) return Promise.resolve();\n this.container.removeEventListener('timeupdate', this.onTimeUpdate);\n this.container.removeEventListener('waiting', this.onWaiting);\n this.mediaSource.removeEventListener('sourceopen', this.onSourceOpen);\n return this.removeBuffers().then(function () {\n var sources = Object.keys(_this3.sourceBuffers);\n\n for (var i = 0; i < sources.length; i++) {\n var buffer = _this3.sourceBuffers[sources[i]];\n delete _this3.sourceBuffers[sources[i]];\n\n if (_this3.mediaSource.readyState === 'open') {\n _this3.mediaSource.removeSourceBuffer(buffer);\n }\n }\n\n _this3.endOfStream();\n\n window.URL.revokeObjectURL(_this3.url);\n _this3.url = null;\n _this3.configs = {};\n _this3.container = null;\n _this3.mediaSource = null;\n _this3.sourceBuffers = {};\n _this3.preloadTime = 1;\n _this3.onSourceOpen = null;\n _this3.onTimeUpdate = null;\n _this3.onUpdateEnd = null;\n _this3.onWaiting = null;\n _this3.noaudio = undefined;\n _this3.novideo = undefined;\n });\n }\n }, {\n key: \"sourceBufferLen\",\n get: function get() {\n if (!this._context.mediaInfo) {\n if (this.noaudio || this.novideo) return 1;\n return 2;\n }\n\n return (!!this._context.mediaInfo.hasVideo && !this.novideo) + (!!this._context.mediaInfo.hasAudio && !this.noaudio);\n }\n }, {\n key: \"url\",\n get: function get() {\n if (!this._url) {\n this._url = window.URL.createObjectURL(this.mediaSource);\n }\n\n return this._url;\n },\n set: function set(val) {\n this._url = val;\n }\n }], [{\n key: \"clearBuffer\",\n value: function clearBuffer(buffer) {\n try {\n var buffered = buffer.buffered;\n var bEnd = 0.1;\n\n for (var i = 0, len = buffered.length; i < len; i++) {\n bEnd = buffered.end(i);\n }\n\n buffer.remove(0, bEnd);\n } catch (e) {// DO NOTHING\n }\n }\n }]);\n\n return MSE;\n}();\n\nexport default MSE;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Speed = /*#__PURE__*/function () {\n function Speed() {\n _classCallCheck(this, Speed);\n\n // milliseconds\n this._firstCheckpoint = 0;\n this._lastCheckpoint = 0;\n this._intervalBytes = 0;\n this._lastSamplingBytes = 0;\n this._now = Date.now;\n }\n\n _createClass(Speed, [{\n key: \"reset\",\n value: function reset() {\n this._firstCheckpoint = this._lastCheckpoint = 0;\n this._intervalBytes = 0;\n this._lastSamplingBytes = 0;\n }\n }, {\n key: \"addBytes\",\n value: function addBytes(bytes) {\n var duration = this._now() - this._lastCheckpoint;\n\n if (this._firstCheckpoint === 0) {\n this._firstCheckpoint = this._now();\n this._lastCheckpoint = this._firstCheckpoint;\n this._intervalBytes += bytes;\n } else if (duration < 5000) {\n this._intervalBytes += bytes;\n } else {\n // duration >= 1000\n this._lastSamplingBytes = this._intervalBytes / (duration / 1000);\n this._intervalBytes = bytes;\n this._lastCheckpoint = this._now();\n }\n }\n }, {\n key: \"currentKBps\",\n get: function get() {\n this.addBytes(0);\n var durationSeconds = (this._now() - this._lastCheckpoint) / 1000;\n if (durationSeconds === 0) durationSeconds = 1;\n return this._intervalBytes / durationSeconds / 1024;\n }\n }, {\n key: \"lastSamplingKBps\",\n get: function get() {\n this.addBytes(0);\n\n if (this._lastSamplingBytes !== 0) {\n return this._lastSamplingBytes / 1024;\n } else {\n // lastSecondBytes === 0\n if (this._now() - this._lastCheckpoint >= 500) {\n // if time interval since last checkpoint has exceeded 500ms\n // the speed is nearly accurate\n return this.currentKBps;\n } else {\n // We don't know\n return 0;\n }\n }\n }\n }]);\n\n return Speed;\n}();\n\nexport default Speed;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport EVENTS from '../events';\nimport Speed from './speed';\nvar LOADER_EVENTS = EVENTS.LOADER_EVENTS;\nvar READ_STREAM = 0;\nvar READ_TEXT = 1;\nvar READ_JSON = 2;\nvar READ_BUFFER = 3;\n\nvar FetchLoader = /*#__PURE__*/function () {\n function FetchLoader(configs) {\n _classCallCheck(this, FetchLoader);\n\n this.configs = Object.assign({}, configs);\n this.url = null;\n this.status = 0;\n this.error = null;\n this._reader = null;\n this._canceled = false;\n this._destroyed = false;\n this.readtype = this.configs.readtype;\n this.buffer = this.configs.buffer || 'LOADER_BUFFER';\n this._loaderTaskNo = 0;\n this._ttfb = 0;\n this._speed = new Speed();\n\n if (window.AbortController) {\n this.abortControllerEnabled = true;\n }\n }\n\n _createClass(FetchLoader, [{\n key: \"init\",\n value: function init() {\n this.on(LOADER_EVENTS.LADER_START, this.load.bind(this));\n }\n }, {\n key: \"fetch\",\n value: function (_fetch) {\n function fetch(_x, _x2, _x3) {\n return _fetch.apply(this, arguments);\n }\n\n fetch.toString = function () {\n return _fetch.toString();\n };\n\n return fetch;\n }(\n /**\n * @param {string} url\n * @param {RequestInit} params\n * @param {number} timeout\n * @return {Promise}\n */\n function (url, params, timeout) {\n var _this2 = this;\n\n var timer = null;\n\n if (this.abortControllerEnabled) {\n this.abortController = new window.AbortController();\n }\n\n Object.assign(params, {\n signal: this.abortController ? this.abortController.signal : undefined\n });\n var ts = performance.now();\n return Promise.race([fetch(url, params), new Promise(function (resolve, reject) {\n timer = setTimeout(function () {\n /* eslint-disable-next-line */\n reject({\n code: 999,\n message: 'fetch timeout'\n });\n\n if (_this2.abortController) {\n _this2.abortController.abort();\n }\n }, timeout || 1e4); // 10s\n })]).then(function (response) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n\n _this2.emit(LOADER_EVENTS.LOADER_TTFB, performance.now() - ts);\n\n return response;\n });\n }\n /**\n * @param {string} url\n * @param {RequestInit} params\n * @param {number} retryTimes\n * @param {number} totalRetry\n * @param {number} delayTime\n * @return {Promise<{ok} | minimist.Opts.unknown>}\n */\n )\n }, {\n key: \"internalLoad\",\n value: function internalLoad(url, params, retryTimes, totalRetry) {\n var _this3 = this;\n\n var delayTime = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n if (this._destroyed) return;\n this.loading = true;\n return this.fetch(this.url, params).then(function (response) {\n !_this3._destroyed && _this3.emit(LOADER_EVENTS.LOADER_RESPONSE_HEADERS, _this3.TAG, response.headers);\n\n if (response.ok) {\n _this3.status = response.status;\n Promise.resolve().then(function () {\n _this3._onFetchResponse(response);\n });\n return Promise.resolve(response);\n }\n\n if (retryTimes-- > 0) {\n _this3._retryTimer = setTimeout(function () {\n _this3.emit(LOADER_EVENTS.LOADER_RETRY, _this3.TAG, {\n response: response,\n reason: 'response not ok',\n retryTime: totalRetry - retryTimes\n });\n\n return _this3.internalLoad(url, params, retryTimes, totalRetry, delayTime);\n }, delayTime);\n } else {\n _this3.loading = false;\n\n _this3.emit(LOADER_EVENTS.LOADER_ERROR, _this3.TAG, {\n code: response.status || 21,\n message: \"\".concat(response.status, \" (\").concat(response.statusText, \")\")\n });\n }\n })[\"catch\"](function (error) {\n _this3.loading = false;\n\n if (_this3._destroyed) {\n return;\n }\n\n if (retryTimes-- > 0) {\n _this3._retryTimer = setTimeout(function () {\n _this3.emit(LOADER_EVENTS.LOADER_RETRY, _this3.TAG, {\n error: error,\n reason: 'fetch error',\n retryTime: totalRetry - retryTimes\n });\n\n return _this3.internalLoad(url, params, retryTimes, totalRetry, delayTime);\n }, delayTime);\n } else {\n if (error && error.name === 'AbortError') {\n return;\n }\n\n _this3.emit(LOADER_EVENTS.LOADER_ERROR, _this3.TAG, Object.assign({\n code: 21\n }, error));\n }\n });\n }\n /**\n * @param {string} url\n * @param {RequestInit} opts\n * @param {number} retryTimes\n * @param {number} delayTime\n * @return {Promise<{ok} | minimist.Opts.unknown>}\n */\n\n }, {\n key: \"load\",\n value: function load(url) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var retryTimes = arguments.length > 2 ? arguments[2] : undefined;\n var delayTime = arguments.length > 3 ? arguments[3] : undefined;\n retryTimes = retryTimes === undefined ? 3 : retryTimes;\n this.url = url;\n this._canceled = false; // TODO: Add Ranges\n\n var params = this.getParams(opts);\n return this.internalLoad(url, params, retryTimes, retryTimes, delayTime);\n }\n }, {\n key: \"_onFetchResponse\",\n value: function _onFetchResponse(response) {\n var _this4 = this;\n\n var _this = this;\n\n var buffer = this._context.getInstance(this.buffer);\n\n this._loaderTaskNo++;\n var taskno = this._loaderTaskNo;\n\n if (response.ok === true) {\n switch (this.readtype) {\n case READ_JSON:\n response.json().then(function (data) {\n _this.loading = false;\n\n if (!_this._canceled && !_this._destroyed) {\n if (buffer) {\n buffer.push(data);\n\n _this.emit(LOADER_EVENTS.LOADER_COMPLETE, buffer);\n } else {\n _this.emit(LOADER_EVENTS.LOADER_COMPLETE, data);\n }\n }\n });\n break;\n\n case READ_TEXT:\n response.text().then(function (data) {\n _this.loading = false;\n\n if (!_this._canceled && !_this._destroyed) {\n if (buffer) {\n buffer.push(data);\n\n _this.emit(LOADER_EVENTS.LOADER_COMPLETE, buffer);\n } else {\n _this.emit(LOADER_EVENTS.LOADER_COMPLETE, data);\n }\n }\n });\n break;\n\n case READ_BUFFER:\n response.arrayBuffer().then(function (data) {\n _this.loading = false;\n\n if (!_this._canceled && !_this._destroyed) {\n if (buffer) {\n buffer.push(new Uint8Array(data));\n\n _this4._speed.addBytes(data.byteLength);\n\n _this.emit(LOADER_EVENTS.LOADER_COMPLETE, buffer);\n } else {\n _this.emit(LOADER_EVENTS.LOADER_COMPLETE, data);\n }\n }\n })[\"catch\"](function () {});\n break;\n\n case READ_STREAM:\n default:\n return this._onReader(response.body.getReader(), taskno);\n }\n }\n }\n }, {\n key: \"_onReader\",\n value: function _onReader(reader, taskno) {\n var _this5 = this;\n\n var buffer = this._context.getInstance(this.buffer);\n\n if (!buffer && this._reader || this._destroyed) {\n try {\n this._reader.cancel();\n } catch (e) {// DO NOTHING\n }\n }\n\n this._reader = reader;\n\n if (this.loading === false) {\n return;\n } // reader read function returns a Promise. get data when callback and has value.done when disconnected.\n // read方法返回一个Promise. 回调中可以获取到数据。当value.done存在时,说明链接断开。\n\n\n this._noDataTimer = setTimeout(function () {\n if (_this5.loading === false) return;\n\n _this5.emit(LOADER_EVENTS.LOADER_COMPLETE);\n }, 3000);\n this._reader && this._reader.read().then(function (val) {\n clearTimeout(_this5._noDataTimer);\n\n if (_this5._canceled || _this5._destroyed) {\n if (_this5._reader) {\n try {\n _this5._reader.cancel();\n } catch (e) {// DO NOTHING\n }\n }\n\n return;\n }\n\n if (val.done) {\n _this5.loading = false;\n _this5.status = 0;\n Promise.resolve().then(function () {\n _this5.emit(LOADER_EVENTS.LOADER_COMPLETE, buffer);\n });\n return;\n }\n\n buffer.push(val.value);\n\n _this5._speed.addBytes(val.value.byteLength);\n\n Promise.resolve().then(function () {\n _this5.emit(LOADER_EVENTS.LOADER_DATALOADED, buffer);\n });\n return _this5._onReader(reader, taskno);\n })[\"catch\"](function (error) {\n clearTimeout(_this5._noDataTimer);\n _this5.loading = false;\n if (error && error.name === 'AbortError') return;\n\n _this5.emit(LOADER_EVENTS.LOADER_ERROR, _this5.TAG, error);\n });\n }\n /**\n *\n * @param {RequestInit} opts\n * @return {{mode: string, headers: Headers, cache: string, method: string}}\n */\n\n }, {\n key: \"getParams\",\n value: function getParams(opts) {\n var options = Object.assign({}, opts);\n var headers = new Headers();\n var params = {\n method: 'GET',\n headers: headers,\n mode: 'cors',\n cache: 'default'\n }; // add custmor headers\n // 添加自定义头\n\n if (_typeof(this.configs.headers) === 'object') {\n var configHeaders = this.configs.headers;\n\n for (var key in configHeaders) {\n if (configHeaders.hasOwnProperty(key)) {\n headers.append(key, configHeaders[key]);\n }\n }\n }\n\n if (_typeof(options.headers) === 'object') {\n var optHeaders = options.headers;\n\n for (var _key in optHeaders) {\n if (optHeaders.hasOwnProperty(_key)) {\n headers.append(_key, optHeaders[_key]);\n }\n }\n }\n\n if (options.cors === false) {\n params.mode = 'same-origin';\n } // withCredentials is disabled by default\n // withCredentials 在默认情况下不被使用。\n\n\n if (options.withCredentials) {\n params.credentials = 'include';\n } // TODO: Add ranges;\n\n\n return params;\n } // in KB/s\n\n }, {\n key: \"currentSpeed\",\n get: function get() {\n return this._speed.lastSamplingKBps;\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n if (this._reader) {\n try {\n this._reader.cancel();\n } catch (e) {// 防止failed: 200错误被打印到控制台上\n }\n\n this._reader = null;\n this.loading = false;\n }\n\n clearTimeout(this._noDataTimer);\n this._canceled = true;\n\n if (this.abortController) {\n this.abortController.abort();\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._destroyed = true;\n clearTimeout(this._retryTimer);\n clearTimeout(this._noDataTimer);\n this.cancel();\n\n this._speed.reset();\n }\n }], [{\n key: \"isSupported\",\n value: function isSupported() {\n return !!window.fetch;\n }\n }, {\n key: \"type\",\n get: function get() {\n return 'loader';\n }\n }]);\n\n return FetchLoader;\n}();\n\nexport default FetchLoader;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint-disable no-undef */\nimport EVENTS from '../events';\nvar LOADER_EVENTS = EVENTS.LOADER_EVENTS;\nvar READ_TEXT = 1; // text\n\nvar READ_JSON = 2; // json\n\nvar READ_BUFFER = 3; // arraybuffer\n\nvar DEFAULT_TIMEOUT_IMMS = 2000;\n\nvar XhrLoader = /*#__PURE__*/function () {\n function XhrLoader(configs) {\n _classCallCheck(this, XhrLoader);\n\n this._xhr = null;\n this.configs = Object.assign({}, configs);\n this.loading = false;\n this._readtype = this.configs.readtype;\n this._bufferType = this.configs.buffer || 'LOADER_BUFFER';\n this._requestInfo = null;\n this._onReadyStateChange = this._onReadyStateChange.bind(this);\n this._onError = this._onError.bind(this);\n this._onAbort = this._onAbort.bind(this);\n this._onTimeout = this._onTimeout.bind(this);\n }\n\n _createClass(XhrLoader, [{\n key: \"bufferIns\",\n get: function get() {\n return this._context.getInstance(this._bufferType);\n }\n }, {\n key: \"init\",\n value: function init() {\n this.on(LOADER_EVENTS.LADER_START, this.load.bind(this));\n }\n }, {\n key: \"_createXhr\",\n value: function _createXhr() {\n var xhr;\n\n if (window.XMLHttpRequest) {\n xhr = new XMLHttpRequest();\n } else {\n xhr = new ActiveXObject('Microsoft.XMLHTTP');\n }\n\n return xhr;\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var retryTimes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var delayTime = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var options = Object.assign({}, opts);\n this._requestInfo = {\n url: url,\n options: options,\n retryTimes: retryTimes,\n totalRetry: retryTimes,\n delayTime: delayTime\n };\n this._xhr = this._createXhr();\n this.loading = true;\n\n try {\n this._bindEvents();\n\n this._loadInternal(url, options);\n } catch (e) {\n this._whenError({\n code: this._xhr.status,\n message: e && e.message\n });\n }\n }\n }, {\n key: \"_loadInternal\",\n value: function _loadInternal(url, options) {\n var xhr = this._xhr;\n xhr.open('GET', url, true);\n\n this._setTimeout(xhr, options);\n\n this._setCredentails(xhr, options);\n\n this._setHeaders(xhr, options);\n\n this._setResponseType(xhr);\n\n xhr.send();\n }\n }, {\n key: \"_bindEvents\",\n value: function _bindEvents() {\n var xhr = this._xhr;\n xhr.addEventListener('readystatechange', this._onReadyStateChange);\n xhr.addEventListener('timeout', this._onTimeout);\n xhr.addEventListener('error', this._onError);\n xhr.addEventListener('abort', this._onAbort);\n }\n }, {\n key: \"_setTimeout\",\n value: function _setTimeout(xhr, options) {\n xhr.timeout = options.timeout || DEFAULT_TIMEOUT_IMMS;\n }\n }, {\n key: \"_setCredentails\",\n value: function _setCredentails(xhr, options) {\n if (options.withCredentials) {\n xhr.withCredentials = true;\n }\n } // call after open(), before send()\n\n }, {\n key: \"_setHeaders\",\n value: function _setHeaders(xhr, options) {\n if (_typeof(options.headers) === 'object') {\n var optHeaders = options.headers;\n\n for (var key in optHeaders) {\n if (optHeaders.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, optHeaders[key]);\n }\n }\n }\n }\n }, {\n key: \"_setResponseType\",\n value: function _setResponseType(xhr) {\n switch (this._readtype) {\n case READ_BUFFER:\n xhr.responseType = 'arraybuffer';\n break;\n\n case READ_JSON:\n xhr.responseType = 'json';\n break;\n\n case READ_TEXT:\n default:\n xhr.responseType = '';\n }\n }\n }, {\n key: \"_onReadyStateChange\",\n value: function _onReadyStateChange() {\n var _this$_xhr = this._xhr,\n readyState = _this$_xhr.readyState,\n status = _this$_xhr.status;\n\n if (readyState === 4) {\n if (status >= 200 && status < 300) {\n this._onComplete(this._xhr);\n\n return;\n } // abort、timeout都会走到这, status === 0, 这些情况在事件监听中执行\n\n\n if (status === 0) return;\n\n this._onError();\n }\n }\n }, {\n key: \"_onComplete\",\n value: function _onComplete(xhr) {\n var data;\n\n switch (this._readtype) {\n case READ_JSON:\n try {\n data = JSON.parse(xhr.responseText);\n } catch (e) {}\n\n break;\n\n case READ_BUFFER:\n var buffer = xhr.response;\n data = new Uint8Array(buffer);\n break;\n\n case READ_TEXT:\n default:\n data = xhr.responseText;\n }\n\n if (this.bufferIns) {\n this.bufferIns.push(data);\n this.emit(LOADER_EVENTS.LOADER_COMPLETE, this.bufferIns);\n } else {\n this.emit(LOADER_EVENTS.LOADER_COMPLETE, data);\n }\n\n this.loading = false;\n }\n }, {\n key: \"_onError\",\n value: function _onError() {\n var xhr = this._xhr;\n var err = {\n code: xhr.status || 21,\n message: xhr.statusText\n };\n\n this._whenError(err);\n }\n }, {\n key: \"_onTimeout\",\n value: function _onTimeout() {\n console.warn('timeout');\n\n this._whenError({\n code: 999,\n message: 'fetch timeout'\n });\n }\n }, {\n key: \"_onAbort\",\n value: function _onAbort() {\n console.warn('abort');\n }\n }, {\n key: \"_whenError\",\n value: function _whenError(info) {\n var _this = this;\n\n var _this$_requestInfo = this._requestInfo,\n url = _this$_requestInfo.url,\n options = _this$_requestInfo.options,\n totalRetry = _this$_requestInfo.totalRetry,\n retryTimes = _this$_requestInfo.retryTimes,\n delayTime = _this$_requestInfo.delayTime;\n\n if (!retryTimes) {\n // emit error\n this.loading = false;\n this.emit(LOADER_EVENTS.LOADER_ERROR, this.TAG, info);\n return;\n }\n\n retryTimes--;\n setTimeout(function () {\n _this.emit(LOADER_EVENTS.LOADER_RETRY, _this.TAG, {\n response: info,\n reason: 'response not ok',\n retryTime: totalRetry - retryTimes\n });\n\n _this.load(url, options, retryTimes, delayTime);\n }, delayTime);\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n if (this._xhr.readyState !== 4) {\n this._xhr.abort();\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.cancel();\n\n if (this._xhr) {\n this._xhr.removeEventListener('readystatechange', this._onReadyStateChange);\n\n this._xhr.removeEventListener('timeout', this._onTimeout);\n\n this._xhr.removeEventListener('error', this._onError);\n\n this._xhr.removeEventListener('abort', this._onAbort);\n\n this._xhr = null;\n }\n }\n }], [{\n key: \"type\",\n get: function get() {\n return 'loader';\n }\n }]);\n\n return XhrLoader;\n}();\n\nexport default XhrLoader;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DevLogger = /*#__PURE__*/function () {\n function DevLogger() {\n var _this = this;\n\n _classCallCheck(this, DevLogger);\n\n try {\n var matched = /xgd=(\\d)/.exec(document.cookie);\n this._status = !!matched;\n this._level = matched && matched[1];\n } catch (e) {\n this._status = false;\n }\n\n ['group', 'groupEnd', 'log', 'warn', 'error'].forEach(function (funName) {\n _this[funName] = function (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) {\n var _console;\n\n if (!_this._status) return;\n var tagName = arg1;\n var args = [arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10].filter(function (x) {\n return x !== undefined;\n });\n\n (_console = console)[funName].apply(_console, ['[' + tagName + ']:'].concat(_toConsumableArray(args)));\n };\n });\n }\n /**\n * @return {*|boolean|boolean}\n */\n\n\n _createClass(DevLogger, [{\n key: \"enable\",\n get: function get() {\n return this._status;\n }\n /**\n * @return {boolean}\n */\n\n }, {\n key: \"long\",\n get: function get() {\n return this._level === '2';\n }\n }]);\n\n return DevLogger;\n}();\n\nexport default new DevLogger();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar AAC = /*#__PURE__*/function () {\n function AAC() {\n _classCallCheck(this, AAC);\n }\n\n _createClass(AAC, null, [{\n key: \"getSilentFrame\",\n value: function getSilentFrame(codec, channelCount) {\n if (codec === 'mp4a.40.2') {\n // handle LC-AAC\n if (channelCount === 1) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x23, 0x80]);\n } else if (channelCount === 2) {\n return new Uint8Array([0x21, 0x00, 0x49, 0x90, 0x02, 0x19, 0x00, 0x23, 0x80]);\n } else if (channelCount === 3) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x8e]);\n } else if (channelCount === 4) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x80, 0x2c, 0x80, 0x08, 0x02, 0x38]);\n } else if (channelCount === 5) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x38]);\n } else if (channelCount === 6) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x00, 0xb2, 0x00, 0x20, 0x08, 0xe0]);\n }\n } else {\n // handle HE-AAC (mp4a.40.5 / mp4a.40.29)\n if (channelCount === 1) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0:d=0.05\" -c:a libfdk_aac -profile:a aac_he -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x4e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x1c, 0x6, 0xf1, 0xc1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 2) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 3) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n }\n }\n\n return null;\n }\n }]);\n\n return AAC;\n}();\n\nexport default AAC;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ADTS = /*#__PURE__*/function () {\n function ADTS() {\n _classCallCheck(this, ADTS);\n }\n\n _createClass(ADTS, null, [{\n key: \"isHeader\",\n value: function isHeader(data, offset) {\n // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n // More info https://wiki.multimedia.cx/index.php?title=ADTS\n if (offset + 1 < data.length && ADTS.isHeaderPattern(data, offset)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: \"getFrameDuration\",\n value: function getFrameDuration(samplerate) {\n return 1024 * 90000 / samplerate;\n }\n }, {\n key: \"isHeaderPattern\",\n value: function isHeaderPattern(data, offset) {\n return data[offset] === 0xff && (data[offset + 1] & 0xf6) === 0xf0;\n }\n }, {\n key: \"getHeaderLength\",\n value: function getHeaderLength(data, offset) {\n return data[offset + 1] & 0x01 ? 7 : 9;\n }\n }, {\n key: \"getFullFrameLength\",\n value: function getFullFrameLength(data, offset) {\n return (data[offset + 3] & 0x03) << 11 | data[offset + 4] << 3 | (data[offset + 5] & 0xE0) >>> 5;\n }\n }, {\n key: \"parseFrameHeader\",\n value: function parseFrameHeader(data, offset, pts, frameIndex, frameDuration) {\n var headerLength, frameLength, stamp;\n var length = data.length; // The protection skip bit tells us if we have 2 bytes of CRC data at the end of the ADTS header\n\n headerLength = ADTS.getHeaderLength(data, offset); // retrieve frame size\n\n frameLength = ADTS.getFullFrameLength(data, offset);\n frameLength -= headerLength;\n\n if (frameLength > 0 && offset + headerLength + frameLength <= length) {\n stamp = pts + frameIndex * frameDuration; // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);\n\n return {\n headerLength: headerLength,\n frameLength: frameLength,\n stamp: stamp\n };\n }\n\n return undefined;\n }\n }, {\n key: \"appendFrame\",\n value: function appendFrame(sampleRate, data, offset, pts, frameIndex) {\n var frameDuration = ADTS.getFrameDuration(sampleRate);\n var header = ADTS.parseFrameHeader(data, offset, pts, frameIndex, frameDuration);\n\n if (header) {\n var stamp = header.stamp;\n var headerLength = header.headerLength;\n var frameLength = header.frameLength; // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);\n\n var aacSample = {\n unit: data.subarray(offset + headerLength, offset + headerLength + frameLength),\n pts: stamp,\n dts: stamp\n };\n return {\n sample: aacSample,\n length: frameLength + headerLength\n };\n }\n\n return undefined;\n }\n }]);\n\n return ADTS;\n}();\n\nexport { ADTS as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Golomb = /*#__PURE__*/function () {\n /**\n * @param {Uint8Array} uint8array\n */\n function Golomb(uint8array) {\n _classCallCheck(this, Golomb);\n\n this.TAG = 'Golomb';\n this._buffer = uint8array;\n this._bufferIndex = 0;\n this._totalBytes = uint8array.byteLength;\n this._totalBits = uint8array.byteLength * 8;\n this._currentWord = 0;\n this._currentWordBitsLeft = 0;\n }\n\n _createClass(Golomb, [{\n key: \"destroy\",\n value: function destroy() {\n this._buffer = null;\n }\n }, {\n key: \"_fillCurrentWord\",\n value: function _fillCurrentWord() {\n var bufferBytesLeft = this._totalBytes - this._bufferIndex;\n\n if (bufferBytesLeft <= 0) {// TODO 异常处理\n }\n\n var bytesRead = Math.min(4, bufferBytesLeft);\n var word = new Uint8Array(4);\n word.set(this._buffer.subarray(this._bufferIndex, this._bufferIndex + bytesRead));\n this._currentWord = new DataView(word.buffer).getUint32(0);\n this._bufferIndex += bytesRead;\n this._currentWordBitsLeft = bytesRead * 8;\n }\n /**\n * @param size\n * @return {number|*|number}\n */\n\n }, {\n key: \"readBits\",\n value: function readBits(size) {\n var bits = Math.min(this._currentWordBitsLeft, size); // :uint\n\n var valu = this._currentWord >>> 32 - bits;\n\n if (size > 32) {\n throw new Error('Cannot read more than 32 bits at a time');\n }\n\n this._currentWordBitsLeft -= bits;\n\n if (this._currentWordBitsLeft > 0) {\n this._currentWord <<= bits;\n } else if (this._totalBytes - this._bufferIndex > 0) {\n this._fillCurrentWord();\n }\n\n bits = size - bits;\n\n if (bits > 0 && this._currentWordBitsLeft) {\n return valu << bits | this.readBits(bits);\n } else {\n return valu;\n }\n }\n /**\n * @return {boolean}\n */\n\n }, {\n key: \"readBool\",\n value: function readBool() {\n return this.readBits(1) === 1;\n }\n /**\n * @return {*|number}\n */\n\n }, {\n key: \"readByte\",\n value: function readByte() {\n return this.readBits(8);\n }\n }, {\n key: \"_skipLeadingZero\",\n value: function _skipLeadingZero() {\n var zeroCount;\n\n for (zeroCount = 0; zeroCount < this._currentWordBitsLeft; zeroCount++) {\n if ((this._currentWord & 0x80000000 >>> zeroCount) !== 0) {\n this._currentWord <<= zeroCount;\n this._currentWordBitsLeft -= zeroCount;\n return zeroCount;\n }\n }\n\n this._fillCurrentWord();\n\n return zeroCount + this._skipLeadingZero();\n }\n /**\n * @return {number}\n */\n\n }, {\n key: \"readUEG\",\n value: function readUEG() {\n // unsigned exponential golomb\n var leadingZeros = this._skipLeadingZero();\n\n return this.readBits(leadingZeros + 1) - 1;\n }\n /**\n * @return {number}\n */\n\n }, {\n key: \"readSEG\",\n value: function readSEG() {\n // signed exponential golomb\n var value = this.readUEG();\n\n if (value & 0x01) {\n return value + 1 >>> 1;\n } else {\n return -1 * (value >>> 1);\n }\n }\n }, {\n key: \"readSliceType\",\n value: function readSliceType() {\n // skip NALu type Nal unit header 8bit\n this.readByte(); // discard first_mb_in_slice\n\n this.readUEG(); // return slice_type\n\n return this.readUEG();\n }\n }]);\n\n return Golomb;\n}();\n\nexport default Golomb;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport Golomb from './golomb';\n\nvar SPSParser = /*#__PURE__*/function () {\n function SPSParser() {\n _classCallCheck(this, SPSParser);\n }\n\n _createClass(SPSParser, null, [{\n key: \"_ebsp2rbsp\",\n value:\n /**\n * 0x00000300 -> 0x000000\n * 0x00000301 -> 0x000001\n * 0x00000302 -> 0x000002\n * 0x00000303 -> 0x000003\n */\n function _ebsp2rbsp(uint8array) {\n var src = uint8array;\n var srcLength = src.byteLength;\n var dst = new Uint8Array(srcLength);\n var dstIdx = 0;\n\n for (var i = 0; i < srcLength; i++) {\n if (i >= 2) {\n if (src[i] === 0x03 && src[i - 1] === 0x00 && src[i - 2] === 0x00) {\n continue;\n }\n }\n\n dst[dstIdx] = src[i];\n dstIdx++;\n }\n\n return new Uint8Array(dst.buffer, 0, dstIdx);\n }\n }, {\n key: \"parseSPS\",\n value: function parseSPS(uint8array) {\n var rbsp = SPSParser._ebsp2rbsp(uint8array);\n\n var gb = new Golomb(rbsp);\n gb.readByte();\n var profileIdc = gb.readByte();\n gb.readByte();\n var levelIdc = gb.readByte();\n gb.readUEG();\n var profile_string = SPSParser.getProfileString(profileIdc);\n var level_string = SPSParser.getLevelString(levelIdc);\n var chroma_format_idc = 1;\n var chroma_format = 420;\n var chroma_format_table = [0, 420, 422, 444];\n var bit_depth = 8;\n\n if (profileIdc === 100 || profileIdc === 110 || profileIdc === 122 || profileIdc === 244 || profileIdc === 44 || profileIdc === 83 || profileIdc === 86 || profileIdc === 118 || profileIdc === 128 || profileIdc === 138 || profileIdc === 144) {\n chroma_format_idc = gb.readUEG();\n\n if (chroma_format_idc === 3) {\n gb.readBits(1);\n }\n\n if (chroma_format_idc <= 3) {\n chroma_format = chroma_format_table[chroma_format_idc];\n }\n\n bit_depth = gb.readUEG() + 8;\n gb.readUEG();\n gb.readBits(1);\n\n if (gb.readBool()) {\n var scaling_list_count = chroma_format_idc !== 3 ? 8 : 12;\n\n for (var i = 0; i < scaling_list_count; i++) {\n if (gb.readBool()) {\n if (i < 6) {\n SPSParser._skipScalingList(gb, 16);\n } else {\n SPSParser._skipScalingList(gb, 64);\n }\n }\n }\n }\n }\n\n gb.readUEG();\n var pic_order_cnt_type = gb.readUEG();\n\n if (pic_order_cnt_type === 0) {\n gb.readUEG();\n } else if (pic_order_cnt_type === 1) {\n gb.readBits(1);\n gb.readSEG();\n gb.readSEG();\n var num_ref_frames_in_pic_order_cnt_cycle = gb.readUEG();\n\n for (var _i = 0; _i < num_ref_frames_in_pic_order_cnt_cycle; _i++) {\n gb.readSEG();\n }\n }\n\n gb.readUEG();\n gb.readBits(1);\n var pic_width_in_mbs_minus1 = gb.readUEG();\n var pic_height_in_map_units_minus1 = gb.readUEG();\n var frame_mbs_only_flag = gb.readBits(1);\n\n if (frame_mbs_only_flag === 0) {\n gb.readBits(1);\n }\n\n gb.readBits(1);\n var frame_crop_left_offset = 0;\n var frame_crop_right_offset = 0;\n var frame_crop_top_offset = 0;\n var frame_crop_bottom_offset = 0;\n var frame_cropping_flag = gb.readBool();\n\n if (frame_cropping_flag) {\n frame_crop_left_offset = gb.readUEG();\n frame_crop_right_offset = gb.readUEG();\n frame_crop_top_offset = gb.readUEG();\n frame_crop_bottom_offset = gb.readUEG();\n }\n\n var par_width = 1;\n var par_height = 1;\n var fps = 0;\n var fps_fixed = true;\n var fps_num = 0;\n var fps_den = 0;\n var vui_parameters_present_flag = gb.readBool();\n\n if (vui_parameters_present_flag) {\n if (gb.readBool()) {\n // aspect_ratio_info_present_flag\n var aspect_ratio_idc = gb.readByte();\n var par_w_table = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2];\n var par_h_table = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1];\n\n if (aspect_ratio_idc > 0 && aspect_ratio_idc < 16) {\n par_width = par_w_table[aspect_ratio_idc - 1];\n par_height = par_h_table[aspect_ratio_idc - 1];\n } else if (aspect_ratio_idc === 255) {\n par_width = gb.readByte() << 8 | gb.readByte();\n par_height = gb.readByte() << 8 | gb.readByte();\n }\n }\n\n if (gb.readBool()) {\n gb.readBool();\n }\n\n if (gb.readBool()) {\n gb.readBits(4);\n\n if (gb.readBool()) {\n gb.readBits(24);\n }\n }\n\n if (gb.readBool()) {\n gb.readUEG();\n gb.readUEG();\n }\n\n if (gb.readBool()) {\n var num_units_in_tick = gb.readBits(32);\n var time_scale = gb.readBits(32);\n fps_fixed = gb.readBool();\n fps_num = time_scale;\n fps_den = num_units_in_tick * 2;\n fps = fps_num / fps_den;\n }\n }\n\n var parScale = 1;\n\n if (par_width !== 1 || par_height !== 1) {\n parScale = par_width / par_height;\n }\n\n var crop_unit_x = 0;\n var crop_unit_y = 0;\n\n if (chroma_format_idc === 0) {\n crop_unit_x = 1;\n crop_unit_y = 2 - frame_mbs_only_flag;\n } else {\n var sub_wc = chroma_format_idc === 3 ? 1 : 2;\n var sub_hc = chroma_format_idc === 1 ? 2 : 1;\n crop_unit_x = sub_wc;\n crop_unit_y = sub_hc * (2 - frame_mbs_only_flag);\n }\n\n var codec_width = (pic_width_in_mbs_minus1 + 1) * 16;\n var codec_height = (2 - frame_mbs_only_flag) * ((pic_height_in_map_units_minus1 + 1) * 16);\n codec_width -= (frame_crop_left_offset + frame_crop_right_offset) * crop_unit_x;\n codec_height -= (frame_crop_top_offset + frame_crop_bottom_offset) * crop_unit_y;\n var present_width = Math.ceil(codec_width * parScale);\n gb.destroy();\n gb = null;\n return {\n profile_string: profile_string,\n level_string: level_string,\n bit_depth: bit_depth,\n chroma_format: chroma_format,\n chroma_format_string: SPSParser.getChromaFormatString(chroma_format),\n frame_rate: {\n fixed: fps_fixed,\n fps: fps,\n fps_den: fps_den,\n fps_num: fps_num\n },\n par_ratio: {\n width: par_width,\n height: par_height\n },\n codec_size: {\n width: codec_width,\n height: codec_height\n },\n present_size: {\n width: present_width,\n height: codec_height\n }\n };\n }\n }, {\n key: \"_skipScalingList\",\n value: function _skipScalingList(gb, count) {\n var lastScale = 8;\n var nextScale = 8;\n var deltaScale = 0;\n\n for (var i = 0; i < count; i++) {\n if (nextScale !== 0) {\n deltaScale = gb.readSEG();\n nextScale = (lastScale + deltaScale + 256) % 256;\n }\n\n lastScale = nextScale === 0 ? lastScale : nextScale;\n }\n }\n }, {\n key: \"getProfileString\",\n value: function getProfileString(profileIdc) {\n switch (profileIdc) {\n case 66:\n return 'Baseline';\n\n case 77:\n return 'Main';\n\n case 88:\n return 'Extended';\n\n case 100:\n return 'High';\n\n case 110:\n return 'High10';\n\n case 122:\n return 'High422';\n\n case 244:\n return 'High444';\n\n default:\n return 'Unknown';\n }\n }\n }, {\n key: \"getLevelString\",\n value: function getLevelString(levelIdc) {\n return (levelIdc / 10).toFixed(1);\n }\n }, {\n key: \"getChromaFormatString\",\n value: function getChromaFormatString(chroma) {\n switch (chroma) {\n case 420:\n return '4:2:0';\n\n case 422:\n return '4:2:2';\n\n case 444:\n return '4:4:4';\n\n default:\n return 'Unknown';\n }\n }\n }, {\n key: \"toVideoMeta\",\n value: function toVideoMeta(spsConfig) {\n var meta = {};\n\n if (spsConfig && spsConfig.codec_size) {\n meta.codecWidth = spsConfig.codec_size.width;\n meta.codecHeight = spsConfig.codec_size.height;\n meta.presentWidth = spsConfig.present_size.width;\n meta.presentHeight = spsConfig.present_size.height;\n }\n\n meta.profile = spsConfig.profile_string;\n meta.level = spsConfig.level_string;\n meta.bitDepth = spsConfig.bit_depth;\n meta.chromaFormat = spsConfig.chroma_format;\n meta.parRatio = {\n width: spsConfig.par_ratio.width,\n height: spsConfig.par_ratio.height\n };\n meta.frameRate = spsConfig.frame_rate;\n var fpsDen = meta.frameRate.fps_den;\n var fpsNum = meta.frameRate.fps_num;\n meta.refSampleDuration = Math.floor(meta.timescale * (fpsDen / fpsNum));\n return meta;\n }\n }]);\n\n return SPSParser;\n}();\n\nexport default SPSParser;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar RBSP = /*#__PURE__*/function () {\n function RBSP() {\n _classCallCheck(this, RBSP);\n }\n\n _createClass(RBSP, null, [{\n key: \"EBSP2RBSP\",\n value:\n /**\n * convert EBSP to RBSP\n * @param data {Uint8Array}\n * @returns {Uint8Array}\n * @constructor\n */\n function EBSP2RBSP(data) {\n return data.filter(function (el, idx) {\n if (idx < 2) {\n return true;\n } else {\n return !(data[idx - 2] === 0 && data[idx - 1] === 0 && el === 3);\n }\n });\n }\n /**\n * EBSP = SODB + '10000000'\n * @param data {Uint8Array}\n * @constructor\n */\n\n }, {\n key: \"EBSP2SODB\",\n value: function EBSP2SODB(data) {\n var lastByte = data[data.byteLength - 1];\n\n if (lastByte && lastByte === 128) {\n return data.slice(0, data.byteLength - 1);\n }\n\n return data;\n }\n }]);\n\n return RBSP;\n}();\n\nexport default RBSP;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport RBSP from './rbsp';\n\nvar u8aToString = function u8aToString(data) {\n var result = '';\n\n for (var i = 0; i < data.byteLength; i++) {\n result += String.fromCharCode(data[i]);\n }\n\n return result;\n};\n\nvar SEIParser = /*#__PURE__*/function () {\n function SEIParser() {\n _classCallCheck(this, SEIParser);\n }\n\n _createClass(SEIParser, null, [{\n key: \"_resolveNalu\",\n value: function _resolveNalu(data) {\n if (data.length >= 1) {\n return RBSP.EBSP2SODB(RBSP.EBSP2RBSP(data.slice(1)));\n }\n\n return null;\n }\n /**\n *\n * @param data {Uint8Array}\n */\n\n }, {\n key: \"parse\",\n value: function parse(data) {\n var sodb = SEIParser._resolveNalu(data);\n\n var _SEIParser$switchPayl = SEIParser.switchPayloadType(sodb),\n payloadType = _SEIParser$switchPayl.payloadType,\n offset = _SEIParser$switchPayl.offset;\n\n var content = sodb.slice(offset);\n\n switch (payloadType) {\n case 5:\n return SEIParser.user_data_unregistered(content);\n\n default:\n return {\n code: payloadType,\n content: content\n };\n }\n }\n /**\n *\n * @param data\n * @returns {{payloadType: number, offset: number}}\n */\n\n }, {\n key: \"switchPayloadType\",\n value: function switchPayloadType(data) {\n var dv = new DataView(data.buffer);\n var payloadType = 0;\n var offset = 0;\n\n while (dv.getUint8(offset) === 255) {\n offset++;\n payloadType += 255;\n }\n\n payloadType += dv.getUint8(offset++);\n return {\n payloadType: payloadType,\n offset: offset\n };\n }\n /**\n *\n * @param data {Uint8Array}\n * @return {{ payloadLength: number, offset: number }}\n */\n\n }, {\n key: \"getPayloadLength\",\n value: function getPayloadLength(data) {\n var dv = new DataView(data.buffer);\n var payloadLength = 0;\n var offset = 0;\n\n while (dv.getUint8(offset) === 255) {\n offset++;\n payloadLength += 255;\n }\n\n payloadLength += dv.getUint8(offset++);\n return {\n payloadLength: payloadLength,\n offset: offset\n };\n }\n /**\n * resolve 0x05 user data unregistered\n * @param data {Uint8Array}\n */\n // eslint-disable-next-line camelcase\n\n }, {\n key: \"user_data_unregistered\",\n value: function user_data_unregistered(data) {\n var _SEIParser$getPayload = SEIParser.getPayloadLength(data),\n payloadLength = _SEIParser$getPayload.payloadLength,\n offset = _SEIParser$getPayload.offset;\n\n if (payloadLength < 16) {\n return {\n uuid: '',\n content: null\n };\n }\n\n var payload = data.slice(offset);\n var uuid = u8aToString(payload.slice(0, 16));\n var content = u8aToString(payload.slice(16, payloadLength));\n return {\n code: 5,\n // for user data unregistered\n uuid: uuid,\n content: content\n };\n }\n }]);\n\n return SEIParser;\n}();\n\nexport default SEIParser;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport SpsParser from './sps';\nimport SEIParser from './sei';\n\nvar Nalunit = /*#__PURE__*/function () {\n function Nalunit() {\n _classCallCheck(this, Nalunit);\n }\n\n _createClass(Nalunit, null, [{\n key: \"getNalunits\",\n value: // https://en.wikipedia.org/wiki/Network_Abstraction_Layer\n function getNalunits(buffer) {\n if (buffer.length - buffer.position < 4) {\n return [];\n }\n\n var buf = buffer.dataview;\n var position = buffer.position; // 0x001 || 0x0001\n\n if (buf.getInt32(position) === 1 || buf.getInt16(position) === 0 && buf.getInt8(position + 2) === 1) {\n return Nalunit.getAnnexbNals(buffer);\n } else {\n return Nalunit.getAvccNals(buffer);\n }\n }\n }, {\n key: \"getAnnexbNals\",\n value: function getAnnexbNals(buffer) {\n var nals = [];\n var position = Nalunit.getHeaderPositionAnnexB(buffer);\n var start = position.pos;\n var end = start;\n\n while (start < buffer.length - 4) {\n var header = buffer.buffer.slice(start, start + position.headerLength);\n\n if (position.pos === buffer.position) {\n buffer.skip(position.headerLength);\n }\n\n position = Nalunit.getHeaderPositionAnnexB(buffer);\n end = position.pos;\n var body = new Uint8Array(buffer.buffer.slice(start + header.byteLength, end));\n var unit = {\n header: header,\n body: body\n };\n Nalunit.analyseNal(unit);\n\n if (unit.type <= 9 && unit.type !== 0) {\n nals.push(unit);\n }\n\n buffer.skip(end - buffer.position);\n start = end;\n }\n\n return nals;\n }\n }, {\n key: \"getAvccNals\",\n value: function getAvccNals(buffer) {\n // buffer.buffer = RBSP.EBSP2RBSP(new Uint8Array(buffer.buffer)).buffer;\n // buffer.dataview = new DataView(buffer.buffer)\n // buffer.dataview.position = 0;\n var nals = [];\n\n while (buffer.position < buffer.length - 4) {\n var length = buffer.dataview.getInt32(buffer.dataview.position);\n\n if (buffer.length - buffer.position >= length) {\n var header = buffer.buffer.slice(buffer.position, buffer.position + 4);\n buffer.skip(4);\n var body = new Uint8Array(buffer.buffer.slice(buffer.position, buffer.position + length));\n buffer.skip(length);\n var unit = {\n header: header,\n body: body\n };\n Nalunit.analyseNal(unit);\n\n if (unit.type <= 9 && unit.type !== 0) {\n nals.push(unit);\n }\n } else {\n break;\n }\n }\n\n return nals;\n } // * ISO-14496-10 7.3.1\n // * forbidden_zero_bit 1bit\n // * nal_ref_idc 2bit\n // * nal_unit_type 5bit\n\n }, {\n key: \"analyseNal\",\n value: function analyseNal(unit) {\n var type = unit.body[0] & 0x1f;\n unit.type = type;\n\n switch (type) {\n case 1:\n // NDR\n unit.ndr = true;\n break;\n\n case 5:\n // IDR\n unit.idr = true;\n break;\n\n case 6:\n // SEI\n try {\n unit.sei = SEIParser.parse(unit.body);\n } catch (e) {}\n\n break;\n\n case 7:\n // SPS\n unit.sps = SpsParser.parseSPS(unit.body);\n break;\n\n case 8:\n // PPS\n unit.pps = true;\n break;\n\n case 9:\n // AUD\n break;\n\n default:\n break;\n }\n }\n }, {\n key: \"getHeaderPositionAnnexB\",\n value: function getHeaderPositionAnnexB(buffer) {\n // seperate\n var pos = buffer.position;\n var headerLength = 0;\n var bufferLen = buffer.length;\n\n while (headerLength !== 3 && headerLength !== 4 && pos < bufferLen - 4) {\n if (buffer.dataview.getInt16(pos) === 0) {\n if (buffer.dataview.getInt16(pos + 2) === 1) {\n // 0x000001\n headerLength = 4;\n } else if (buffer.dataview.getInt8(pos + 2) === 1) {\n headerLength = 3;\n } else {\n pos++;\n }\n } else {\n pos++;\n }\n }\n\n if (pos === bufferLen - 4) {\n if (buffer.dataview.getInt16(pos) === 0) {\n if (buffer.dataview.getInt16(pos + 2) === 1) {\n // 0x000001\n headerLength = 4;\n } else {\n pos = bufferLen;\n }\n } else {\n pos++;\n\n if (buffer.dataview.getInt16(pos) === 0 && buffer.dataview.getInt8(pos) === 1) {\n // 0x0000001\n headerLength = 3;\n } else {\n pos = bufferLen;\n }\n }\n }\n\n return {\n pos: pos,\n headerLength: headerLength\n };\n } // 组装AvcDecoderConfigurationRecord\n // * configurationVerison = 1 uint(8)\n // * avcProfileIndication uint(8)\n // * profile_compatibility uint(8)\n // * avcLevelIndication uint(8)\n // * reserved `111111` bit(6)\n // * lengthSizeMinusOne uint(2)\n // * reserved `111` bit(3)\n // * numOfSPS uint(5)\n // * for(numOfSPS)\n // * spsLength uint(16)\n // * spsNALUnit spsLength个字节\n // * numOfPPS uint(8)\n // * for(numOfPPS)\n // * ppsLength uint(16)\n // * ppsNALUnit ppsLength个字节\n\n }, {\n key: \"getAvcc\",\n value: function getAvcc(sps, pps) {\n var ret = new Uint8Array(sps.byteLength + pps.byteLength + 11);\n ret[0] = 0x01;\n ret[1] = sps[1];\n ret[2] = sps[2];\n ret[3] = sps[3];\n ret[4] = 255;\n ret[5] = 225; // 11100001\n\n var offset = 6;\n ret.set(new Uint8Array([sps.byteLength >>> 8 & 0xff, sps.byteLength & 0xff]), offset);\n offset += 2;\n ret.set(sps, offset);\n offset += sps.byteLength;\n ret[offset] = 1;\n offset++;\n ret.set(new Uint8Array([pps.byteLength >>> 8 & 0xff, pps.byteLength & 0xff]), offset);\n offset += 2;\n ret.set(pps, offset);\n return ret;\n }\n }]);\n\n return Nalunit;\n}();\n\nexport default Nalunit;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Golomb = /*#__PURE__*/function () {\n /**\n * @param {Uint8Array} uint8array\n */\n function Golomb(uint8array) {\n _classCallCheck(this, Golomb);\n\n this.TAG = 'Golomb';\n this._buffer = uint8array;\n this._bufferIndex = 0;\n this._totalBytes = uint8array.byteLength;\n this._totalBits = uint8array.byteLength * 8;\n this._currentWord = 0;\n this._currentWordBitsLeft = 0;\n }\n\n _createClass(Golomb, [{\n key: \"destroy\",\n value: function destroy() {\n this._buffer = null;\n }\n }, {\n key: \"_fillCurrentWord\",\n value: function _fillCurrentWord() {\n var bufferBytesLeft = this._totalBytes - this._bufferIndex;\n\n if (bufferBytesLeft <= 0) {// TODO 异常处理\n }\n\n var bytesRead = Math.min(4, bufferBytesLeft);\n var word = new Uint8Array(4);\n word.set(this._buffer.subarray(this._bufferIndex, this._bufferIndex + bytesRead));\n this._currentWord = new DataView(word.buffer).getUint32(0);\n this._bufferIndex += bytesRead;\n this._currentWordBitsLeft = bytesRead * 8;\n }\n /**\n * @param size\n * @return {number|*|number}\n */\n\n }, {\n key: \"readBits\",\n value: function readBits(size) {\n var bits = Math.min(this._currentWordBitsLeft, size); // :uint\n\n var valu = this._currentWord >>> 32 - bits;\n\n if (size > 32) {\n throw new Error('Cannot read more than 32 bits at a time');\n }\n\n this._currentWordBitsLeft -= bits;\n\n if (this._currentWordBitsLeft > 0) {\n this._currentWord <<= bits;\n } else if (this._totalBytes - this._bufferIndex > 0) {\n this._fillCurrentWord();\n }\n\n bits = size - bits;\n\n if (bits > 0 && this._currentWordBitsLeft) {\n return valu << bits | this.readBits(bits);\n } else {\n return valu;\n }\n }\n /**\n * @return {boolean}\n */\n\n }, {\n key: \"readBool\",\n value: function readBool() {\n return this.readBits(1) === 1;\n }\n /**\n * @return {*|number}\n */\n\n }, {\n key: \"readByte\",\n value: function readByte() {\n return this.readBits(8);\n }\n }, {\n key: \"_skipLeadingZero\",\n value: function _skipLeadingZero() {\n var zeroCount;\n\n for (zeroCount = 0; zeroCount < this._currentWordBitsLeft; zeroCount++) {\n if ((this._currentWord & 0x80000000 >>> zeroCount) !== 0) {\n this._currentWord <<= zeroCount;\n this._currentWordBitsLeft -= zeroCount;\n return zeroCount;\n }\n }\n\n this._fillCurrentWord();\n\n return zeroCount + this._skipLeadingZero();\n }\n /**\n * @return {number}\n */\n\n }, {\n key: \"readUEG\",\n value: function readUEG() {\n // unsigned exponential golomb\n var leadingZeros = this._skipLeadingZero();\n\n return this.readBits(leadingZeros + 1) - 1;\n }\n /**\n * @return {number}\n */\n\n }, {\n key: \"readSEG\",\n value: function readSEG() {\n // signed exponential golomb\n var value = this.readUEG();\n\n if (value & 0x01) {\n return value + 1 >>> 1;\n } else {\n return -1 * (value >>> 1);\n }\n }\n }, {\n key: \"readSliceType\",\n value: function readSliceType() {\n // skip NALu type Nal unit header 8bit\n this.readByte(); // discard first_mb_in_slice\n\n this.readUEG(); // return slice_type\n\n return this.readUEG();\n }\n }]);\n\n return Golomb;\n}();\n\nexport default Golomb;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport Golomb from './golomb';\n\nvar SPSParser = /*#__PURE__*/function () {\n function SPSParser() {\n _classCallCheck(this, SPSParser);\n }\n\n _createClass(SPSParser, null, [{\n key: \"_ebsp2rbsp\",\n value:\n /**\n *\n * @param {Uint8Array} uint8array\n * @return {Uint8Array}\n */\n function _ebsp2rbsp(uint8array) {\n var src = uint8array;\n var srcLength = src.byteLength;\n var dst = new Uint8Array(srcLength);\n var dstIdx = 0;\n\n for (var i = 0; i < srcLength; i++) {\n if (i >= 2) {\n if (src[i] === 0x03 && src[i - 1] === 0x00 && src[i - 2] === 0x00) {\n continue;\n }\n }\n\n dst[dstIdx] = src[i];\n dstIdx++;\n }\n\n return new Uint8Array(dst.buffer, 0, dstIdx);\n }\n /**\n * @param {Uint8Array} uint8array\n * @return {{width: *, general_profile_idc: number, chromaFormatIdc: *, general_level_idc: number, general_tier_flag: number, bitDepthLumaMinus8: (*|number), bitDepthChromaMinus8: (*|number), general_profile_space: number, height: *}}\n */\n\n }, {\n key: \"parseSPS\",\n value: function parseSPS(uint8array) {\n var rbsp = SPSParser._ebsp2rbsp(uint8array);\n\n var gb = new Golomb(rbsp);\n var vpsId = 0;\n var maxSubLayersMinus1 = 0;\n var tINf = 0;\n var spsId = 0;\n var separate_colour_plane_flag = 0;\n var chromaFormatIdc = 0;\n var width = 0;\n var height = 0;\n var conf_win_left_offset = 0;\n var conf_win_right_offset = 0;\n var conf_win_top_offset = 0;\n var conf_win_bottom_offset = 0;\n var conformanceWindowFlag = 0;\n var bitDepthLumaMinus8 = 0;\n var bitDepthChromaMinus8 = 0;\n var sub_width_c = 0;\n var sub_height_c = 0;\n var profileTierLevel = {};\n gb.readByte(); // NAL header\n\n gb.readByte();\n vpsId = gb.readBits(4); // vps_id\n\n maxSubLayersMinus1 = gb.readBits(3); // max_sub_layers_minus1\n\n tINf = gb.readBits(1); // temporal_id_nesting_flag\n\n profileTierLevel = SPSParser._readProfileTierLevel(gb, maxSubLayersMinus1);\n spsId = gb.readUEG(); // sps id\n\n chromaFormatIdc = gb.readUEG();\n\n if (chromaFormatIdc === 3) {\n separate_colour_plane_flag = gb.readBits(1); // separate_colour_plane_flag\n }\n\n width = gb.readUEG(); // pic_width_in_luma_samples\n\n height = gb.readUEG(); // pic_height_in_luma_samples\n\n conformanceWindowFlag = gb.readBits(1);\n\n if (conformanceWindowFlag === 1) {\n conf_win_left_offset = gb.readUEG(); // conf_win_left_offset\n\n conf_win_right_offset = gb.readUEG(); // conf_win_right_offset\n\n conf_win_top_offset = gb.readUEG(); // conf_win_top_offset\n\n conf_win_bottom_offset = gb.readUEG(); // conf_win_bottom_offset\n }\n\n bitDepthLumaMinus8 = gb.readUEG(); // bit_depth_luma_minus8\n\n bitDepthChromaMinus8 = gb.readUEG(); // bit_depth_chroma_minus8\n\n if (conformanceWindowFlag === 1) {\n sub_width_c = (chromaFormatIdc === 1 || chromaFormatIdc === 2) && separate_colour_plane_flag === 0 ? 2 : 1;\n sub_height_c = chromaFormatIdc === 1 && separate_colour_plane_flag === 0 ? 2 : 1;\n width -= sub_width_c * conf_win_right_offset + sub_width_c * conf_win_left_offset;\n height -= sub_height_c * conf_win_bottom_offset + sub_height_c * conf_win_top_offset;\n }\n\n gb.destroy();\n gb = null;\n return {\n width: width,\n height: height,\n general_profile_space: profileTierLevel.general_profile_space,\n general_tier_flag: profileTierLevel.general_tier_flag,\n general_profile_idc: profileTierLevel.general_profile_idc,\n general_level_idc: profileTierLevel.general_level_idc,\n chromaFormatIdc: chromaFormatIdc,\n bitDepthLumaMinus8: bitDepthLumaMinus8,\n bitDepthChromaMinus8: bitDepthChromaMinus8\n };\n } // static parseSPS (uint8array) {\n // let rbsp = SPSParser._ebsp2rbsp(uint8array)\n // let gb = new Golomb(rbsp)\n //\n // gb.readByte()\n // let profileIdc = gb.readByte()\n // gb.readByte()\n // let levelIdc = gb.readByte()\n // gb.readUEG()\n //\n // let profile_string = SPSParser.getProfileString(profileIdc)\n // let level_string = SPSParser.getLevelString(levelIdc)\n // let chroma_format_idc = 1\n // let chroma_format = 420\n // let chroma_format_table = [0, 420, 422, 444]\n // let bit_depth = 8\n //\n // if (profileIdc === 100 || profileIdc === 110 || profileIdc === 122 ||\n // profileIdc === 244 || profileIdc === 44 || profileIdc === 83 ||\n // profileIdc === 86 || profileIdc === 118 || profileIdc === 128 ||\n // profileIdc === 138 || profileIdc === 144) {\n // chroma_format_idc = gb.readUEG()\n // if (chroma_format_idc === 3) {\n // gb.readBits(1)\n // }\n // if (chroma_format_idc <= 3) {\n // chroma_format = chroma_format_table[chroma_format_idc]\n // }\n //\n // bit_depth = gb.readUEG() + 8\n // gb.readUEG()\n // gb.readBits(1)\n // if (gb.readBool()) {\n // let scaling_list_count = (chroma_format_idc !== 3) ? 8 : 12\n // for (let i = 0; i < scaling_list_count; i++) {\n // if (gb.readBool()) {\n // if (i < 6) {\n // SPSParser._skipScalingList(gb, 16)\n // } else {\n // SPSParser._skipScalingList(gb, 64)\n // }\n // }\n // }\n // }\n // }\n // gb.readUEG()\n // let pic_order_cnt_type = gb.readUEG()\n // if (pic_order_cnt_type === 0) {\n // gb.readUEG()\n // } else if (pic_order_cnt_type === 1) {\n // gb.readBits(1)\n // gb.readSEG()\n // gb.readSEG()\n // let num_ref_frames_in_pic_order_cnt_cycle = gb.readUEG()\n // for (let i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++) {\n // gb.readSEG()\n // }\n // }\n // gb.readUEG()\n // gb.readBits(1)\n //\n // let pic_width_in_mbs_minus1 = gb.readUEG()\n // let pic_height_in_map_units_minus1 = gb.readUEG()\n //\n // let frame_mbs_only_flag = gb.readBits(1)\n // if (frame_mbs_only_flag === 0) {\n // gb.readBits(1)\n // }\n // gb.readBits(1)\n //\n // let frame_crop_left_offset = 0\n // let frame_crop_right_offset = 0\n // let frame_crop_top_offset = 0\n // let frame_crop_bottom_offset = 0\n //\n // let frame_cropping_flag = gb.readBool()\n // if (frame_cropping_flag) {\n // frame_crop_left_offset = gb.readUEG()\n // frame_crop_right_offset = gb.readUEG()\n // frame_crop_top_offset = gb.readUEG()\n // frame_crop_bottom_offset = gb.readUEG()\n // }\n //\n // let par_width = 1, par_height = 1\n // let fps = 0, fps_fixed = true, fps_num = 0, fps_den = 0\n //\n // let vui_parameters_present_flag = gb.readBool()\n // if (vui_parameters_present_flag) {\n // if (gb.readBool()) { // aspect_ratio_info_present_flag\n // let aspect_ratio_idc = gb.readByte()\n // let par_w_table = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2]\n // let par_h_table = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1]\n //\n // if (aspect_ratio_idc > 0 && aspect_ratio_idc < 16) {\n // par_width = par_w_table[aspect_ratio_idc - 1]\n // par_height = par_h_table[aspect_ratio_idc - 1]\n // } else if (aspect_ratio_idc === 255) {\n // par_width = gb.readByte() << 8 | gb.readByte()\n // par_height = gb.readByte() << 8 | gb.readByte()\n // }\n // }\n //\n // if (gb.readBool()) {\n // gb.readBool()\n // }\n // if (gb.readBool()) {\n // gb.readBits(4)\n // if (gb.readBool()) {\n // gb.readBits(24)\n // }\n // }\n // if (gb.readBool()) {\n // gb.readUEG()\n // gb.readUEG()\n // }\n // if (gb.readBool()) {\n // let num_units_in_tick = gb.readBits(32)\n // let time_scale = gb.readBits(32)\n // fps_fixed = gb.readBool()\n //\n // fps_num = time_scale\n // fps_den = num_units_in_tick * 2\n // fps = fps_num / fps_den\n // }\n // }\n //\n // let parScale = 1\n // if (par_width !== 1 || par_height !== 1) {\n // parScale = par_width / par_height\n // }\n //\n // let crop_unit_x = 0, crop_unit_y = 0\n // if (chroma_format_idc === 0) {\n // crop_unit_x = 1\n // crop_unit_y = 2 - frame_mbs_only_flag\n // } else {\n // let sub_wc = (chroma_format_idc === 3) ? 1 : 2\n // let sub_hc = (chroma_format_idc === 1) ? 2 : 1\n // crop_unit_x = sub_wc\n // crop_unit_y = sub_hc * (2 - frame_mbs_only_flag)\n // }\n //\n // let codec_width = (pic_width_in_mbs_minus1 + 1) * 16\n // let codec_height = (2 - frame_mbs_only_flag) * ((pic_height_in_map_units_minus1 + 1) * 16)\n //\n // codec_width -= (frame_crop_left_offset + frame_crop_right_offset) * crop_unit_x\n // codec_height -= (frame_crop_top_offset + frame_crop_bottom_offset) * crop_unit_y\n //\n // let present_width = Math.ceil(codec_width * parScale)\n //\n // gb.destroy()\n // gb = null\n //\n // return {\n // profile_string: profile_string,\n // level_string: level_string,\n // bit_depth: bit_depth,\n // chroma_format: chroma_format,\n // chroma_format_string: SPSParser.getChromaFormatString(chroma_format),\n //\n // frame_rate: {\n // fixed: fps_fixed,\n // fps: fps,\n // fps_den: fps_den,\n // fps_num: fps_num\n // },\n //\n // par_ratio: {\n // width: par_width,\n // height: par_height\n // },\n //\n // codec_size: {\n // width: codec_width,\n // height: codec_height\n // },\n //\n // present_size: {\n // width: present_width,\n // height: codec_height\n // }\n // }\n // }\n\n /**\n * @param gb\n * @param maxSubLayersMinus1\n * @return {{general_profile_idc: (*|number), general_level_idc: (*|number), general_tier_flag: (*|number), general_profile_space: (*|number)}}\n */\n\n }, {\n key: \"_readProfileTierLevel\",\n value: function _readProfileTierLevel(gb, maxSubLayersMinus1) {\n var general_profile_space = 0;\n var general_tier_flag = 0;\n var general_profile_idc = 0;\n var general_level_idc = 0;\n general_profile_space = gb.readBits(2) || 0; // profile_space\n\n general_tier_flag = gb.readBits(1) || 0; // tierFlag\n\n general_profile_idc = gb.readBits(5) || 0; // profileIdc\n\n gb.readBits(16); // some 32bits\n\n gb.readBits(16);\n gb.readBits(1); // progressiveSourceFlag\n\n gb.readBits(1); // interlacedSourceFlag\n\n gb.readBits(1); // nonPackedConstraintFlag\n\n gb.readBits(1); // frameOnlyConstraintFlag\n\n gb.readBits(16); // reserved zero bits\n\n gb.readBits(16);\n gb.readBits(12);\n general_level_idc = gb.readBits(8) || 0; // level_idc\n\n var subLayerProfilePresentFlag = [];\n var subLayerLevelPresentFlag = [];\n\n for (var j = 0; j < maxSubLayersMinus1; j++) {\n subLayerProfilePresentFlag[j] = gb.readBits(1);\n subLayerLevelPresentFlag[j] = gb.readBits(1);\n }\n\n if (maxSubLayersMinus1 > 0) {\n gb.readBits((8 - maxSubLayersMinus1) * 2);\n }\n\n for (var i = 0; i < maxSubLayersMinus1; i++) {\n if (subLayerProfilePresentFlag[i] !== 0) {\n gb.readBits(2);\n gb.readBits(1);\n gb.readBits(5);\n gb.readBits(16);\n gb.readBits(16);\n gb.readBits(4);\n gb.readBits(16);\n gb.readBits(16);\n gb.readBits(12);\n }\n\n if (subLayerLevelPresentFlag[i] !== 0) {\n gb.readBits(8);\n }\n }\n\n return {\n general_profile_space: general_profile_space,\n general_tier_flag: general_tier_flag,\n general_profile_idc: general_profile_idc,\n general_level_idc: general_level_idc\n };\n }\n /**\n *\n * @param {any} gb\n * @param {number}count\n */\n\n }, {\n key: \"_skipScalingList\",\n value: function _skipScalingList(gb, count) {\n var lastScale = 8;\n var nextScale = 8;\n var deltaScale = 0;\n\n for (var i = 0; i < count; i++) {\n if (nextScale !== 0) {\n deltaScale = gb.readSEG();\n nextScale = (lastScale + deltaScale + 256) % 256;\n }\n\n lastScale = nextScale === 0 ? lastScale : nextScale;\n }\n }\n /**\n *\n * @param {number} profileIdc\n * @return {string}\n */\n\n }, {\n key: \"getProfileString\",\n value: function getProfileString(profileIdc) {\n switch (profileIdc) {\n case 66:\n return 'Baseline';\n\n case 77:\n return 'Main';\n\n case 88:\n return 'Extended';\n\n case 100:\n return 'High';\n\n case 110:\n return 'High10';\n\n case 122:\n return 'High422';\n\n case 244:\n return 'High444';\n\n default:\n return 'Unknown';\n }\n }\n /**\n * @param {number} levelIdc\n * @return {string}\n */\n\n }, {\n key: \"getLevelString\",\n value: function getLevelString(levelIdc) {\n return (levelIdc / 10).toFixed(1);\n }\n /**\n * @param {number} chroma\n * @return {string}\n */\n\n }, {\n key: \"getChromaFormatString\",\n value: function getChromaFormatString(chroma) {\n switch (chroma) {\n case 420:\n return '4:2:0';\n\n case 422:\n return '4:2:2';\n\n case 444:\n return '4:4:4';\n\n default:\n return 'Unknown';\n }\n }\n /**\n * @param {any} spsConfig\n * @return {any}\n */\n\n }, {\n key: \"toVideoMeta\",\n value: function toVideoMeta(spsConfig) {\n var meta = {};\n\n if (spsConfig && spsConfig.codec_size) {\n meta.codecWidth = spsConfig.codec_size.width;\n meta.codecHeight = spsConfig.codec_size.height;\n meta.presentWidth = spsConfig.present_size.width;\n meta.presentHeight = spsConfig.present_size.height;\n } else if (spsConfig.width && spsConfig.height) {\n meta.codecWidth = spsConfig.width;\n meta.codecHeight = spsConfig.height;\n meta.presentWidth = spsConfig.width;\n meta.presentHeight = spsConfig.height;\n }\n\n meta.profile = spsConfig.profile_string;\n meta.level = spsConfig.level_string;\n meta.bitDepth = spsConfig.bit_depth;\n meta.chromaFormat = spsConfig.chroma_format; // meta.parRatio = {\n // width: spsConfig.par_ratio.width,\n // height: spsConfig.par_ratio.height\n // }\n // meta.frameRate = spsConfig.frame_rate\n // let fpsDen = meta.frameRate.fps_den\n // let fpsNum = meta.frameRate.fps_num\n // meta.refSampleDuration = Math.floor(meta.timescale * (fpsDen / fpsNum))\n\n return meta;\n }\n }]);\n\n return SPSParser;\n}();\n\nexport default SPSParser;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar RBSP = /*#__PURE__*/function () {\n function RBSP() {\n _classCallCheck(this, RBSP);\n }\n\n _createClass(RBSP, null, [{\n key: \"EBSP2RBSP\",\n value:\n /**\n * convert EBSP to RBSP\n * @param {Uint8Array} data\n * @returns {Uint8Array}\n * @constructor\n */\n function EBSP2RBSP(data) {\n return data.filter(function (el, idx) {\n if (idx < 2) {\n return true;\n } else {\n return !(data[idx - 2] === 0 && data[idx - 1] === 0 && el === 3);\n }\n });\n }\n /**\n * @param {Uint8Array} data\n * @constructor\n */\n\n }, {\n key: \"EBSP2SODB\",\n value: function EBSP2SODB(data) {\n var lastByte = data[data.byteLength - 1];\n\n if (lastByte && lastByte === 128) {\n return data.slice(0, data.byteLength - 1);\n }\n\n return data;\n }\n }]);\n\n return RBSP;\n}();\n\nexport default RBSP;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport RBSP from './rbsp';\n/**\n * @param {Uint8Array} data\n * @return {string}\n */\n\nvar u8aToString = function u8aToString(data) {\n var result = '';\n\n for (var i = 0; i < data.byteLength; i++) {\n result += String.fromCharCode(data[i]);\n }\n\n return result;\n};\n\nvar SEIParser = /*#__PURE__*/function () {\n function SEIParser() {\n _classCallCheck(this, SEIParser);\n }\n\n _createClass(SEIParser, null, [{\n key: \"_resolveNalu\",\n value: function _resolveNalu(data) {\n if (data.length >= 1) {\n return RBSP.EBSP2SODB(RBSP.EBSP2RBSP(data.slice(1)));\n }\n\n return null;\n }\n /**\n * @param {Uint8Array} data\n * @return {{uuid: string, content: null}|{code: number, uuid: string, content: string}|{code: number, content: Uint8Array}}\n */\n\n }, {\n key: \"parse\",\n value: function parse(data) {\n var sodb = SEIParser._resolveNalu(data);\n\n var _SEIParser$switchPayl = SEIParser.switchPayloadType(sodb),\n payloadType = _SEIParser$switchPayl.payloadType,\n offset = _SEIParser$switchPayl.offset;\n\n var content = sodb.slice(offset);\n\n switch (payloadType) {\n case 5:\n return SEIParser.user_data_unregistered(content);\n\n default:\n return {\n code: payloadType,\n content: content\n };\n }\n }\n /**\n *\n * @param {Uint8Array} data\n * @returns {{payloadType: number, offset: number}}\n */\n\n }, {\n key: \"switchPayloadType\",\n value: function switchPayloadType(data) {\n var dv = new DataView(data.buffer);\n var payloadType = 0;\n var offset = 0;\n\n while (dv.getUint8(offset) === 255) {\n offset++;\n payloadType += 255;\n }\n\n payloadType += dv.getUint8(offset++);\n return {\n payloadType: payloadType,\n offset: offset\n };\n }\n /**\n *\n * @param {Uint8Array} data\n * @return {{ payloadLength: number, offset: number }}\n */\n\n }, {\n key: \"getPayloadLength\",\n value: function getPayloadLength(data) {\n var dv = new DataView(data.buffer);\n var payloadLength = 0;\n var offset = 0;\n\n while (dv.getUint8(offset) === 255) {\n offset++;\n payloadLength += 255;\n }\n\n payloadLength += dv.getUint8(offset++);\n return {\n payloadLength: payloadLength,\n offset: offset\n };\n }\n /**\n * resolve 0x05 user data unregistered\n * @param {Uint8Array} data\n */\n // eslint-disable-next-line camelcase\n\n }, {\n key: \"user_data_unregistered\",\n value: function user_data_unregistered(data) {\n var _SEIParser$getPayload = SEIParser.getPayloadLength(data),\n payloadLength = _SEIParser$getPayload.payloadLength,\n offset = _SEIParser$getPayload.offset;\n\n if (payloadLength < 16) {\n return {\n uuid: '',\n content: null\n };\n }\n\n var payload = data.slice(offset);\n var uuid = u8aToString(payload.slice(0, 16));\n var content = u8aToString(payload.slice(16, payloadLength));\n return {\n code: 5,\n // for user data unregistered\n uuid: uuid,\n content: content\n };\n }\n }]);\n\n return SEIParser;\n}();\n\nexport default SEIParser;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport SpsParser from './sps';\nimport SEIParser from './sei';\n\nvar Nalunit = /*#__PURE__*/function () {\n function Nalunit() {\n _classCallCheck(this, Nalunit);\n }\n\n _createClass(Nalunit, null, [{\n key: \"getNalunits\",\n value:\n /**\n * @param {any} buffer\n * @return {[]|*[]}\n */\n function getNalunits(buffer) {\n if (buffer.length - buffer.position < 4) {\n return [];\n }\n\n var buf = buffer.dataview;\n var position = buffer.position;\n\n if (buf.getInt32(position) === 1 || buf.getInt16(position) === 0 && buf.getInt8(position + 2) === 1) {\n return Nalunit.getAnnexbNals(buffer);\n } else {\n return Nalunit.getHvccNals(buffer);\n }\n }\n /**\n * @param {any} buffer\n * @return {[]}\n */\n\n }, {\n key: \"getAnnexbNals\",\n value: function getAnnexbNals(buffer) {\n var nals = [];\n var position = Nalunit.getHeaderPositionAnnexB(buffer);\n var start = position.pos;\n var end = start;\n\n while (start < buffer.length - 4) {\n var header = buffer.buffer.slice(start, start + position.headerLength);\n\n if (position.pos === buffer.position) {\n buffer.skip(position.headerLength);\n }\n\n position = Nalunit.getHeaderPositionAnnexB(buffer);\n end = position.pos;\n var body = new Uint8Array(buffer.buffer.slice(start + header.byteLength, end));\n var unit = {\n header: header,\n body: body\n };\n Nalunit.analyseNal(unit);\n\n if (unit.type <= 40) {\n nals.push(unit);\n }\n\n buffer.skip(end - buffer.position);\n start = end;\n }\n\n return nals;\n } // |四字节 nalSize| nalUnit |\n\n /**\n * @param {any} buffer\n * @return {[]}\n */\n\n }, {\n key: \"getHvccNals\",\n value: function getHvccNals(buffer) {\n // console.log('getHvccNals')\n var nals = [];\n\n while (buffer.position < buffer.length - 4) {\n // console.log('buffer')\n // console.log(buffer)\n // console.log(buffer.position)\n // console.log(buffer.length)\n // console.log(buffer.dataview)\n // let length = buffer.dataview.getInt32();\n var length = buffer.dataview.getInt32(buffer.dataview.position);\n\n if (buffer.length - buffer.position >= length) {\n var header = buffer.buffer.slice(buffer.position, buffer.position + 4);\n buffer.skip(4);\n var body = new Uint8Array(buffer.buffer.slice(buffer.position, buffer.position + length));\n buffer.skip(length);\n var unit = {\n header: header,\n body: body\n };\n\n try {\n Nalunit.analyseNal(unit);\n } catch (e) {\n continue;\n }\n\n if (unit.type <= 40) {\n nals.push(unit);\n }\n } else {\n break;\n }\n }\n\n return nals;\n }\n /**\n * @param {any} unit\n */\n\n }, {\n key: \"analyseNal\",\n value: function analyseNal(unit) {\n var type = unit.body[0] >>> 1 & 0x3f;\n unit.type = type;\n\n switch (type) {\n case 0:\n // SLICE_TRAIL_N\n unit.slice_trail_n = true;\n break;\n\n case 1:\n // SLICE_TRAIL_R\n unit.slice_trail_r = true;\n unit.key = true;\n break;\n\n case 2:\n // SLICE_TSA_N\n unit.slice_tsa_n = true;\n break;\n\n case 3:\n // SLICE_TSA_R\n unit.slice_tsa_r = true;\n unit.key = true;\n break;\n\n case 4:\n // SLICE_STSA_N\n unit.slice_stsa_n = true;\n break;\n\n case 5:\n // SLICE_STSA_R\n unit.slice_stsa_r = true;\n unit.key = true;\n break;\n\n case 6:\n // SLICE_RADL_N\n unit.slice_radl_n = true;\n break;\n\n case 7:\n // SLICE_RADL_R\n unit.slice_radl_r = true;\n unit.key = true;\n break;\n\n case 8:\n // SLICE_RASL_N\n unit.slice_rasl_n = true;\n break;\n\n case 9:\n // SLICE_RASL_R\n unit.slice_rasl_r = true;\n unit.key = true;\n break;\n\n case 16:\n // SLICE_BLA_W_LP\n unit.slice_bla_w_lp = true;\n break;\n\n case 17:\n // SLICE_BLA_W_RADL\n unit.slice_bla_w_radl = true;\n break;\n\n case 18:\n // SLICE_BLA_N_LP\n unit.slice_bla_n_lp = true;\n break;\n\n case 19:\n // SLICE_IDR_W_RADL\n unit.slice_idl_w_radl = true;\n unit.key = true;\n break;\n\n case 20:\n // SLICE_IDR_N_LP\n unit.slice_idr_n_lp = true;\n unit.key = true;\n break;\n\n case 21:\n // SLICE_CRA_NUT\n unit.slice_cra_nut = true;\n unit.key = true;\n break;\n\n case 32:\n // VPS\n unit.vps = true;\n break;\n\n case 33:\n // SPS\n unit.sps = SpsParser.parseSPS(unit.body);\n break;\n\n case 34:\n // PPS\n unit.pps = true;\n break;\n\n case 35:\n // AUD\n break;\n\n case 36:\n // EOS\n unit.aud = true;\n break;\n\n case 37:\n // EOB\n unit.eob = true;\n break;\n\n case 38:\n // FD\n unit.fd = true;\n break;\n\n case 39:\n // PREFIX_SEI\n // unit.prefix_sei = true;\n try {\n unit.sei = SEIParser.parse(unit.body.slice(1));\n } catch (e) {}\n\n break;\n\n case 40:\n // SUFFIX_SEI\n unit.sei = SEIParser.parse(unit.body.slice(1));\n break;\n\n default:\n break;\n }\n }\n }, {\n key: \"getHeaderPositionAnnexB\",\n value: function getHeaderPositionAnnexB(buffer) {\n // seperate\n var pos = buffer.position;\n var headerLength = 0;\n var bufferLen = buffer.length;\n\n while (headerLength !== 3 && headerLength !== 4 && pos < bufferLen - 4) {\n if (buffer.dataview.getInt16(pos) === 0) {\n if (buffer.dataview.getInt16(pos + 2) === 1) {\n // 0x00000001\n headerLength = 4;\n } else if (buffer.dataview.getInt8(pos + 2) === 1) {\n headerLength = 3;\n } else {\n pos++;\n }\n } else {\n pos++;\n }\n }\n\n if (pos === bufferLen - 4) {\n if (buffer.dataview.getInt16(pos) === 0) {\n if (buffer.dataview.getInt16(pos + 2) === 1) {\n // 0x00000001\n headerLength = 4;\n }\n } else {\n pos++;\n\n if (buffer.dataview.getInt16(pos) === 0 && buffer.dataview.getInt8(pos) === 1) {\n // 0x000001\n headerLength = 3;\n } else {\n pos = bufferLen;\n }\n }\n }\n\n return {\n pos: pos,\n headerLength: headerLength\n };\n }\n }]);\n\n return Nalunit;\n}();\n\nexport default Nalunit;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { EVENTS, common, logger } from 'xgplayer-helper-utils';\nimport AAC from '../aac';\nvar REMUX_EVENTS = EVENTS.REMUX_EVENTS;\nvar caculate = common.caculate;\n\nvar Compatibility = /*#__PURE__*/function () {\n function Compatibility() {\n var _this = this;\n\n _classCallCheck(this, Compatibility);\n\n this.TAG = 'Compatibility';\n this.nextAudioDts = 0; // 模拟下一段音频数据的dts\n\n this.nextVideoDts = 0; // 模拟下一段视频数据的dts\n\n this.lastAudioSamplesLen = 0; // 上一段音频数据的长度\n\n this.lastVideoSamplesLen = 0; // 上一段视频数据的长度\n\n this.lastVideoDts = undefined; // 上一段音频数据的长度\n\n this.lastAudioDts = undefined; // 上一段视频数据的长度\n\n this.allAudioSamplesCount = 0; // 音频总数据量(原始帧)\n\n this.allVideoSamplesCount = 0; // 视频总数据量(原始帧)\n\n this._firstAudioSample = null;\n this._firstVideoSample = null;\n this.filledAudioSamples = []; // 补充音频帧()\n\n this.filledVideoSamples = []; // 补充视频帧()\n\n this._lastSegmentId = 0;\n this._currentSegmentId = 0;\n this.videoLastSample = null;\n this.audioLastSample = null; // stash last sample for duration compat\n\n Object.defineProperties(this, {\n _videoLargeGap: {\n set: function set(value) {\n _this.___videoLargeGap = value;\n\n if (value !== 0) {\n _this.emit(REMUX_EVENTS.DETECT_LARGE_GAP, 'video', value);\n }\n },\n get: function get() {\n return _this.___videoLargeGap || 0;\n }\n },\n _audioLargeGap: {\n set: function set(value) {\n _this.___audioLargeGap = value;\n\n if (value !== 0) {\n _this.emit(REMUX_EVENTS.DETECT_LARGE_GAP, 'audio', value);\n }\n },\n get: function get() {\n return _this.___audioLargeGap || 0;\n }\n }\n });\n this.audioUnsyncTime = 0;\n }\n\n _createClass(Compatibility, [{\n key: \"init\",\n value: function init() {\n this.before(REMUX_EVENTS.REMUX_MEDIA, this.doFix.bind(this));\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.nextAudioDts = null; // 估算下一段音频数据的dts\n\n this.nextVideoDts = null; // 估算下一段视频数据的dts\n\n this.lastAudioSamplesLen = 0; // 上一段音频数据的长度\n\n this.lastVideoSamplesLen = 0; // 上一段视频数据的长度\n\n this.lastVideoDts = undefined; // 上一段音频数据的dts\n\n this.lastAudioDts = undefined; // 上一段视频数据的dts\n // this.allAudioSamplesCount = 0 // 音频总数据量(原始帧)\n // this.allVideoSamplesCount = 0 // 视频总数据量(原始帧)\n\n this._audioLargeGap = 0;\n this._videoLargeGap = 0; // this._firstAudioSample = null\n // this._firstVideoSample = null\n // this._firstAudioSample = null\n // this._firstVideoSample = null\n\n this.videoLastSample = null;\n this.audioLastSample = null;\n this.filledAudioSamples = []; // 补充音频帧()\n\n this.filledVideoSamples = []; // 补充视频帧()\n\n this.audioUnsyncTime = 0;\n }\n }, {\n key: \"_isSegmentsContinuous\",\n value: function _isSegmentsContinuous() {\n return this._lastSegmentId === 0 || this._currentSegmentId - this._lastSegmentId === 1;\n }\n }, {\n key: \"doFix\",\n value: function doFix() {\n var ops;\n var vSamp0;\n var aSamp0;\n var avDelta = 0;\n\n if (this.videoTrack.samples.length) {\n vSamp0 = this.videoTrack.samples[0];\n ops = vSamp0.options;\n\n if (logger[\"long\"]) {\n logger.log(this.TAG, this.videoTrack.samples.slice());\n }\n }\n\n if (this.audioTrack.samples.length) {\n aSamp0 = this.audioTrack.samples[0];\n\n if (logger[\"long\"]) {\n logger.log(this.TAG, this.audioTrack.samples.slice());\n }\n }\n\n if (vSamp0 && aSamp0) {\n avDelta = aSamp0.dts - vSamp0.dts;\n } // eslint-disable-next-line no-mixed-operators\n\n\n this._currentSegmentId = ops && ops.id || this._currentSegmentId + 1;\n logger.log(this.TAG, \"lastSeg:\".concat(this._lastSegmentId, \" , currentSeg:\").concat(this._currentSegmentId, \", discontinue:\").concat(ops && ops.discontinue, \" vSamp0:\").concat(vSamp0 && vSamp0.dts, \" aSamp0:\").concat(aSamp0 && aSamp0.dts));\n\n var _this$getFirstSample = this.getFirstSample(),\n isFirstAudioSamples = _this$getFirstSample.isFirstAudioSamples,\n isFirstVideoSamples = _this$getFirstSample.isFirstVideoSamples;\n\n this.recordSamplesCount();\n\n if (this._firstVideoSample) {\n this.fixVideoRefSampleDuration(this.videoTrack.meta, this.videoTrack.samples);\n }\n\n var _Compatibility$detect = Compatibility.detectChangeStream(this.videoTrack.samples, isFirstVideoSamples),\n videoChanged = _Compatibility$detect.changed,\n videoChangedIdxes = _Compatibility$detect.changedIdxes;\n\n if (videoChanged) {\n var disContinue = false;\n\n for (var i = 0; i < videoChangedIdxes.length; i++) {\n if (this.fixChangeStreamVideo(videoChangedIdxes[i], isFirstVideoSamples)) {\n disContinue = true;\n }\n }\n\n if (!disContinue) {\n this.doFixVideo(isFirstVideoSamples);\n }\n } else {\n if (!this._isSegmentsContinuous() && ops && ops.start !== undefined) {\n this.videoLastSample = null;\n var start = ops.start; // id 不连续时考虑上av之间的差值\n\n if (avDelta < 0) {\n start -= avDelta;\n }\n\n logger.log(this.TAG, 'fix video for _isSegmentsContinuous(), delta:', avDelta);\n this.doFixVideo(isFirstVideoSamples, start);\n this.emit(REMUX_EVENTS.DETECT_FRAG_ID_DISCONTINUE, ops.start / 1000);\n } else {\n this.doFixVideo(isFirstVideoSamples);\n }\n }\n\n this._appendSampleForLastSegment(ops && ops.isLast);\n\n var _Compatibility$detect2 = Compatibility.detectChangeStream(this.audioTrack.samples, isFirstAudioSamples),\n audioChanged = _Compatibility$detect2.changed,\n audioChangedIdxes = _Compatibility$detect2.changedIdxes;\n\n if (audioChanged) {\n var _disContinue = false;\n\n for (var _i = 0; _i < audioChangedIdxes.length; _i++) {\n if (this.fixChangeStreamAudio(audioChangedIdxes[_i], isFirstAudioSamples)) {\n _disContinue = true;\n }\n }\n\n if (!_disContinue) {\n this.doFixAudio(isFirstAudioSamples);\n } else {\n return;\n }\n } else {\n if (!this._isSegmentsContinuous() && ops && ops.start !== undefined) {\n logger.log(this.TAG, 'fix audio for _isSegmentsContinuous()');\n this.nextAudioDts = ops.start || this.audioTrack.samples[0].dts;\n this.doFixAudio(isFirstAudioSamples, ops.start);\n this.emit(REMUX_EVENTS.DETECT_FRAG_ID_DISCONTINUE, ops.start / 1000);\n } else {\n this.doFixAudio(isFirstAudioSamples);\n }\n }\n\n this.removeInvalidSamples();\n this._lastSegmentId = this._currentSegmentId;\n }\n }, {\n key: \"doFixVideo\",\n value: function doFixVideo(first, streamChangeStart) {\n var _this$videoTrack = this.videoTrack,\n videoSamples = _this$videoTrack.samples,\n meta = _this$videoTrack.meta;\n var len = videoSamples.length;\n\n for (var i = 0; i < len; i++) {\n var sample = videoSamples[i];\n sample.originDts = sample.dts;\n sample.originPts = sample.pts;\n }\n\n if (!videoSamples || !len || !this._firstVideoSample) {\n return;\n }\n\n var firstSample = videoSamples[0];\n logger.log(this.TAG, \"doFixVideo:: lastVideoDts: \".concat(this.lastVideoDts, \" , _videoLargeGap: \").concat(this._videoLargeGap, \" ,streamChangeStart:\").concat(streamChangeStart, \", lastVideoSample:[dts=\").concat(this.videoLastSample && this.videoLastSample.dts, \" , pts=\").concat(this.videoLastSample && this.videoLastSample.pts, \"] , firstDTS:\").concat(firstSample.dts, \" ,firstPTS:\").concat(firstSample.pts, \" ,lastDTS:\").concat(videoSamples[len - 1].dts, \" , lastPTS: \").concat(videoSamples[len - 1].pts));\n\n if (!first && streamChangeStart === undefined && this.videoLastSample && Compatibility.detectVideoLargeGap(this.videoLastSample ? this.videoLastSample.dts : 0, firstSample.dts + this._videoLargeGap)) {\n // large gap 不准确,出现了非换流场景的时间戳跳变\n this._videoLargeGap = this.videoLastSample.dts + meta.refSampleDuration - firstSample.dts;\n } // step0.修复hls流出现巨大gap,需要强制重定位的问题。\n\n\n if (this._videoLargeGap !== 0) {\n Compatibility.doFixLargeGap(videoSamples, this._videoLargeGap);\n\n if (this._videoLargeGap !== this.preVideoGap) {\n this.preVideoGap = this._videoLargeGap;\n this.emit(REMUX_EVENTS.DETECT_CHANGE_STREAM_DISCONTINUE, 'video', {\n prevDts: this.videoLastSample && this.videoLastSample.originDts,\n curDts: firstSample.originDts\n });\n }\n }\n\n if (!first && streamChangeStart !== undefined && streamChangeStart !== 0) {\n this._videoLargeGap = streamChangeStart - firstSample.dts;\n Compatibility.doFixLargeGap(videoSamples, this._videoLargeGap);\n } // step1. 修复与audio首帧差距太大的问题\n\n\n if (first && this._firstAudioSample) {\n var videoFirstDts = this._firstVideoSample.originDts;\n var audioFirstDts = this._firstAudioSample.dts;\n var gap = videoFirstDts - audioFirstDts;\n\n if (gap > 2 * meta.refSampleDuration && gap < 10 * meta.refSampleDuration) {\n var fillCount = Math.floor(gap / meta.refSampleDuration);\n\n for (var _i2 = 0; _i2 < fillCount; _i2++) {\n var clonedFirstSample = Object.assign({}, firstSample); // 视频头部帧缺失需要复制第一帧\n // 重新计算sample的dts和pts\n\n clonedFirstSample.dts = videoFirstDts - (_i2 + 1) * meta.refSampleDuration;\n clonedFirstSample.pts = clonedFirstSample.dts + clonedFirstSample.cts;\n videoSamples.unshift(clonedFirstSample);\n this.filledVideoSamples.push({\n dts: clonedFirstSample.dts,\n size: clonedFirstSample.data.byteLength\n });\n }\n\n this._firstVideoSample = this.filledVideoSamples[0] || this._firstVideoSample;\n } else if (Math.abs(gap) > 2 * meta.refSampleDuration && !this._videoLargeGap) {\n this._videoLargeGap = -1 * gap;\n Compatibility.doFixLargeGap(videoSamples, -1 * gap);\n }\n } // 分片中间时间戳跳变\n\n\n var segLen = videoSamples.length;\n\n for (var _i3 = 1; _i3 < segLen; _i3++) {\n var c = videoSamples[_i3];\n var pre = videoSamples[_i3 - 1];\n var cts = c.dts - c.pts;\n\n if (Math.abs(cts) < 2000) {\n // 单帧 dts、pts差距不大\n if (Math.abs(c.dts - pre.dts) > 10000) {\n c.dts = pre.dts + meta.refSampleDuration;\n c.pts = pre.pts + meta.refSampleDuration;\n }\n }\n }\n\n var curLastSample = videoSamples.pop();\n\n if (videoSamples.length) {\n videoSamples[videoSamples.length - 1].duration = curLastSample.dts - videoSamples[videoSamples.length - 1].dts;\n } // 分片 < 4帧,不能起播的\n\n\n if (segLen < 4) {\n var _sample = videoSamples[videoSamples.length - 1];\n _sample = _sample || curLastSample;\n var duration = _sample.options && _sample.options.duration;\n var refDuration = meta.refSampleDuration;\n\n if (duration && refDuration && duration / refDuration > 5) {\n var pts = _sample.pts;\n var dts = _sample.dts;\n\n for (var _i4 = 0; _i4 < 3; _i4++) {\n dts += refDuration;\n pts += refDuration;\n var sam = Object.assign({}, _sample, {\n dts: dts,\n pts: pts\n });\n\n if (_i4 === 2) {\n // 最后一帧拉长duration\n sam.duration = duration;\n }\n\n videoSamples.push(sam);\n }\n }\n\n curLastSample = null;\n }\n\n if (this.videoLastSample) {\n var videoLastSample = this.videoLastSample;\n videoLastSample.duration = firstSample.dts - videoLastSample.dts;\n videoSamples.unshift(this.videoLastSample);\n } // videoSamples.forEach((sample, idx) => {\n // if (idx !== 0 && idx !== videoSamples.length - 1) {\n // const pre = videoSamples[idx - 1];\n // const next = videoSamples[idx + 1];\n // if (sample.dts - pre.dts < 5) {\n // sample.dts = (pre.dts + next.dts) / 2\n // sample.pts = (pre.pts + next.pts) / 2\n // }\n // }\n // })\n\n\n this.videoLastSample = curLastSample;\n\n if (videoSamples[videoSamples.length - 1]) {\n this.lastVideoDts = videoSamples[videoSamples.length - 1].dts;\n }\n\n this.videoTrack.samples = videoSamples;\n }\n }, {\n key: \"_appendSampleForLastSegment\",\n value: function _appendSampleForLastSegment(isLast) {\n if (isLast && this.videoLastSample) {\n this.videoTrack.samples.push(this.videoLastSample);\n }\n }\n }, {\n key: \"doFixAudio\",\n value: function doFixAudio(first, streamChangeStart) {\n var _this2 = this;\n\n var _this$audioTrack = this.audioTrack,\n audioSamples = _this$audioTrack.samples,\n meta = _this$audioTrack.meta;\n\n if (!audioSamples || !audioSamples.length) {\n return;\n }\n\n this.fixAudioRefSampleDuration(meta);\n\n for (var i = 0, len = audioSamples.length; i < len; i++) {\n var sample = audioSamples[i];\n sample.originDts = sample.dts;\n } // console.log(`audio lastSample, ${audioSamples[audioSamples.length - 1].dts}`)\n\n\n var samplesLen = audioSamples.length;\n var silentFrame = AAC.getSilentFrame(meta.codec, meta.channelCount);\n var iRefSampleDuration = Math.floor(meta.refSampleDuration);\n var firstSample = this._firstAudioSample;\n var _firstSample = audioSamples[0];\n logger.log(this.TAG, \"doFixAudio:: audioDtsBase:\".concat(this.audioDtsBase, \" , _audioLargeGap: \").concat(this._audioLargeGap, \", streamChangeStart:\").concat(streamChangeStart, \" , nextAudioDts:\").concat(this.nextAudioDts, \", audio: firstDTS:\").concat(_firstSample.dts, \" ,firstPTS:\").concat(_firstSample.pts, \" ,lastDTS:\").concat(audioSamples[samplesLen - 1].dts, \" , lastPTS: \").concat(audioSamples[samplesLen - 1].pts));\n\n if (!first && this.nextAudioDts === null && _firstSample.options && _firstSample.options.start) {\n if (streamChangeStart !== undefined) {\n streamChangeStart = _firstSample.options.start;\n }\n }\n\n if (!first && streamChangeStart === undefined && this.nextAudioDts && Compatibility.detectAudioLargeGap(this.nextAudioDts || 0, _firstSample.dts + this._audioLargeGap)) {\n // large gap 不准确,出现了非换流场景的时间戳跳变\n var _audioLargeGap = this.nextAudioDts - _firstSample.dts;\n\n this._audioLargeGap = Math.abs(_audioLargeGap - this._videoLargeGap) < 200 ? this._videoLargeGap : _audioLargeGap;\n } // 对audioSamples按照dts做排序\n\n\n if (this._audioLargeGap !== 0) {\n Compatibility.doFixLargeGap(audioSamples, this._audioLargeGap);\n\n if (this._audioLargeGap !== this.preAudioGap) {\n this.preAudioGap = this._audioLargeGap;\n this.emit(REMUX_EVENTS.DETECT_CHANGE_STREAM_DISCONTINUE, 'audio', {\n prevDts: this.lastAudioOriginDts,\n curDts: _firstSample.originDts\n });\n }\n } else if (!first && (streamChangeStart !== undefined || Compatibility.detectAudioLargeGap(this.nextAudioDts, _firstSample.dts))) {\n if (streamChangeStart !== undefined && streamChangeStart !== 0) {\n this.nextAudioDts = streamChangeStart; // FIX: Hls中途切codec,在如果直接seek到后面的点会导致largeGap计算失败\n }\n\n this._audioLargeGap = this.nextAudioDts - _firstSample.dts;\n\n if (_firstSample.options.start && !_firstSample.options.start.isContinue) {\n Compatibility.doFixLargeGap(audioSamples, this._audioLargeGap);\n }\n } // step0. 首帧与video首帧间距大的问题\n\n\n if (this._firstVideoSample && first) {\n var videoFirstPts = this._firstVideoSample.originDts || this._firstVideoSample.dts;\n\n var _gap = firstSample.dts - videoFirstPts;\n\n if (_gap === this._videoLargeGap) {// already fixed by doFixVideo\\\n } else if (_gap > meta.refSampleDuration && _gap < 10 * meta.refSampleDuration) {\n var silentSampleCount = Math.floor((firstSample.dts - videoFirstPts) / meta.refSampleDuration);\n\n for (var _i5 = 0; _i5 < silentSampleCount; _i5++) {\n var silentSample = {\n data: silentFrame,\n datasize: silentFrame.byteLength,\n dts: firstSample.dts - (_i5 + 1) * meta.refSampleDuration,\n filtered: 0\n };\n audioSamples.unshift(silentSample);\n this.filledAudioSamples.push({\n dts: silentSample.dts,\n size: silentSample.data.byteLength\n });\n }\n\n this._firstAudioSample = this.filledAudioSamples[0] || this._firstAudioSample;\n } else if (_gap < -1 * meta.refSampleDuration) {\n this._audioLargeGap = -1 * _gap;\n Compatibility.doFixLargeGap(audioSamples, -1 * _gap);\n }\n }\n\n var gap;\n var firstDts = audioSamples[0].dts;\n\n if (this.nextAudioDts) {\n // step1. 处理samples段之间的丢帧情况\n // 当发现duration差距大于1帧时进行补帧\n gap = firstDts - this.nextAudioDts;\n var absGap = Math.abs(gap);\n\n if (gap >= iRefSampleDuration && gap < 10000 && silentFrame) {\n var silentFrameCount = Math.ceil(gap / iRefSampleDuration);\n\n for (var _i6 = 0; _i6 < silentFrameCount; _i6++) {\n var computed = firstDts - (_i6 + 1) * iRefSampleDuration;\n var _silentSample = {\n dts: computed > this.nextAudioDts ? computed : this.nextAudioDts,\n pts: computed > this.nextAudioDts ? computed : this.nextAudioDts,\n datasize: silentFrame.byteLength,\n filtered: 0,\n data: silentFrame\n };\n this.filledAudioSamples.push({\n dts: _silentSample.dts,\n size: _silentSample.data.byteLength\n });\n this.audioTrack.samples.unshift(_silentSample);\n _firstSample = _silentSample;\n }\n\n this.emit(REMUX_EVENTS.DETECT_AUDIO_GAP, gap, silentFrameCount);\n } else if (absGap < meta.refSampleDuration && absGap > 0) {\n // 当差距比较小的时候将音频帧重定位\n // console.log('重定位音频帧dts', audioSamples[0].dts, this.nextAudioDts)\n _firstSample.dts = this.nextAudioDts;\n _firstSample.pts = this.nextAudioDts;\n } else if (gap < 0 && absGap < iRefSampleDuration) {\n Compatibility.doFixLargeGap(audioSamples, -1 * gap);\n this.emit(REMUX_EVENTS.DETECT_AUDIO_OVERLAP, gap);\n }\n } // 分片内采样间补帧\n\n\n var nextDts = audioSamples[0].dts + iRefSampleDuration;\n\n for (var _i7 = 1; _i7 < audioSamples.length;) {\n var _sample2 = audioSamples[_i7];\n var delta = _sample2.dts - nextDts;\n\n if (delta <= -1 * iRefSampleDuration) {\n logger.warn(\"drop 1 audio sample for \".concat(delta, \" ms overlap\"));\n audioSamples.splice(_i7, 1);\n continue;\n }\n\n if (delta >= 10 * iRefSampleDuration) {\n var missingCount = Math.round(delta / iRefSampleDuration);\n\n if (missingCount > 1000) {\n break;\n }\n\n logger.warn(this.TAG, \"inject \".concat(missingCount, \" audio frame for \").concat(delta, \" ms gap\"));\n\n for (var j = 0; j < missingCount; j++) {\n var _silentSample2 = {\n data: silentFrame,\n datasize: silentFrame.byteLength,\n dts: nextDts,\n originDts: nextDts,\n filtered: 0\n };\n audioSamples.splice(_i7, 0, _silentSample2);\n nextDts += iRefSampleDuration;\n _i7++;\n }\n\n _sample2.dts = _sample2.pts = _sample2.originDts = nextDts;\n nextDts += iRefSampleDuration;\n _i7++;\n } else {\n _sample2.dts = _sample2.pts = _sample2.originDts = nextDts;\n nextDts += iRefSampleDuration;\n _i7++;\n }\n }\n\n var unSyncDuration = meta.refSampleDuration - iRefSampleDuration;\n audioSamples.forEach(function (sample, idx) {\n if (idx !== 0) {\n var _lastSample = audioSamples[idx - 1];\n sample.dts = sample.pts = _lastSample.dts + _lastSample.duration;\n }\n\n sample.duration = iRefSampleDuration;\n _this2.audioUnsyncTime = caculate.fixedFloat(_this2.audioUnsyncTime + unSyncDuration, 2);\n\n if (_this2.audioUnsyncTime >= 1) {\n sample.duration += 1;\n _this2.audioUnsyncTime -= 1;\n }\n });\n var lastSample = audioSamples[audioSamples.length - 1];\n this.lastAudioDts = lastSample.dts;\n var lastDuration = lastSample.duration; // const lastSampleDuration = audioSamples.length >= 2 ? lastOriginDts - audioSamples[audioSamples.length - 2].originDts : meta.refSampleDuration\n\n this.lastAudioSamplesLen = samplesLen;\n this.nextAudioDts = this.lastAudioDts + (lastDuration || iRefSampleDuration);\n this.lastAudioOriginDts = lastSample.originDts;\n this.audioTrack.samples = Compatibility.sortAudioSamples(audioSamples);\n }\n }, {\n key: \"fixChangeStreamVideo\",\n value: function fixChangeStreamVideo(changeIdx) {\n logger.log(this.TAG, 'fixChangeStreamVideo(), changeIdx=', changeIdx);\n var samples = this.videoTrack.samples;\n var prevDts = changeIdx === 0 ? this.lastVideoDts ? this.lastVideoDts : this.getStreamChangeStart(samples[0]) : samples[changeIdx - 1].dts;\n var curDts = samples[changeIdx].dts;\n var isContinue = Math.abs(prevDts - curDts) <= 10000;\n this.emit(REMUX_EVENTS.DETECT_CHANGE_STREAM, 'video', curDts);\n\n if (isContinue) {\n if (!samples[changeIdx].options) {\n samples[changeIdx].options = {\n isContinue: true\n };\n } else {\n samples[changeIdx].options.isContinue = true;\n }\n\n return false;\n }\n\n this.emit(REMUX_EVENTS.DETECT_CHANGE_STREAM_DISCONTINUE, 'video', {\n prevDts: prevDts,\n curDts: curDts\n });\n var firstPartSamples = samples.slice(0, changeIdx);\n var secondPartSamples = samples.slice(changeIdx);\n var changeSample = samples[changeIdx];\n var streamChangeStart;\n this._videoLargeGap = 0;\n this.videoLastSample = null;\n this.lastVideoDts = null;\n\n if (changeSample.options && changeSample.options.start !== undefined) {\n streamChangeStart = changeSample.options.start;\n } else {\n streamChangeStart = prevDts - this.videoDtsBase;\n }\n\n this.videoTrack.samples = samples.slice(0, changeIdx);\n this.doFixVideo(false);\n this.videoTrack.samples = samples.slice(changeIdx);\n this.doFixVideo(false, streamChangeStart);\n this.videoTrack.samples = firstPartSamples.concat(secondPartSamples);\n return true;\n }\n }, {\n key: \"fixChangeStreamAudio\",\n value: function fixChangeStreamAudio(changeIdx) {\n logger.log(this.TAG, 'fixChangeStreamAudio(), changeIdx=', changeIdx);\n var samples = this.audioTrack.samples;\n var prevDts = changeIdx === 0 ? this.lastAudioDts : samples[changeIdx - 1].dts;\n var curDts = samples[changeIdx].dts;\n var isContinue = Math.abs(prevDts - curDts) <= 10000;\n this.emit(REMUX_EVENTS.DETECT_CHANGE_STREAM, 'audio', curDts);\n\n if (isContinue) {\n if (!samples[changeIdx].options) {\n samples[changeIdx].options = {\n isContinue: true\n };\n } else {\n samples[changeIdx].options.isContinue = true;\n }\n\n return false;\n }\n\n this.emit(REMUX_EVENTS.DETECT_CHANGE_STREAM_DISCONTINUE, 'audio', {\n prevDts: prevDts,\n curDts: curDts\n });\n this._audioLargeGap = 0;\n var cacheNextAudioDts = this.nextAudioDts;\n this.nextAudioDts = null;\n var firstPartSamples = samples.slice(0, changeIdx);\n var secondPartSamples = samples.slice(changeIdx);\n var changeSample = samples[changeIdx];\n var streamChangeStart;\n\n if (changeSample.options && changeSample.options.start !== undefined) {\n streamChangeStart = changeSample.options.start;\n } else {\n streamChangeStart = cacheNextAudioDts;\n changeSample.options.isContinue = true;\n }\n\n this.audioTrack.samples = firstPartSamples;\n this.doFixAudio(false);\n this.audioTrack.samples = secondPartSamples;\n this.doFixAudio(false, streamChangeStart);\n this.audioTrack.samples = firstPartSamples.concat(secondPartSamples);\n return true;\n }\n }, {\n key: \"getFirstSample\",\n value: function getFirstSample() {\n // 获取video和audio的首帧数据\n var videoSamples = this.videoTrack.samples;\n var audioSamples = this.audioTrack.samples;\n var isFirstVideoSamples = false;\n var isFirstAudioSamples = false;\n\n if (!this._firstVideoSample && videoSamples.length) {\n this._firstVideoSample = Compatibility.findFirstVideoSample(videoSamples);\n this.removeInvalidSamples();\n isFirstVideoSamples = true;\n }\n\n if (!this._firstAudioSample && audioSamples.length) {\n this._firstAudioSample = Compatibility.findFirstAudioSample(audioSamples); // 寻找dts最小的帧作为首个音频帧\n\n this.removeInvalidSamples();\n isFirstAudioSamples = true;\n }\n\n return {\n isFirstVideoSamples: isFirstVideoSamples,\n isFirstAudioSamples: isFirstAudioSamples\n };\n }\n /**\n * 在没有refSampleDuration的问题流中,\n */\n\n }, {\n key: \"fixVideoRefSampleDuration\",\n value: function fixVideoRefSampleDuration(meta, samples) {\n if (!meta) {\n return;\n }\n\n var allSamplesCount = this.allVideoSamplesCount;\n var firstDts = this._firstVideoSample.dts;\n var filledSamplesCount = this.filledVideoSamples.length;\n\n if (!Compatibility.isRefSampleDurationValid(meta.refSampleDuration)) {\n if (samples.length >= 1) {\n var lastDts = samples[samples.length - 1].dts;\n var fixed = Math.floor((lastDts - firstDts) / (allSamplesCount + filledSamplesCount - 1)); // 将refSampleDuration重置为计算后的平均值\n\n if (Compatibility.isRefSampleDurationValid(fixed)) {\n meta.refSampleDuration = fixed;\n }\n }\n } else if (meta.refSampleDuration) {\n if (samples.length >= 5) {\n var _lastDts = samples[samples.length - 1].dts;\n var _firstDts = samples[0].dts;\n var durationAvg = (_lastDts - _firstDts) / (samples.length - 1);\n\n if (durationAvg > 0 && durationAvg < 1000) {\n var _fixed = Math.floor(Math.abs(meta.refSampleDuration - durationAvg) <= 5 ? meta.refSampleDuration : durationAvg); // 将refSampleDuration重置为计算后的平均值\n\n\n if (Compatibility.isRefSampleDurationValid(_fixed)) {\n meta.refSampleDuration = _fixed;\n }\n }\n }\n }\n\n if (!Compatibility.isRefSampleDurationValid(meta.refSampleDuration)) {\n meta.refSampleDuration = 66;\n }\n }\n }, {\n key: \"fixAudioRefSampleDuration\",\n value: function fixAudioRefSampleDuration(meta) {\n if (!meta) {\n return;\n }\n\n meta.refSampleDuration = meta.timescale * 1024 / meta.sampleRate;\n }\n /**\n * 记录截止目前一共播放了多少帧\n */\n\n }, {\n key: \"recordSamplesCount\",\n value: function recordSamplesCount() {\n var audioTrack = this.audioTrack,\n videoTrack = this.videoTrack;\n this.allAudioSamplesCount += audioTrack.samples.length;\n this.allVideoSamplesCount += videoTrack.samples.length;\n }\n /**\n * 去除不合法的帧(倒退、重复帧)\n */\n\n }, {\n key: \"removeInvalidSamples\",\n value: function removeInvalidSamples() {\n var firstAudioSample = this.audioTrack.samples[0];\n var firstVideoSample = this.videoTrack.samples[0]; // const { _firstVideoSample, _firstAudioSample } = this\n\n if (firstAudioSample) {\n this.audioTrack.samples = this.audioTrack.samples.filter(function (sample, index) {\n if (sample === firstAudioSample) {\n return true;\n }\n\n return sample.dts >= firstAudioSample.dts;\n });\n }\n\n if (firstVideoSample) {\n this.videoTrack.samples = this.videoTrack.samples.filter(function (sample, index) {\n if (sample === firstVideoSample) {\n return true;\n }\n\n return sample.dts >= firstVideoSample.dts;\n });\n }\n }\n }, {\n key: \"getStreamChangeStart\",\n value: function getStreamChangeStart(sample) {\n if (sample.options && sample.options.start) {\n return sample.options.start - this.dtsBase;\n }\n\n return Infinity;\n }\n }, {\n key: \"tracks\",\n get: function get() {\n return this._context.getInstance('TRACKS');\n }\n }, {\n key: \"audioTrack\",\n get: function get() {\n if (this.tracks && this.tracks.audioTrack) {\n return this.tracks.audioTrack;\n }\n\n return {\n samples: [],\n meta: {}\n };\n }\n }, {\n key: \"videoTrack\",\n get: function get() {\n if (this.tracks && this.tracks.videoTrack) {\n return this.tracks.videoTrack;\n }\n\n return {\n samples: [],\n meta: {}\n };\n }\n }, {\n key: \"dtsBase\",\n get: function get() {\n var remuxer = this._context.getInstance('MP4_REMUXER');\n\n if (remuxer) {\n return remuxer._dtsBase;\n }\n\n return 0;\n }\n }, {\n key: \"audioDtsBase\",\n get: function get() {\n var remuxer = this._context.getInstance('MP4_REMUXER');\n\n if (remuxer && remuxer._audioDtsBase !== null) {\n return remuxer._audioDtsBase;\n }\n\n return this.dtsBase;\n }\n }, {\n key: \"videoDtsBase\",\n get: function get() {\n var remuxer = this._context.getInstance('MP4_REMUXER');\n\n if (remuxer && remuxer._videoDtsBase !== null) {\n return remuxer._videoDtsBase;\n }\n\n return this.dtsBase;\n }\n }], [{\n key: \"sortAudioSamples\",\n value: function sortAudioSamples(samples) {\n if (samples.length === 1) {\n return samples;\n }\n\n return _toConsumableArray(samples).sort(function (a, b) {\n return a.dts - b.dts;\n });\n }\n }, {\n key: \"isRefSampleDurationValid\",\n value: function isRefSampleDurationValid(refSampleDuration) {\n return refSampleDuration && refSampleDuration > 0 && !Number.isNaN(refSampleDuration);\n }\n /**\n * 寻找dts最小的sample\n * @param samples\n */\n\n }, {\n key: \"findFirstAudioSample\",\n value: function findFirstAudioSample(samples) {\n if (!samples || samples.length === 0) {\n return null;\n }\n\n return Compatibility.sortAudioSamples(samples)[0];\n }\n }, {\n key: \"findFirstVideoSample\",\n value: function findFirstVideoSample(samples) {\n if (!samples.length) {\n return null;\n }\n\n var sorted = _toConsumableArray(samples).sort(function (a, b) {\n return a.dts - b.dts;\n });\n\n for (var i = 0, len = sorted.length; i < len; i++) {\n if (sorted[i].isKeyframe) {\n return sorted[i];\n }\n }\n }\n }, {\n key: \"detectVideoLargeGap\",\n value: function detectVideoLargeGap(nextDts, firstSampleDts) {\n if (nextDts === null) {\n return;\n }\n\n var delta = 1000;\n return nextDts - firstSampleDts >= delta || firstSampleDts - nextDts >= delta; // fix hls流出现大量流dts间距问题\n }\n }, {\n key: \"detectAudioLargeGap\",\n value: function detectAudioLargeGap(nextDts, firstSampleDts) {\n if (nextDts === null) {\n return;\n }\n\n return nextDts - firstSampleDts >= 1000 || firstSampleDts - nextDts >= 1000; // fix hls流出现大量流dts间距问题\n }\n }, {\n key: \"doFixLargeGap\",\n value: function doFixLargeGap(samples, gap) {\n // console.log('fix large gap...... ', gap)\n for (var i = 0, len = samples.length; i < len; i++) {\n var sample = samples[i];\n sample.dts += gap;\n\n if (sample.pts) {\n sample.pts += gap;\n }\n }\n\n var first = samples[0];\n\n if (first && first.dts === 0) {\n first.dts = first.pts = 1;\n }\n }\n /**\n * 中途换流\n * |-------------------frag2---------------|\n * | frag1 | -----sample 0~n -------sample n+1 ~ m |\n *\n * 换流可能开始于新分片的第一帧 或者分片中间\n *\n */\n\n }, {\n key: \"detectChangeStream\",\n value: function detectChangeStream(samples, isFirst) {\n var changed = false;\n var changedIdxes = [];\n\n for (var i = 0, len = samples.length; i < len; i++) {\n var sample = samples[i];\n\n if (sample.options && sample.options.meta && !(isFirst && i === 0)) {\n changed = true;\n changedIdxes.push(i); // break;\n }\n }\n\n return {\n changed: changed,\n changedIdxes: changedIdxes\n };\n }\n }]);\n\n return Compatibility;\n}();\n\nexport default Compatibility;","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport EventEmitter from 'eventemitter3';\nimport { logger } from 'xgplayer-helper-utils';\nimport { XGDataView, AudioTrackMeta, VideoTrackMeta, AudioSample, VideoSample } from 'xgplayer-helper-models';\nimport { ADTS, avc, hevc } from 'xgplayer-helper-codec';\n/**\n * @typedef {import('xgplayer-helper-models').TsFrag } TsFrag\n */\n\n/**\n * @typedef {import('xgplayer-helper-models').Buffer } Buffer\n */\n\nvar NalUnit = avc.NalUnit;\nvar NalUnitHEVC = hevc.NalUnitHEVC;\nvar StreamType = {\n 0x01: ['video', 'MPEG-1'],\n 0x02: ['video', 'MPEG-2'],\n 0x1b: ['video', 'AVC.H264'],\n 0x24: ['video', 'HVC.H265'],\n 0xea: ['video', 'VC-1'],\n 0x03: ['audio', 'MPEG-1'],\n 0x04: ['audio', 'MPEG-2'],\n 0x0f: ['audio', 'MPEG-2.AAC'],\n 0x11: ['audio', 'MPEG-4.AAC'],\n 0x80: ['audio', 'LPCM'],\n 0x81: ['audio', 'AC3'],\n 0x06: ['audio', 'AC3'],\n 0x82: ['audio', 'DTS'],\n 0x83: ['audio', 'Dolby TrueHD'],\n 0x84: ['audio', 'AC3-Plus'],\n 0x85: ['audio', 'DTS-HD'],\n 0x86: ['audio', 'DTS-MA'],\n 0xa1: ['audio', 'AC3-Plus-SEC'],\n 0xa2: ['audio', 'DTS-HD-SEC']\n};\n\nvar TsDemuxer = /*#__PURE__*/function (_EventEmitter) {\n _inherits(TsDemuxer, _EventEmitter);\n\n var _super = _createSuper(TsDemuxer);\n\n /**\n * @param {any} videoTrack\n * @param {any} audioTrack\n */\n function TsDemuxer(_ref) {\n var _this;\n\n var videoTrack = _ref.videoTrack,\n audioTrack = _ref.audioTrack;\n\n _classCallCheck(this, TsDemuxer);\n\n _this = _super.call(this);\n _this.TAG = 'TsDemuxer';\n _this.demuxing = false;\n _this.videoTrack = videoTrack;\n _this.audioTrack = audioTrack;\n _this.pat = [];\n _this.pmt = [];\n _this._hasVideoMeta = false;\n _this._hasAudioMeta = false;\n _this.gopId = 0;\n return _this;\n }\n /**\n *\n * @param {TsFrag} frag ts fragment parsed from m3u8\n * @param {Buffer} buffer u8a-buffer\n * @param {boolean} isVod is a vod m3u8\n */\n\n\n _createClass(TsDemuxer, [{\n key: \"demux\",\n value: function demux(frag, buffer, isVod) {\n if (frag) {\n logger.log(this.TAG, \"do demux: id=\".concat(frag.id, \",demuxing=\").concat(this.demuxing));\n }\n\n if (this.demuxing) {\n return;\n }\n\n var frags = {\n pat: [],\n pmt: []\n };\n var peses = {};\n\n while (buffer.length >= 188) {\n if (buffer.length >= 1 && buffer.array[0][buffer.offset] !== 71) {\n throw new Error(\"Untrust sync code: \".concat(buffer.array[0][buffer.offset], \", try to recover;\"));\n }\n\n while (buffer.length >= 1 && buffer.array[0][buffer.offset] !== 71) {\n buffer.shift(1);\n }\n\n if (buffer.length < 188) {\n continue;\n }\n\n var buf = buffer.shift(188); // console.log(buf);\n\n var tsStream = new XGDataView(buf.buffer);\n var ts = {};\n TsDemuxer.read(tsStream, ts, frags);\n var pes = peses[ts.header.pid];\n\n if (ts.pes) {\n ts.pes.codec = ts.header.codec;\n ts.pes.streamType = ts.header.streamType;\n\n if (!peses[ts.header.pid]) {\n peses[ts.header.pid] = [];\n }\n\n peses[ts.header.pid].push(ts.pes);\n ts.pes.ES.buffer = [ts.pes.ES.buffer];\n } else if (pes) {\n pes[pes.length - 1].ES.buffer.push(ts.payload.stream);\n }\n }\n\n var AudioOptions = Object.assign({}, frag);\n var VideoOptions = Object.assign({}, frag);\n var noAudio = isVod && this._hasVideoMeta && !this._hasAudioMeta;\n var noVideo = isVod && this._hasAudioMeta && !this._hasVideoMeta; // Get Frames data\n\n for (var i = 0; i < Object.keys(peses).length; i++) {\n var epeses = peses[Object.keys(peses)[i]];\n\n for (var j = 0; j < epeses.length; j++) {\n var cPes = epeses[j];\n cPes.id = Object.keys(peses)[i]; // 1. !noAudio 首片无音频,后续分片当无音频处理\n // 2. cPes.streamType === 0x0f || cPes.streamType === 0x11 只处理aac,其他音频格式当无音频\n\n var isAAC = cPes.streamType === 0x0f || cPes.streamType === 0x11;\n\n if (cPes.type === 'audio' && !noAudio && isAAC) {\n cPes.ES.buffer = TsDemuxer.mergeAudioES(cPes.ES.buffer);\n this.pushAudioSample(cPes, AudioOptions);\n AudioOptions = {};\n } else if (cPes.type === 'video' && !noVideo) {\n cPes.ES.buffer = TsDemuxer.mergeVideoES(cPes.ES.buffer);\n\n if (cPes.codec === 'HVC.H265') {\n this.pushVideoSampleHEVC(epeses[j], VideoOptions);\n } else {\n this.pushVideoSample(epeses[j], VideoOptions);\n }\n\n VideoOptions = {};\n }\n }\n }\n }\n }, {\n key: \"pushAudioSample\",\n value: function pushAudioSample(pes, options) {\n var meta = new AudioTrackMeta({\n audioSampleRate: pes.ES.frequence,\n sampleRate: pes.ES.frequence,\n channelCount: pes.ES.channel,\n codec: 'mp4a.40.' + pes.ES.audioObjectType,\n originCodec: 'mp4a.40.' + pes.ES.originAudioObjectType,\n originObjectType: pes.ES.originAudioObjectType,\n config: pes.ES.audioConfig,\n id: 2,\n sampleRateIndex: pes.ES.frequencyIndex\n });\n meta.refSampleDuration = Math.floor(1024 / meta.audioSampleRate * meta.timescale);\n var metaEqual = TsDemuxer.compareMeta(this.audioTrack.meta, meta, true);\n\n if (!this._hasAudioMeta || !metaEqual) {\n this._hasAudioMeta = true;\n\n if (options) {\n options.meta = Object.assign({}, meta);\n } else {\n options = {\n meta: Object.assign({}, meta)\n };\n }\n\n this.emit(TsDemuxer.EVENTS.METADATA_PARSED, 'audio', meta);\n }\n\n var frameIndex = 0;\n pes.ES.buffer.skip(pes.pesHeaderLength + 9);\n var streamChanged = false;\n\n while (pes.ES.buffer.position < pes.ES.buffer.length) {\n if (ADTS.isHeader(new Uint8Array(pes.ES.buffer.buffer), pes.ES.buffer.position) && pes.ES.buffer.position + 5 < pes.ES.buffer.length) {\n var frame = ADTS.appendFrame(this.audioTrack.meta.sampleRate, new Uint8Array(pes.ES.buffer.buffer), pes.ES.buffer.position, pes.pts, frameIndex);\n\n if (frame && frame.sample) {\n // logger.log(`${Math.round(frame.sample.pts)} : AAC`);\n pes.ES.buffer.skip(frame.length);\n var sample = new AudioSample({\n dts: frame.sample.dts,\n pts: frame.sample.pts,\n data: frame.sample.unit,\n options: streamChanged ? {} : options\n });\n\n if (options.meta) {\n streamChanged = true;\n }\n\n sample.dts = sample.pts = Math.ceil(sample.pts / 90);\n this.emit(TsDemuxer.EVENTS.AUDIO_SAMPLE_PARSED, sample);\n frameIndex++;\n } else {\n // logger.log('Unable to parse AAC frame');\n break;\n }\n } else {\n // nothing found, keep looking\n pes.ES.buffer.skip(1);\n }\n }\n }\n }, {\n key: \"pushVideoSample\",\n value: function pushVideoSample(pes, options) {\n var _this2 = this;\n\n var nals = NalUnit.getNalunits(pes.ES.buffer);\n var meta = new VideoTrackMeta();\n var sampleLength = 0;\n var sps = false;\n var pps = false;\n var seiList = [];\n\n for (var i = 0; i < nals.length; i++) {\n var nal = nals[i];\n\n if (nal.sps) {\n sps = nal;\n meta.sps = nal.body;\n meta.chromaFormat = sps.sps.chroma_format;\n meta.codec = 'avc1.';\n\n for (var j = 1; j < 4; j++) {\n var h = sps.body[j].toString(16);\n\n if (h.length < 2) {\n h = '0' + h;\n }\n\n meta.codec += h;\n }\n\n meta.codecHeight = sps.sps.codec_size.height;\n meta.codecWidth = sps.sps.codec_size.width;\n meta.frameRate = sps.sps.frame_rate;\n meta.id = 1;\n meta.level = sps.sps.level_string;\n meta.presentHeight = sps.sps.present_size.height;\n meta.presentWidth = sps.sps.present_size.width;\n meta.profile = sps.sps.profile_string;\n meta.refSampleDuration = Math.floor(meta.timescale * (sps.sps.frame_rate.fps_den / sps.sps.frame_rate.fps_num));\n meta.sarRatio = sps.sps.sar_ratio ? sps.sps.sar_ratio : sps.sps.par_ratio;\n } else if (nal.pps) {\n meta.pps = nal.body;\n pps = nal;\n } else if (nal.sei) {\n seiList.push(nal.sei);\n } else if (nal.type < 9) {\n sampleLength += 4 + nal.body.byteLength;\n }\n }\n\n if (sps && pps) {\n meta.avcc = NalUnit.getAvcc(sps.body, pps.body);\n var metaEqual = TsDemuxer.compareMeta(this.videoTrack.meta, meta, true);\n\n if (!this._hasVideoMeta || !metaEqual) {\n if (options) {\n options.meta = Object.assign({}, meta);\n } else {\n options = {\n meta: Object.assign({}, meta)\n };\n }\n\n this._hasVideoMeta = true;\n this.emit(TsDemuxer.EVENTS.METADATA_PARSED, 'video', meta);\n }\n }\n\n var data = new Uint8Array(sampleLength);\n var offset = 0;\n var isKeyframe = false;\n\n for (var _i = 0; _i < nals.length; _i++) {\n var _nal = nals[_i];\n\n if (_nal.type && _nal.type >= 9) {\n continue;\n }\n\n var length = _nal.body.byteLength;\n\n if (_nal.idr) {\n isKeyframe = true;\n }\n\n if (!_nal.pps && !_nal.sps && !_nal.sei) {\n data.set(new Uint8Array([length >>> 24 & 0xff, length >>> 16 & 0xff, length >>> 8 & 0xff, length & 0xff]), offset);\n offset += 4;\n data.set(_nal.body, offset);\n offset += length;\n }\n }\n\n var dts = parseInt(pes.dts / 90);\n var pts = parseInt(pes.pts / 90);\n\n if (seiList.length) {\n seiList.forEach(function (sei) {\n sei.dts = dts;\n\n _this2.emit(TsDemuxer.EVENTS.SEI_PARSED, sei);\n });\n }\n\n var sample = new VideoSample({\n dts: dts,\n pts: pts,\n cts: pts - dts,\n originDts: pes.dts,\n purePts: pes.purePts,\n isKeyframe: isKeyframe,\n data: data,\n nals: nals,\n options: options,\n firstInGop: isKeyframe,\n gopId: isKeyframe ? ++this.gopId : this.gopId\n });\n this.emit(TsDemuxer.EVENTS.VIDEO_SAMPLE_PARSED, sample);\n }\n }, {\n key: \"pushVideoSampleHEVC\",\n value: function pushVideoSampleHEVC(pes, options) {\n var _this3 = this;\n\n var nals = NalUnitHEVC.getNalunits(pes.ES.buffer);\n nals = nals.filter(function (x) {\n return x.body && x.body.length;\n });\n var meta = new VideoTrackMeta();\n meta.streamType = 0x24;\n var sampleLength = 0;\n var vps = false;\n var sps = false;\n var pps = false;\n var seiList = [];\n var hasVPS = false;\n var hasSPS = false;\n var hasPPS = false;\n var firstInGop = false;\n\n for (var i = 0; i < nals.length; i++) {\n var nal = nals[i];\n\n if (nal.vps) {\n if (hasVPS) {\n continue;\n } else {\n hasVPS = true;\n }\n } else if (nal.sps) {\n if (hasSPS) {\n continue;\n } else {\n hasSPS = true;\n }\n } else if (nal.pps) {\n if (hasPPS) {\n continue;\n } else {\n hasPPS = true;\n }\n } else if (nal.key) {\n if (nal.type === 20 || nal.type === 19) {\n firstInGop = true;\n }\n } else if (nal.type === 0) {// if (!hasKeyframe) {\n // continue;\n // }\n } else if (nal.type === 35) {\n continue;\n }\n\n if (nal.sps) {\n sps = nal;\n meta.sps = nal.body;\n meta.presentWidth = sps.sps.width;\n meta.presentHeight = sps.sps.height;\n meta.general_profile_space = sps.sps.general_profile_space;\n meta.general_tier_flag = sps.sps.general_tier_flag;\n meta.general_profile_idc = sps.sps.general_profile_idc;\n meta.general_level_idc = sps.sps.general_level_idc; // meta.duration = this._duration;\n\n meta.codec = 'hev1.1.6.L93.B0';\n meta.chromaFormatIdc = sps.sps.chromaFormatIdc;\n meta.bitDepthLumaMinus8 = sps.sps.bitDepthLumaMinus8;\n meta.bitDepthChromaMinus8 = sps.sps.bitDepthChromaMinus8;\n } else if (nal.pps) {\n meta.pps = nal.body;\n pps = nal;\n } else if (nal.vps) {\n meta.vps = nal.body;\n vps = nal;\n } else if (nal.sei) {\n seiList.push(nal.sei);\n }\n\n if (nal.type <= 40) {\n sampleLength += 4 + nal.body.byteLength;\n }\n }\n\n if (sps && pps && vps) {\n // meta.avcc = NalUnitHEVC.getAvcc(sps.body, pps.body);\n var metaEqual = TsDemuxer.compareMeta(this.videoTrack.meta, meta, true);\n\n if (!this._hasVideoMeta || !metaEqual) {\n if (options) {\n options.meta = Object.assign({}, meta);\n } else {\n options = {\n meta: Object.assign({}, meta)\n };\n }\n\n meta.streamType = 0x24;\n this.videoTrack.meta = meta;\n this._hasVideoMeta = true;\n this.emit(TsDemuxer.EVENTS.METADATA_PARSED, 'video', meta);\n }\n }\n\n var data = new Uint8Array(sampleLength);\n var offset = 0;\n var isKeyframe = false;\n hasVPS = false;\n hasSPS = false;\n hasPPS = false;\n\n for (var _i2 = 0; _i2 < nals.length; _i2++) {\n var _nal2 = nals[_i2];\n\n if (_nal2.type && _nal2.type > 40) {\n continue;\n }\n\n if (_nal2.vps) {\n if (hasVPS) {\n continue;\n } else {\n hasVPS = true;\n }\n } else if (_nal2.sps) {\n if (hasSPS) {\n continue;\n } else {\n hasSPS = true;\n }\n } else if (_nal2.pps) {\n if (hasPPS) {\n continue;\n } else {\n hasPPS = true;\n }\n } else if (_nal2.key) {} else if (_nal2.type === 0) {// if (!hasKeyframe) {\n // continue;\n // }\n } else if (_nal2.type === 35) {\n continue;\n }\n\n var length = _nal2.body.byteLength;\n\n if (_nal2.key) {\n isKeyframe = true;\n } // if (!nal.vps && !nal.pps && !nal.sps) {\n\n\n data.set(new Uint8Array([length >>> 24 & 0xff, length >>> 16 & 0xff, length >>> 8 & 0xff, length & 0xff]), offset);\n offset += 4;\n data.set(_nal2.body, offset);\n offset += length; // }\n }\n\n var dts = parseInt(pes.dts / 90);\n var pts = parseInt(pes.pts / 90);\n\n if (seiList) {\n seiList.forEach(function (sei) {\n sei.dts = dts;\n\n _this3.emit(TsDemuxer.EVENTS.SEI_PARSED, sei);\n });\n }\n\n var sample = new VideoSample({\n dts: dts,\n pts: pts,\n cts: pts - dts,\n originDts: pes.dts,\n purePts: pes.purePts,\n isKeyframe: isKeyframe,\n data: data,\n nals: nals,\n options: options,\n firstInGop: firstInGop,\n gopId: firstInGop ? ++this.gopId : this.gopId\n });\n this.emit(TsDemuxer.EVENTS.VIDEO_SAMPLE_PARSED, sample);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.removeAllListeners();\n this.configs = {};\n this.demuxing = false;\n this.pat = [];\n this.pmt = [];\n this._hasVideoMeta = false;\n this._hasAudioMeta = false;\n }\n }], [{\n key: \"EVENTS\",\n get: function get() {\n return {\n DEMUX_COMPLETE: 'DEMUX_COMPLETE',\n METADATA_PARSED: 'METADATA_PARSED',\n VIDEO_SAMPLE_PARSED: 'VIDEO_SAMPLE_PARSED',\n AUDIO_SAMPLE_PARSED: 'AUDIO_SAMPLES_PARSED',\n SEI_PARSED: 'SEI_PARSED'\n };\n }\n }, {\n key: \"compareArray\",\n value: function compareArray(a, b, type) {\n var al = 0;\n var bl = 0;\n\n if (type === 'Uint8Array') {\n al = a.byteLength;\n bl = b.byteLength;\n } else if (type === 'Array') {\n al = a.length;\n bl = b.length;\n }\n\n if (al !== bl) {\n return false;\n }\n\n for (var i = 0; i < al; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"compareMeta\",\n value: function compareMeta(a, b, ignoreDuration) {\n if (!a || !b) {\n return false;\n }\n\n for (var i = 0, k = Object.keys(a).length; i < k; i++) {\n var itema = a[Object.keys(a)[i]];\n var itemb = b[Object.keys(a)[i]];\n\n if (!itema && !itemb) {\n return true;\n }\n\n if ((itema === undefined || itema === null) && itemb || itema && itemb === undefined) {\n return false;\n }\n\n if (_typeof(itema) !== 'object') {\n if (ignoreDuration && Object.keys(a)[i] !== 'duration' && Object.keys(a)[i] !== 'refSampleDuration' && Object.keys(a)[i] !== 'refSampleDurationFixed' && itema !== itemb) {\n return false;\n }\n } else if (itema.byteLength !== undefined) {\n if (itemb.byteLength === undefined) {\n return false;\n }\n\n if (!TsDemuxer.compareArray(itema, itemb, 'Uint8Array')) {\n return false;\n }\n } else if (itema.length !== undefined) {\n if (itemb.length === undefined) {\n return false;\n }\n\n if (!TsDemuxer.compareArray(itema, itemb, 'Array')) {\n return false;\n }\n } else {\n if (!TsDemuxer.compareMeta(itema, itemb)) {\n return false;\n }\n }\n }\n\n return true;\n }\n }, {\n key: \"mergeVideoES\",\n value: function mergeVideoES(buffers) {\n var data;\n var length = 0;\n var offset = 0;\n\n for (var i = 0; i < buffers.length; i++) {\n length += buffers[i].length - buffers[i].position;\n }\n\n data = new Uint8Array(length);\n\n for (var _i3 = 0; _i3 < buffers.length; _i3++) {\n var buffer = buffers[_i3];\n data.set(new Uint8Array(buffer.buffer, buffer.position), offset);\n offset += buffer.length - buffer.position;\n }\n\n return new XGDataView(data.buffer);\n }\n }, {\n key: \"mergeAudioES\",\n value: function mergeAudioES(buffers) {\n var data;\n var length = 0;\n var offset = 0;\n\n for (var i = 0; i < buffers.length; i++) {\n length += buffers[i].length;\n }\n\n data = new Uint8Array(length);\n\n for (var _i4 = 0; _i4 < buffers.length; _i4++) {\n var buffer = buffers[_i4];\n data.set(new Uint8Array(buffer.buffer), offset);\n offset += buffer.length;\n }\n\n return new XGDataView(data.buffer);\n }\n }, {\n key: \"read\",\n value: function read(stream, ts, frags) {\n TsDemuxer.readHeader(stream, ts);\n TsDemuxer.readPayload(stream, ts, frags); // console.log('start', window.performance.now());\n // console.log('end', window.performance.now());\n\n if (ts.header.packet === 'MEDIA' && ts.header.payload === 1 && !ts.unknownPIDs) {\n ts.pes = TsDemuxer.PES(ts);\n }\n }\n }, {\n key: \"readPayload\",\n value: function readPayload(stream, ts, frags) {\n var header = ts.header;\n var pid = header.pid;\n\n switch (pid) {\n case 0:\n TsDemuxer.PAT(stream, ts, frags);\n break;\n\n case 1:\n TsDemuxer.CAT(stream, ts, frags);\n break;\n\n case 2:\n TsDemuxer.TSDT(stream, ts, frags);\n break;\n\n case 0x1fff:\n break;\n\n default:\n var isPMT = false;\n\n for (var i = 0, len = frags.pat.length; i < len; i++) {\n if (frags.pat[i].pid === pid) {\n isPMT = true;\n break;\n }\n } // TODO: some的写法不太好,得改\n\n\n if (isPMT) {\n TsDemuxer.PMT(stream, ts, frags);\n } else {\n var sts = [];\n\n for (var _i5 = 0, _len = frags.pmt.length; _i5 < _len; _i5++) {\n if (frags.pmt[_i5].pid === pid) {\n sts.push(frags.pmt[_i5]);\n break;\n }\n }\n\n if (sts.length > 0) {\n var streamType = sts[0].streamType;\n TsDemuxer.Media(stream, ts, streamType);\n } else {\n ts.unknownPIDs = true;\n }\n }\n\n }\n }\n }, {\n key: \"readHeader\",\n value: function readHeader(stream, ts) {\n var header = {};\n header.sync = stream.readUint8();\n var next = stream.readUint16();\n header.error = next >>> 15;\n header.payload = next >>> 14 & 1;\n header.priority = next >>> 13 & 1;\n header.pid = next & 0x1fff;\n next = stream.readUint8();\n header.scrambling = next >> 6 & 0x3; // 是否加密,00表示不加密\n\n /**\n * 00 ISO/IEC未来使用保留\n * 01 没有调整字段,仅含有184B有效净荷\n * 02 没有有效净荷,仅含有183B调整字段\n * 03 0~182B调整字段后为有效净荷\n */\n\n header.adaptation = next >> 4 & 0x3;\n header.continuity = next & 15;\n header.packet = header.pid === 0 ? 'PAT' : 'MEDIA';\n ts.header = header;\n }\n }, {\n key: \"PAT\",\n value: function PAT(stream, ts, frags) {\n var ret = {};\n var next = stream.readUint8();\n stream.skip(next);\n next = stream.readUint8();\n ret.tabelID = next;\n next = stream.readUint16();\n ret.error = next >>> 7;\n ret.zero = next >>> 6 & 1;\n ret.sectionLength = next & 0xfff;\n ret.streamID = stream.readUint16();\n ret.current = stream.readUint8() & 1;\n ret.sectionNumber = stream.readUint8();\n ret.lastSectionNumber = stream.readUint8();\n var N = (ret.sectionLength - 9) / 4;\n var list = [];\n\n for (var i = 0; i < N; i++) {\n var programNumber = stream.readUint16();\n var pid = stream.readUint16() & 0x1fff;\n list.push({\n program: programNumber,\n pid: pid,\n type: programNumber === 0 ? 'network' : 'mapPID'\n });\n }\n\n if (list.length > 0) {\n frags.pat = frags.pat.concat(list);\n }\n\n ret.list = list;\n ret.program = stream.readUint16();\n ret.pid = stream.readUint16() & 0x1fff;\n ts.payload = ret; // TODO CRC\n }\n }, {\n key: \"PMT\",\n value: function PMT(stream, ts, frags) {\n var ret = {};\n var header = ts.header;\n header.packet = 'PMT';\n var next = stream.readUint8();\n stream.skip(next);\n next = stream.readUint8();\n ret.tableID = next;\n next = stream.readUint16();\n ret.sectionLength = next & 0xfff;\n ret.program = stream.readUint16();\n ret.current = stream.readUint8() & 1;\n ret.order = stream.readUint8();\n ret.lastOrder = stream.readUint8();\n ret.PCR_PID = stream.readUint16() & 0x1fff;\n ret.programLength = stream.readUint16() & 0xfff;\n var N = (ret.sectionLength - 13) / 5;\n var list = [];\n\n for (var i = 0; i < N; i++) {\n list.push({\n streamType: stream.readUint8(),\n pid: stream.readUint16() & 0x1fff,\n // 0x07e5 视频,0x07e6\n es: stream.readUint16() & 0xfff\n });\n }\n\n ret.list = list;\n\n if (!this.pmt) {\n this.pmt = [];\n }\n\n frags.pmt = this.pmt.concat(list.map(function (item) {\n return {\n pid: item.pid,\n es: item.es,\n streamType: item.streamType,\n program: ret.program\n };\n }));\n ts.payload = ret;\n }\n }, {\n key: \"Media\",\n value: function Media(stream, ts, streamType) {\n var header = ts.header;\n var payload = {};\n\n var _StreamType$streamTyp = _slicedToArray(StreamType[streamType], 2),\n type = _StreamType$streamTyp[0],\n codec = _StreamType$streamTyp[1];\n\n header.streamType = streamType;\n header.type = type;\n header.codec = codec;\n\n if (header.adaptation === 0x03) {\n payload.adaptationLength = stream.readUint8();\n\n if (payload.adaptationLength > 0) {\n var next = stream.readUint8();\n payload.discontinue = next >>> 7;\n payload.access = next >>> 6 & 0x01;\n payload.priority = next >>> 5 & 0x01;\n payload.PCR = next >>> 4 & 0x01;\n payload.OPCR = next >>> 3 & 0x01;\n payload.splicePoint = next >>> 2 & 0x01;\n payload.transportPrivate = next >>> 1 & 0x01;\n payload.adaptationField = next & 0x01;\n var _start = stream.position;\n\n if (payload.PCR === 1) {\n payload.programClockBase = stream.readUint32() << 1;\n next = stream.readUint16();\n payload.programClockBase |= next >>> 15;\n payload.programClockExtension = next & 0x1ff;\n }\n\n if (payload.OPCR === 1) {\n payload.originProgramClockBase = stream.readUint32() << 1;\n next = stream.readUint16();\n payload.originProgramClockBase += next >>> 15;\n payload.originProgramClockExtension = next & 0x1ff;\n }\n\n if (payload.splicePoint === 1) {\n payload.spliceCountdown = stream.readUint8();\n }\n\n if (payload.transportPrivate === 1) {\n var length = stream.readUint8();\n var transportPrivateData = [];\n\n for (var i = 0; i < length; i++) {\n transportPrivateData.push(stream.readUint8());\n }\n }\n\n if (payload.adaptationField === 1) {\n var _length = stream.readUint8();\n\n var _next = stream.readUint8();\n\n var start = stream.position;\n var ltw = _next >>> 7;\n var piecewise = _next >>> 6 & 0x1;\n var seamless = _next >>> 5 & 0x1;\n\n if (ltw === 1) {\n _next = stream.readUint16();\n payload.ltwValid = _next >>> 15;\n payload.ltwOffset = _next & 0xefff;\n }\n\n if (piecewise === 1) {\n _next = stream.readUint24();\n payload.piecewiseRate = _next & 0x3fffff;\n }\n\n if (seamless === 1) {\n _next = stream.readInt8();\n payload.spliceType = _next >>> 4;\n payload.dtsNextAU1 = _next >>> 1 & 0x7;\n payload.marker1 = _next & 0x1;\n _next = stream.readUint16();\n payload.dtsNextAU2 = _next >>> 1;\n payload.marker2 = _next & 0x1;\n _next = stream.readUint16();\n payload.dtsNextAU3 = _next;\n }\n\n stream.skip(_length - 1 - (stream.position - start));\n }\n\n var lastStuffing = payload.adaptationLength - 1 - (stream.position - _start);\n stream.skip(lastStuffing);\n }\n }\n\n payload.stream = new XGDataView(stream.buffer.slice(stream.position));\n ts.payload = payload;\n }\n /**\n * http://dvd.sourceforge.net/dvdinfo/pes-hdr.html\n * ISO-13818-1 Table-2-17\n * packet_start_code_prefix : 24bit 0x000001\n * stream_id : 8bit\n * PES_packet_length : 16bit\n * PTS_DTS_flags : 2bit 【PES_packet_length后第2字节前2位】& 0xc0 [0x10 0x11]\n * PES_header_data_length : 【PTS_DTS_flags 后第1字节】\n *\n * | 6字节header | 3字节扩展 | PES Header data | payload |\n */\n\n }, {\n key: \"PES\",\n value: function PES(ts) {\n var ret = {};\n var buffer = ts.payload.stream;\n var next = buffer.readUint24();\n\n if (next !== 1) {\n ret.ES = {};\n ret.ES.buffer = buffer;\n } else {\n var streamID = buffer.readUint8();\n\n if (streamID >= 0xe0 && streamID <= 0xef) {\n ret.type = 'video';\n }\n\n if (streamID >= 0xc0 && streamID <= 0xdf) {\n ret.type = 'audio';\n }\n\n var packetLength = buffer.readUint16();\n ret.packetLength = packetLength;\n\n if (ret.type === 'video' || ret.type === 'audio') {\n var _next2 = buffer.readUint8();\n\n var first = _next2 >>> 6;\n\n if (first !== 0x02) {\n throw new Error('error when parse pes header');\n }\n\n _next2 = buffer.readUint8();\n ret.ptsDTSFlag = _next2 >>> 6;\n ret.escrFlag = _next2 >>> 5 & 0x01;\n ret.esRateFlag = _next2 >>> 4 & 0x01;\n ret.dsmFlag = _next2 >>> 3 & 0x01;\n ret.additionalFlag = _next2 >>> 2 & 0x01;\n ret.crcFlag = _next2 >>> 1 & 0x01;\n ret.extensionFlag = _next2 & 0x01;\n ret.pesHeaderLength = buffer.readUint8();\n var N1 = ret.pesHeaderLength; // 计算pts\n\n var pts = [];\n pts.push(buffer.readUint8());\n pts.push(buffer.readUint8());\n pts.push(buffer.readUint8());\n pts.push(buffer.readUint8());\n pts.push(buffer.readUint8());\n var p = (pts[0] & 0x0e) * 536870912 + // 1 << 29\n (pts[1] & 0xff) * 4194304 + // 1 << 22\n (pts[2] & 0xfe) * 16384 + // 1 << 14\n (pts[3] & 0xff) * 128 + // 1 << 7\n (pts[4] & 0xfe) / 2; // 不经过任何处理的原始的pts\n\n ret.purePts = p;\n buffer.dataview.position -= 5;\n pts = [];\n _next2 = buffer.readUint8();\n pts.push(_next2 >>> 1 & 0x07);\n _next2 = buffer.readUint16();\n pts.push(_next2 >>> 1);\n _next2 = buffer.readUint16();\n pts.push(_next2 >>> 1);\n ret.pts = pts[0] << 30 | pts[1] << 15 | pts[2];\n N1 -= 5; // 视频如果没有dts用pts\n\n if (ret.type === 'video') {\n ret.dts = ret.pts;\n }\n\n if (ret.ptsDTSFlag === 3) {\n var dts = [];\n _next2 = buffer.readUint8();\n dts.push(_next2 >>> 1 & 0x07);\n _next2 = buffer.readUint16();\n dts.push(_next2 >>> 1);\n _next2 = buffer.readUint16();\n dts.push(_next2 >>> 1);\n ret.dts = dts[0] << 30 | dts[1] << 15 | dts[2];\n N1 -= 5;\n }\n\n if (ret.escrFlag === 1) {\n var escr = [];\n var ex = [];\n _next2 = buffer.readUint8();\n escr.push(_next2 >>> 3 & 0x07);\n escr.push(_next2 & 0x03);\n _next2 = buffer.readUint16();\n escr.push(_next2 >>> 13);\n escr.push(_next2 & 0x03);\n _next2 = buffer.readUint16();\n escr.push(_next2 >>> 13);\n ex.push(_next2 & 0x03);\n _next2 = buffer.readUint8();\n ex.push(_next2 >>> 1);\n ret.escr = (escr[0] << 30 | escr[1] << 28 | escr[2] << 15 | escr[3] << 13 | escr[4]) * 300 + (ex[0] << 7 | ex[1]);\n N1 -= 6;\n }\n\n if (ret.esRateFlag === 1) {\n _next2 = buffer.readUint24();\n ret.esRate = _next2 >>> 1 & 0x3fffff;\n N1 -= 3;\n }\n\n if (ret.dsmFlag === 1) {\n throw new Error('not support DSM_trick_mode');\n }\n\n if (ret.additionalFlag === 1) {\n _next2 = buffer.readUint8();\n ret.additionalCopyInfo = _next2 & 0x7f;\n N1 -= 1;\n }\n\n if (ret.crcFlag === 1) {\n ret.pesCRC = buffer.readUint16();\n N1 -= 2;\n }\n\n if (ret.extensionFlag === 1) {\n throw new Error('not support extension');\n }\n\n if (N1 > 0) {\n buffer.skip(N1);\n }\n\n if (ret.dts > ret.pts) {\n ret.dts = ret.pts;\n }\n\n ret.ES = TsDemuxer.ES(buffer, ret.type, ts.header.streamType);\n } else {\n throw new Error('format is not supported');\n }\n }\n\n return ret;\n }\n }, {\n key: \"ES\",\n value: function ES(buffer, type, streamType) {\n var ret = {};\n\n if (type === 'video') {\n // TODO readnalu\n ret.buffer = buffer;\n } else if (type === 'audio') {\n if (streamType === 0x0f || streamType === 0x11) {\n ret = TsDemuxer.parseADTSHeader(buffer);\n }\n\n ret.buffer = buffer;\n } else {\n throw new Error(\"ES \".concat(type, \" is not supported\"));\n }\n\n return ret;\n }\n }, {\n key: \"parseADTSHeader\",\n value: function parseADTSHeader(buffer) {\n var ret = {};\n var next = buffer.readUint16(); // adts的同步字节,12位\n\n if (next >>> 4 !== 0xfff) {\n throw new Error('aac ES parse Error');\n }\n\n var fq = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350];\n ret.id = (next >>> 3 & 0x01) === 0 ? 'MPEG-4' : 'MPEG-2';\n ret.layer = next >>> 1 & 0x03;\n ret.absent = next & 0x01;\n next = buffer.readUint16();\n ret.audioObjectType = (next >>> 14 & 0x03) + 1;\n ret.profile = ret.audioObjectType - 1;\n ret.frequencyIndex = next >>> 10 & 0x0f;\n ret.frequence = fq[ret.frequencyIndex];\n ret.channel = next >>> 6 & 0x07;\n ret.frameLength = (next & 0x03) << 11 | buffer.readUint16() >>> 5;\n TsDemuxer.getAudioConfig(ret);\n buffer.skip(1);\n ret.buffer = buffer;\n return ret;\n }\n }, {\n key: \"TSDT\",\n value: function TSDT(stream, ts, frags) {\n // TODO\n ts.payload = {};\n }\n }, {\n key: \"CAT\",\n value: function CAT(stream, ts, frags) {\n var ret = {};\n ret.tableID = stream.readUint8();\n var next = stream.readUint16();\n ret.sectionIndicator = next >>> 7;\n ret.sectionLength = next & 0x0fff;\n stream.skip(2);\n next = stream.readUint8();\n ret.version = next >>> 3;\n ret.currentNextIndicator = next & 0x01;\n ret.sectionNumber = stream.readUint8();\n ret.lastSectionNumber = stream.readUint8();\n var N = (this.sectionLength - 9) / 4;\n var list = [];\n\n for (var i = 0; i < N; i++) {\n list.push({});\n }\n\n ret.crc32 = stream.readUint32();\n ts.payload = ret;\n }\n }, {\n key: \"getAudioConfig\",\n value: function getAudioConfig(ret) {\n var userAgent = navigator.userAgent.toLowerCase();\n var config;\n var extensionSampleIndex;\n ret.originAudioObjectType = ret.audioObjectType;\n\n if (/firefox/i.test(userAgent)) {\n if (ret.frequencyIndex >= 8) {\n ret.audioObjectType = 5;\n config = new Array(4);\n extensionSampleIndex = ret.frequencyIndex - 3;\n } else {\n ret.audioObjectType = 2;\n config = new Array(2);\n extensionSampleIndex = ret.frequencyIndex;\n }\n } else if (userAgent.indexOf('android') !== -1) {\n ret.audioObjectType = 2;\n config = new Array(2);\n extensionSampleIndex = ret.frequencyIndex;\n } else {\n ret.audioObjectType = 5;\n config = new Array(4);\n\n if (ret.frequencyIndex >= 6) {\n extensionSampleIndex = ret.frequencyIndex - 3;\n } else {\n if (ret.channel === 1) {\n ret.audioObjectType = 2;\n config = new Array(2);\n }\n\n extensionSampleIndex = ret.frequencyIndex;\n }\n }\n\n config[0] = ret.audioObjectType << 3;\n config[0] |= (ret.frequencyIndex & 0x0e) >> 1;\n config[1] = (ret.frequencyIndex & 0x01) << 7;\n config[1] |= ret.channel << 3;\n\n if (ret.audioObjectType === 5) {\n config[1] |= (extensionSampleIndex & 0x0e) >> 1;\n config[2] = (extensionSampleIndex & 0x01) << 7;\n config[2] |= 2 << 2;\n config[3] = 0;\n }\n\n ret.audioConfig = config;\n }\n }]);\n\n return TsDemuxer;\n}(EventEmitter);\n\nexport default TsDemuxer;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { EVENTS } from 'xgplayer-helper-utils';\nimport { AudioTrack, VideoTrack } from 'xgplayer-helper-models';\nimport Demuxer from './ts-demuxer';\nvar DEMUX_EVENTS = EVENTS.DEMUX_EVENTS;\n/**\n * @typedef {import('xgplayer-helper-models').TsFrag} TsFrag\n */\n\nvar TsDemuxer = /*#__PURE__*/function () {\n function TsDemuxer(configs) {\n _classCallCheck(this, TsDemuxer);\n\n this.configs = Object.assign({}, configs);\n this.demuxer = null;\n }\n\n _createClass(TsDemuxer, [{\n key: \"init\",\n value: function init() {\n this.on(DEMUX_EVENTS.DEMUX_START, this.demux.bind(this));\n }\n }, {\n key: \"initDemuxer\",\n value: function initDemuxer() {\n this.demuxer.on(Demuxer.EVENTS.METADATA_PARSED, this.onMetaDataParsed.bind(this));\n this.demuxer.on(Demuxer.EVENTS.VIDEO_SAMPLE_PARSED, this.onVideoSampleParsed.bind(this));\n this.demuxer.on(Demuxer.EVENTS.AUDIO_SAMPLE_PARSED, this.onAudioSampleParsed.bind(this));\n this.demuxer.on(Demuxer.EVENTS.SEI_PARSED, this.emit.bind(this, DEMUX_EVENTS.SEI_PARSED));\n }\n /**\n * @param {TsFrag} frag\n * @param {boolean} isVod\n */\n\n }, {\n key: \"demux\",\n value: function demux(frag, isVod) {\n if (!this._tracks) {\n return;\n }\n\n if (!this._tracks.audioTrack) {\n this._tracks.audioTrack = new AudioTrack();\n }\n\n if (!this._tracks.videoTrack) {\n this._tracks.videoTrack = new VideoTrack();\n }\n\n if (!this.demuxer) {\n this.demuxer = new Demuxer(this._tracks);\n this.initDemuxer();\n }\n\n try {\n this.demuxer.demux(frag, this.inputBuffer, isVod);\n } catch (e) {\n this.emit(DEMUX_EVENTS.DEMUX_ERROR, this.TAG, e, false);\n }\n\n var hasVideo = this._tracks.videoTrack && this._tracks.videoTrack.samples.length ? 1 : 0;\n var hasAudio = this._tracks.audioTrack && this._tracks.audioTrack.samples.length ? 1 : 0;\n this.emit(DEMUX_EVENTS.DEMUX_COMPLETE, hasVideo, hasAudio);\n }\n }, {\n key: \"onMetaDataParsed\",\n value: function onMetaDataParsed(type, meta) {\n var _this$_tracks = this._tracks,\n videoTrack = _this$_tracks.videoTrack,\n audioTrack = _this$_tracks.audioTrack;\n var track = videoTrack;\n\n switch (type) {\n case 'video':\n track = videoTrack;\n break;\n\n case 'audio':\n track = audioTrack;\n break;\n\n default:\n track = videoTrack;\n }\n\n track.meta = meta;\n this.emit(DEMUX_EVENTS.METADATA_PARSED, type, meta);\n }\n }, {\n key: \"onVideoSampleParsed\",\n value: function onVideoSampleParsed(sample) {\n if (sample.isKeyframe) {\n this.emit(DEMUX_EVENTS.ISKEYFRAME, sample.pts);\n }\n\n this._tracks.videoTrack.samples.push(sample);\n }\n }, {\n key: \"onAudioSampleParsed\",\n value: function onAudioSampleParsed(sample) {\n this._tracks.audioTrack.samples.push(sample);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.off(DEMUX_EVENTS.DEMUX_START, this.demux);\n this.configs = {};\n this.demuxer && this.demuxer.destroy();\n }\n }, {\n key: \"inputBuffer\",\n get: function get() {\n return this._context.getInstance(this.configs.inputbuffer);\n }\n }, {\n key: \"_tracks\",\n get: function get() {\n return this._context.getInstance('TRACKS');\n }\n }]);\n\n return TsDemuxer;\n}();\n\nexport default TsDemuxer;","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\n/* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\nvar shared = require('./shared');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExpPrototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { TsFrag } from 'xgplayer-helper-models';\n/**\n * Reference: https://tools.ietf.org/html/rfc8216#section-4.3\n */\n\nvar M3U8Parser = /*#__PURE__*/function () {\n function M3U8Parser() {\n _classCallCheck(this, M3U8Parser);\n }\n\n _createClass(M3U8Parser, null, [{\n key: \"parse\",\n value:\n /**\n * @param {string} text\n * @param {string} baseurl\n * @return {{duration: number}}\n */\n function parse(text) {\n var baseurl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var ret = {\n duration: 0\n };\n\n if (!text || !text.split) {\n return;\n }\n\n var refs = text.split(/\\r|\\n/);\n refs = refs.filter(function (ref) {\n return ref;\n });\n var ref = refs.shift();\n\n if (!ref.match('#EXTM3U')) {\n throw new Error(\"Invalid m3u8 file: not \\\"#EXTM3U\\\"\");\n }\n\n ref = refs.shift();\n var nextDiscontinue = false;\n var nextId = 0;\n\n while (ref) {\n var refm = ref.match(/#(.[A-Z|-]*):(.*)/);\n var refd = ref.match(/#(.[A-Z|-]*)/);\n\n if (refd && refm && refm.length > 2) {\n switch (refm[1]) {\n case 'EXT-X-VERSION':\n ret.version = parseInt(refm[2]);\n break;\n\n case 'EXT-X-MEDIA-SEQUENCE':\n ret.sequence = parseInt(refm[2]);\n break;\n\n case 'EXT-X-TARGETDURATION':\n ret.targetduration = parseFloat(refm[2]);\n break;\n\n case 'EXTINF':\n nextId = M3U8Parser.parseFrag(refm, refs, ret, baseurl, nextDiscontinue, nextId);\n nextDiscontinue = false;\n break;\n\n case 'EXT-X-KEY':\n M3U8Parser.parseDecrypt(refm[2], ret);\n break;\n\n default:\n break;\n }\n }\n\n if (refd && refd.length > 1) {\n switch (refd[1]) {\n case 'EXT-X-DISCONTINUITY':\n nextDiscontinue = true;\n break;\n\n case 'EXT-X-ENDLIST':\n var last = ret.frags[ret.frags.length - 1];\n last.isLast = true;\n ret.end = true;\n break;\n\n default:\n break;\n }\n }\n\n ref = refs[nextId++];\n }\n\n return ret;\n }\n /**\n *\n * @param {string[]}refm\n * @param {string[]}refs\n * @param {*} ret\n * @param {string} baseurl\n * @param {boolean} discontinue\n * @param {number} nextId\n * @return {*}\n */\n\n }, {\n key: \"parseFrag\",\n value: function parseFrag(refm, refs, ret, baseurl, discontinue, nextId) {\n if (!ret.frags) {\n ret.frags = [];\n }\n\n var frag = new TsFrag({\n start: ret.duration,\n duration: parseInt(parseFloat(refm[2]) * 1000)\n });\n\n if (frag.duration < 200) {\n return nextId;\n }\n\n ret.duration += frag.duration;\n var nextline = refs[nextId++];\n\n if (nextline.match(/#(.*):(.*)/) || nextline.match(/^#/)) {\n nextline = refs[nextId++];\n }\n\n if (nextline.length > 0 && nextline.charAt(0) === '/' && baseurl.match(/.*\\/\\/.*\\.\\w+/g)) {\n baseurl = baseurl.match(/.*\\/\\/.*\\.\\w+/g)[0];\n }\n\n if (nextline.match(/.*:\\/\\/.*/)) {\n var isHTTPS = M3U8Parser.isHTTPS;\n\n if ((M3U8Parser.envisHttps || (M3U8Parser.envisHttps = isHTTPS(window.location.href))) && !isHTTPS(nextline)) {\n nextline = nextline.replace('http:', 'https:');\n }\n\n frag.url = nextline;\n } else {\n frag.url = baseurl + nextline;\n }\n\n frag.discontinue = discontinue; // add id\n\n if (ret.frags.length) {\n var last = ret.frags[ret.frags.length - 1];\n frag.id = last.id + 1;\n frag.cc = discontinue ? last.cc + 1 : last.cc;\n } else {\n frag.id = ret.sequence || 1;\n frag.cc = 0;\n }\n\n ret.frags.push(frag);\n return nextId;\n }\n /**\n * @param {string} url\n * @return {string}\n */\n\n }, {\n key: \"parseURL\",\n value: function parseURL(url) {\n var baseurl = '';\n var urls = url.match(/(.*\\/).*\\.m3u8/);\n\n if (urls && urls.length > 0) {\n for (var i = 0; i < urls.length; i++) {\n if (urls[i].match(/.*\\/$/g) && urls[i].length > baseurl.length) {\n baseurl = urls[i];\n }\n }\n }\n\n return baseurl;\n }\n /**\n * @param {string[]}refm\n * @param {*} ret\n */\n\n }, {\n key: \"parseDecrypt\",\n value: function parseDecrypt(refm, ret) {\n ret.encrypt = {};\n var refs = refm.split(',');\n\n for (var i in refs) {\n var cmd = refs[i];\n\n if (cmd.match(/METHOD=(.*)/)) {\n ret.encrypt.method = cmd.match(/METHOD=(.*)/)[1];\n }\n\n if (cmd.match(/URI=\"(.*)\"/)) {\n ret.encrypt.uri = cmd.match(/URI=\"(.*)\"/)[1];\n }\n\n if (cmd.match(/IV=0x(.*)/)) {\n var iv = cmd.match(/IV=0x(.*)/)[1];\n var length = Math.ceil(iv.length / 2);\n ret.encrypt.ivb = new Uint8Array(length);\n\n for (var _i = length - 1; _i >= 0; _i--) {\n var im = parseInt(iv.substr(_i * 2, 2), 16);\n ret.encrypt.ivb[_i] = im;\n }\n\n ret.encrypt.iv = iv;\n }\n }\n\n ;\n }\n /**\n * @param {string} url\n * @return {boolean}\n */\n\n }, {\n key: \"isHTTPS\",\n value: function isHTTPS(url) {\n var httpsUrlRegex = /^https:\\/\\//i;\n return httpsUrlRegex.test(url);\n }\n }]);\n\n return M3U8Parser;\n}();\n\nexport default M3U8Parser;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (ResultConstructor) {\n var totalLength = 0;\n\n for (var _len = arguments.length, arrays = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n arrays[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arrays[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var arr = _step.value;\n\n totalLength += arr.length;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var result = new ResultConstructor(totalLength);\n var offset = 0;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = arrays[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _arr = _step2.value;\n\n result.set(_arr, offset);\n offset += _arr.length;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return result;\n};","'use strict';\n\nvar _concat = require('./concat');\n\nvar _concat2 = _interopRequireDefault(_concat);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = _concat2.default;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport Concat from 'concat-typed-array';\n\nvar Buffer = /*#__PURE__*/function () {\n function Buffer(buffer) {\n _classCallCheck(this, Buffer);\n\n this.buffer = buffer || new Uint8Array(0);\n }\n\n _createClass(Buffer, [{\n key: \"write\",\n value: function write() {\n var _this = this;\n\n for (var _len = arguments.length, buffer = new Array(_len), _key = 0; _key < _len; _key++) {\n buffer[_key] = arguments[_key];\n }\n\n buffer.forEach(function (item) {\n _this.buffer = Concat(Uint8Array, _this.buffer, item);\n });\n }\n }], [{\n key: \"writeUint32\",\n value: function writeUint32(value) {\n return new Uint8Array([value >> 24, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff]);\n }\n }, {\n key: \"readAsInt\",\n value: function readAsInt(arr) {\n var temp = '';\n\n function padStart4Hex(hexNum) {\n var hexStr = hexNum.toString(16);\n return hexStr.padStart(2, '0');\n }\n\n arr.forEach(function (num) {\n temp += padStart4Hex(num);\n });\n return parseInt(temp, 16);\n }\n }]);\n\n return Buffer;\n}();\n\nexport default Buffer;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport Buffer from './buffer'; // const UINT32_MAX = Math.pow(2, 32) - 1;\n\nvar Fmp4 = /*#__PURE__*/function () {\n function Fmp4() {\n _classCallCheck(this, Fmp4);\n }\n\n _createClass(Fmp4, null, [{\n key: \"size\",\n value: function size(value) {\n return Buffer.writeUint32(value);\n }\n }, {\n key: \"initBox\",\n value: function initBox(size, name) {\n var buffer = new Buffer();\n\n for (var _len = arguments.length, content = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n content[_key - 2] = arguments[_key];\n }\n\n buffer.write.apply(buffer, [Fmp4.size(size), Fmp4.type(name)].concat(content));\n return buffer.buffer;\n }\n }, {\n key: \"extension\",\n value: function extension(version, flag) {\n return new Uint8Array([version, flag >> 16 & 0xff, flag >> 8 & 0xff, flag & 0xff]);\n }\n }, {\n key: \"ftyp\",\n value: function ftyp() {\n return Fmp4.initBox(24, 'ftyp', new Uint8Array([0x69, 0x73, 0x6F, 0x6D, // isom,\n 0x0, 0x0, 0x00, 0x01, // minor_version: 0x01\n 0x69, 0x73, 0x6F, 0x6D, // isom\n 0x61, 0x76, 0x63, 0x31 // avc1\n ]));\n }\n }, {\n key: \"ftypHEVC\",\n value: function ftypHEVC() {\n return Fmp4.initBox(24, 'ftyp', new Uint8Array([0x69, 0x73, 0x6F, 0x6D, // isom,\n 0x0, 0x0, 0x00, 0x01, // minor_version: 0x01\n 0x69, 0x73, 0x6F, 0x6D, // isom\n 0x64, 0x61, 0x73, 0x68 // hev1\n ]));\n }\n }, {\n key: \"moov\",\n value: function moov(_ref) {\n var type = _ref.type,\n meta = _ref.meta;\n var size = 8;\n var mvhd = Fmp4.mvhd(meta.duration, meta.timescale);\n var trak;\n\n if (type === 'video') {\n trak = Fmp4.videoTrak(meta);\n } else {\n trak = Fmp4.audioTrak(meta);\n }\n\n var mvex = Fmp4.mvex(meta.duration, meta.timescale || 1000, meta.id);\n [mvhd, trak, mvex].forEach(function (item) {\n size += item.byteLength;\n });\n return Fmp4.initBox(size, 'moov', mvhd, trak, mvex);\n }\n }, {\n key: \"mvhd\",\n value: function mvhd(duration) {\n var timescale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n // duration *= timescale;\n var bytes = new Uint8Array([0x00, 0x00, 0x00, 0x00, // version(0) + flags 1位的box版本+3位flags box版本,0或1,一般为0。(以下字节数均按version=0)\n 0x00, 0x00, 0x00, 0x00, // creation_time 创建时间 (相对于UTC时间1904-01-01零点的秒数)\n 0x00, 0x00, 0x00, 0x00, // modification_time 修改时间\n\n /**\n * timescale: 4 bytes文件媒体在1秒时间内的刻度值,可以理解为1秒长度\n */\n timescale >>> 24 & 0xFF, timescale >>> 16 & 0xFF, timescale >>> 8 & 0xFF, timescale & 0xFF,\n /**\n * duration: 4 bytes该track的时间长度,用duration和time scale值可以计算track时长,比如audio track的time scale = 8000,\n * duration = 560128,时长为70.016,video track的time scale = 600, duration = 42000,时长为70\n */\n duration >>> 24 & 0xFF, duration >>> 16 & 0xFF, duration >>> 8 & 0xFF, duration & 0xFF, 0x00, 0x01, 0x00, 0x00, // Preferred rate: 1.0 推荐播放速率,高16位和低16位分别为小数点整数部分和小数部分,即[16.16] 格式,该值为1.0(0x00010000)表示正常前向播放\n\n /**\n * PreferredVolume(1.0, 2bytes) + reserved(2bytes)\n * 与rate类似,[8.8] 格式,1.0(0x0100)表示最大音量\n */\n 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved: 4 + 4 bytes保留位\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ----begin composition matrix----\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 视频变换矩阵 线性代数\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ----end composition matrix----\n 0x00, 0x00, 0x00, 0x00, // ----begin pre_defined 6 * 4 bytes----\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // pre-defined 保留位\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ----end pre_defined 6 * 4 bytes----\n 0xFF, 0xFF, 0xFF, 0xFF // next_track_ID 下一个track使用的id号\n ]);\n return Fmp4.initBox(8 + bytes.length, 'mvhd', new Uint8Array(bytes));\n }\n }, {\n key: \"videoTrak\",\n value: function videoTrak(data) {\n var size = 8;\n var tkhd = Fmp4.tkhd({\n id: 1,\n duration: data.duration,\n timescale: data.timescale || 1000,\n width: data.presentWidth,\n height: data.presentHeight,\n type: 'video'\n });\n var mdia = Fmp4.mdia({\n type: 'video',\n timescale: data.timescale || 1000,\n duration: data.duration,\n avcc: data.avcc,\n parRatio: data.parRatio,\n width: data.presentWidth,\n height: data.presentHeight,\n streamType: data.streamType\n });\n [tkhd, mdia].forEach(function (item) {\n size += item.byteLength;\n });\n return Fmp4.initBox(size, 'trak', tkhd, mdia);\n }\n }, {\n key: \"audioTrak\",\n value: function audioTrak(data) {\n var size = 8;\n var tkhd = Fmp4.tkhd({\n id: 2,\n duration: data.duration,\n timescale: data.timescale || 1000,\n width: 0,\n height: 0,\n type: 'audio'\n });\n var mdia = Fmp4.mdia({\n type: 'audio',\n timescale: data.timescale || 1000,\n duration: data.duration,\n channelCount: data.channelCount,\n samplerate: data.sampleRate,\n config: data.config\n });\n [tkhd, mdia].forEach(function (item) {\n size += item.byteLength;\n });\n return Fmp4.initBox(size, 'trak', tkhd, mdia);\n }\n }, {\n key: \"tkhd\",\n value: function tkhd(data) {\n var id = data.id;\n var duration = data.duration;\n var width = data.width;\n var height = data.height;\n var content = new Uint8Array([0x00, 0x00, 0x00, 0x07, // version(0) + flags 1位版本 box版本,0或1,一般为0。(以下字节数均按version=0)按位或操作结果值,预定义如下:\n // 0x000001 track_enabled,否则该track不被播放;\n // 0x000002 track_in_movie,表示该track在播放中被引用;\n // 0x000004 track_in_preview,表示该track在预览时被引用。\n // 一般该值为7,1+2+4 如果一个媒体所有track均未设置track_in_movie和track_in_preview,将被理解为所有track均设置了这两项;对于hint track,该值为0\n // hint track 这个特殊的track并不包含媒体数据,而是包含了一些将其他数据track打包成流媒体的指示信息。\n 0x00, 0x00, 0x00, 0x00, // creation_time创建时间(相对于UTC时间1904-01-01零点的秒数)\n 0x00, 0x00, 0x00, 0x00, // modification time 修改时间\n id >>> 24 & 0xFF, // track_ID: 4 bytes id号,不能重复且不能为0\n id >>> 16 & 0xFF, id >>> 8 & 0xFF, id & 0xFF, 0x00, 0x00, 0x00, 0x00, // reserved: 4 bytes 保留位\n duration >>> 24 & 0xFF, // duration: 4 bytes track的时间长度\n duration >>> 16 & 0xFF, duration >>> 8 & 0xFF, duration & 0xFF, 0x00, 0x00, 0x00, 0x00, // reserved: 2 * 4 bytes 保留位\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // layer(2bytes) + alternate_group(2bytes) 视频层,默认为0,值小的在上层.track分组信息,默认为0表示该track未与其他track有群组关系\n 0x00, 0x00, 0x00, 0x00, // volume(2bytes) + reserved(2bytes) [8.8] 格式,如果为音频track,1.0(0x0100)表示最大音量;否则为0 +保留位\n 0x00, 0x01, 0x00, 0x00, // ----begin composition matrix----\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // 视频变换矩阵\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // ----end composition matrix----\n width >>> 8 & 0xFF, // //宽度\n width & 0xFF, 0x00, 0x00, height >>> 8 & 0xFF, // 高度\n height & 0xFF, 0x00, 0x00]);\n return Fmp4.initBox(8 + content.byteLength, 'tkhd', content);\n }\n }, {\n key: \"edts\",\n value: function edts(data) {\n var buffer = new Buffer();\n var duration = data.duration;\n var mediaTime = data.mediaTime;\n buffer.write(Fmp4.size(36), Fmp4.type('edts')); // elst\n\n buffer.write(Fmp4.size(28), Fmp4.type('elst'));\n buffer.write(new Uint8Array([0x00, 0x00, 0x00, 0x01, // entry count\n duration >> 24 & 0xff, duration >> 16 & 0xff, duration >> 8 & 0xff, duration & 0xff, mediaTime >> 24 & 0xff, mediaTime >> 16 & 0xff, mediaTime >> 8 & 0xff, mediaTime & 0xff, 0x00, 0x00, 0x00, 0x01 // media rate\n ]));\n return buffer.buffer;\n }\n }, {\n key: \"mdia\",\n value: function mdia(data) {\n var size = 8;\n var mdhd = Fmp4.mdhd(data.timescale, data.duration);\n var hdlr = Fmp4.hdlr(data.type);\n var minf = Fmp4.minf(data);\n [mdhd, hdlr, minf].forEach(function (item) {\n size += item.byteLength;\n });\n return Fmp4.initBox(size, 'mdia', mdhd, hdlr, minf);\n }\n }, {\n key: \"mdhd\",\n value: function mdhd() {\n var timescale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1000;\n var duration = arguments.length > 1 ? arguments[1] : undefined;\n var content = new Uint8Array([0x00, 0x00, 0x00, 0x00, // creation_time 创建时间\n 0x00, 0x00, 0x00, 0x00, // modification_time修改时间\n timescale >>> 24 & 0xFF, // timescale: 4 bytes 文件媒体在1秒时间内的刻度值,可以理解为1秒长度\n timescale >>> 16 & 0xFF, timescale >>> 8 & 0xFF, timescale & 0xFF, duration >>> 24 & 0xFF, // duration: 4 bytes track的时间长度\n duration >>> 16 & 0xFF, duration >>> 8 & 0xFF, duration & 0xFF, 0x55, 0xC4, // language: und (undetermined) 媒体语言码。最高位为0,后面15位为3个字符(见ISO 639-2/T标准中定义)\n 0x00, 0x00 // pre_defined = 0\n ]);\n return Fmp4.initBox(12 + content.byteLength, 'mdhd', Fmp4.extension(0, 0), content);\n }\n }, {\n key: \"hdlr\",\n value: function hdlr(type) {\n var value = [0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x76, 0x69, 0x64, 0x65, // handler_type: 'vide'\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'\n ];\n\n if (type === 'audio') {\n value.splice.apply(value, [8, 4].concat([0x73, 0x6f, 0x75, 0x6e]));\n value.splice.apply(value, [24, 13].concat([0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00]));\n }\n\n return Fmp4.initBox(8 + value.length, 'hdlr', new Uint8Array(value));\n }\n }, {\n key: \"minf\",\n value: function minf(data) {\n var size = 8;\n var vmhd = data.type === 'video' ? Fmp4.vmhd() : Fmp4.smhd();\n var dinf = Fmp4.dinf();\n var stbl = Fmp4.stbl(data);\n [vmhd, dinf, stbl].forEach(function (item) {\n size += item.byteLength;\n });\n return Fmp4.initBox(size, 'minf', vmhd, dinf, stbl);\n }\n }, {\n key: \"vmhd\",\n value: function vmhd() {\n return Fmp4.initBox(20, 'vmhd', new Uint8Array([0x00, // version\n 0x00, 0x00, 0x01, // flags\n 0x00, 0x00, // graphicsmode\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // opcolor\n ]));\n }\n }, {\n key: \"smhd\",\n value: function smhd() {\n return Fmp4.initBox(16, 'smhd', new Uint8Array([0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, // balance\n 0x00, 0x00 // reserved\n ]));\n }\n }, {\n key: \"dinf\",\n value: function dinf() {\n var buffer = new Buffer();\n var dref = [0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x01, // entry_count\n 0x00, 0x00, 0x00, 0x0c, // entry_size\n 0x75, 0x72, 0x6c, 0x20, // 'url' type\n 0x00, // version 0\n 0x00, 0x00, 0x01 // entry_flags\n ];\n buffer.write(Fmp4.size(36), Fmp4.type('dinf'), Fmp4.size(28), Fmp4.type('dref'), new Uint8Array(dref));\n return buffer.buffer;\n }\n }, {\n key: \"stbl\",\n value: function stbl(data) {\n var size = 8;\n var stsd = Fmp4.stsd(data);\n var stts = Fmp4.stts();\n var stsc = Fmp4.stsc();\n var stsz = Fmp4.stsz();\n var stco = Fmp4.stco();\n [stsd, stts, stsc, stsz, stco].forEach(function (item) {\n size += item.byteLength;\n });\n return Fmp4.initBox(size, 'stbl', stsd, stts, stsc, stsz, stco);\n }\n }, {\n key: \"stsd\",\n value: function stsd(data) {\n var content;\n\n if (data.type === 'audio') {\n // if (!data.isAAC && data.codec === 'mp4') {\n // content = FMP4.mp3(data);\n // } else {\n //\n // }\n // 支持mp4a\n content = Fmp4.mp4a(data);\n } else {\n if (data.streamType === 0x24) {\n content = Fmp4.hvc1(data);\n } else {\n content = Fmp4.avc1(data);\n }\n }\n\n return Fmp4.initBox(16 + content.byteLength, 'stsd', Fmp4.extension(0, 0), new Uint8Array([0x00, 0x00, 0x00, 0x01]), content);\n }\n }, {\n key: \"mp4a\",\n value: function mp4a(data) {\n var content = new Uint8Array([0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, data.channelCount, // channelcount\n 0x00, 0x10, // sampleSize:16bits\n 0x00, 0x00, 0x00, 0x00, // reserved2\n data.samplerate >> 8 & 0xff, data.samplerate & 0xff, //\n 0x00, 0x00]);\n var esds = Fmp4.esds(data.config);\n return Fmp4.initBox(8 + content.byteLength + esds.byteLength, 'mp4a', content, esds);\n }\n }, {\n key: \"esds\",\n value: function esds() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [43, 146, 8, 0];\n var configlen = config.length;\n var buffer = new Buffer();\n var content = new Uint8Array([0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x03, // descriptor_type\n 0x17 + configlen, // length\n 0x00, 0x01, // es_id\n 0x00, // stream_priority\n 0x04, // descriptor_type\n 0x0f + configlen, // length\n 0x40, // codec : mpeg4_audio\n 0x15, // stream_type\n 0x00, 0x00, 0x00, // buffer_size\n 0x00, 0x00, 0x00, 0x00, // maxBitrate\n 0x00, 0x00, 0x00, 0x00, // avgBitrate\n 0x05 // descriptor_type\n ].concat([configlen]).concat(config).concat([0x06, 0x01, 0x02]));\n buffer.write(Fmp4.size(8 + content.byteLength), Fmp4.type('esds'), content);\n return buffer.buffer;\n }\n }, {\n key: \"avc1\",\n value: function avc1(data) {\n var buffer = new Buffer();\n var size = 40; // 8(avc1)+8(avcc)+8(btrt)+16(pasp)\n // let sps = data.sps\n // let pps = data.pps\n\n var width = data.width;\n var height = data.height;\n var hSpacing = data.parRatio.width;\n var vSpacing = data.parRatio.height; // let avccBuffer = new Buffer()\n // avccBuffer.write(new Uint8Array([\n // 0x01, // version\n // sps[1], // profile\n // sps[2], // profile compatible\n // sps[3], // level\n // 0xfc | 3,\n // 0xE0 | 1 // 目前只处理一个sps\n // ].concat([sps.length >>> 8 & 0xff, sps.length & 0xff])))\n // avccBuffer.write(sps, new Uint8Array([1, pps.length >>> 8 & 0xff, pps.length & 0xff]), pps)\n\n var avcc = data.avcc;\n var avc1 = new Uint8Array([0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, // pre_defined\n 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // pre_defined\n width >> 8 & 0xff, width & 0xff, // width\n height >> 8 & 0xff, height & 0xff, // height\n 0x00, 0x48, 0x00, 0x00, // horizresolution\n 0x00, 0x48, 0x00, 0x00, // vertresolution\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // frame_count\n 0x12, 0x64, 0x61, 0x69, 0x6C, // dailymotion/hls.js\n 0x79, 0x6D, 0x6F, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x68, 0x6C, 0x73, 0x2E, 0x6A, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // compressorname\n 0x00, 0x18, // depth = 24\n 0x11, 0x11]); // pre_defined = -1\n\n var btrt = new Uint8Array([0x00, 0x1c, 0x9c, 0x80, // bufferSizeDB\n 0x00, 0x2d, 0xc6, 0xc0, // maxBitrate\n 0x00, 0x2d, 0xc6, 0xc0 // avgBitrate\n ]);\n var pasp = new Uint8Array([hSpacing >> 24, // hSpacing\n hSpacing >> 16 & 0xff, hSpacing >> 8 & 0xff, hSpacing & 0xff, vSpacing >> 24, // vSpacing\n vSpacing >> 16 & 0xff, vSpacing >> 8 & 0xff, vSpacing & 0xff]);\n buffer.write(Fmp4.size(size + avc1.byteLength + avcc.byteLength + btrt.byteLength), Fmp4.type('avc1'), avc1, Fmp4.size(8 + avcc.byteLength), Fmp4.type('avcC'), avcc, Fmp4.size(20), Fmp4.type('btrt'), btrt, Fmp4.size(16), Fmp4.type('pasp'), pasp);\n return buffer.buffer;\n }\n }, {\n key: \"hvc1\",\n value: function hvc1(track) {\n var buffer = new Buffer();\n var content = new Uint8Array([0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, // pre_defined\n 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // pre_defined\n track.width >> 8 & 0xFF, track.width & 0xff, // width\n track.height >> 8 & 0xFF, track.height & 0xff, // height\n 0x00, 0x48, 0x00, 0x00, // horizresolution\n 0x00, 0x48, 0x00, 0x00, // vertresolution\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // frame_count\n 0x00, 0x00, 0x00, 0x00, 0x00, // dailymotion/hls.js\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // compressorname\n 0x00, 0x18, // depth = 24\n 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x7A, 0x68, 0x76, 0x63, 0x43, 0x01, // configurationVersion\n 0x01, // profile_space + tier_flag + profile_idc\n 0x60, 0x00, 0x00, 0x00, // general_profile_compatibility\n 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, // constraint_indicator_flags\n 0x5D, // level_idc=90\n 0xF0, 0x00, 0xFC, 0xFD, // profile_compatibility_indications\n 0xF8, // ‘11111’b + bitDepthLumaMinus8\n 0xF8, // ‘11111’b + bitDepthChromaMinus8\n 0x00, 0x00, // avgFrameRate\n 0x0F, // constantFrameRate + numTemporalLayers + ‘1’b + lengthSizeMinusOne\n 0x03, // numOfArrays\n // vps\n 0xA0, 0x00, 0x01, // array_completeness + ‘0’b + NAL_unit_type + numNalus\n 0x00, 0x18, // nalUnitLength\n 0x40, 0x01, 0x0C, 0x01, 0xFF, 0xFF, 0x01, 0x60, 0x00, 0x00, 0x03, 0x00, 0x90, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x5D, 0x99, 0x98, 0x09, // sps\n 0xA1, 0x00, 0x01, // array_completeness + ‘0’b + NAL_unit_type + numNalus\n 0x00, 0x2D, // nalUnitLength\n 0x42, 0x01, 0x01, 0x01, 0x60, 0x00, 0x00, 0x03, 0x00, 0x90, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x5D, 0xA0, 0x02, 0x80, 0x80, 0x2D, 0x16, 0x59, 0x99, 0xA4, 0x93, 0x2B, 0x9A, 0x80, 0x80, 0x80, 0x82, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x03, 0x00, 0x32, 0x10, // pps\n 0xA2, 0x00, 0x01, // array_completeness + ‘0’b + NAL_unit_type + numNalus\n 0x00, 0x07, // nalUnitLength\n 0x44, 0x01, 0xC1, 0x72, 0xB4, 0x62, 0x40]);\n buffer.write(Fmp4.size(8 + content.byteLength + 10), Fmp4.type('hvc1'), content, Fmp4.size(10), Fmp4.type('fiel'), new Uint8Array([0x01, 0x00]));\n return buffer.buffer;\n }\n }, {\n key: \"stts\",\n value: function stts() {\n var content = new Uint8Array([0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n return Fmp4.initBox(16, 'stts', content);\n }\n }, {\n key: \"stsc\",\n value: function stsc() {\n var content = new Uint8Array([0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n return Fmp4.initBox(16, 'stsc', content);\n }\n }, {\n key: \"stco\",\n value: function stco() {\n var content = new Uint8Array([0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n return Fmp4.initBox(16, 'stco', content);\n }\n }, {\n key: \"stsz\",\n value: function stsz() {\n var content = new Uint8Array([0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // sample_size\n 0x00, 0x00, 0x00, 0x00 // sample_count\n ]);\n return Fmp4.initBox(20, 'stsz', content);\n }\n }, {\n key: \"mvex\",\n value: function mvex(duration) {\n var timescale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n var trackID = arguments.length > 2 ? arguments[2] : undefined;\n var buffer = new Buffer();\n var mehd = Buffer.writeUint32(duration);\n buffer.write(Fmp4.size(56), Fmp4.type('mvex'), Fmp4.size(16), Fmp4.type('mehd'), Fmp4.extension(0, 0), mehd, Fmp4.trex(trackID));\n return buffer.buffer;\n }\n }, {\n key: \"trex\",\n value: function trex(id) {\n var content = new Uint8Array([0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n id >> 24, id >> 16 & 0xff, id >> 8 & 0xff, id & 0xff, // track_ID\n 0x00, 0x00, 0x00, 0x01, // default_sample_description_index\n 0x00, 0x00, 0x00, 0x00, // default_sample_duration\n 0x00, 0x00, 0x00, 0x00, // default_sample_size\n 0x00, 0x01, 0x00, 0x01 // default_sample_flags\n ]);\n return Fmp4.initBox(8 + content.byteLength, 'trex', content);\n }\n }, {\n key: \"moof\",\n value: function moof(data) {\n var size = 8;\n var mfhd = Fmp4.mfhd();\n var traf = Fmp4.traf(data);\n [mfhd, traf].forEach(function (item) {\n size += item.byteLength;\n });\n return Fmp4.initBox(size, 'moof', mfhd, traf);\n }\n }, {\n key: \"mfhd\",\n value: function mfhd() {\n var content = Buffer.writeUint32(Fmp4.sequence);\n Fmp4.sequence += 1;\n return Fmp4.initBox(16, 'mfhd', Fmp4.extension(0, 0), content);\n }\n }, {\n key: \"traf\",\n value: function traf(data) {\n var size = 8;\n var tfhd = Fmp4.tfhd(data.id);\n var tfdt = Fmp4.tfdt(data.time);\n var sdtp = Fmp4.sdtp(data);\n var trun = Fmp4.trun(data, sdtp.byteLength);\n [tfhd, tfdt, trun, sdtp].forEach(function (item) {\n size += item.byteLength;\n });\n return Fmp4.initBox(size, 'traf', tfhd, tfdt, trun, sdtp);\n }\n }, {\n key: \"tfhd\",\n value: function tfhd(id) {\n var content = Buffer.writeUint32(id);\n return Fmp4.initBox(16, 'tfhd', Fmp4.extension(0, 0), content);\n }\n }, {\n key: \"tfdt\",\n value: function tfdt(time) {\n // let upper = Math.floor(time / (UINT32_MAX + 1)),\n // lower = Math.floor(time % (UINT32_MAX + 1));\n return Fmp4.initBox(16, 'tfdt', Fmp4.extension(0, 0), Buffer.writeUint32(time));\n }\n }, {\n key: \"trun\",\n value: function trun(data, sdtpLength) {\n // let id = data.id;\n // let ceil = id === 1 ? 16 : 12;\n var buffer = new Buffer();\n var sampleCount = Buffer.writeUint32(data.samples.length); // mdat-header 8\n // moof-header 8\n // mfhd 16\n // traf-header 8\n // thhd 16\n // tfdt 20\n // trun-header 12\n // sampleCount 4\n // data-offset 4\n // samples.length\n\n var offset = Buffer.writeUint32(8 + 8 + 16 + 8 + 16 + 16 + 12 + 4 + 4 + 16 * data.samples.length + sdtpLength);\n buffer.write(Fmp4.size(20 + 16 * data.samples.length), Fmp4.type('trun'), new Uint8Array([0x00, 0x00, 0x0F, 0x01]), sampleCount, offset); // let size = buffer.buffer.byteLength\n // let writeOffset = 0\n // data.samples.forEach(() => {\n // size += 16\n // })\n //\n // let trunBox = new Uint8Array(size)\n // trunBox.set(buffer.buffer, 0)\n\n data.samples.forEach(function (item) {\n var flags = item.flags; // console.log(item.type, item.dts, item.duration)\n\n buffer.write(new Uint8Array([item.duration >>> 24 & 0xFF, // sample_duration\n item.duration >>> 16 & 0xFF, item.duration >>> 8 & 0xFF, item.duration & 0xFF, item.size >>> 24 & 0xFF, // sample_size\n item.size >>> 16 & 0xFF, item.size >>> 8 & 0xFF, item.size & 0xFF, flags.isLeading << 2 | flags.dependsOn, // sample_flags\n flags.isDependedOn << 6 | flags.hasRedundancy << 4 | flags.isNonSync, 0x00, 0x00, // sample_degradation_priority\n item.cts >>> 24 & 0xFF, // sample_composition_time_offset\n item.cts >>> 16 & 0xFF, item.cts >>> 8 & 0xFF, item.cts & 0xFF])); // writeOffset += 16\n // buffer.write(Buffer.writeUint32(0));\n });\n return buffer.buffer;\n }\n }, {\n key: \"sdtp\",\n value: function sdtp(data) {\n var buffer = new Buffer();\n buffer.write(Fmp4.size(12 + data.samples.length), Fmp4.type('sdtp'), Fmp4.extension(0, 0));\n data.samples.forEach(function (item) {\n var flags = item.flags;\n var num = flags.isLeading << 6 | // is_leading: 2 (bit)\n flags.dependsOn << 4 | // sample_depends_on\n flags.isDependedOn << 2 | // sample_is_depended_on\n flags.hasRedundancy; // sample_has_redundancy\n\n buffer.write(new Uint8Array([num]));\n });\n return buffer.buffer;\n }\n }, {\n key: \"mdat\",\n value: function mdat(data) {\n var buffer = new Buffer();\n var size = 8;\n data.samples.forEach(function (item) {\n size += item.size;\n });\n buffer.write(Fmp4.size(size), Fmp4.type('mdat'));\n var mdatBox = new Uint8Array(size);\n var offset = 0;\n mdatBox.set(buffer.buffer, offset);\n offset += 8;\n data.samples.forEach(function (item) {\n item.buffer.forEach(function (unit) {\n mdatBox.set(unit, offset);\n offset += unit.byteLength; // buffer.write(unit.data);\n });\n });\n return mdatBox;\n }\n }]);\n\n return Fmp4;\n}();\n\nFmp4.type = function (name) {\n return new Uint8Array([name.charCodeAt(0), name.charCodeAt(1), name.charCodeAt(2), name.charCodeAt(3)]);\n};\n\nFmp4.sequence = 1;\nexport default Fmp4;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { logger } from 'xgplayer-helper-utils';\nimport EventEmitter from 'eventemitter3';\nimport Buffer from './buffer';\nimport Fmp4 from './fmp4';\n/**\n * @typedef { import('xgplayer-helper-models').VideoTrack } VideoTrack\n */\n\n/**\n * @typedef { import('xgplayer-helper-models').AudioTrack } AudioTrack\n */\n\nvar Mp4Remuxer = /*#__PURE__*/function (_EventEmitter) {\n _inherits(Mp4Remuxer, _EventEmitter);\n\n var _super = _createSuper(Mp4Remuxer);\n\n function Mp4Remuxer(_ref) {\n var _this;\n\n var videoMeta = _ref.videoMeta,\n audioMeta = _ref.audioMeta,\n curTime = _ref.curTime;\n\n _classCallCheck(this, Mp4Remuxer);\n\n _this = _super.call(this);\n _this.TAG = 'Fmp4Remuxer';\n _this._dtsBase = curTime * 1000;\n _this._videoMeta = videoMeta;\n _this._audioMeta = audioMeta;\n _this._audioDtsBase = null;\n _this._videoDtsBase = null;\n _this._isDtsBaseInited = false;\n _this.isFirstVideo = true;\n _this.isFirstAudio = true;\n _this.videoAllDuration = 0;\n _this.audioAllDuration = 0;\n _this.audioRemuxed = 0;\n _this.videoRemuxed = 0;\n _this.mp4Durations = {\n keys: []\n };\n return _this;\n }\n\n _createClass(Mp4Remuxer, [{\n key: \"destroy\",\n value: function destroy() {\n this._dtsBase = -1;\n this._isDtsBaseInited = false;\n this.mp4Durations = {\n keys: []\n };\n this.removeAllListeners();\n }\n /**\n * @param {AudioTrack} audioTrack\n * @param {VideoTrack} videoTrack\n */\n\n }, {\n key: \"remux\",\n value: function remux(audioTrack, videoTrack) {\n !this._isDtsBaseInited && this.calcDtsBase(audioTrack, videoTrack);\n this.remuxVideo(videoTrack);\n this.remuxAudio(audioTrack);\n logger.groupEnd();\n }\n }, {\n key: \"resetDtsBase\",\n value: function resetDtsBase() {\n this._dtsBase = 0;\n }\n }, {\n key: \"seek\",\n value: function seek(time) {\n logger.log(this.TAG, 'set dtsBase for seek(),time=', time);\n\n if (!this._isDtsBaseInited) {\n this._dtsBase = time * 1000;\n } else {\n this._isDtsBaseInited = false;\n this._dtsBase = time * 1000;\n }\n\n this._audioDtsBase = this._videoDtsBase = null;\n }\n /**\n * @param {'video' | 'audio' } type\n * @param {*} meta\n * @return {Buffer}\n */\n\n }, {\n key: \"remuxInitSegment\",\n value: function remuxInitSegment(type, meta) {\n logger.log(this.TAG, 'remuxInitSegment: type=', type);\n var initSegment = new Buffer();\n var ftyp = meta.streamType === 0x24 ? Fmp4.ftypHEVC() : Fmp4.ftyp();\n var moov = Fmp4.moov({\n type: type,\n meta: meta\n });\n initSegment.write(ftyp, moov);\n return initSegment;\n }\n /**\n * @param {AudioTrack} audioTrack\n * @param {VideoTrack} videoTrack\n */\n\n }, {\n key: \"calcDtsBase\",\n value: function calcDtsBase(audioTrack, videoTrack) {\n if (!audioTrack && videoTrack.samples.length) {\n var firstSample = videoTrack.samples[0];\n\n var _start;\n\n if (firstSample.options && firstSample.options.start) {\n _start = firstSample.options.start;\n }\n\n this._videoDtsBase = firstSample.dts - (_start || this._dtsBase);\n this._isDtsBaseInited = true;\n return;\n }\n\n if ((!audioTrack || !audioTrack.samples.length) && (!videoTrack || !videoTrack.samples.length)) {\n return;\n }\n\n var audioBase = null;\n var videoBase = null;\n var start = null;\n\n if (audioTrack && audioTrack.samples && audioTrack.samples.length) {\n var _firstSample = audioTrack.samples[0];\n audioBase = _firstSample.dts;\n\n if (_firstSample.options && _firstSample.options.start) {\n start = _firstSample.options.start;\n }\n }\n\n if (videoTrack && videoTrack.samples && videoTrack.samples.length) {\n var _firstSample2 = videoTrack.samples[0];\n videoBase = _firstSample2.dts;\n\n if (_firstSample2.options && _firstSample2.options.start) {\n start = _firstSample2.options.start;\n }\n }\n\n var delta = audioBase - videoBase; // 临时兼容逻辑, hls 考虑上av之间的差值\n\n if (delta < 0 && start !== null) {\n videoTrack.samples.forEach(function (x) {\n x.dts -= delta;\n\n if (x.pts) {\n x.pts -= delta;\n }\n });\n }\n\n this._videoDtsBase = (videoBase || audioBase) - (start || this._dtsBase);\n this._audioDtsBase = (audioBase || videoBase) - (start || this._dtsBase);\n this._dtsBase = Math.min(videoBase, audioBase);\n this._isDtsBaseInited = true;\n logger.log(this.TAG, 'calcDtsBase');\n logger.log(this.TAG, \"video first dts: \".concat(videoBase, \" , start:\").concat(start, \" , _videoDtsBase:\").concat(this._videoDtsBase, \" , _dtsBase:\").concat(this._dtsBase));\n logger.log(this.TAG, \"audio first dts: \".concat(audioBase, \" , start:\").concat(start, \" , _audioDtsBase:\").concat(this._audioDtsBase, \", _dtsBase:\").concat(this._dtsBase));\n }\n /**\n * @param {VideoTrack}videoTrack\n * @return {*}\n * @private\n */\n\n }, {\n key: \"remuxVideo\",\n value: function remuxVideo(videoTrack) {\n var _this2 = this;\n\n var track = videoTrack || {};\n\n if (!videoTrack || !videoTrack.samples || !videoTrack.samples.length) {\n return;\n }\n\n var samples = track.samples,\n meta = track.meta;\n if (!meta) return;\n var firstDts = -1;\n var initSegment = null;\n var mp4Samples = [];\n var mdatBox = {\n samples: []\n };\n var maxLoop = 10000;\n\n while (samples.length && maxLoop-- > 0) {\n var avcSample = samples.shift();\n var isKeyframe = avcSample.isKeyframe,\n options = avcSample.options;\n\n if (!this.isFirstVideo && options && options.meta) {\n initSegment = this.remuxInitSegment('video', options.meta);\n options.meta = null;\n samples.unshift(avcSample);\n\n if (!options.isContinue) {\n this._videoDtsBase = 0;\n }\n\n break;\n }\n\n var dts = Math.max(0, avcSample.dts - this.videoDtsBase);\n\n if (firstDts === -1) {\n firstDts = dts;\n }\n\n var cts = void 0;\n var pts = void 0;\n\n if (avcSample.pts !== undefined) {\n pts = avcSample.pts - this._dtsBase;\n cts = pts - dts;\n }\n\n if (avcSample.cts !== undefined) {\n pts = avcSample.cts + dts;\n cts = avcSample.cts;\n }\n\n var mdatSample = {\n buffer: [],\n size: 0\n };\n var sampleDuration = 0;\n\n if (avcSample.duration) {\n sampleDuration = avcSample.duration;\n } else if (samples.length >= 1) {\n var nextDts = samples[0].dts - this.videoDtsBase;\n sampleDuration = nextDts - dts;\n } else {\n if (mp4Samples.length >= 1) {\n // lastest sample, use second last duration\n sampleDuration = mp4Samples[mp4Samples.length - 1].duration;\n } else {\n // the only one sample, use reference duration\n sampleDuration = this._videoMeta.refSampleDuration;\n }\n }\n\n this.videoAllDuration += sampleDuration;\n\n if (logger[\"long\"]) {\n logger.log(this.TAG, \"video dts \".concat(dts), \"pts \".concat(pts), \"cts: \".concat(cts), isKeyframe, \"originDts \".concat(avcSample.originDts), \"duration \".concat(sampleDuration));\n }\n\n if (sampleDuration >= 0) {\n mdatBox.samples.push(mdatSample);\n mdatSample.buffer.push(avcSample.data);\n mdatSample.size += avcSample.data.byteLength; // manage same pts sample\n\n if (this.mp4Durations[pts]) {\n pts += this.mp4Durations[pts];\n cts = pts - dts;\n }\n\n mp4Samples.push({\n dts: dts,\n cts: cts,\n pts: pts,\n data: avcSample.data,\n size: avcSample.data.byteLength,\n isKeyframe: isKeyframe,\n duration: sampleDuration,\n flags: {\n isLeading: 0,\n dependsOn: isKeyframe ? 2 : 1,\n isDependedOn: isKeyframe ? 1 : 0,\n hasRedundancy: 0,\n isNonSync: isKeyframe ? 0 : 1\n },\n originDts: dts,\n type: 'video'\n });\n this.mp4Durations[pts] = sampleDuration;\n this.mp4Durations.keys.push(pts);\n }\n\n if (isKeyframe) {\n this.emit(Mp4Remuxer.EVENTS.RANDOM_ACCESS_POINT, pts);\n }\n } // delete too much data\n\n\n if (this.mp4Durations.keys.length > 1e4) {\n var tmp = this.mp4Durations;\n this.mp4Durations = {};\n this.mp4Durations.keys = tmp.keys.slice(-100);\n this.mp4Durations.keys.forEach(function (key) {\n _this2.mp4Durations[key] = tmp[key];\n });\n }\n\n if (mp4Samples.length) {\n logger.log(this.TAG, 'remux to mp4 video:', [firstDts / 1000, mp4Samples[mp4Samples.length - 1].dts / 1000]);\n }\n\n var moofMdat = new Buffer();\n\n if (mp4Samples.length && track.meta) {\n var moof = Fmp4.moof({\n id: track.meta.id,\n time: firstDts,\n samples: mp4Samples\n });\n var mdat = Fmp4.mdat(mdatBox);\n moofMdat.write(moof, mdat);\n this.segmentRemuxed('video', moofMdat, mp4Samples[mp4Samples.length - 1].pts - mp4Samples[0].pts);\n }\n\n if (initSegment) {\n this.segmentRemuxed('video', initSegment);\n\n if (samples.length) {\n // second part of stream change\n track.samples = samples;\n return this.remuxVideo(track);\n }\n }\n\n this.isFirstVideo = false;\n this.emit(Mp4Remuxer.EVENTS.TRACK_REMUXED, 'video', moofMdat);\n track.samples = [];\n track.length = 0;\n }\n /**\n *\n * @param {AudioTrack} track\n * @return {*}\n * @private\n */\n\n }, {\n key: \"remuxAudio\",\n value: function remuxAudio(track) {\n var _ref2 = track || {},\n samples = _ref2.samples;\n\n var firstDts = -1;\n var mp4Samples = [];\n var initSegment = null;\n var mdatBox = {\n samples: []\n };\n\n if (!samples || !samples.length) {\n return;\n }\n\n var maxLoop = 10000;\n var isFirstDtsInited = false;\n\n while (samples.length && maxLoop-- > 0) {\n var sample = samples.shift();\n var data = sample.data,\n options = sample.options;\n\n if (!this.isFirstAudio && options && options.meta) {\n initSegment = this.remuxInitSegment('audio', options.meta);\n options.meta = null;\n samples.unshift(sample);\n\n if (!options.isContinue) {\n this._audioDtsBase = 0;\n }\n\n break;\n }\n\n var dts = Math.max(0, sample.dts - this.audioDtsBase);\n var originDts = sample.originDts;\n\n if (!isFirstDtsInited) {\n firstDts = dts;\n isFirstDtsInited = true;\n }\n\n var sampleDuration = 0;\n\n if (sample.duration) {\n sampleDuration = sample.duration;\n } else if (this._audioMeta.refSampleDurationFixed) {\n sampleDuration = this._audioMeta.refSampleDurationFixed;\n } else if (samples.length >= 1) {\n var nextDts = samples[0].dts - this.audioDtsBase;\n sampleDuration = nextDts - dts;\n } else {\n if (mp4Samples.length >= 1) {\n // use second last sample duration\n sampleDuration = mp4Samples[mp4Samples.length - 1].duration;\n } else {\n // the only one sample, use reference sample duration\n sampleDuration = this._audioMeta.refSampleDuration;\n }\n }\n\n if (logger[\"long\"]) {\n logger.log(this.TAG, \"audio dts \".concat(dts), \"pts \".concat(dts), \"originDts \".concat(originDts), \"duration \".concat(sampleDuration));\n }\n\n this.audioAllDuration += sampleDuration;\n var mp4Sample = {\n dts: dts,\n pts: dts,\n cts: 0,\n size: data.byteLength,\n duration: sample.duration ? sample.duration : sampleDuration,\n flags: {\n isLeading: 0,\n dependsOn: 1,\n isDependedOn: 0,\n hasRedundancy: 0,\n isNonSync: 0\n },\n isKeyframe: true,\n originDts: originDts,\n type: 'audio'\n };\n var mdatSample = {\n buffer: [],\n size: 0\n };\n\n if (sampleDuration >= 0) {\n mdatSample.buffer.push(data);\n mdatSample.size += data.byteLength;\n mdatBox.samples.push(mdatSample);\n mp4Samples.push(mp4Sample);\n }\n }\n\n var moofMdat = new Buffer();\n\n if (mp4Samples.length && track.meta) {\n logger.log(this.TAG, 'remux to mp4 audio:', [firstDts / 1000, mp4Samples[mp4Samples.length - 1].dts / 1000]);\n var moof = Fmp4.moof({\n id: track.meta.id,\n time: firstDts,\n samples: mp4Samples\n });\n var mdat = Fmp4.mdat(mdatBox);\n moofMdat.write(moof, mdat);\n this.segmentRemuxed('audio', moofMdat, mp4Samples[mp4Samples.length - 1].dts - mp4Samples[0].dts);\n }\n\n if (initSegment) {\n this.segmentRemuxed('audio', initSegment);\n\n if (samples.length) {\n // second part of stream change\n track.samples = samples;\n return this.remuxAudio(track);\n }\n }\n\n this.isFirstAudio = false;\n this.emit(Mp4Remuxer.EVENTS.TRACK_REMUXED, 'audio', moofMdat);\n track.samples = [];\n track.length = 0;\n }\n }, {\n key: \"segmentRemuxed\",\n value: function segmentRemuxed(type, buffer, bufferDuration) {\n this.emit(Mp4Remuxer.EVENTS.MEDIA_SEGMENT, type, buffer, bufferDuration);\n }\n }, {\n key: \"videoDtsBase\",\n get: function get() {\n if (this._videoDtsBase !== null) {\n return this._videoDtsBase;\n }\n\n return this._dtsBase;\n },\n set: function set(value) {\n this._videoDtsBase = value;\n }\n }, {\n key: \"audioDtsBase\",\n get: function get() {\n if (this._audioDtsBase !== null) {\n return this._audioDtsBase;\n }\n\n return this._dtsBase;\n }\n }], [{\n key: \"EVENTS\",\n get: function get() {\n return {\n MEDIA_SEGMENT: 'MEDIA_SEGMENT',\n INIT_SEGMENT: 'INIT_SEGMENT',\n RANDOM_ACCESS_POINT: 'RANDOM_ACCESS_POINT',\n TRACK_REMUXED: 'TRACK_REMUXED'\n };\n }\n }]);\n\n return Mp4Remuxer;\n}(EventEmitter);\n\nexport { Mp4Remuxer as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { EVENTS } from 'xgplayer-helper-utils';\nimport Remuxer from './remuxer';\nvar REMUX_EVENTS = EVENTS.REMUX_EVENTS;\nvar PLAYER_EVENTS = EVENTS.PLAYER_EVENTS;\n\nvar Mp4Remuxer = /*#__PURE__*/function () {\n function Mp4Remuxer() {\n var curTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n _classCallCheck(this, Mp4Remuxer);\n\n this.TAG = 'Mp4Remuxer';\n this._curTime = curTime;\n }\n\n _createClass(Mp4Remuxer, [{\n key: \"init\",\n value: function init() {\n this.on(REMUX_EVENTS.REMUX_MEDIA, this.remux.bind(this));\n this.on(REMUX_EVENTS.REMUX_METADATA, this.onMetaDataReady.bind(this));\n this.on(REMUX_EVENTS.DETECT_CHANGE_STREAM, this.resetDtsBase.bind(this));\n this.on(REMUX_EVENTS.DETECT_FRAG_ID_DISCONTINUE, this.seek.bind(this));\n this.on(PLAYER_EVENTS.SEEK, this.seek.bind(this));\n }\n }, {\n key: \"initRemuxer\",\n value: function initRemuxer() {\n this.remuxer = new Remuxer({\n audioMeta: this.audioMeta,\n videoMeta: this.videoMeta,\n curTime: this._curTime\n });\n this.remuxer.on(Remuxer.EVENTS.MEDIA_SEGMENT, this.writeToSource.bind(this));\n this.remuxer.on(Remuxer.EVENTS.TRACK_REMUXED, this.onTrackRemuxed.bind(this));\n }\n }, {\n key: \"remux\",\n value: function remux() {\n if (!this.remuxer) {\n this.initRemuxer();\n }\n\n var _this$_context$getIns = this._context.getInstance('TRACKS'),\n audioTrack = _this$_context$getIns.audioTrack,\n videoTrack = _this$_context$getIns.videoTrack;\n\n return this.remuxer.remux(audioTrack, videoTrack);\n }\n }, {\n key: \"resetDtsBase\",\n value: function resetDtsBase() {\n this.remuxer && this.remuxer.resetDtsBase();\n }\n }, {\n key: \"seek\",\n value: function seek(time) {\n this.remuxer && this.remuxer.seek(time);\n }\n }, {\n key: \"onMetaDataReady\",\n value: function onMetaDataReady(type) {\n if (!this.remuxer) {\n this.initRemuxer();\n }\n\n var track;\n\n if (type === 'audio') {\n var _this$_context$getIns2 = this._context.getInstance('TRACKS'),\n audioTrack = _this$_context$getIns2.audioTrack;\n\n track = audioTrack;\n } else {\n var _this$_context$getIns3 = this._context.getInstance('TRACKS'),\n videoTrack = _this$_context$getIns3.videoTrack;\n\n track = videoTrack;\n }\n\n var presourcebuffer = this._context.getInstance('PRE_SOURCE_BUFFER');\n\n var source = presourcebuffer.getSource(type);\n\n if (!source) {\n source = presourcebuffer.createSource(type);\n }\n\n source.mimetype = track.meta.codec;\n source.init = this.remuxer.remuxInitSegment(type, track.meta);\n this.emit(REMUX_EVENTS.INIT_SEGMENT, type);\n }\n }, {\n key: \"onTrackRemuxed\",\n value: function onTrackRemuxed(track) {\n this.emit(REMUX_EVENTS.MEDIA_SEGMENT, track);\n }\n }, {\n key: \"writeToSource\",\n value: function writeToSource(type, buffer, bufferDuration) {\n var presourcebuffer = this._context.getInstance('PRE_SOURCE_BUFFER');\n\n var source = presourcebuffer.getSource(type);\n\n if (!source) {\n source = presourcebuffer.createSource(type);\n }\n\n source.data.push(buffer);\n\n if (bufferDuration) {\n source.bufferDuration = bufferDuration + (source.bufferDuration || 0);\n }\n }\n }, {\n key: \"videoMeta\",\n get: function get() {\n return this._context.getInstance('TRACKS').videoTrack.meta;\n }\n }, {\n key: \"audioMeta\",\n get: function get() {\n return this._context.getInstance('TRACKS').audioTrack.meta;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n if (this.remuxer) {\n this.remuxer.destroy();\n }\n\n this.remuxer = null;\n }\n }]);\n\n return Mp4Remuxer;\n}();\n\nexport { Mp4Remuxer as default };","import { EVENTS, Mse, Crypto, FetchLoader, XhrLoader, logger } from 'xgplayer-helper-utils'\nimport { RemuxedBufferManager, Tracks, Buffer as XgBuffer, Playlist } from 'xgplayer-helper-models'\nimport { CompatHls as Compatibility } from 'xgplayer-helper-codec'\nimport { Mp4Remuxer, M3U8Parser, TsDemuxer } from 'xgplayer-helper-transmuxers'\n\nconst Loader = FetchLoader.isSupported() ? FetchLoader : XhrLoader\n\nconst LOADER_EVENTS = EVENTS.LOADER_EVENTS\nconst REMUX_EVENTS = EVENTS.REMUX_EVENTS\nconst DEMUX_EVENTS = EVENTS.DEMUX_EVENTS\nconst HLS_EVENTS = EVENTS.HLS_EVENTS\nconst CRYPTO_EVENTS = EVENTS.CRYPTO_EVENTS\nconst MSE_EVENTS = EVENTS.MSE_EVENTS\nconst HLS_ERROR = 'HLS_ERROR'\nclass HlsVodController {\n constructor (mse) {\n this.TAG = 'HlsVodController'\n this.url = ''\n this.baseurl = ''\n this.sequence = 0\n this._playlist = null\n this.mse = mse\n this._lastSeekTime = 0\n this.m3u8Text = null\n }\n\n init () {\n // 初始化Buffer (M3U8/TS/Playlist);\n this._context.registry('M3U8_BUFFER', XgBuffer)\n this._tsBuffer = this._context.registry('TS_BUFFER', XgBuffer)()\n this._tracks = this._context.registry('TRACKS', Tracks)()\n\n this._playlist = this._context.registry('PLAYLIST', Playlist)({ autoclear: false })\n this._presource = this._context.registry('PRE_SOURCE_BUFFER', RemuxedBufferManager)()\n\n this._compat = this._context.registry('COMPATIBILITY', Compatibility)()\n\n // 初始化M3U8Loader;\n this._context.registry('M3U8_LOADER', Loader)({ buffer: 'M3U8_BUFFER', readtype: 1 })\n this._tsloader = this._context.registry('TS_LOADER', Loader)({ buffer: 'TS_BUFFER', readtype: 3 })\n\n // 初始化TS Demuxer\n this._demuxer = this._context.registry('TS_DEMUXER', TsDemuxer)({ inputbuffer: 'TS_BUFFER' })\n\n // 初始化MP4 Remuxer\n this._context.registry('MP4_REMUXER', Mp4Remuxer)(this._player.currentTime)\n\n this.retrytimes = this._pluginConfig.retryTimes\n this.preloadTime = this._player.config.preloadTime || this._pluginConfig.preloadTime\n\n // 初始化MSE\n if (!this.mse) {\n this.mse = new Mse({ preloadTime: this.preloadTime, container: this._player.video }, this._context)\n this.mse.init()\n }\n this.initEvents()\n }\n\n initEvents () {\n this._onLoaderCompete = this._onLoaderCompete.bind(this)\n this._onLoadError = this._onLoadError.bind(this)\n this._onInitSegment = this._onInitSegment.bind(this)\n this._handleSEIParsed = this._handleSEIParsed.bind(this)\n this._onMediaSegment = this._onMediaSegment.bind(this)\n this._onMetadataParsed = this._onMetadataParsed.bind(this)\n this._onDemuxComplete = this._onDemuxComplete.bind(this)\n this._onDemuxError = this._onDemuxError.bind(this)\n this._onRemuxError = this._onRemuxError.bind(this)\n this._onTimeUpdate = this._onTimeUpdate.bind(this)\n this._handleKeyFrame = this._handleKeyFrame.bind(this)\n this._onSourceUpdateEnd = this._onSourceUpdateEnd.bind(this)\n\n this.on(LOADER_EVENTS.LOADER_COMPLETE, this._onLoaderCompete)\n\n this.on(LOADER_EVENTS.LOADER_ERROR, this._onLoadError)\n\n this.on(REMUX_EVENTS.INIT_SEGMENT, this._onInitSegment)\n\n this.on(DEMUX_EVENTS.SEI_PARSED, this._handleSEIParsed)\n\n this.on(REMUX_EVENTS.MEDIA_SEGMENT, this._onMediaSegment)\n\n this.on(DEMUX_EVENTS.METADATA_PARSED, this._onMetadataParsed)\n\n this.on(DEMUX_EVENTS.DEMUX_COMPLETE, this._onDemuxComplete)\n\n this.on(MSE_EVENTS.SOURCE_UPDATE_END, this._onSourceUpdateEnd)\n\n this.on(DEMUX_EVENTS.ISKEYFRAME, this._handleKeyFrame)\n\n this.on(DEMUX_EVENTS.DEMUX_ERROR, this._onDemuxError)\n\n this.on(REMUX_EVENTS.REMUX_ERROR, this._onRemuxError)\n\n this._player.on('timeupdate', this._onTimeUpdate)\n }\n\n _onError (type, mod, err, fatal) {\n const error = {\n errorType: type,\n errorDetails: `[${mod}]: ${err ? err.message : ''}`,\n errorFatal: fatal\n }\n this._player && this._player.emit(HLS_ERROR, error)\n }\n\n _onLoadError (mod, error) {\n this._player.emit('error', {\n code: error.code,\n errorType: 'network',\n ex: `[${mod}]: ${error.message}`,\n errd: {}\n })\n this._onError(LOADER_EVENTS.LOADER_ERROR, mod, error, true)\n this.emit(HLS_EVENTS.RETRY_TIME_EXCEEDED)\n }\n\n _onDemuxError (mod, error, fatal) {\n if (fatal === undefined) {\n fatal = true\n }\n this._player.emit('error', {\n code: '31',\n errorType: 'parse',\n ex: `[${mod}]: ${error ? error.message : ''}`,\n errd: {}\n })\n this._onError(LOADER_EVENTS.LOADER_ERROR, mod, error, fatal)\n }\n\n _onRemuxError (mod, error, fatal) {\n if (fatal === undefined) {\n fatal = true\n }\n this._onError(REMUX_EVENTS.REMUX_ERROR, mod, error, fatal)\n }\n\n _onTimeUpdate () {\n this._preload(this._player.currentTime)\n }\n\n _onDemuxComplete () {\n this.emit(REMUX_EVENTS.REMUX_MEDIA, 'ts')\n }\n\n _handleKeyFrame (pts) {\n this._player && this._player.emit('isKeyframe', pts)\n }\n\n _handleSEIParsed (sei) {\n this._player.emit('SEI_PARSED', sei)\n }\n\n _onMetadataParsed (type) {\n const duration = parseInt(this._playlist.duration)\n if (type === 'video') {\n this._tracks.videoTrack.meta.duration = duration\n } else if (type === 'audio') {\n this._tracks.audioTrack.meta.duration = duration\n }\n this.emit(REMUX_EVENTS.REMUX_METADATA, type)\n }\n\n _onMediaSegment () {\n if (Object.keys(this.mse.sourceBuffers).length < 1) {\n this.mse.addSourceBuffers()\n }\n\n this.mse.doAppend()\n }\n\n _onInitSegment () {\n this.mse.addSourceBuffers()\n }\n\n _onSourceUpdateEnd () {\n if (!this._player || !this._player.video) return\n\n const { buffered, duration } = this._player.video\n\n const len = buffered.length\n\n if (!len) return\n\n if (duration - buffered.end(len - 1) < 1) {\n this.mse.endOfStream()\n }\n }\n\n _onLoaderCompete (buffer) {\n const { fetchOptions = {} } = this._pluginConfig\n if (buffer.TAG === 'M3U8_BUFFER') {\n this.m3u8Text = buffer.shift()\n try {\n const mdata = M3U8Parser.parse(this.m3u8Text, this.baseurl)\n this._playlist.pushM3U8(mdata)\n } catch (error) {\n this._onError('M3U8_PARSER_ERROR', 'PLAYLIST', error, true)\n }\n if (this._playlist.encrypt && this._playlist.encrypt.uri && !this._playlist.encrypt.key) {\n this._context.registry('DECRYPT_BUFFER', XgBuffer)()\n this._context.registry('KEY_BUFFER', XgBuffer)()\n this._tsloader.buffer = 'DECRYPT_BUFFER'\n this._keyLoader = this._context.registry('KEY_LOADER', Loader)({ buffer: 'KEY_BUFFER', readtype: 3 })\n this.emitTo('KEY_LOADER', LOADER_EVENTS.LADER_START, this._playlist.encrypt.uri, fetchOptions)\n } else {\n if (!this.preloadTime) {\n if (this._playlist.targetduration) {\n this.preloadTime = this._playlist.targetduration\n this.mse.preloadTime = this._playlist.targetduration\n } else {\n this.preloadTime = 5\n this.mse.preloadTime = 5\n }\n }\n\n const frag = this._playlist.getTs(this._player.currentTime * 1000)\n if (frag) {\n this._logDownSegment(frag)\n this._playlist.downloading(frag.url, true)\n this.emitTo('TS_LOADER', LOADER_EVENTS.LADER_START, frag.url, fetchOptions)\n } else {\n if (this.retrytimes > 0) {\n this.retrytimes--\n this.emitTo('M3U8_LOADER', LOADER_EVENTS.LADER_START, this.url, fetchOptions)\n }\n }\n }\n } else if (buffer.TAG === 'TS_BUFFER') {\n this._playlist.downloaded(this._tsloader.url, true)\n this._demuxer.demux(Object.assign({ url: this._tsloader.url }, this._playlist._ts[this._tsloader.url]))\n this._preload(this._player.currentTime)\n // this.emit(DEMUX_EVENTS.DEMUX_START, Object.assign({url: this._tsloader.url}, this._playlist._ts[this._tsloader.url]));\n } else if (buffer.TAG === 'DECRYPT_BUFFER') {\n this.retrytimes = this._pluginConfig.retrytimes || 3\n this._playlist.downloaded(this._tsloader.url, true)\n this.emitTo('CRYPTO', CRYPTO_EVENTS.START_DECRYPTO, Object.assign({ url: this._tsloader.url }, this._playlist._ts[this._tsloader.url]))\n } else if (buffer.TAG === 'KEY_BUFFER') {\n this.retrytimes = this._pluginConfig.retrytimes || 3\n this._playlist.encrypt.key = buffer.shift()\n this._crypto = this._context.registry('CRYPTO', Crypto)({\n key: this._playlist.encrypt.key,\n iv: this._playlist.encrypt.ivb,\n method: this._playlist.encrypt.method,\n inputbuffer: 'DECRYPT_BUFFER',\n outputbuffer: 'TS_BUFFER'\n })\n\n this._crypto.on(CRYPTO_EVENTS.DECRYPTED, this._onDcripted.bind(this))\n\n const frag = this._playlist.getTs()\n if (frag) {\n this._playlist.downloading(frag.url, true)\n this.emitTo('TS_LOADER', LOADER_EVENTS.LADER_START, frag.url, fetchOptions)\n } else {\n if (this.retrytimes > 0) {\n this.retrytimes--\n this.emitTo('M3U8_LOADER', LOADER_EVENTS.LADER_START, this.url, fetchOptions)\n }\n }\n }\n }\n\n _onDcripted () {\n this.emit(DEMUX_EVENTS.DEMUX_START)\n }\n\n seek (time) {\n const { video } = this._player\n for (let i = 0; i < video.buffered.length; i++) {\n if (time >= video.buffered.start(i) && time < video.buffered.end(i)) {\n // this._playlist.clearDownloaded();\n return\n }\n }\n\n this._lastSeekTime = time\n this._tsloader.destroy()\n this._tsloader = this._context.registry('TS_LOADER', Loader)({ buffer: 'TS_BUFFER', readtype: 3 })\n if (this._presource.sources.video) {\n this._presource.sources.video.data = []\n }\n if (this._presource.sources.audio) {\n this._presource.sources.audio.data = []\n }\n if (this._tracks.audioTrack) {\n this._tracks.audioTrack.samples = []\n }\n if (this._tracks.audioTrack) {\n this._tracks.videoTrack.samples = []\n }\n\n if (this._compat) {\n this._compat.reset()\n }\n\n if (this._tsBuffer) {\n this._tsBuffer.array = []\n this._tsBuffer.length = 0\n this._tsBuffer.offset = 0\n }\n\n this._playlist.clearDownloaded()\n this._context.seek(time)\n this._preload(time)\n }\n\n load (url) {\n const { fetchOptions = {} } = this._pluginConfig\n this.baseurl = M3U8Parser.parseURL(url)\n this.url = url\n this.emitTo('M3U8_LOADER', LOADER_EVENTS.LADER_START, url, fetchOptions)\n }\n\n _preload (time) {\n time = Math.floor(time)\n if (this._tsloader.loading) {\n return\n }\n const video = this._player.video\n const { fetchOptions = {} } = this._pluginConfig\n\n // Get current time range\n let currentbufferend = -1\n\n for (let i = 0; i < video.buffered.length; i++) {\n if (time >= video.buffered.start(i) && time < video.buffered.end(i)) {\n currentbufferend = video.buffered.end(i)\n }\n }\n\n if (currentbufferend < 0) {\n let frag = this._playlist.getTs((time > 1 ? time - 0.5 : time) * 1000) // FIXME: Last frame buffer shortens duration\n if (frag && frag.downloaded) {\n frag = this._playlist.getTs(frag.time + frag.duration)\n }\n if (frag && !frag.downloading && !frag.downloaded) {\n this._logDownSegment(frag)\n this._playlist.downloading(frag.url, true)\n this.emitTo('TS_LOADER', LOADER_EVENTS.LADER_START, frag.url, fetchOptions)\n }\n } else if (currentbufferend < video.currentTime + this.preloadTime) {\n let frag = this._playlist.getLastDownloadedTs() || this._playlist.getTs(currentbufferend * 1000)\n\n if (!frag) {\n return\n }\n\n // let fragend = frag ? (frag.time + frag.duration) / 1000 : 0;\n\n let curTime = frag.time + frag.duration\n const curFragTime = frag.time\n\n if (frag.downloaded) {\n let loopMax = 1000\n while (loopMax-- > 0) {\n curTime += 10\n frag = this._playlist.getTs(curTime)\n if (!frag || frag.time > curFragTime) {\n break\n }\n }\n }\n\n if (frag && !frag.downloading && !frag.downloaded) {\n this._logDownSegment(frag)\n this._playlist.downloading(frag.url, true)\n this.emitTo('TS_LOADER', LOADER_EVENTS.LADER_START, frag.url, fetchOptions)\n }\n }\n }\n\n _logDownSegment (frag) {\n if (!frag) return\n logger.groupEnd()\n logger.group(this.TAG, `load ${frag.id}: [${frag.time / 1000} , ${(frag.time + frag.duration) / 1000}], downloading: ${frag.downloading} , donwloaded: ${frag.downloaded}`)\n }\n\n destroy () {\n this.url = ''\n this.baseurl = ''\n this.sequence = 0\n this._playlist = null\n this.retrytimes = 3\n this.preloadTime = 5\n this._demuxer = null\n this._lastSeekTime = 0\n this.m3u8Text = null\n this.mse = null\n\n this.off(LOADER_EVENTS.LOADER_COMPLETE, this._onLoaderCompete)\n\n this.off(LOADER_EVENTS.LOADER_ERROR, this._onLoadError)\n\n this.off(REMUX_EVENTS.INIT_SEGMENT, this._onInitSegment)\n\n this.off(DEMUX_EVENTS.SEI_PARSED, this._handleSEIParsed)\n\n this.off(REMUX_EVENTS.MEDIA_SEGMENT, this._onMediaSegment)\n\n this.off(DEMUX_EVENTS.METADATA_PARSED, this._onMetadataParsed)\n\n this.off(DEMUX_EVENTS.DEMUX_COMPLETE, this._onDemuxComplete)\n\n this.off(DEMUX_EVENTS.DEMUX_ERROR, this._onDemuxError)\n\n this.off(REMUX_EVENTS.REMUX_ERROR, this._onRemuxError)\n\n this._player.off('timeupdate', this._onTimeUpdate)\n }\n}\nexport default HlsVodController\n","import { Events, BasePlugin } from 'xgplayer'\nimport { EVENTS, Context, common } from 'xgplayer-helper-utils'\nimport HlsVodController from './hls-vod'\n\nconst { debounce } = common\n\nconst HlsAllowedEvents = EVENTS.HlsAllowedEvents\nconst HLS_EVENTS = EVENTS.HLS_EVENTS\nconst MSE_EVENTS = EVENTS.MSE_EVENTS\n\nclass HlsVodPlayer extends BasePlugin {\n static get pluginName () {\n return 'hlsVod'\n }\n\n static get defaultConfig () {\n return {\n preloadTime: 5,\n retryTimes: 3\n }\n }\n\n constructor (options) {\n super(options)\n this._handleSetCurrentTime = debounce(this._handleSetCurrentTime.bind(this), 200)\n this.destroy = this.destroy.bind(this)\n this.handleDefinitionChange = this.handleDefinitionChange.bind(this)\n this.handleUrlChange = this.handleUrlChange.bind(this)\n this.replay = this.replay.bind(this)\n }\n\n beforePlayerInit () {\n if (!this._context) {\n this._context = new Context(this.player, this.config, HlsAllowedEvents)\n }\n this.hls = this._context.registry('HLS_VOD_CONTROLLER', HlsVodController)()\n this._context.init()\n this.hls.load(this.player.config.url)\n this.__initEvents()\n this.emit('core_inited', this.hls)\n try {\n BasePlugin.defineGetterOrSetter(this.player, {\n __url: {\n get: () => {\n return this.hls.mse.url\n }\n }\n })\n } catch (e) {\n // NOOP\n }\n }\n\n handleUrlChange (url) {\n this.hls.mse.destroy().then(() => {\n this.player.config.url = url\n this._context.destroy()\n this._context = null\n this.player.video.src = ''\n this.player.video.load()\n this.player.hasStart = false\n this.player.start()\n })\n }\n\n handleDefinitionChange (change) {\n const { to } = change\n this.handleUrlChange(to)\n }\n\n _handleSetCurrentTime () {\n const time = parseFloat(this.player.video.currentTime)\n if (this._context) {\n this.hls.seek(time)\n }\n }\n\n play () {\n return this.player.play().catch((e) => {\n if (e && e.code === 20) { // fix: chrome The play() request was interrupted by a new load request.\n this.player.once('canplay', () => {\n this.player.play()\n })\n }\n })\n }\n\n __initEvents () {\n this.hls.once(HLS_EVENTS.RETRY_TIME_EXCEEDED, () => {\n this.emit('error', new Player.Errors('network', this.config.url))\n })\n\n this.hls.on(MSE_EVENTS.SOURCE_UPDATE_END, () => {\n this._onSourceUpdateEnd()\n })\n\n this.once('canplay', () => {\n if (this.config && this.config.autoplay) {\n this.play()\n }\n const { config } = this.player\n if (config && config.startTime) {\n this.player.currentTime = config.startTime\n }\n })\n\n this.on(Events.SEEKING, this._handleSetCurrentTime)\n this.on(Events.URL_CHANGE, this.handleUrlChange)\n this.on(Events.DESTROY, this.destroy)\n this.on(Events.REPLAY, this.replay)\n }\n\n replay () {\n this.hls.mse.cleanBuffers().then(() => {\n this.player.pause()\n this.hls._compat.reset()\n this.hls._playlist.clearDownloaded()\n this.hls.seek(0)\n })\n }\n\n initHlsBackupEvents (hls, ctx) {\n hls.once(EVENTS.REMUX_EVENTS.INIT_SEGMENT, () => {\n if (!this.player.video.src) {\n const mse = hls.mse\n this.player.start(mse.url)\n }\n })\n hls.once(EVENTS.REMUX_EVENTS.MEDIA_SEGMENT, () => {\n this.hls = hls\n\n this.hls.mse.cleanBuffers().then(() => {\n this.hls.mse.resetContext(ctx)\n this.hls.mse.doAppend()\n this._context.destroy()\n this._context = ctx\n this.emit('core_inited', hls)\n })\n })\n\n hls.once(EVENTS.LOADER_EVENTS.LOADER_ERROR, () => {\n ctx.destroy()\n })\n }\n\n _onSourceUpdateEnd () {\n if (this.player.video.readyState === 1 || this.player.video.readyState === 2) {\n const { gap, start, method } = this.detectBufferGap()\n if (gap) {\n if (method === 'ceil' && this.player.currentTime < Math[method](start)) {\n this.player.currentTime = Math[method](start)\n } else if (method === 'floor' && this.player.currentTime > Math[method](start)) {\n this.player.currentTime = Math[method](start)\n }\n }\n }\n }\n\n switchURL (url) {\n this.config.url = url\n const context = new Context(HlsAllowedEvents)\n const hls = context.registry('HLS_VOD_CONTROLLER', HlsVodController)()\n context.init()\n this.initHlsBackupEvents(hls, context)\n this.hls.mse.cleanBuffers().then(() => {\n hls.load(url)\n })\n }\n\n destroy () {\n return new Promise((resolve) => {\n if (this._context) {\n this._context.destroy()\n }\n if (this.hls.mse) {\n this.hls.mse.destroy().then(() => {\n super.destroy && super.destroy()\n setTimeout(() => {\n resolve()\n }, 50)\n })\n } else {\n super.destroy && super.destroy()\n setTimeout(() => {\n resolve()\n }, 50)\n }\n })\n }\n\n detectBufferGap () {\n const { video } = this.player\n let result = {\n gap: false,\n start: -1\n }\n for (let i = 0; i < video.buffered.length; i++) {\n const bufferStart = video.buffered.start(i)\n const bufferEnd = video.buffered.end(i)\n if (!video.played.length || (bufferStart <= this.currentTime && bufferEnd - this.currentTime >= 0.5)) {\n break\n }\n const startGap = bufferStart - this.currentTime\n const endGap = this.currentTime - bufferEnd\n if (startGap > 0.01 && startGap <= 2) {\n result = {\n gap: true,\n start: bufferStart,\n method: 'ceil'\n }\n break\n } else if (endGap > 0.1 && endGap <= 2) {\n result = {\n gap: true,\n start: bufferEnd,\n method: 'floor'\n }\n } else {\n result = {\n gap: false,\n start: -1\n }\n }\n }\n\n return result\n }\n\n get core () {\n return this.hls\n }\n\n get context () {\n return this._context\n }\n\n static isSupported () {\n return window.MediaSource &&\n window.MediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"')\n }\n}\n\nexport default HlsVodPlayer\n"],"names":["global","fails","require$$0","getOwnPropertyDescriptor","createPropertyDescriptor","classofRaw","classof","require$$1","requireObjectCoercible","IndexedObject","toIndexedObject","isObject","toPrimitive","toObject","has","document","documentCreateElement","DESCRIPTORS","createElement","require$$2","propertyIsEnumerableModule","require$$3","require$$4","require$$5","IE8_DOM_DEFINE","require$$6","anObject","definePropertyModule","createNonEnumerableProperty","setGlobal","store","inspectSource","WeakMap","sharedModule","uid","shared","sharedKey","hiddenKeys","require$$7","set","InternalStateModule","getInternalState","redefineModule","path","aFunction","getBuiltIn","floor","toInteger","min","toLength","max","toAbsoluteIndex","createMethod","enumBugKeys","internalObjectKeys","getOwnPropertySymbolsModule","ownKeys","copyConstructorProperties","isForced","redefine","redefineAll","aPossiblePrototype","userAgent","process","V8_VERSION","NATIVE_SYMBOL","Symbol","wellKnownSymbol","defineProperty","TO_STRING_TAG","setToStringTag","SPECIES","setSpecies","anInstance","Iterators","ITERATOR","ArrayPrototype","isArrayIteratorMethod","test","getIteratorMethod","iteratorClose","bind","iterate","checkCorrectnessOfIteration","speciesConstructor","html","IS_IOS","IS_NODE","task","Promise","notify","microtask","newPromiseCapability","promiseResolve","hostReportErrors","perform","$","setPrototypeOf","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","setInternalState","TypeError","FORCED","fn","wait","lastTime","Date","now","timer","isFirstTime","_len","arguments","length","args","Array","_key","apply","window","clearTimeout","setTimeout","fixedFloat","num","fixed","parseFloat","Number","toFixed","webAudioEnable","webglEnable","AudioContext","webkitAudioContext","ctx","close","e","cvs","validContextNames","i","glCtx","getContext","WebComponentSupported","customElements","define","isComponentDefined","mVideo","get","isSupported","objectKeys","defineProperties","IE_PROTO","create","addToUnscopables","getPrototypeOf","BUGGY_SAFARI_ITERATORS","returnThis","IteratorPrototype","createIteratorConstructor","defineIterator","BROWSER_EVENTS","VISIBILITY_CHANGE","PLAYER_EVENTS","SEEK","LOADER_EVENTS","LADER_START","LOADER_DATALOADED","LOADER_COMPLETE","LOADER_RESPONSE_HEADERS","LOADER_ERROR","LOADER_RETRY","LOADER_TTFB","DEMUX_EVENTS","DEMUX_START","DEMUX_COMPLETE","DEMUX_ERROR","METADATA_PARSED","SEI_PARSED","VIDEO_METADATA_CHANGE","AUDIO_METADATA_CHANGE","MEDIA_INFO","ISKEYFRAME","REMUX_EVENTS","REMUX_METADATA","REMUX_MEDIA","MEDIA_SEGMENT","REMUX_ERROR","INIT_SEGMENT","DETECT_CHANGE_STREAM","DETECT_CHANGE_STREAM_DISCONTINUE","DETECT_AUDIO_GAP","DETECT_LARGE_GAP","DETECT_AUDIO_OVERLAP","RANDOM_ACCESS_POINT","DETECT_FRAG_ID_DISCONTINUE","MSE_EVENTS","SOURCE_UPDATE_END","MSE_ERROR","MSE_WRONG_TRACK_ADD","HLS_EVENTS","RETRY_TIME_EXCEEDED","CRYPTO_EVENTS","START_DECRYPTOO","DECRYPTED","ALLEVENTS","Object","assign","FlvAllowedEvents","HlsAllowedEvents","key","hasOwnProperty","push","arrayMethodIsStrict","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","enumerable","configurable","writable","_createClass","protoProps","staticProps","prototype","Playlist","configs","_baseURL","_list","_ts","version","sequence","targetduration","duration","fragLength","_lastget","undefined","end","autoclear","logger","downloadedUrls","baseURL","clear","value","tsURL","discontinue","id","cc","isLast","downloaded","downloading","start","deleteFrag","url","time","pushM3U8","data","deletepre","Error","encrypt","len","frags","log","concat","newfraglist","frag","indexOf","tslist","getTsList","_i","keys","tsname","isloaded","ts","loading","getTsByName","name","getTs","timelist","sort","a","b","parseInt","getLastDownloadedTs","result","found","clearDownloaded","list","l","destroy","resetSequence","RemuxedBuffer","mimetype","init","bufferDuration","RemuxedBufferManager","sources","getSource","createSource","XGDataView","buffer","ArrayBuffer","dataview","DataView","position","byteLength","back","count","skip","loop","Math","last","readByte","readUint8","readUint16","readUint24","readUint32","readUint64","readInt8","readInt16","readInt32","writeUint32","Uint8Array","size","sign","res","getInt8","getUint8","getInt16","getUint16","getInt32","getUint32","_typeof","obj","iterator","constructor","_inherits","subClass","superClass","_setPrototypeOf","o","p","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","NewTarget","Reflect","construct","_possibleConstructorReturn","self","call","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","Track","sequenceNumber","samples","droppedSamples","reset","AudioTrack","_Track","_super","_this","TAG","type","VideoTrack","_Track2","_super2","_this2","dropped","XgBuffer","historyLen","array","offset","shift","_shiftBuffer","_ret","slice","_ret2","ret","tmpoff","tmp","templength","toInt","retInt","AudioTrackMeta","meta","_default","sampleRate","channelCount","codec","config","refSampleDuration","sampleRateIndex","timescale","VideoTrackMeta","avcc","sps","pps","chromaFormat","codecHeight","codecWidth","frameRate","fps","fps_num","fps_den","level","presentHeight","presentWidth","profile","parRatio","height","width","AudioSample","info","getDefault","dts","pts","originDts","VideoSample","sample","isKeyframe","nals","isObjectFilled","MediaInfo","mimeType","hasVideo","video","hasAudio","audio","isComplete","isBaseInfoReady","isVideoReady","isAudioReady","mediaInfo","TsFrag","merged","_get","property","receiver","base","_superPropBase","desc","object","DIRECT_EMIT_FLAG","Context","player","allowedEvents","_emitter","EventEmitter","off","removeListener","_instanceMap","_clsMap","_inited","_configs","_player","_hooks","getInstance","tag","initInstance","c","d","newInstance","registry","cls","emitter","checkMessageName","_isMessageNameValid","enhanced","_cls","listeners","onceListeners","_context","on","messageName","callback","before","once","emit","beforeList","_len2","_key2","emitTo","_len3","_key3","removeListeners","hasOwn","callbacks","_messageName","_callbacks","_callback","v","_len4","_key4","seek","EVENTS","destroyInstances","_this3","forEach","removeAllListeners","Crypto","inputBuffer","inputbuffer","outputBuffer","outputbuffer","iv","method","crypto","msCrypto","START_DECRYPTO","decrypto","aeskey","sbkey","subtle","importKey","then","decryptoData","decrypt","charAt","callWithSafeIterationClosing","createProperty","arrayFrom","getIterator","USE_NATIVE_URL","Headers","replace","URLSearchParams","MSE","context","container","format","mediaSource","sourceBuffers","preloadTime","onSourceOpen","onTimeUpdate","onUpdateEnd","onWaiting","opened","MediaSource","addEventListener","_url","resetContext","newCtx","keepBuffer","updating","clearBuffer","addSourceBuffers","doAppend","readyState","tracks","track","add","k","audioTrack","videoTrack","_k","_type","source","mime","sourceBuffer","addSourceBuffer","code","message","sourceBufferLen","_doCleanupSourceBuffer","inited","appendBuffer","unshift","endOfStream","remove","currentTime","autoCleanupMinBackwardDuration","_pendingRemoveRanges","buffered","doRemove","j","removeEnd","_doRemoveRanges","sb","ranges","range","cleanBuffers","taskList","_loop","resolve","doCleanBuffer","retryTime","clean","removeEventListener","all","removeBuffers","_loop2","removeSourceBuffer","URL","revokeObjectURL","noaudio","novideo","createObjectURL","val","bEnd","Speed","_firstCheckpoint","_lastCheckpoint","_intervalBytes","_lastSamplingBytes","_now","addBytes","bytes","durationSeconds","currentKBps","READ_STREAM","READ_TEXT","READ_JSON","READ_BUFFER","FetchLoader","status","error","_reader","_canceled","_destroyed","readtype","_loaderTaskNo","_ttfb","_speed","AbortController","abortControllerEnabled","load","_fetch","fetch","_x","_x2","_x3","toString","params","timeout","abortController","signal","performance","race","reject","abort","response","internalLoad","retryTimes","totalRetry","delayTime","headers","ok","_onFetchResponse","_retryTimer","reason","statusText","opts","getParams","_this4","taskno","json","text","arrayBuffer","_onReader","body","getReader","reader","_this5","cancel","_noDataTimer","read","done","options","mode","cache","configHeaders","append","optHeaders","cors","withCredentials","credentials","lastSamplingKBps","DEFAULT_TIMEOUT_IMMS","XhrLoader","_xhr","_readtype","_bufferType","_requestInfo","_onReadyStateChange","_onError","_onAbort","_onTimeout","_createXhr","xhr","XMLHttpRequest","ActiveXObject","_bindEvents","_loadInternal","_whenError","open","_setTimeout","_setCredentails","_setHeaders","_setResponseType","send","setRequestHeader","responseType","_this$_xhr","_onComplete","JSON","parse","responseText","bufferIns","err","console","warn","_this$_requestInfo","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","n","from","iter","isArray","arr2","DevLogger","matched","exec","cookie","_status","_level","funName","arg1","arg2","arg3","arg4","arg5","arg6","arg7","arg8","arg9","arg10","_console","tagName","filter","x","AAC","getSilentFrame","ADTS","isHeader","isHeaderPattern","getFrameDuration","samplerate","getHeaderLength","getFullFrameLength","parseFrameHeader","frameIndex","frameDuration","headerLength","frameLength","stamp","appendFrame","header","aacSample","unit","subarray","Golomb","uint8array","_buffer","_bufferIndex","_totalBytes","_totalBits","_currentWord","_currentWordBitsLeft","_fillCurrentWord","bufferBytesLeft","bytesRead","word","readBits","bits","valu","readBool","_skipLeadingZero","zeroCount","readUEG","leadingZeros","readSEG","readSliceType","SPSParser","_ebsp2rbsp","src","srcLength","dst","dstIdx","parseSPS","rbsp","gb","profileIdc","levelIdc","profile_string","getProfileString","level_string","getLevelString","chroma_format_idc","chroma_format","chroma_format_table","bit_depth","scaling_list_count","_skipScalingList","pic_order_cnt_type","num_ref_frames_in_pic_order_cnt_cycle","pic_width_in_mbs_minus1","pic_height_in_map_units_minus1","frame_mbs_only_flag","frame_crop_left_offset","frame_crop_right_offset","frame_crop_top_offset","frame_crop_bottom_offset","frame_cropping_flag","par_width","par_height","fps_fixed","vui_parameters_present_flag","aspect_ratio_idc","par_w_table","par_h_table","num_units_in_tick","time_scale","parScale","crop_unit_x","crop_unit_y","sub_wc","sub_hc","codec_width","codec_height","present_width","ceil","chroma_format_string","getChromaFormatString","frame_rate","par_ratio","codec_size","present_size","lastScale","nextScale","deltaScale","chroma","toVideoMeta","spsConfig","bitDepth","fpsDen","fpsNum","RBSP","EBSP2RBSP","el","idx","EBSP2SODB","lastByte","u8aToString","String","fromCharCode","SEIParser","_resolveNalu","sodb","_SEIParser$switchPayl","switchPayloadType","payloadType","content","user_data_unregistered","dv","getPayloadLength","payloadLength","_SEIParser$getPayload","uuid","payload","Nalunit","getNalunits","buf","getAnnexbNals","getAvccNals","getHeaderPositionAnnexB","pos","analyseNal","ndr","idr","sei","SpsParser","bufferLen","getAvcc","maxSubLayersMinus1","separate_colour_plane_flag","chromaFormatIdc","conf_win_left_offset","conf_win_right_offset","conf_win_top_offset","conf_win_bottom_offset","conformanceWindowFlag","bitDepthLumaMinus8","bitDepthChromaMinus8","sub_width_c","sub_height_c","profileTierLevel","vpsId","tINf","_readProfileTierLevel","spsId","general_profile_space","general_tier_flag","general_profile_idc","general_level_idc","subLayerProfilePresentFlag","subLayerLevelPresentFlag","getHvccNals","slice_trail_n","slice_trail_r","slice_tsa_n","slice_tsa_r","slice_stsa_n","slice_stsa_r","slice_radl_n","slice_radl_r","slice_rasl_n","slice_rasl_r","slice_bla_w_lp","slice_bla_w_radl","slice_bla_n_lp","slice_idl_w_radl","slice_idr_n_lp","slice_cra_nut","vps","aud","eob","fd","caculate","common","Compatibility","nextAudioDts","nextVideoDts","lastAudioSamplesLen","lastVideoSamplesLen","lastVideoDts","lastAudioDts","allAudioSamplesCount","allVideoSamplesCount","_firstAudioSample","_firstVideoSample","filledAudioSamples","filledVideoSamples","_lastSegmentId","_currentSegmentId","videoLastSample","audioLastSample","_videoLargeGap","___videoLargeGap","_audioLargeGap","___audioLargeGap","audioUnsyncTime","doFix","_isSegmentsContinuous","ops","vSamp0","aSamp0","avDelta","_this$getFirstSample","getFirstSample","isFirstAudioSamples","isFirstVideoSamples","recordSamplesCount","fixVideoRefSampleDuration","_Compatibility$detect","detectChangeStream","videoChanged","changed","videoChangedIdxes","changedIdxes","disContinue","fixChangeStreamVideo","doFixVideo","_appendSampleForLastSegment","_Compatibility$detect2","audioChanged","audioChangedIdxes","_disContinue","fixChangeStreamAudio","doFixAudio","removeInvalidSamples","first","streamChangeStart","_this$videoTrack","videoSamples","originPts","firstSample","detectVideoLargeGap","doFixLargeGap","preVideoGap","prevDts","curDts","videoFirstDts","audioFirstDts","gap","fillCount","_i2","clonedFirstSample","cts","abs","segLen","_i3","pre","curLastSample","pop","_sample","refDuration","_i4","sam","_this$audioTrack","audioSamples","fixAudioRefSampleDuration","samplesLen","silentFrame","iRefSampleDuration","_firstSample","audioDtsBase","detectAudioLargeGap","preAudioGap","lastAudioOriginDts","isContinue","videoFirstPts","_gap","silentSampleCount","_i5","silentSample","datasize","filtered","firstDts","absGap","silentFrameCount","_i6","computed","_silentSample","nextDts","_i7","_sample2","delta","splice","missingCount","round","_silentSample2","unSyncDuration","_lastSample","lastSample","lastDuration","sortAudioSamples","changeIdx","getStreamChangeStart","firstPartSamples","secondPartSamples","changeSample","videoDtsBase","cacheNextAudioDts","findFirstVideoSample","findFirstAudioSample","allSamplesCount","filledSamplesCount","isRefSampleDurationValid","lastDts","_lastDts","_firstDts","durationAvg","_fixed","firstAudioSample","firstVideoSample","index","dtsBase","Infinity","remuxer","_dtsBase","_audioDtsBase","_videoDtsBase","isNaN","sorted","firstSampleDts","isFirst","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_d","_s","_e","next","NalUnit","avc","NalUnitHEVC","hevc","StreamType","TsDemuxer","_EventEmitter","_ref","demuxing","pat","pmt","_hasVideoMeta","_hasAudioMeta","gopId","demux","isVod","peses","tsStream","pes","pid","streamType","ES","stream","AudioOptions","VideoOptions","noAudio","noVideo","epeses","cPes","isAAC","mergeAudioES","pushAudioSample","mergeVideoES","pushVideoSampleHEVC","pushVideoSample","audioSampleRate","frequence","channel","audioObjectType","originCodec","originAudioObjectType","originObjectType","audioConfig","frequencyIndex","metaEqual","compareMeta","pesHeaderLength","streamChanged","frame","AUDIO_SAMPLE_PARSED","sampleLength","seiList","nal","h","sarRatio","sar_ratio","_nal","purePts","firstInGop","VIDEO_SAMPLE_PARSED","hasVPS","hasSPS","hasPPS","_nal2","compareArray","al","bl","ignoreDuration","itema","itemb","buffers","readHeader","readPayload","packet","unknownPIDs","PES","PAT","CAT","TSDT","isPMT","PMT","sts","Media","sync","priority","scrambling","adaptation","continuity","tabelID","zero","sectionLength","streamID","current","sectionNumber","lastSectionNumber","N","programNumber","program","tableID","order","lastOrder","PCR_PID","programLength","es","map","item","_StreamType$streamTyp","adaptationLength","access","PCR","OPCR","splicePoint","transportPrivate","adaptationField","_start","programClockBase","programClockExtension","originProgramClockBase","originProgramClockExtension","spliceCountdown","transportPrivateData","_length","_next","ltw","piecewise","seamless","ltwValid","ltwOffset","piecewiseRate","spliceType","dtsNextAU1","marker1","dtsNextAU2","marker2","dtsNextAU3","lastStuffing","packetLength","_next2","ptsDTSFlag","escrFlag","esRateFlag","dsmFlag","additionalFlag","crcFlag","extensionFlag","N1","escr","ex","esRate","additionalCopyInfo","pesCRC","parseADTSHeader","fq","layer","absent","getAudioConfig","sectionIndicator","currentNextIndicator","crc32","navigator","toLowerCase","extensionSampleIndex","demuxer","initDemuxer","Demuxer","onMetaDataParsed","onVideoSampleParsed","onAudioSampleParsed","_tracks","_this$_tracks","regexpFlags","regexpExec","advanceStringIndex","getSubstitution","M3U8Parser","baseurl","split","refs","ref","match","nextDiscontinue","nextId","refm","refd","parseFrag","parseDecrypt","nextline","isHTTPS","envisHttps","location","href","parseURL","urls","cmd","uri","ivb","im","substr","httpsUrlRegex","Buffer","write","Concat","readAsInt","temp","padStart4Hex","hexNum","hexStr","padStart","Fmp4","initBox","extension","flag","ftyp","ftypHEVC","moov","mvhd","trak","videoTrak","audioTrak","mvex","tkhd","mdia","edts","mediaTime","mdhd","hdlr","minf","vmhd","smhd","dinf","stbl","dref","stsd","stts","stsc","stsz","stco","mp4a","hvc1","avc1","esds","configlen","hSpacing","vSpacing","btrt","pasp","trackID","mehd","trex","moof","mfhd","traf","tfhd","tfdt","sdtp","trun","sdtpLength","sampleCount","flags","isLeading","dependsOn","isDependedOn","hasRedundancy","isNonSync","mdat","mdatBox","charCodeAt","Mp4Remuxer","videoMeta","audioMeta","curTime","_videoMeta","_audioMeta","_isDtsBaseInited","isFirstVideo","isFirstAudio","videoAllDuration","audioAllDuration","audioRemuxed","videoRemuxed","mp4Durations","remux","calcDtsBase","remuxVideo","remuxAudio","groupEnd","resetDtsBase","remuxInitSegment","initSegment","audioBase","videoBase","_firstSample2","mp4Samples","maxLoop","avcSample","mdatSample","sampleDuration","moofMdat","segmentRemuxed","TRACK_REMUXED","_ref2","isFirstDtsInited","refSampleDurationFixed","mp4Sample","_curTime","onMetaDataReady","initRemuxer","Remuxer","writeToSource","onTrackRemuxed","_this$_context$getIns","_this$_context$getIns2","_this$_context$getIns3","presourcebuffer","Loader","HLS_ERROR","HlsVodController","mse","_playlist","_lastSeekTime","m3u8Text","_tsBuffer","Tracks","_presource","_compat","_tsloader","_demuxer","retrytimes","_pluginConfig","Mse","initEvents","_onLoaderCompete","_onLoadError","_onInitSegment","_handleSEIParsed","_onMediaSegment","_onMetadataParsed","_onDemuxComplete","_onDemuxError","_onRemuxError","_onTimeUpdate","_handleKeyFrame","_onSourceUpdateEnd","mod","fatal","errorType","errorDetails","errorFatal","errd","_preload","fetchOptions","mdata","_keyLoader","_logDownSegment","_crypto","_onDcripted","currentbufferend","curFragTime","loopMax","group","debounce","HlsVodPlayer","BasePlugin","pluginName","defaultConfig","_handleSetCurrentTime","handleDefinitionChange","handleUrlChange","replay","beforePlayerInit","hls","__initEvents","defineGetterOrSetter","__url","hasStart","change","to","play","catch","Player","Errors","autoplay","startTime","Events","SEEKING","URL_CHANGE","DESTROY","REPLAY","pause","initHlsBackupEvents","detectBufferGap","switchURL","bufferStart","bufferEnd","played","startGap","endGap","core","isTypeSupported"],"mappings":"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KAAK,CAA9C,KAAoDD,0BAA0B,KAAK,CAAnF,GAAuF,CAAvF,GAA2F,CAAzG;CACAU,QAAAA,YAAY,GAAGT,eAAe,KAAK,CAApB,IAAyBD,0BAA0B,KAAK,CAAxD,GAA4D,CAA5D,GAAgE,CAA/E;CACAje,QAAAA,KAAK,IAAI0e,WAAW,GAAGN,qBAAd,GAAsCM,WAAW,GAAGP,oBAA7D;CACApe,QAAAA,MAAM,IAAI4e,YAAY,GAAGL,sBAAf,GAAwCK,YAAY,GAAGN,mBAAjE;CACD;;CAEDlG,MAAAA,EAAE,CAACtgB,OAAH;CACAsgB,MAAAA,EAAE,GAAG,IAAL;CACA,aAAO;CACLnY,QAAAA,KAAK,EAAEA,KADF;CAELD,QAAAA,MAAM,EAAEA,MAFH;CAGLkf,QAAAA,qBAAqB,EAAEL,gBAAgB,CAACK,qBAHnC;CAILC,QAAAA,iBAAiB,EAAEN,gBAAgB,CAACM,iBAJ/B;CAKLC,QAAAA,mBAAmB,EAAEP,gBAAgB,CAACO,mBALjC;CAMLC,QAAAA,iBAAiB,EAAER,gBAAgB,CAACQ,iBAN/B;CAOLlB,QAAAA,eAAe,EAAEA,eAPZ;CAQLM,QAAAA,kBAAkB,EAAEA,kBARf;CASLC,QAAAA,oBAAoB,EAAEA;CATjB,OAAP;CAWD,KAlFA;CAmFD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;C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"}