{ "version": 3, "sources": [ "../node_modules/browserify/node_modules/browser-pack/_prelude.js", "core/FactoryMaker.js", "core/events/EventsBase.js", "streaming/constants/Constants.js", "streaming/metrics/MetricsReporting.js", "streaming/metrics/MetricsReportingEvents.js", "streaming/metrics/controllers/MetricsCollectionController.js", "streaming/metrics/controllers/MetricsController.js", "streaming/metrics/controllers/MetricsHandlersController.js", "streaming/metrics/controllers/RangeController.js", "streaming/metrics/controllers/ReportingController.js", "streaming/metrics/metrics/MetricsHandlerFactory.js", "streaming/metrics/metrics/handlers/BufferLevelHandler.js", "streaming/metrics/metrics/handlers/DVBErrorsHandler.js", "streaming/metrics/metrics/handlers/GenericMetricHandler.js", "streaming/metrics/metrics/handlers/HttpListHandler.js", "streaming/metrics/reporting/ReportingFactory.js", "streaming/metrics/reporting/reporters/DVBReporting.js", "streaming/metrics/utils/DVBErrorsTranslator.js", "streaming/metrics/utils/HandlerHelpers.js", "streaming/metrics/utils/ManifestParsing.js", "streaming/metrics/utils/MetricSerialiser.js", "streaming/metrics/utils/RNG.js", "streaming/metrics/vo/DVBErrors.js", "streaming/metrics/vo/Metrics.js", "streaming/metrics/vo/Range.js", "streaming/metrics/vo/Reporting.js", "streaming/utils/CustomTimeRanges.js", "streaming/utils/SupervisorTools.js" ], "names": [], "mappings": "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", "file": "generated.js", "sourceRoot": "", "sourcesContent": [ "(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i {\n const key = JSON.stringify(m);\n\n if (!metricsControllers.hasOwnProperty(key)) {\n try {\n let controller = MetricsController(context).create(config);\n controller.initialize(m);\n metricsControllers[key] = controller;\n } catch (e) {\n // fail quietly\n }\n } else {\n // we still need this controller - delete from removal list\n controllersToRemove.splice(key, 1);\n }\n });\n\n // now remove the unwanted controllers\n controllersToRemove.forEach(c => {\n metricsControllers[c].reset();\n delete metricsControllers[c];\n });\n\n eventBus.trigger(\n MetricsReportingEvents.METRICS_INITIALISATION_COMPLETE\n );\n }\n\n function resetMetricsControllers() {\n Object.keys(metricsControllers).forEach(key => {\n metricsControllers[key].reset();\n });\n\n metricsControllers = {};\n }\n\n function setup() {\n eventBus.on(events.MANIFEST_UPDATED, update);\n eventBus.on(events.STREAM_TEARDOWN_COMPLETE, resetMetricsControllers);\n }\n\n function reset() {\n eventBus.off(events.MANIFEST_UPDATED, update);\n eventBus.off(events.STREAM_TEARDOWN_COMPLETE, resetMetricsControllers);\n }\n\n setup();\n\n return {\n reset: reset\n };\n}\n\nMetricsCollectionController.__dashjs_factory_name = 'MetricsCollectionController';\nexport default dashjs.FactoryMaker.getClassFactory(MetricsCollectionController); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport RangeController from './RangeController';\nimport ReportingController from './ReportingController';\nimport MetricsHandlersController from './MetricsHandlersController';\n\nfunction MetricsController(config) {\n\n config = config || {};\n let metricsHandlersController,\n reportingController,\n rangeController,\n instance;\n\n let context = this.context;\n\n function initialize(metricsEntry) {\n try {\n rangeController = RangeController(context).create({\n mediaElement: config.mediaElement\n });\n\n rangeController.initialize(metricsEntry.Range);\n\n reportingController = ReportingController(context).create({\n debug: config.debug,\n metricsConstants: config.metricsConstants\n });\n\n reportingController.initialize(metricsEntry.Reporting, rangeController);\n\n metricsHandlersController = MetricsHandlersController(context).create({\n debug: config.debug,\n eventBus: config.eventBus,\n metricsConstants: config.metricsConstants,\n events: config.events\n });\n\n metricsHandlersController.initialize(metricsEntry.metrics, reportingController);\n } catch (e) {\n reset();\n throw e;\n }\n }\n\n function reset() {\n if (metricsHandlersController) {\n metricsHandlersController.reset();\n }\n\n if (reportingController) {\n reportingController.reset();\n }\n\n if (rangeController) {\n rangeController.reset();\n }\n }\n\n instance = {\n initialize: initialize,\n reset: reset\n };\n\n return instance;\n}\n\nMetricsController.__dashjs_factory_name = 'MetricsController';\nexport default dashjs.FactoryMaker.getClassFactory(MetricsController); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport MetricsHandlerFactory from '../metrics/MetricsHandlerFactory';\n\nfunction MetricsHandlersController(config) {\n\n config = config || {};\n let handlers = [];\n\n let instance;\n const context = this.context;\n const eventBus = config.eventBus;\n const Events = config.events;\n\n let metricsHandlerFactory = MetricsHandlerFactory(context).getInstance({\n debug: config.debug,\n eventBus: config.eventBus,\n metricsConstants: config.metricsConstants\n });\n\n function handle(e) {\n handlers.forEach(handler => {\n handler.handleNewMetric(e.metric, e.value, e.mediaType);\n });\n }\n\n function initialize(metrics, reportingController) {\n metrics.split(',').forEach(\n (m, midx, ms) => {\n let handler;\n\n // there is a bug in ISO23009-1 where the metrics attribute\n // is a comma-separated list but HttpList key can contain a\n // comma enclosed by ().\n if ((m.indexOf('(') !== -1) && m.indexOf(')') === -1) {\n let nextm = ms[midx + 1];\n\n if (nextm &&\n (nextm.indexOf('(') === -1) &&\n (nextm.indexOf(')') !== -1)) {\n m += ',' + nextm;\n\n // delete the next metric so forEach does not visit.\n delete ms[midx + 1];\n }\n }\n\n handler = metricsHandlerFactory.create(\n m,\n reportingController\n );\n\n if (handler) {\n handlers.push(handler);\n }\n }\n );\n\n eventBus.on(\n Events.METRIC_ADDED,\n handle,\n instance\n );\n\n eventBus.on(\n Events.METRIC_UPDATED,\n handle,\n instance\n );\n }\n\n function reset() {\n eventBus.off(\n Events.METRIC_ADDED,\n handle,\n instance\n );\n\n eventBus.off(\n Events.METRIC_UPDATED,\n handle,\n instance\n );\n\n handlers.forEach(handler => handler.reset());\n\n handlers = [];\n }\n\n instance = {\n initialize: initialize,\n reset: reset\n };\n\n return instance;\n}\n\nMetricsHandlersController.__dashjs_factory_name = 'MetricsHandlersController';\nexport default dashjs.FactoryMaker.getClassFactory(MetricsHandlersController); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport CustomTimeRanges from '../../utils/CustomTimeRanges';\n\nfunction RangeController(config) {\n\n config = config || {};\n let useWallClockTime = false;\n let context = this.context;\n let instance,\n ranges;\n\n let mediaElement = config.mediaElement;\n\n function initialize(rs) {\n if (rs && rs.length) {\n rs.forEach(r => {\n let start = r.starttime;\n let end = start + r.duration;\n\n ranges.add(start, end);\n });\n\n useWallClockTime = !!rs[0]._useWallClockTime;\n }\n }\n\n function reset() {\n ranges.clear();\n }\n\n function setup() {\n ranges = CustomTimeRanges(context).create();\n }\n\n function isEnabled() {\n let numRanges = ranges.length;\n let time;\n\n if (!numRanges) {\n return true;\n }\n\n // When not present, DASH Metrics reporting is requested\n // for the whole duration of the content.\n time = useWallClockTime ?\n (new Date().getTime() / 1000) :\n mediaElement.currentTime;\n\n for (let i = 0; i < numRanges; i += 1) {\n let start = ranges.start(i);\n let end = ranges.end(i);\n\n if ((start <= time) && (time < end)) {\n return true;\n }\n }\n\n return false;\n }\n\n instance = {\n initialize: initialize,\n reset: reset,\n isEnabled: isEnabled\n };\n\n setup();\n\n return instance;\n}\n\nRangeController.__dashjs_factory_name = 'RangeController';\nexport default dashjs.FactoryMaker.getClassFactory(RangeController); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport ReportingFactory from '../reporting/ReportingFactory';\n\nfunction ReportingController(config) {\n\n let reporters = [];\n let instance;\n\n const reportingFactory = ReportingFactory(this.context).getInstance(config);\n\n function initialize(reporting, rangeController) {\n // \"if multiple Reporting elements are present, it is expected that\n // the client processes one of the recognized reporting schemes.\"\n // to ignore this, and support multiple Reporting per Metric,\n // simply change the 'some' below to 'forEach'\n reporting.some(r => {\n let reporter = reportingFactory.create(r, rangeController);\n\n if (reporter) {\n reporters.push(reporter);\n return true;\n }\n });\n }\n\n function reset() {\n reporters.forEach(r => r.reset());\n reporters = [];\n }\n\n function report(type, vos) {\n reporters.forEach(r => r.report(type, vos));\n }\n\n instance = {\n initialize: initialize,\n reset: reset,\n report: report\n };\n\n return instance;\n}\n\nReportingController.__dashjs_factory_name = 'ReportingController';\nexport default dashjs.FactoryMaker.getClassFactory(ReportingController); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport BufferLevel from './handlers/BufferLevelHandler';\nimport DVBErrors from './handlers/DVBErrorsHandler';\nimport HttpList from './handlers/HttpListHandler';\nimport GenericMetricHandler from './handlers/GenericMetricHandler';\n\nfunction MetricsHandlerFactory(config) {\n\n config = config || {};\n let instance;\n const logger = config.debug ? config.debug.getLogger(instance) : {};\n\n // group 1: key, [group 3: n [, group 5: type]]\n let keyRegex = /([a-zA-Z]*)(\\(([0-9]*)(\\,\\s*([a-zA-Z]*))?\\))?/;\n\n const context = this.context;\n let knownFactoryProducts = {\n BufferLevel: BufferLevel,\n DVBErrors: DVBErrors,\n HttpList: HttpList,\n PlayList: GenericMetricHandler,\n RepSwitchList: GenericMetricHandler,\n TcpList: GenericMetricHandler\n };\n\n function create(listType, reportingController) {\n var matches = listType.match(keyRegex);\n var handler;\n\n if (!matches) {\n return;\n }\n\n try {\n handler = knownFactoryProducts[matches[1]](context).create({\n eventBus: config.eventBus,\n metricsConstants: config.metricsConstants\n });\n\n handler.initialize(\n matches[1],\n reportingController,\n matches[3],\n matches[5]\n );\n } catch (e) {\n handler = null;\n logger.error(`MetricsHandlerFactory: Could not create handler for type ${matches[1]} with args ${matches[3]}, ${matches[5]} (${e.message})`);\n }\n\n return handler;\n }\n\n function register(key, handler) {\n knownFactoryProducts[key] = handler;\n }\n\n function unregister(key) {\n delete knownFactoryProducts[key];\n }\n\n instance = {\n create: create,\n register: register,\n unregister: unregister\n };\n\n return instance;\n}\n\nMetricsHandlerFactory.__dashjs_factory_name = 'MetricsHandlerFactory';\nexport default dashjs.FactoryMaker.getSingletonFactory(MetricsHandlerFactory); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport HandlerHelpers from '../../utils/HandlerHelpers';\n\nfunction BufferLevelHandler(config) {\n\n config = config || {};\n let instance,\n reportingController,\n n,\n name,\n interval,\n lastReportedTime;\n\n let context = this.context;\n let handlerHelpers = HandlerHelpers(context).getInstance();\n\n let storedVOs = [];\n\n const metricsConstants = config.metricsConstants;\n\n function getLowestBufferLevelVO() {\n try {\n return Object.keys(storedVOs).map(\n key => storedVOs[key]\n ).reduce(\n (a, b) => {\n return (a.level < b.level) ? a : b;\n }\n );\n } catch (e) {\n return;\n }\n }\n\n function intervalCallback() {\n let vo = getLowestBufferLevelVO();\n\n if (vo) {\n if (lastReportedTime !== vo.t) {\n lastReportedTime = vo.t;\n reportingController.report(name, vo);\n }\n }\n }\n\n function initialize(basename, rc, n_ms) {\n if (rc) {\n // this will throw if n is invalid, to be\n // caught by the initialize caller.\n n = handlerHelpers.validateN(n_ms);\n reportingController = rc;\n name = handlerHelpers.reconstructFullMetricName(basename, n_ms);\n interval = setInterval(intervalCallback, n);\n }\n }\n\n function reset() {\n clearInterval(interval);\n interval = null;\n n = 0;\n reportingController = null;\n lastReportedTime = null;\n }\n\n function handleNewMetric(metric, vo, type) {\n if (metric === metricsConstants.BUFFER_LEVEL) {\n storedVOs[type] = vo;\n }\n }\n\n instance = {\n initialize: initialize,\n reset: reset,\n handleNewMetric: handleNewMetric\n };\n\n return instance;\n}\n\nBufferLevelHandler.__dashjs_factory_name = 'BufferLevelHandler';\nexport default dashjs.FactoryMaker.getClassFactory(BufferLevelHandler); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport MetricsReportingEvents from '../../MetricsReportingEvents';\n\nfunction DVBErrorsHandler(config) {\n\n config = config || {};\n let instance,\n reportingController;\n\n let eventBus = config.eventBus;\n const metricsConstants = config.metricsConstants;\n\n function onInitialisationComplete() {\n // we only want to report this once per call to initialize\n eventBus.off(\n MetricsReportingEvents.METRICS_INITIALISATION_COMPLETE,\n onInitialisationComplete,\n this\n );\n\n // Note: A Player becoming a reporting Player is itself\n // something which is recorded by the DVBErrors metric.\n eventBus.trigger(\n MetricsReportingEvents.BECAME_REPORTING_PLAYER\n );\n }\n\n function initialize(unused, rc) {\n if (rc) {\n reportingController = rc;\n\n eventBus.on(\n MetricsReportingEvents.METRICS_INITIALISATION_COMPLETE,\n onInitialisationComplete,\n this\n );\n }\n }\n\n function reset() {\n reportingController = null;\n }\n\n function handleNewMetric(metric, vo) {\n // simply pass metric straight through\n if (metric === metricsConstants.DVB_ERRORS) {\n if (reportingController) {\n reportingController.report(metric, vo);\n }\n }\n }\n\n instance = {\n initialize: initialize,\n reset: reset,\n handleNewMetric: handleNewMetric\n };\n\n return instance;\n}\n\nexport default dashjs.FactoryMaker.getClassFactory(DVBErrorsHandler); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\n /**\n * @ignore\n */\nfunction GenericMetricHandler() {\n\n let instance,\n metricName,\n reportingController;\n\n function initialize(name, rc) {\n metricName = name;\n reportingController = rc;\n }\n\n function reset() {\n reportingController = null;\n metricName = undefined;\n }\n\n function handleNewMetric(metric, vo) {\n // simply pass metric straight through\n if (metric === metricName) {\n if (reportingController) {\n reportingController.report(metricName, vo);\n }\n }\n }\n\n instance = {\n initialize: initialize,\n reset: reset,\n handleNewMetric: handleNewMetric\n };\n\n return instance;\n}\n\nGenericMetricHandler.__dashjs_factory_name = 'GenericMetricHandler';\nexport default dashjs.FactoryMaker.getClassFactory(GenericMetricHandler); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport HandlerHelpers from '../../utils/HandlerHelpers';\n\nfunction HttpListHandler(config) {\n\n config = config || {};\n let instance,\n reportingController,\n n,\n type,\n name,\n interval;\n\n let storedVos = [];\n\n let handlerHelpers = HandlerHelpers(this.context).getInstance();\n\n const metricsConstants = config.metricsConstants;\n\n function intervalCallback() {\n var vos = storedVos;\n\n if (vos.length) {\n if (reportingController) {\n reportingController.report(name, vos);\n }\n }\n\n storedVos = [];\n }\n\n function initialize(basename, rc, n_ms, requestType) {\n if (rc) {\n\n // this will throw if n is invalid, to be\n // caught by the initialize caller.\n n = handlerHelpers.validateN(n_ms);\n\n reportingController = rc;\n\n if (requestType && requestType.length) {\n type = requestType;\n }\n\n name = handlerHelpers.reconstructFullMetricName(\n basename,\n n_ms,\n requestType\n );\n\n interval = setInterval(intervalCallback, n);\n }\n }\n\n function reset() {\n clearInterval(interval);\n interval = null;\n n = null;\n type = null;\n storedVos = [];\n reportingController = null;\n }\n\n function handleNewMetric(metric, vo) {\n if (metric === metricsConstants.HTTP_REQUEST) {\n if (!type || (type === vo.type)) {\n storedVos.push(vo);\n }\n }\n }\n\n instance = {\n initialize: initialize,\n reset: reset,\n handleNewMetric: handleNewMetric\n };\n\n return instance;\n}\n\nHttpListHandler.__dashjs_factory_name = 'HttpListHandler';\nexport default dashjs.FactoryMaker.getClassFactory(HttpListHandler); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport DVBReporting from './reporters/DVBReporting';\n\nfunction ReportingFactory(config) {\n config = config || {};\n\n const knownReportingSchemeIdUris = {\n 'urn:dvb:dash:reporting:2014': DVBReporting\n };\n\n const context = this.context;\n let instance;\n const logger = config.debug ? config.debug.getLogger(instance) : {};\n const metricsConstants = config.metricsConstants;\n\n function create(entry, rangeController) {\n let reporting;\n\n try {\n reporting = knownReportingSchemeIdUris[entry.schemeIdUri](context).create({\n metricsConstants: metricsConstants\n });\n\n reporting.initialize(entry, rangeController);\n } catch (e) {\n reporting = null;\n logger.error(`ReportingFactory: could not create Reporting with schemeIdUri ${entry.schemeIdUri} (${e.message})`);\n }\n\n return reporting;\n }\n\n function register(schemeIdUri, moduleName) {\n knownReportingSchemeIdUris[schemeIdUri] = moduleName;\n }\n\n function unregister(schemeIdUri) {\n delete knownReportingSchemeIdUris[schemeIdUri];\n }\n\n instance = {\n create: create,\n register: register,\n unregister: unregister\n };\n\n return instance;\n}\n\nReportingFactory.__dashjs_factory_name = 'ReportingFactory';\nexport default dashjs.FactoryMaker.getSingletonFactory(ReportingFactory); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport MetricSerialiser from '../../utils/MetricSerialiser';\nimport RNG from '../../utils/RNG';\n\nfunction DVBReporting(config) {\n config = config || {};\n let instance;\n\n let context = this.context;\n let metricSerialiser,\n randomNumberGenerator,\n reportingPlayerStatusDecided,\n isReportingPlayer,\n reportingUrl,\n rangeController;\n\n let USE_DRAFT_DVB_SPEC = true;\n let allowPendingRequestsToCompleteOnReset = true;\n let pendingRequests = [];\n\n const metricsConstants = config.metricsConstants;\n\n function setup() {\n metricSerialiser = MetricSerialiser(context).getInstance();\n randomNumberGenerator = RNG(context).getInstance();\n\n resetInitialSettings();\n }\n\n function doGetRequest(url, successCB, failureCB) {\n let req = new XMLHttpRequest();\n const oncomplete = function () {\n let reqIndex = pendingRequests.indexOf(req);\n\n if (reqIndex === -1) {\n return;\n } else {\n pendingRequests.splice(reqIndex, 1);\n }\n\n if ((req.status >= 200) && (req.status < 300)) {\n if (successCB) {\n successCB();\n }\n } else {\n if (failureCB) {\n failureCB();\n }\n }\n };\n\n pendingRequests.push(req);\n\n try {\n req.open('GET', url);\n req.onloadend = oncomplete;\n req.onerror = oncomplete;\n req.send();\n } catch (e) {\n req.onerror();\n }\n }\n\n function report(type, vos) {\n if (!Array.isArray(vos)) {\n vos = [vos];\n }\n\n // If the Player is not a reporting Player, then the Player shall\n // not report any errors.\n // ... In addition to any time restrictions specified by a Range\n // element within the Metrics element.\n if (isReportingPlayer && rangeController.isEnabled()) {\n\n // This reporting mechanism operates by creating one HTTP GET\n // request for every entry in the top level list of the metric.\n vos.forEach(function (vo) {\n let url = metricSerialiser.serialise(vo);\n\n // this has been proposed for errata\n if (USE_DRAFT_DVB_SPEC && (type !== metricsConstants.DVB_ERRORS)) {\n url = `metricname=${type}&${url}`;\n }\n\n // Take the value of the @reportingUrl attribute, append a\n // question mark ('?') character and then append the string\n // created in the previous step.\n url = `${reportingUrl}?${url}`;\n\n // Make an HTTP GET request to the URL contained within the\n // string created in the previous step.\n doGetRequest(url, null, function () {\n // If the Player is unable to make the report, for\n // example because the @reportingUrl is invalid, the\n // host cannot be reached, or an HTTP status code other\n // than one in the 200 series is received, the Player\n // shall cease being a reporting Player for the\n // duration of the MPD.\n isReportingPlayer = false;\n });\n });\n }\n }\n\n function initialize(entry, rc) {\n let probability;\n\n rangeController = rc;\n\n reportingUrl = entry['dvb:reportingUrl'];\n\n // If a required attribute is missing, the Reporting descriptor may\n // be ignored by the Player\n if (!reportingUrl) {\n throw new Error(\n 'required parameter missing (dvb:reportingUrl)'\n );\n }\n\n // A Player's status, as a reporting Player or not, shall remain\n // static for the duration of the MPD, regardless of MPD updates.\n // (i.e. only calling reset (or failure) changes this state)\n if (!reportingPlayerStatusDecided) {\n // NOTE: DVB spec has a typo where it incorrectly references the\n // priority attribute, which should be probability\n probability = entry['dvb:probability'] || entry['dvb:priority'] || 0;\n // If the @priority attribute is set to 1000, it shall be a reporting Player.\n // If the @priority attribute is missing, the Player shall not be a reporting Player.\n // For any other value of the @probability attribute, it shall decide at random whether to be a\n // reporting Player, such that the probability of being one is @probability/1000.\n if (probability && (probability === 1000 || ((probability / 1000) >= randomNumberGenerator.random()))) {\n isReportingPlayer = true;\n }\n\n reportingPlayerStatusDecided = true;\n }\n }\n\n function resetInitialSettings() {\n reportingPlayerStatusDecided = false;\n isReportingPlayer = false;\n reportingUrl = null;\n rangeController = null;\n }\n\n function reset() {\n if (!allowPendingRequestsToCompleteOnReset) {\n pendingRequests.forEach(req => req.abort());\n pendingRequests = [];\n }\n\n resetInitialSettings();\n }\n\n instance = {\n report: report,\n initialize: initialize,\n reset: reset\n };\n\n setup();\n\n return instance;\n}\n\nDVBReporting.__dashjs_factory_name = 'DVBReporting';\nexport default dashjs.FactoryMaker.getClassFactory(DVBReporting); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport DVBErrors from '../vo/DVBErrors';\nimport MetricsReportingEvents from '../MetricsReportingEvents';\n\nfunction DVBErrorsTranslator(config) {\n\n config = config || {};\n let instance,\n mpd;\n const eventBus = config.eventBus;\n const dashMetrics = config.dashMetrics;\n const metricsConstants = config.metricsConstants;\n //MediaPlayerEvents have been added to Events in MediaPlayer class\n const Events = config.events;\n\n function report(vo) {\n let o = new DVBErrors();\n\n if (!mpd) {\n return;\n }\n\n for (const key in vo) {\n if (vo.hasOwnProperty(key)) {\n o[key] = vo[key];\n }\n }\n\n if (!o.mpdurl) {\n o.mpdurl = mpd.originalUrl || mpd.url;\n }\n\n if (!o.terror) {\n o.terror = new Date();\n }\n\n dashMetrics.addDVBErrors(o);\n }\n\n function onManifestUpdate(e) {\n if (e.error) {\n return;\n }\n\n mpd = e.manifest;\n }\n\n function onServiceLocationChanged(e) {\n report({\n errorcode: DVBErrors.BASE_URL_CHANGED,\n servicelocation: e.entry\n });\n }\n\n function onBecameReporter() {\n report({\n errorcode: DVBErrors.BECAME_REPORTER\n });\n }\n\n function handleHttpMetric(vo) {\n if ((vo.responsecode === 0) || // connection failure - unknown\n (vo.responsecode >= 400) || // HTTP error status code\n (vo.responsecode < 100) || // unknown status codes\n (vo.responsecode >= 600)) { // unknown status codes\n report({\n errorcode: vo.responsecode || DVBErrors.CONNECTION_ERROR,\n url: vo.url,\n terror: vo.tresponse,\n servicelocation: vo._serviceLocation\n });\n }\n }\n\n function onMetricEvent(e) {\n switch (e.metric) {\n case metricsConstants.HTTP_REQUEST:\n handleHttpMetric(e.value);\n break;\n default:\n break;\n }\n }\n\n function onPlaybackError(e) {\n let reason = e.error ? e.error.code : 0;\n let errorcode;\n\n switch (reason) {\n case MediaError.MEDIA_ERR_NETWORK:\n errorcode = DVBErrors.CONNECTION_ERROR;\n break;\n case MediaError.MEDIA_ERR_DECODE:\n errorcode = DVBErrors.CORRUPT_MEDIA_OTHER;\n break;\n default:\n return;\n }\n\n report({\n errorcode: errorcode\n });\n }\n\n function initialise() {\n eventBus.on(Events.MANIFEST_UPDATED, onManifestUpdate, instance);\n eventBus.on(\n Events.SERVICE_LOCATION_BLACKLIST_CHANGED,\n onServiceLocationChanged,\n instance\n );\n eventBus.on(Events.METRIC_ADDED, onMetricEvent, instance);\n eventBus.on(Events.METRIC_UPDATED, onMetricEvent, instance);\n eventBus.on(Events.PLAYBACK_ERROR, onPlaybackError, instance);\n eventBus.on(\n MetricsReportingEvents.BECAME_REPORTING_PLAYER,\n onBecameReporter,\n instance\n );\n }\n\n function reset() {\n eventBus.off(Events.MANIFEST_UPDATED, onManifestUpdate, instance);\n eventBus.off(\n Events.SERVICE_LOCATION_BLACKLIST_CHANGED,\n onServiceLocationChanged,\n instance\n );\n eventBus.off(Events.METRIC_ADDED, onMetricEvent, instance);\n eventBus.off(Events.METRIC_UPDATED, onMetricEvent, instance);\n eventBus.off(Events.PLAYBACK_ERROR, onPlaybackError, instance);\n eventBus.off(\n MetricsReportingEvents.BECAME_REPORTING_PLAYER,\n onBecameReporter,\n instance\n );\n }\n\n instance = {\n initialise: initialise,\n reset: reset\n };\n\n initialise();\n\n return instance;\n}\n\nDVBErrorsTranslator.__dashjs_factory_name = 'DVBErrorsTranslator';\nexport default dashjs.FactoryMaker.getSingletonFactory(DVBErrorsTranslator); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\n /**\n * @ignore\n */\nfunction HandlerHelpers() {\n return {\n reconstructFullMetricName: function (key, n, type) {\n let mn = key;\n\n if (n) {\n mn += '(' + n;\n\n if (type && type.length) {\n mn += ',' + type;\n }\n\n mn += ')';\n }\n\n return mn;\n },\n\n validateN: function (n_ms) {\n if (!n_ms) {\n throw new Error('missing n');\n }\n\n if (isNaN(n_ms)) {\n throw new Error('n is NaN');\n }\n\n // n is a positive integer is defined to refer to the metric\n // in which the buffer level is recorded every n ms.\n if (n_ms < 0) {\n throw new Error('n must be positive');\n }\n\n return n_ms;\n }\n };\n}\n\nHandlerHelpers.__dashjs_factory_name = 'HandlerHelpers';\nexport default dashjs.FactoryMaker.getSingletonFactory(HandlerHelpers); /* jshint ignore:line */\n", "import Metrics from '../vo/Metrics';\nimport Range from '../vo/Range';\nimport Reporting from '../vo/Reporting';\n\nfunction ManifestParsing (config) {\n config = config || {};\n let instance;\n let adapter = config.adapter;\n const constants = config.constants;\n\n function getMetricsRangeStartTime(manifest, dynamic, range) {\n let voPeriods,\n reportingStartTime;\n let presentationStartTime = 0;\n\n if (dynamic) {\n // For services with MPD@type='dynamic', the start time is\n // indicated in wall clock time by adding the value of this\n // attribute to the value of the MPD@availabilityStartTime\n // attribute.\n presentationStartTime = adapter.getAvailabilityStartTime(manifest) / 1000;\n } else {\n // For services with MPD@type='static', the start time is indicated\n // in Media Presentation time and is relative to the PeriodStart\n // time of the first Period in this MPD.\n voPeriods = adapter.getRegularPeriods(manifest);\n\n if (voPeriods.length) {\n presentationStartTime = voPeriods[0].start;\n }\n }\n\n // When not present, DASH Metrics collection is\n // requested from the beginning of content\n // consumption.\n reportingStartTime = presentationStartTime;\n\n if (range && range.hasOwnProperty(constants.START_TIME)) {\n reportingStartTime += range.starttime;\n }\n\n return reportingStartTime;\n }\n\n function getMetrics(manifest) {\n let metrics = [];\n\n if (manifest && manifest.Metrics_asArray) {\n manifest.Metrics_asArray.forEach(metric => {\n var metricEntry = new Metrics();\n var isDynamic = adapter.getIsDynamic(manifest);\n\n if (metric.hasOwnProperty('metrics')) {\n metricEntry.metrics = metric.metrics;\n } else {\n return;\n }\n\n if (metric.Range_asArray) {\n metric.Range_asArray.forEach(range => {\n var rangeEntry = new Range();\n\n rangeEntry.starttime =\n getMetricsRangeStartTime(manifest, isDynamic, range);\n\n if (range.hasOwnProperty('duration')) {\n rangeEntry.duration = range.duration;\n } else {\n // if not present, the value is identical to the\n // Media Presentation duration.\n rangeEntry.duration = adapter.getDuration(manifest);\n }\n\n rangeEntry._useWallClockTime = isDynamic;\n\n metricEntry.Range.push(rangeEntry);\n });\n }\n\n if (metric.Reporting_asArray) {\n metric.Reporting_asArray.forEach(reporting => {\n var reportingEntry = new Reporting();\n\n if (reporting.hasOwnProperty(constants.SCHEME_ID_URI)) {\n reportingEntry.schemeIdUri = reporting.schemeIdUri;\n } else {\n // Invalid Reporting. schemeIdUri must be set. Ignore.\n return;\n }\n\n for (const prop in reporting) {\n if (reporting.hasOwnProperty(prop)) {\n reportingEntry[prop] = reporting[prop];\n }\n }\n\n metricEntry.Reporting.push(reportingEntry);\n });\n } else {\n // Invalid Metrics. At least one reporting must be present. Ignore\n return;\n }\n\n metrics.push(metricEntry);\n });\n }\n\n return metrics;\n }\n\n instance = {\n getMetrics: getMetrics\n };\n\n return instance;\n}\n\nManifestParsing.__dashjs_factory_name = 'ManifestParsing';\nexport default dashjs.FactoryMaker.getSingletonFactory(ManifestParsing); /* jshint ignore:line */", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\n/**\n * @ignore\n */\nfunction MetricSerialiser() {\n\n // For each entry in the top level list within the metric (in the case\n // of the DVBErrors metric each entry corresponds to an \"error event\"\n // described in clause 10.8.4) the Player shall:\n function serialise(metric) {\n let pairs = [];\n let obj = [];\n let key,\n value;\n\n // Take each (key, value) pair from the metric entry and create a\n // string consisting of the name of the key, followed by an equals\n // ('=') character, followed by the string representation of the\n // value. The string representation of the value is created based\n // on the type of the value following the instructions in Table 22.\n for (key in metric) {\n if (metric.hasOwnProperty(key) && (key.indexOf('_') !== 0)) {\n value = metric[key];\n\n // we want to ensure that keys still end up in the report\n // even if there is no value\n if ((value === undefined) || (value === null)) {\n value = '';\n }\n\n // DVB A168 10.12.4 Table 22\n if (Array.isArray(value)) {\n // if trace or similar is null, do not include in output\n if (!value.length) {\n continue;\n }\n\n obj = [];\n\n value.forEach(function (v) {\n let isBuiltIn = Object.prototype.toString.call(v).slice(8, -1) !== 'Object';\n\n obj.push(isBuiltIn ? v : serialise(v));\n });\n\n value = obj.map(encodeURIComponent).join(',');\n } else if (typeof value === 'string') {\n value = encodeURIComponent(value);\n } else if (value instanceof Date) {\n value = value.toISOString();\n } else if (typeof value === 'number') {\n value = Math.round(value);\n }\n\n pairs.push(key + '=' + value);\n }\n }\n\n // Concatenate the strings created in the previous step with an\n // ampersand ('&') character between each one.\n return pairs.join('&');\n }\n\n return {\n serialise: serialise\n };\n}\n\nMetricSerialiser.__dashjs_factory_name = 'MetricSerialiser';\nexport default dashjs.FactoryMaker.getSingletonFactory(MetricSerialiser); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n\n /**\n * @ignore\n */\nfunction RNG() {\n\n // check whether secure random numbers are available. if not, revert to\n // using Math.random\n let crypto = window.crypto || window.msCrypto;\n\n // could just as easily use any other array type by changing line below\n let ArrayType = Uint32Array;\n let MAX_VALUE = Math.pow(2, ArrayType.BYTES_PER_ELEMENT * 8) - 1;\n\n // currently there is only one client for this code, and that only uses\n // a single random number per initialisation. may want to increase this\n // number if more consumers in the future\n let NUM_RANDOM_NUMBERS = 10;\n\n let randomNumbers,\n index,\n instance;\n\n function initialise() {\n if (crypto) {\n if (!randomNumbers) {\n randomNumbers = new ArrayType(NUM_RANDOM_NUMBERS);\n }\n crypto.getRandomValues(randomNumbers);\n index = 0;\n }\n }\n\n function rand(min, max) {\n let r;\n\n if (!min) {\n min = 0;\n }\n\n if (!max) {\n max = 1;\n }\n\n if (crypto) {\n if (index === randomNumbers.length) {\n initialise();\n }\n\n r = randomNumbers[index] / MAX_VALUE;\n index += 1;\n } else {\n r = Math.random();\n }\n\n return (r * (max - min)) + min;\n }\n\n instance = {\n random: rand\n };\n\n initialise();\n\n return instance;\n}\n\nRNG.__dashjs_factory_name = 'RNG';\nexport default dashjs.FactoryMaker.getSingletonFactory(RNG); /* jshint ignore:line */\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n/**\n * @class\n * @ignore\n */\nclass DVBErrors {\n constructor() {\n this.mpdurl = null;\n // String - Absolute URL from which the MPD was originally\n // retrieved (MPD updates will not change this value).\n\n this.errorcode = null;\n // String - The value of errorcode depends upon the type\n // of error being reported. For an error listed in the\n // ErrorType column below the value is as described in the\n // Value column.\n //\n // ErrorType Value\n // --------- -----\n // HTTP error status code HTTP status code\n // Unknown HTTP status code HTTP status code\n // SSL connection failed \"SSL\" followed by SSL alert value\n // DNS resolution failed \"C00\"\n // Host unreachable \"C01\"\n // Connection refused \"C02\"\n // Connection error – Not otherwise specified \"C03\"\n // Corrupt media – ISO BMFF container cannot be parsed \"M00\"\n // Corrupt media – Not otherwise specified \"M01\"\n // Changing Base URL in use due to errors \"F00\"\n // Becoming an error reporting Player \"S00\"\n\n this.terror = null;\n // Real-Time - Date and time at which error occurred in UTC,\n // formatted as a combined date and time according to ISO 8601.\n\n this.url = null;\n // String - Absolute URL from which data was being requested\n // when this error occurred. If the error report is in relation\n // to corrupt media or changing BaseURL, this may be a null\n // string if the URL from which the media was obtained or\n // which led to the change of BaseURL is no longer known.\n\n this.ipaddress = null;\n // String - IP Address which the host name in \"url\" resolved to.\n // If the error report is in relation to corrupt media or\n // changing BaseURL, this may be a null string if the URL\n // from which the media was obtained or which led to the\n // change of BaseURL is no longer known.\n\n this.servicelocation = null;\n // String - The value of the serviceLocation field in the\n // BaseURL being used. In the event of this report indicating\n // a change of BaseURL this is the value from the BaseURL\n // being moved from.\n }\n}\n\nDVBErrors.SSL_CONNECTION_FAILED_PREFIX = 'SSL';\nDVBErrors.DNS_RESOLUTION_FAILED = 'C00';\nDVBErrors.HOST_UNREACHABLE = 'C01';\nDVBErrors.CONNECTION_REFUSED = 'C02';\nDVBErrors.CONNECTION_ERROR = 'C03';\nDVBErrors.CORRUPT_MEDIA_ISOBMFF = 'M00';\nDVBErrors.CORRUPT_MEDIA_OTHER = 'M01';\nDVBErrors.BASE_URL_CHANGED = 'F00';\nDVBErrors.BECAME_REPORTER = 'S00';\n\nexport default DVBErrors;\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n/**\n * @class\n * @ignore\n */\nclass Metrics {\n constructor() {\n\n this.metrics = '';\n this.Range = [];\n this.Reporting = [];\n }\n}\n\nexport default Metrics;\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n/**\n * @class\n * @ignore\n */\nclass Range {\n constructor() {\n\n // as defined in ISO23009-1\n this.starttime = 0;\n this.duration = Infinity;\n\n // for internal use\n this._useWallClockTime = false;\n }\n}\n\nexport default Range;\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n/**\n * @class\n * @ignore\n */\nclass Reporting {\n constructor() {\n // Reporting is a DescriptorType and doesn't have any additional fields\n this.schemeIdUri = '';\n this.value = '';\n }\n}\n\nexport default Reporting;\n", "/**\n* The copyright in this software is being made available under the BSD License,\n* included below. This software may be subject to other third party and contributor\n* rights, including patent rights, and no such rights are granted under this license.\n*\n* Copyright (c) 2013, Dash Industry Forum.\n* All rights reserved.\n*\n* Redistribution and use in source and binary forms, with or without modification,\n* are permitted provided that the following conditions are met:\n* * Redistributions of source code must retain the above copyright notice, this\n* list of conditions and the following disclaimer.\n* * Redistributions in binary form must reproduce the above copyright notice,\n* this list of conditions and the following disclaimer in the documentation and/or\n* other materials provided with the distribution.\n* * Neither the name of Dash Industry Forum nor the names of its\n* contributors may be used to endorse or promote products derived from this software\n* without specific prior written permission.\n*\n* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n* POSSIBILITY OF SUCH DAMAGE.\n*/\nimport FactoryMaker from '../../core/FactoryMaker';\nimport { checkInteger } from '../utils/SupervisorTools';\n\nfunction CustomTimeRanges(/*config*/) {\n let customTimeRangeArray = [];\n let length = 0;\n\n function add(start, end) {\n let i = 0;\n\n for (i = 0; (i < this.customTimeRangeArray.length) && (start > this.customTimeRangeArray[i].start); i++);\n\n this.customTimeRangeArray.splice(i, 0, {start: start,end: end});\n\n for (i = 0; i < this.customTimeRangeArray.length - 1; i++) {\n if (this.mergeRanges(i,i + 1)) {\n i--;\n }\n }\n this.length = this.customTimeRangeArray.length;\n }\n\n function clear() {\n this.customTimeRangeArray = [];\n this.length = 0;\n }\n\n function remove(start, end) {\n for (let i = 0; i < this.customTimeRangeArray.length; i++) {\n if (start <= this.customTimeRangeArray[i].start && end >= this.customTimeRangeArray[i].end) {\n // |--------------Range i-------|\n //|---------------Range to remove ---------------|\n // or\n //|--------------Range i-------|\n //|--------------Range to remove ---------------|\n // or\n // |--------------Range i-------|\n //|--------------Range to remove ---------------|\n this.customTimeRangeArray.splice(i,1);\n i--;\n\n } else if (start > this.customTimeRangeArray[i].start && end < this.customTimeRangeArray[i].end) {\n //|-----------------Range i----------------|\n // |-------Range to remove -----|\n this.customTimeRangeArray.splice(i + 1, 0, {start: end,end: this.customTimeRangeArray[i].end});\n this.customTimeRangeArray[i].end = start;\n break;\n } else if ( start > this.customTimeRangeArray[i].start && start < this.customTimeRangeArray[i].end) {\n //|-----------Range i----------|\n // |---------Range to remove --------|\n // or\n //|-----------------Range i----------------|\n // |-------Range to remove -----|\n this.customTimeRangeArray[i].end = start;\n } else if ( end > this.customTimeRangeArray[i].start && end < this.customTimeRangeArray[i].end) {\n // |-----------Range i----------|\n //|---------Range to remove --------|\n // or\n //|-----------------Range i----------------|\n //|-------Range to remove -----|\n this.customTimeRangeArray[i].start = end;\n }\n }\n\n this.length = this.customTimeRangeArray.length;\n }\n\n function mergeRanges(rangeIndex1, rangeIndex2) {\n let range1 = this.customTimeRangeArray[rangeIndex1];\n let range2 = this.customTimeRangeArray[rangeIndex2];\n\n if (range1.start <= range2.start && range2.start <= range1.end && range1.end <= range2.end) {\n //|-----------Range1----------|\n // |-----------Range2----------|\n range1.end = range2.end;\n this.customTimeRangeArray.splice(rangeIndex2,1);\n return true;\n\n } else if (range2.start <= range1.start && range1.start <= range2.end && range2.end <= range1.end) {\n // |-----------Range1----------|\n //|-----------Range2----------|\n range1.start = range2.start;\n this.customTimeRangeArray.splice(rangeIndex2,1);\n return true;\n } else if (range2.start <= range1.start && range1.start <= range2.end && range1.end <= range2.end) {\n // |--------Range1-------|\n //|---------------Range2--------------|\n this.customTimeRangeArray.splice(rangeIndex1,1);\n return true;\n } else if (range1.start <= range2.start && range2.start <= range1.end && range2.end <= range1.end) {\n //|-----------------Range1--------------|\n // |-----------Range2----------|\n this.customTimeRangeArray.splice(rangeIndex2,1);\n return true;\n }\n return false;\n }\n\n function start(index) {\n checkInteger(index);\n\n if (index >= this.customTimeRangeArray.length || index < 0) {\n return NaN;\n }\n\n return this.customTimeRangeArray[index].start;\n }\n\n function end(index) {\n checkInteger(index);\n\n if (index >= this.customTimeRangeArray.length || index < 0) {\n return NaN;\n }\n\n return this.customTimeRangeArray[index].end;\n }\n\n return {\n customTimeRangeArray: customTimeRangeArray,\n length: length,\n add: add,\n clear: clear,\n remove: remove,\n mergeRanges: mergeRanges,\n start: start,\n end: end\n };\n}\nCustomTimeRanges.__dashjs_factory_name = 'CustomTimeRanges';\nexport default FactoryMaker.getClassFactory(CustomTimeRanges);\n", "/**\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2013, Dash Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * * Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\nimport Constants from '../constants/Constants';\n\nexport function checkParameterType(parameter, type) {\n if (typeof parameter !== type) {\n throw Constants.BAD_ARGUMENT_ERROR;\n }\n}\n\nexport function checkInteger(parameter) {\n const isInt = parameter !== null && !isNaN(parameter) && (parameter % 1 === 0);\n\n if (!isInt) {\n throw Constants.BAD_ARGUMENT_ERROR + ' : argument is not an integer';\n }\n}\n\nexport function checkRange(parameter, min, max) {\n if (parameter < min || parameter > max) {\n throw Constants.BAD_ARGUMENT_ERROR + ' : argument out of range';\n }\n}\n\nexport function checkIsVideoOrAudioType(type) {\n if (typeof type !== 'string' || (type !== Constants.AUDIO && type !== Constants.VIDEO)) {\n throw Constants.BAD_ARGUMENT_ERROR;\n }\n}" ] }