{"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('mobile-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};\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) {\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 };\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);\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 };\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 var readyState = this.mediaSource.readyState;\n\n if (readyState === 'open') {\n try {\n this.mediaSource.endOfStream();\n } catch (e) {// log\n }\n }\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._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 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 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 });\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 par_height = 1;\n var fps = 0,\n fps_fixed = true,\n fps_num = 0,\n 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 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 maxSubLayersMinus1 = 0,\n tINf = 0,\n spsId = 0,\n separate_colour_plane_flag = 0,\n chromaFormatIdc = 0,\n width = 0,\n height = 0,\n conf_win_left_offset = 0,\n conf_win_right_offset = 0,\n conf_win_top_offset = 0,\n conf_win_bottom_offset = 0,\n conformanceWindowFlag = 0,\n bitDepthLumaMinus8 = 0,\n bitDepthChromaMinus8 = 0,\n sub_width_c = 0,\n sub_height_c = 0,\n 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 = (1 === chromaFormatIdc || 2 === chromaFormatIdc) && 0 === separate_colour_plane_flag ? 2 : 1;\n sub_height_c = 1 === chromaFormatIdc && 0 === separate_colour_plane_flag ? 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._currentSegmentId - this._lastSegmentId === 1;\n }\n }, {\n key: \"doFix\",\n value: function doFix() {\n var ops;\n var vSamp0;\n var aSamp0;\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 } // 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 logger.log(this.TAG, 'fix video for _isSegmentsContinuous()');\n this.videoLastSample = null;\n this.doFixVideo(isFirstVideoSamples, ops.start);\n this.emit(REMUX_EVENTS.DETECT_FRAG_ID_DISCONTINUE, ops.start / 1000);\n } else {\n this.doFixVideo(isFirstVideoSamples);\n }\n }\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 = null;\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)); // !first: 非首次加载的分片\n\n if (!first && this.videoLastSample === null && firstSample.options && firstSample.options.start) {\n if (streamChangeStart !== undefined) {\n streamChangeStart = firstSample.options.start;\n }\n }\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) {\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.originDts || 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: \"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) {\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.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 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 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;\n\n if (ret.ptsDTSFlag === 2) {\n var 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\n if (ret.ptsDTSFlag === 3) {\n var _pts = [];\n _next2 = buffer.readUint8();\n\n _pts.push(_next2 >>> 1 & 0x07);\n\n _next2 = buffer.readUint16();\n\n _pts.push(_next2 >>> 1);\n\n _next2 = buffer.readUint16();\n\n _pts.push(_next2 >>> 1);\n\n ret.pts = _pts[0] << 30 | _pts[1] << 15 | _pts[2];\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 -= 10;\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 >= 6) {\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.TAG = 'TsDemuxer';\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 var existMeta = track.meta;\n track.meta = meta;\n\n if (existMeta) {\n this.emit(type === 'audio' ? DEMUX_EVENTS.AUDIO_METADATA_CHANGE : DEMUX_EVENTS.VIDEO_METADATA_CHANGE);\n } else {\n this.emit(DEMUX_EVENTS.METADATA_PARSED, type, meta);\n }\n }\n }, {\n key: \"onVideoSampleParsed\",\n value: function onVideoSampleParsed(sample) {\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 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._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 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 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: true});\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._onWaiting = this._onWaiting.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(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 this._player.on('waiting', this._onWaiting);\n }\n\n _onError (type, mod, err, fatal) {\n let 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 _onWaiting () {\n let end = true;\n\n this._seekToBufferStart();\n const playList = Object.keys(this._playlist.list)\n const playListLen = playList.length\n if (!playListLen) {\n return;\n }\n\n for (let i = 0; i < playListLen; i++) {\n if (this._player.currentTime * 1000 < parseInt(playList[i])) {\n end = false;\n }\n }\n if (end) {\n let ts = this._playlist.getTs(this._player.currentTime * 1000);\n if (!ts) {\n this._player.emit('ended')\n this.mse.endOfStream();\n } else {\n if (ts.downloaded) {\n this._player.emit('ended')\n this.mse.endOfStream();\n }\n }\n }\n }\n\n _seekToBufferStart () {\n const video = this._player.video;\n let buffered = video.buffered\n let range = [0, 0]\n let currentTime = video.currentTime\n if (buffered) {\n for (let i = 0, len = buffered.length; i < len; i++) {\n range[0] = buffered.start(i)\n range[1] = buffered.end(i)\n if (range[0] <= currentTime && currentTime <= range[1]) {\n return;\n }\n }\n }\n\n const bufferStart = range[0]\n\n if (currentTime === 0 && currentTime < bufferStart && Math.abs(currentTime - bufferStart) < 3) {\n video.currentTime = bufferStart;\n }\n }\n _onTimeUpdate () {\n this._seekToBufferStart();\n this._preload(this._player.currentTime);\n }\n _onDemuxComplete () {\n this.emit(REMUX_EVENTS.REMUX_MEDIA, 'ts')\n }\n\n _handleSEIParsed (sei) {\n this._player.emit('SEI_PARSED', sei)\n }\n\n _onMetadataParsed (type) {\n let 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 _onLoaderCompete (buffer) {\n const {fetchOptions = {}} = this._pluginConfig;\n if (buffer.TAG === 'M3U8_BUFFER') {\n this.m3u8Text = buffer.shift()\n try {\n let 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 let 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 let 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 let 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 + 0.5) * 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 this._player.off('waiting', this._onWaiting);\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","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","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","_speed","AbortController","abortControllerEnabled","load","_fetch","fetch","_x","_x2","_x3","toString","params","timeout","abortController","signal","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","_this$getFirstSample","getFirstSample","isFirstAudioSamples","isFirstVideoSamples","recordSamplesCount","fixVideoRefSampleDuration","_Compatibility$detect","detectChangeStream","videoChanged","changed","videoChangedIdxes","changedIdxes","disContinue","fixChangeStreamVideo","doFixVideo","_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","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","_pts","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","existMeta","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","_onWaiting","mod","fatal","errorType","errorDetails","errorFatal","errd","_seekToBufferStart","playList","playListLen","bufferStart","_preload","fetchOptions","mdata","_keyLoader","_logDownSegment","_crypto","_onDcripted","currentbufferend","curFragTime","loopMax","group","debounce","HlsVodPlayer","BasePlugin","pluginName","defaultConfig","_handleSetCurrentTime","handleDefinitionChange","handleUrlChange","replay","beforePlayerInit","hls","__initEvents","defineGetterOrSetter","hasStart","change","to","play","catch","Player","Errors","_onSourceUpdateEnd","autoplay","startTime","Events","SEEKING","URL_CHANGE","DESTROY","REPLAY","pause","initHlsBackupEvents","detectBufferGap","switchURL","bufferEnd","played","startGap","endGap","core","isTypeSupported"],"mappings":"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CAELD,QAAAA,MAAM,EAAEA,MAFH;CAGLgf,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;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;CAC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"}