mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-05 19:42:38 +02:00
Update node modules
This commit is contained in:
parent
52a013772f
commit
09d8558456
858 changed files with 5466 additions and 544833 deletions
18
node_modules/video.js/CHANGELOG.md
generated
vendored
18
node_modules/video.js/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,21 @@
|
|||
<a name="8.17.3"></a>
|
||||
## [8.17.3](https://github.com/videojs/video.js/compare/v8.17.2...v8.17.3) (2024-07-30)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Listen to taps on track controls ([#8809](https://github.com/videojs/video.js/issues/8809)) ([86d29cd](https://github.com/videojs/video.js/commit/86d29cd)), closes [#8808](https://github.com/videojs/video.js/issues/8808) [1000#0](https://github.com/1000/issues/0)
|
||||
* Refactor evented to make mincompatable with Chrome 53 ([#8810](https://github.com/videojs/video.js/issues/8810)) ([a7c9f26](https://github.com/videojs/video.js/commit/a7c9f26)), closes [/github.com/videojs/video.js/blob/e78bcc7b2d829fce01451cf105b918d8feec4548/src/js/mixins/evented.js#L165-L195](https://github.com//github.com/videojs/video.js/blob/e78bcc7b2d829fce01451cf105b918d8feec4548/src/js/mixins/evented.js/issues/L165-L195) [#8783](https://github.com/videojs/video.js/issues/8783) [1000#0](https://github.com/1000/issues/0)
|
||||
* **spatial-navigation:** focus lost in error modal ([#8817](https://github.com/videojs/video.js/issues/8817)) ([daf40bd](https://github.com/videojs/video.js/commit/daf40bd)), closes [1000#0](https://github.com/1000/issues/0)
|
||||
* **spatial-navigation:** keep navigation going when player has an error ([#8805](https://github.com/videojs/video.js/issues/8805)) ([76e99b7](https://github.com/videojs/video.js/commit/76e99b7)), closes [1000#0](https://github.com/1000/issues/0)
|
||||
* **spatial-navigation:** refocus available also to the close button of the error modal ([#8819](https://github.com/videojs/video.js/issues/8819)) ([45570d9](https://github.com/videojs/video.js/commit/45570d9)), closes [1000#0](https://github.com/1000/issues/0)
|
||||
|
||||
<a name="8.17.2"></a>
|
||||
## [8.17.2](https://github.com/videojs/video.js/compare/v8.17.1...v8.17.2) (2024-07-22)
|
||||
|
||||
### Chores
|
||||
|
||||
* update vhs version 3.13.2 ([#8812](https://github.com/videojs/video.js/issues/8812)) ([49151ee](https://github.com/videojs/video.js/commit/49151ee)), closes [1000#0](https://github.com/1000/issues/0)
|
||||
|
||||
<a name="8.17.1"></a>
|
||||
## [8.17.1](https://github.com/videojs/video.js/compare/v8.17.0...v8.17.1) (2024-07-15)
|
||||
|
||||
|
|
106
node_modules/video.js/core.es.js
generated
vendored
106
node_modules/video.js/core.es.js
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @license
|
||||
* Video.js 8.17.1 <http://videojs.com/>
|
||||
* Video.js 8.17.3 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
||||
|
@ -16,7 +16,7 @@ import safeParseTuple from 'safe-json-parse/tuple';
|
|||
import XHR from '@videojs/xhr';
|
||||
import vtt from 'videojs-vtt.js';
|
||||
|
||||
var version = "8.17.1";
|
||||
var version = "8.17.3";
|
||||
|
||||
/**
|
||||
* An Object that contains lifecycle hooks as keys which point to an array
|
||||
|
@ -2171,7 +2171,6 @@ function fixEvent(event) {
|
|||
/* eslint-enable */
|
||||
}
|
||||
}
|
||||
|
||||
event.fixed_ = true;
|
||||
// Returns fixed-up instance
|
||||
return event;
|
||||
|
@ -2985,7 +2984,12 @@ const normalizeListenArgs = (self, args, fnName) => {
|
|||
}
|
||||
[type, listener] = args;
|
||||
} else {
|
||||
[target, type, listener] = args;
|
||||
// This was `[target, type, listener] = args;` but this block needs more than
|
||||
// one statement to produce minified output compatible with Chrome 53.
|
||||
// See https://github.com/videojs/video.js/pull/8810
|
||||
target = args[0];
|
||||
type = args[1];
|
||||
listener = args[2];
|
||||
}
|
||||
validateTarget(target, self, fnName);
|
||||
validateEventType(type, self, fnName);
|
||||
|
@ -6377,6 +6381,14 @@ class ModalDialog extends Component {
|
|||
if (closeButton) {
|
||||
parentEl.appendChild(closeButton.el_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after `ModalDialog` is re-filled with content & close button is appended.
|
||||
*
|
||||
* @event ModalDialog#aftermodalfill
|
||||
* @type {Event}
|
||||
*/
|
||||
this.trigger('aftermodalfill');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10072,6 +10084,24 @@ class SpatialNavigation extends EventTarget {
|
|||
this.player_.on('focusin', this.handlePlayerFocus_.bind(this));
|
||||
this.player_.on('focusout', this.handlePlayerBlur_.bind(this));
|
||||
this.isListening_ = true;
|
||||
this.player_.errorDisplay.on('aftermodalfill', () => {
|
||||
this.updateFocusableComponents();
|
||||
if (this.focusableComponents.length) {
|
||||
// The modal has focusable components:
|
||||
|
||||
if (this.focusableComponents.length > 1) {
|
||||
// The modal has close button + some additional buttons.
|
||||
// Focusing first additional button:
|
||||
|
||||
this.focusableComponents[1].focus();
|
||||
} else {
|
||||
// The modal has only close button,
|
||||
// Focusing it:
|
||||
|
||||
this.focusableComponents[0].focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10200,7 +10230,7 @@ class SpatialNavigation extends EventTarget {
|
|||
}
|
||||
}
|
||||
if (!event.currentTarget.contains(event.relatedTarget) && !isChildrenOfPlayer || !nextFocusedElement) {
|
||||
if (currentComponent.name() === 'CloseButton') {
|
||||
if (currentComponent && currentComponent.name() === 'CloseButton') {
|
||||
this.refocusComponent();
|
||||
} else {
|
||||
this.pause();
|
||||
|
@ -10270,6 +10300,58 @@ class SpatialNavigation extends EventTarget {
|
|||
focusableComponents.push(value);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - Refactor the following logic after refactor of videojs-errors elements to be components is done.
|
||||
if (value.name_ === 'ErrorDisplay' && value.opened_) {
|
||||
const buttonContainer = value.el_.querySelector('.vjs-errors-ok-button-container');
|
||||
if (buttonContainer) {
|
||||
const modalButtons = buttonContainer.querySelectorAll('button');
|
||||
modalButtons.forEach((element, index) => {
|
||||
// Add elements as objects to be handled by the spatial navigation
|
||||
focusableComponents.push({
|
||||
name: () => {
|
||||
return 'ModalButton' + (index + 1);
|
||||
},
|
||||
el: () => element,
|
||||
getPositions: () => {
|
||||
const rect = element.getBoundingClientRect();
|
||||
|
||||
// Creating objects that mirror DOMRectReadOnly for boundingClientRect and center
|
||||
const boundingClientRect = {
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
top: rect.top,
|
||||
right: rect.right,
|
||||
bottom: rect.bottom,
|
||||
left: rect.left
|
||||
};
|
||||
|
||||
// Calculating the center position
|
||||
const center = {
|
||||
x: rect.left + rect.width / 2,
|
||||
y: rect.top + rect.height / 2,
|
||||
width: 0,
|
||||
height: 0,
|
||||
top: rect.top + rect.height / 2,
|
||||
right: rect.left + rect.width / 2,
|
||||
bottom: rect.top + rect.height / 2,
|
||||
left: rect.left + rect.width / 2
|
||||
};
|
||||
return {
|
||||
boundingClientRect,
|
||||
center
|
||||
};
|
||||
},
|
||||
// Asume that the following are always focusable
|
||||
getIsAvailableToBeFocused: () => true,
|
||||
getIsFocusable: el => true,
|
||||
focus: () => element.focus()
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
this.focusableComponents = focusableComponents;
|
||||
return this.focusableComponents;
|
||||
|
@ -10305,7 +10387,10 @@ class SpatialNavigation extends EventTarget {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
return searchForSuitableChild(component.el());
|
||||
if (component.el()) {
|
||||
return searchForSuitableChild(component.el());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10464,7 +10549,7 @@ class SpatialNavigation extends EventTarget {
|
|||
*/
|
||||
refocusComponent() {
|
||||
if (this.lastFocusedComponent_) {
|
||||
// If use is not active, set it to active.
|
||||
// If user is not active, set it to active.
|
||||
if (!this.player_.userActive()) {
|
||||
this.player_.userActive(true);
|
||||
}
|
||||
|
@ -10491,6 +10576,9 @@ class SpatialNavigation extends EventTarget {
|
|||
* @param {Component} component - The component to be focused.
|
||||
*/
|
||||
focus(component) {
|
||||
if (typeof component !== 'object') {
|
||||
return;
|
||||
}
|
||||
if (component.getIsAvailableToBeFocused(component.el())) {
|
||||
component.focus();
|
||||
} else if (this.findSuitableDOMChild(component)) {
|
||||
|
@ -18346,11 +18434,11 @@ class TextTrackSettings extends ModalDialog {
|
|||
this.addChild(trackSettingsControls);
|
||||
}
|
||||
bindFunctionsToSelectsAndButtons() {
|
||||
this.on(this.$('.vjs-done-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-done-button'), ['click', 'tap'], () => {
|
||||
this.saveSettings();
|
||||
this.close();
|
||||
});
|
||||
this.on(this.$('.vjs-default-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-default-button'), ['click', 'tap'], () => {
|
||||
this.setDefaults();
|
||||
this.updateDisplay();
|
||||
});
|
||||
|
|
106
node_modules/video.js/core.js
generated
vendored
106
node_modules/video.js/core.js
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @license
|
||||
* Video.js 8.17.1 <http://videojs.com/>
|
||||
* Video.js 8.17.3 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
||||
|
@ -26,7 +26,7 @@ var safeParseTuple__default = /*#__PURE__*/_interopDefaultLegacy(safeParseTuple)
|
|||
var XHR__default = /*#__PURE__*/_interopDefaultLegacy(XHR);
|
||||
var vtt__default = /*#__PURE__*/_interopDefaultLegacy(vtt);
|
||||
|
||||
var version = "8.17.1";
|
||||
var version = "8.17.3";
|
||||
|
||||
/**
|
||||
* An Object that contains lifecycle hooks as keys which point to an array
|
||||
|
@ -2181,7 +2181,6 @@ function fixEvent(event) {
|
|||
/* eslint-enable */
|
||||
}
|
||||
}
|
||||
|
||||
event.fixed_ = true;
|
||||
// Returns fixed-up instance
|
||||
return event;
|
||||
|
@ -2995,7 +2994,12 @@ const normalizeListenArgs = (self, args, fnName) => {
|
|||
}
|
||||
[type, listener] = args;
|
||||
} else {
|
||||
[target, type, listener] = args;
|
||||
// This was `[target, type, listener] = args;` but this block needs more than
|
||||
// one statement to produce minified output compatible with Chrome 53.
|
||||
// See https://github.com/videojs/video.js/pull/8810
|
||||
target = args[0];
|
||||
type = args[1];
|
||||
listener = args[2];
|
||||
}
|
||||
validateTarget(target, self, fnName);
|
||||
validateEventType(type, self, fnName);
|
||||
|
@ -6387,6 +6391,14 @@ class ModalDialog extends Component {
|
|||
if (closeButton) {
|
||||
parentEl.appendChild(closeButton.el_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after `ModalDialog` is re-filled with content & close button is appended.
|
||||
*
|
||||
* @event ModalDialog#aftermodalfill
|
||||
* @type {Event}
|
||||
*/
|
||||
this.trigger('aftermodalfill');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10082,6 +10094,24 @@ class SpatialNavigation extends EventTarget {
|
|||
this.player_.on('focusin', this.handlePlayerFocus_.bind(this));
|
||||
this.player_.on('focusout', this.handlePlayerBlur_.bind(this));
|
||||
this.isListening_ = true;
|
||||
this.player_.errorDisplay.on('aftermodalfill', () => {
|
||||
this.updateFocusableComponents();
|
||||
if (this.focusableComponents.length) {
|
||||
// The modal has focusable components:
|
||||
|
||||
if (this.focusableComponents.length > 1) {
|
||||
// The modal has close button + some additional buttons.
|
||||
// Focusing first additional button:
|
||||
|
||||
this.focusableComponents[1].focus();
|
||||
} else {
|
||||
// The modal has only close button,
|
||||
// Focusing it:
|
||||
|
||||
this.focusableComponents[0].focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10210,7 +10240,7 @@ class SpatialNavigation extends EventTarget {
|
|||
}
|
||||
}
|
||||
if (!event.currentTarget.contains(event.relatedTarget) && !isChildrenOfPlayer || !nextFocusedElement) {
|
||||
if (currentComponent.name() === 'CloseButton') {
|
||||
if (currentComponent && currentComponent.name() === 'CloseButton') {
|
||||
this.refocusComponent();
|
||||
} else {
|
||||
this.pause();
|
||||
|
@ -10280,6 +10310,58 @@ class SpatialNavigation extends EventTarget {
|
|||
focusableComponents.push(value);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - Refactor the following logic after refactor of videojs-errors elements to be components is done.
|
||||
if (value.name_ === 'ErrorDisplay' && value.opened_) {
|
||||
const buttonContainer = value.el_.querySelector('.vjs-errors-ok-button-container');
|
||||
if (buttonContainer) {
|
||||
const modalButtons = buttonContainer.querySelectorAll('button');
|
||||
modalButtons.forEach((element, index) => {
|
||||
// Add elements as objects to be handled by the spatial navigation
|
||||
focusableComponents.push({
|
||||
name: () => {
|
||||
return 'ModalButton' + (index + 1);
|
||||
},
|
||||
el: () => element,
|
||||
getPositions: () => {
|
||||
const rect = element.getBoundingClientRect();
|
||||
|
||||
// Creating objects that mirror DOMRectReadOnly for boundingClientRect and center
|
||||
const boundingClientRect = {
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
top: rect.top,
|
||||
right: rect.right,
|
||||
bottom: rect.bottom,
|
||||
left: rect.left
|
||||
};
|
||||
|
||||
// Calculating the center position
|
||||
const center = {
|
||||
x: rect.left + rect.width / 2,
|
||||
y: rect.top + rect.height / 2,
|
||||
width: 0,
|
||||
height: 0,
|
||||
top: rect.top + rect.height / 2,
|
||||
right: rect.left + rect.width / 2,
|
||||
bottom: rect.top + rect.height / 2,
|
||||
left: rect.left + rect.width / 2
|
||||
};
|
||||
return {
|
||||
boundingClientRect,
|
||||
center
|
||||
};
|
||||
},
|
||||
// Asume that the following are always focusable
|
||||
getIsAvailableToBeFocused: () => true,
|
||||
getIsFocusable: el => true,
|
||||
focus: () => element.focus()
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
this.focusableComponents = focusableComponents;
|
||||
return this.focusableComponents;
|
||||
|
@ -10315,7 +10397,10 @@ class SpatialNavigation extends EventTarget {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
return searchForSuitableChild(component.el());
|
||||
if (component.el()) {
|
||||
return searchForSuitableChild(component.el());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10474,7 +10559,7 @@ class SpatialNavigation extends EventTarget {
|
|||
*/
|
||||
refocusComponent() {
|
||||
if (this.lastFocusedComponent_) {
|
||||
// If use is not active, set it to active.
|
||||
// If user is not active, set it to active.
|
||||
if (!this.player_.userActive()) {
|
||||
this.player_.userActive(true);
|
||||
}
|
||||
|
@ -10501,6 +10586,9 @@ class SpatialNavigation extends EventTarget {
|
|||
* @param {Component} component - The component to be focused.
|
||||
*/
|
||||
focus(component) {
|
||||
if (typeof component !== 'object') {
|
||||
return;
|
||||
}
|
||||
if (component.getIsAvailableToBeFocused(component.el())) {
|
||||
component.focus();
|
||||
} else if (this.findSuitableDOMChild(component)) {
|
||||
|
@ -18356,11 +18444,11 @@ class TextTrackSettings extends ModalDialog {
|
|||
this.addChild(trackSettingsControls);
|
||||
}
|
||||
bindFunctionsToSelectsAndButtons() {
|
||||
this.on(this.$('.vjs-done-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-done-button'), ['click', 'tap'], () => {
|
||||
this.saveSettings();
|
||||
this.close();
|
||||
});
|
||||
this.on(this.$('.vjs-default-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-default-button'), ['click', 'tap'], () => {
|
||||
this.setDefaults();
|
||||
this.updateDisplay();
|
||||
});
|
||||
|
|
124
node_modules/video.js/dist/alt/video.core.js
generated
vendored
124
node_modules/video.js/dist/alt/video.core.js
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @license
|
||||
* Video.js 8.17.1 <http://videojs.com/>
|
||||
* Video.js 8.17.3 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
||||
|
@ -16,7 +16,7 @@
|
|||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.videojs = factory());
|
||||
})(this, (function () { 'use strict';
|
||||
|
||||
var version = "8.17.1";
|
||||
var version = "8.17.3";
|
||||
|
||||
/**
|
||||
* An Object that contains lifecycle hooks as keys which point to an array
|
||||
|
@ -2171,7 +2171,6 @@
|
|||
/* eslint-enable */
|
||||
}
|
||||
}
|
||||
|
||||
event.fixed_ = true;
|
||||
// Returns fixed-up instance
|
||||
return event;
|
||||
|
@ -2985,7 +2984,12 @@
|
|||
}
|
||||
[type, listener] = args;
|
||||
} else {
|
||||
[target, type, listener] = args;
|
||||
// This was `[target, type, listener] = args;` but this block needs more than
|
||||
// one statement to produce minified output compatible with Chrome 53.
|
||||
// See https://github.com/videojs/video.js/pull/8810
|
||||
target = args[0];
|
||||
type = args[1];
|
||||
listener = args[2];
|
||||
}
|
||||
validateTarget(target, self, fnName);
|
||||
validateEventType(type, self, fnName);
|
||||
|
@ -6389,6 +6393,14 @@
|
|||
if (closeButton) {
|
||||
parentEl.appendChild(closeButton.el_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after `ModalDialog` is re-filled with content & close button is appended.
|
||||
*
|
||||
* @event ModalDialog#aftermodalfill
|
||||
* @type {Event}
|
||||
*/
|
||||
this.trigger('aftermodalfill');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -7477,18 +7489,13 @@
|
|||
|
||||
var _extends_1 = createCommonjsModule(function (module) {
|
||||
function _extends() {
|
||||
module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
for (var key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
return (module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
|
||||
for (var e = 1; e < arguments.length; e++) {
|
||||
var t = arguments[e];
|
||||
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
||||
}
|
||||
return target;
|
||||
}, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
||||
return _extends.apply(this, arguments);
|
||||
return n;
|
||||
}, module.exports.__esModule = true, module.exports["default"] = module.exports), _extends.apply(null, arguments);
|
||||
}
|
||||
module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
||||
});
|
||||
|
@ -7708,7 +7715,6 @@
|
|||
* So if we have delay as 1000
|
||||
* This function can generate any value from 900 to 1100
|
||||
*/;
|
||||
|
||||
_proto2.getCurrentFuzzedDelay = function getCurrentFuzzedDelay() {
|
||||
var lowValue = this.getCurrentMinPossibleDelay();
|
||||
var highValue = this.getCurrentMaxPossibleDelay();
|
||||
|
@ -12405,6 +12411,24 @@
|
|||
this.player_.on('focusin', this.handlePlayerFocus_.bind(this));
|
||||
this.player_.on('focusout', this.handlePlayerBlur_.bind(this));
|
||||
this.isListening_ = true;
|
||||
this.player_.errorDisplay.on('aftermodalfill', () => {
|
||||
this.updateFocusableComponents();
|
||||
if (this.focusableComponents.length) {
|
||||
// The modal has focusable components:
|
||||
|
||||
if (this.focusableComponents.length > 1) {
|
||||
// The modal has close button + some additional buttons.
|
||||
// Focusing first additional button:
|
||||
|
||||
this.focusableComponents[1].focus();
|
||||
} else {
|
||||
// The modal has only close button,
|
||||
// Focusing it:
|
||||
|
||||
this.focusableComponents[0].focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -12533,7 +12557,7 @@
|
|||
}
|
||||
}
|
||||
if (!event.currentTarget.contains(event.relatedTarget) && !isChildrenOfPlayer || !nextFocusedElement) {
|
||||
if (currentComponent.name() === 'CloseButton') {
|
||||
if (currentComponent && currentComponent.name() === 'CloseButton') {
|
||||
this.refocusComponent();
|
||||
} else {
|
||||
this.pause();
|
||||
|
@ -12603,6 +12627,58 @@
|
|||
focusableComponents.push(value);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - Refactor the following logic after refactor of videojs-errors elements to be components is done.
|
||||
if (value.name_ === 'ErrorDisplay' && value.opened_) {
|
||||
const buttonContainer = value.el_.querySelector('.vjs-errors-ok-button-container');
|
||||
if (buttonContainer) {
|
||||
const modalButtons = buttonContainer.querySelectorAll('button');
|
||||
modalButtons.forEach((element, index) => {
|
||||
// Add elements as objects to be handled by the spatial navigation
|
||||
focusableComponents.push({
|
||||
name: () => {
|
||||
return 'ModalButton' + (index + 1);
|
||||
},
|
||||
el: () => element,
|
||||
getPositions: () => {
|
||||
const rect = element.getBoundingClientRect();
|
||||
|
||||
// Creating objects that mirror DOMRectReadOnly for boundingClientRect and center
|
||||
const boundingClientRect = {
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
top: rect.top,
|
||||
right: rect.right,
|
||||
bottom: rect.bottom,
|
||||
left: rect.left
|
||||
};
|
||||
|
||||
// Calculating the center position
|
||||
const center = {
|
||||
x: rect.left + rect.width / 2,
|
||||
y: rect.top + rect.height / 2,
|
||||
width: 0,
|
||||
height: 0,
|
||||
top: rect.top + rect.height / 2,
|
||||
right: rect.left + rect.width / 2,
|
||||
bottom: rect.top + rect.height / 2,
|
||||
left: rect.left + rect.width / 2
|
||||
};
|
||||
return {
|
||||
boundingClientRect,
|
||||
center
|
||||
};
|
||||
},
|
||||
// Asume that the following are always focusable
|
||||
getIsAvailableToBeFocused: () => true,
|
||||
getIsFocusable: el => true,
|
||||
focus: () => element.focus()
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
this.focusableComponents = focusableComponents;
|
||||
return this.focusableComponents;
|
||||
|
@ -12638,7 +12714,10 @@
|
|||
}
|
||||
return null;
|
||||
}
|
||||
return searchForSuitableChild(component.el());
|
||||
if (component.el()) {
|
||||
return searchForSuitableChild(component.el());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -12797,7 +12876,7 @@
|
|||
*/
|
||||
refocusComponent() {
|
||||
if (this.lastFocusedComponent_) {
|
||||
// If use is not active, set it to active.
|
||||
// If user is not active, set it to active.
|
||||
if (!this.player_.userActive()) {
|
||||
this.player_.userActive(true);
|
||||
}
|
||||
|
@ -12824,6 +12903,9 @@
|
|||
* @param {Component} component - The component to be focused.
|
||||
*/
|
||||
focus(component) {
|
||||
if (typeof component !== 'object') {
|
||||
return;
|
||||
}
|
||||
if (component.getIsAvailableToBeFocused(component.el())) {
|
||||
component.focus();
|
||||
} else if (this.findSuitableDOMChild(component)) {
|
||||
|
@ -20679,11 +20761,11 @@
|
|||
this.addChild(trackSettingsControls);
|
||||
}
|
||||
bindFunctionsToSelectsAndButtons() {
|
||||
this.on(this.$('.vjs-done-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-done-button'), ['click', 'tap'], () => {
|
||||
this.saveSettings();
|
||||
this.close();
|
||||
});
|
||||
this.on(this.$('.vjs-default-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-default-button'), ['click', 'tap'], () => {
|
||||
this.setDefaults();
|
||||
this.updateDisplay();
|
||||
});
|
||||
|
|
8
node_modules/video.js/dist/alt/video.core.min.js
generated
vendored
8
node_modules/video.js/dist/alt/video.core.min.js
generated
vendored
File diff suppressed because one or more lines are too long
124
node_modules/video.js/dist/alt/video.core.novtt.js
generated
vendored
124
node_modules/video.js/dist/alt/video.core.novtt.js
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @license
|
||||
* Video.js 8.17.1 <http://videojs.com/>
|
||||
* Video.js 8.17.3 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
||||
|
@ -16,7 +16,7 @@
|
|||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.videojs = factory());
|
||||
})(this, (function () { 'use strict';
|
||||
|
||||
var version = "8.17.1";
|
||||
var version = "8.17.3";
|
||||
|
||||
/**
|
||||
* An Object that contains lifecycle hooks as keys which point to an array
|
||||
|
@ -2171,7 +2171,6 @@
|
|||
/* eslint-enable */
|
||||
}
|
||||
}
|
||||
|
||||
event.fixed_ = true;
|
||||
// Returns fixed-up instance
|
||||
return event;
|
||||
|
@ -2985,7 +2984,12 @@
|
|||
}
|
||||
[type, listener] = args;
|
||||
} else {
|
||||
[target, type, listener] = args;
|
||||
// This was `[target, type, listener] = args;` but this block needs more than
|
||||
// one statement to produce minified output compatible with Chrome 53.
|
||||
// See https://github.com/videojs/video.js/pull/8810
|
||||
target = args[0];
|
||||
type = args[1];
|
||||
listener = args[2];
|
||||
}
|
||||
validateTarget(target, self, fnName);
|
||||
validateEventType(type, self, fnName);
|
||||
|
@ -6389,6 +6393,14 @@
|
|||
if (closeButton) {
|
||||
parentEl.appendChild(closeButton.el_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after `ModalDialog` is re-filled with content & close button is appended.
|
||||
*
|
||||
* @event ModalDialog#aftermodalfill
|
||||
* @type {Event}
|
||||
*/
|
||||
this.trigger('aftermodalfill');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -7477,18 +7489,13 @@
|
|||
|
||||
var _extends_1 = createCommonjsModule(function (module) {
|
||||
function _extends() {
|
||||
module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
for (var key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
return (module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
|
||||
for (var e = 1; e < arguments.length; e++) {
|
||||
var t = arguments[e];
|
||||
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
||||
}
|
||||
return target;
|
||||
}, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
||||
return _extends.apply(this, arguments);
|
||||
return n;
|
||||
}, module.exports.__esModule = true, module.exports["default"] = module.exports), _extends.apply(null, arguments);
|
||||
}
|
||||
module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
||||
});
|
||||
|
@ -7708,7 +7715,6 @@
|
|||
* So if we have delay as 1000
|
||||
* This function can generate any value from 900 to 1100
|
||||
*/;
|
||||
|
||||
_proto2.getCurrentFuzzedDelay = function getCurrentFuzzedDelay() {
|
||||
var lowValue = this.getCurrentMinPossibleDelay();
|
||||
var highValue = this.getCurrentMaxPossibleDelay();
|
||||
|
@ -10703,6 +10709,24 @@
|
|||
this.player_.on('focusin', this.handlePlayerFocus_.bind(this));
|
||||
this.player_.on('focusout', this.handlePlayerBlur_.bind(this));
|
||||
this.isListening_ = true;
|
||||
this.player_.errorDisplay.on('aftermodalfill', () => {
|
||||
this.updateFocusableComponents();
|
||||
if (this.focusableComponents.length) {
|
||||
// The modal has focusable components:
|
||||
|
||||
if (this.focusableComponents.length > 1) {
|
||||
// The modal has close button + some additional buttons.
|
||||
// Focusing first additional button:
|
||||
|
||||
this.focusableComponents[1].focus();
|
||||
} else {
|
||||
// The modal has only close button,
|
||||
// Focusing it:
|
||||
|
||||
this.focusableComponents[0].focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10831,7 +10855,7 @@
|
|||
}
|
||||
}
|
||||
if (!event.currentTarget.contains(event.relatedTarget) && !isChildrenOfPlayer || !nextFocusedElement) {
|
||||
if (currentComponent.name() === 'CloseButton') {
|
||||
if (currentComponent && currentComponent.name() === 'CloseButton') {
|
||||
this.refocusComponent();
|
||||
} else {
|
||||
this.pause();
|
||||
|
@ -10901,6 +10925,58 @@
|
|||
focusableComponents.push(value);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - Refactor the following logic after refactor of videojs-errors elements to be components is done.
|
||||
if (value.name_ === 'ErrorDisplay' && value.opened_) {
|
||||
const buttonContainer = value.el_.querySelector('.vjs-errors-ok-button-container');
|
||||
if (buttonContainer) {
|
||||
const modalButtons = buttonContainer.querySelectorAll('button');
|
||||
modalButtons.forEach((element, index) => {
|
||||
// Add elements as objects to be handled by the spatial navigation
|
||||
focusableComponents.push({
|
||||
name: () => {
|
||||
return 'ModalButton' + (index + 1);
|
||||
},
|
||||
el: () => element,
|
||||
getPositions: () => {
|
||||
const rect = element.getBoundingClientRect();
|
||||
|
||||
// Creating objects that mirror DOMRectReadOnly for boundingClientRect and center
|
||||
const boundingClientRect = {
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
top: rect.top,
|
||||
right: rect.right,
|
||||
bottom: rect.bottom,
|
||||
left: rect.left
|
||||
};
|
||||
|
||||
// Calculating the center position
|
||||
const center = {
|
||||
x: rect.left + rect.width / 2,
|
||||
y: rect.top + rect.height / 2,
|
||||
width: 0,
|
||||
height: 0,
|
||||
top: rect.top + rect.height / 2,
|
||||
right: rect.left + rect.width / 2,
|
||||
bottom: rect.top + rect.height / 2,
|
||||
left: rect.left + rect.width / 2
|
||||
};
|
||||
return {
|
||||
boundingClientRect,
|
||||
center
|
||||
};
|
||||
},
|
||||
// Asume that the following are always focusable
|
||||
getIsAvailableToBeFocused: () => true,
|
||||
getIsFocusable: el => true,
|
||||
focus: () => element.focus()
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
this.focusableComponents = focusableComponents;
|
||||
return this.focusableComponents;
|
||||
|
@ -10936,7 +11012,10 @@
|
|||
}
|
||||
return null;
|
||||
}
|
||||
return searchForSuitableChild(component.el());
|
||||
if (component.el()) {
|
||||
return searchForSuitableChild(component.el());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -11095,7 +11174,7 @@
|
|||
*/
|
||||
refocusComponent() {
|
||||
if (this.lastFocusedComponent_) {
|
||||
// If use is not active, set it to active.
|
||||
// If user is not active, set it to active.
|
||||
if (!this.player_.userActive()) {
|
||||
this.player_.userActive(true);
|
||||
}
|
||||
|
@ -11122,6 +11201,9 @@
|
|||
* @param {Component} component - The component to be focused.
|
||||
*/
|
||||
focus(component) {
|
||||
if (typeof component !== 'object') {
|
||||
return;
|
||||
}
|
||||
if (component.getIsAvailableToBeFocused(component.el())) {
|
||||
component.focus();
|
||||
} else if (this.findSuitableDOMChild(component)) {
|
||||
|
@ -18977,11 +19059,11 @@
|
|||
this.addChild(trackSettingsControls);
|
||||
}
|
||||
bindFunctionsToSelectsAndButtons() {
|
||||
this.on(this.$('.vjs-done-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-done-button'), ['click', 'tap'], () => {
|
||||
this.saveSettings();
|
||||
this.close();
|
||||
});
|
||||
this.on(this.$('.vjs-default-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-default-button'), ['click', 'tap'], () => {
|
||||
this.setDefaults();
|
||||
this.updateDisplay();
|
||||
});
|
||||
|
|
8
node_modules/video.js/dist/alt/video.core.novtt.min.js
generated
vendored
8
node_modules/video.js/dist/alt/video.core.novtt.min.js
generated
vendored
File diff suppressed because one or more lines are too long
229
node_modules/video.js/dist/alt/video.debug.js
generated
vendored
229
node_modules/video.js/dist/alt/video.debug.js
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @license
|
||||
* Video.js 8.17.1 <http://videojs.com/>
|
||||
* Video.js 8.17.3 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
||||
|
@ -16,7 +16,7 @@
|
|||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.videojs = factory());
|
||||
})(this, (function () { 'use strict';
|
||||
|
||||
var version$5 = "8.17.1";
|
||||
var version$5 = "8.17.3";
|
||||
|
||||
/**
|
||||
* An Object that contains lifecycle hooks as keys which point to an array
|
||||
|
@ -2171,7 +2171,6 @@
|
|||
/* eslint-enable */
|
||||
}
|
||||
}
|
||||
|
||||
event.fixed_ = true;
|
||||
// Returns fixed-up instance
|
||||
return event;
|
||||
|
@ -2985,7 +2984,12 @@
|
|||
}
|
||||
[type, listener] = args;
|
||||
} else {
|
||||
[target, type, listener] = args;
|
||||
// This was `[target, type, listener] = args;` but this block needs more than
|
||||
// one statement to produce minified output compatible with Chrome 53.
|
||||
// See https://github.com/videojs/video.js/pull/8810
|
||||
target = args[0];
|
||||
type = args[1];
|
||||
listener = args[2];
|
||||
}
|
||||
validateTarget(target, self, fnName);
|
||||
validateEventType(type, self, fnName);
|
||||
|
@ -6389,6 +6393,14 @@
|
|||
if (closeButton) {
|
||||
parentEl.appendChild(closeButton.el_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after `ModalDialog` is re-filled with content & close button is appended.
|
||||
*
|
||||
* @event ModalDialog#aftermodalfill
|
||||
* @type {Event}
|
||||
*/
|
||||
this.trigger('aftermodalfill');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -7477,18 +7489,13 @@
|
|||
|
||||
var _extends_1 = createCommonjsModule(function (module) {
|
||||
function _extends() {
|
||||
module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
for (var key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
return (module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
|
||||
for (var e = 1; e < arguments.length; e++) {
|
||||
var t = arguments[e];
|
||||
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
||||
}
|
||||
return target;
|
||||
}, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
||||
return _extends.apply(this, arguments);
|
||||
return n;
|
||||
}, module.exports.__esModule = true, module.exports["default"] = module.exports), _extends.apply(null, arguments);
|
||||
}
|
||||
module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
||||
});
|
||||
|
@ -7708,7 +7715,6 @@
|
|||
* So if we have delay as 1000
|
||||
* This function can generate any value from 900 to 1100
|
||||
*/;
|
||||
|
||||
_proto2.getCurrentFuzzedDelay = function getCurrentFuzzedDelay() {
|
||||
var lowValue = this.getCurrentMinPossibleDelay();
|
||||
var highValue = this.getCurrentMaxPossibleDelay();
|
||||
|
@ -12405,6 +12411,24 @@
|
|||
this.player_.on('focusin', this.handlePlayerFocus_.bind(this));
|
||||
this.player_.on('focusout', this.handlePlayerBlur_.bind(this));
|
||||
this.isListening_ = true;
|
||||
this.player_.errorDisplay.on('aftermodalfill', () => {
|
||||
this.updateFocusableComponents();
|
||||
if (this.focusableComponents.length) {
|
||||
// The modal has focusable components:
|
||||
|
||||
if (this.focusableComponents.length > 1) {
|
||||
// The modal has close button + some additional buttons.
|
||||
// Focusing first additional button:
|
||||
|
||||
this.focusableComponents[1].focus();
|
||||
} else {
|
||||
// The modal has only close button,
|
||||
// Focusing it:
|
||||
|
||||
this.focusableComponents[0].focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -12533,7 +12557,7 @@
|
|||
}
|
||||
}
|
||||
if (!event.currentTarget.contains(event.relatedTarget) && !isChildrenOfPlayer || !nextFocusedElement) {
|
||||
if (currentComponent.name() === 'CloseButton') {
|
||||
if (currentComponent && currentComponent.name() === 'CloseButton') {
|
||||
this.refocusComponent();
|
||||
} else {
|
||||
this.pause();
|
||||
|
@ -12603,6 +12627,58 @@
|
|||
focusableComponents.push(value);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - Refactor the following logic after refactor of videojs-errors elements to be components is done.
|
||||
if (value.name_ === 'ErrorDisplay' && value.opened_) {
|
||||
const buttonContainer = value.el_.querySelector('.vjs-errors-ok-button-container');
|
||||
if (buttonContainer) {
|
||||
const modalButtons = buttonContainer.querySelectorAll('button');
|
||||
modalButtons.forEach((element, index) => {
|
||||
// Add elements as objects to be handled by the spatial navigation
|
||||
focusableComponents.push({
|
||||
name: () => {
|
||||
return 'ModalButton' + (index + 1);
|
||||
},
|
||||
el: () => element,
|
||||
getPositions: () => {
|
||||
const rect = element.getBoundingClientRect();
|
||||
|
||||
// Creating objects that mirror DOMRectReadOnly for boundingClientRect and center
|
||||
const boundingClientRect = {
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
top: rect.top,
|
||||
right: rect.right,
|
||||
bottom: rect.bottom,
|
||||
left: rect.left
|
||||
};
|
||||
|
||||
// Calculating the center position
|
||||
const center = {
|
||||
x: rect.left + rect.width / 2,
|
||||
y: rect.top + rect.height / 2,
|
||||
width: 0,
|
||||
height: 0,
|
||||
top: rect.top + rect.height / 2,
|
||||
right: rect.left + rect.width / 2,
|
||||
bottom: rect.top + rect.height / 2,
|
||||
left: rect.left + rect.width / 2
|
||||
};
|
||||
return {
|
||||
boundingClientRect,
|
||||
center
|
||||
};
|
||||
},
|
||||
// Asume that the following are always focusable
|
||||
getIsAvailableToBeFocused: () => true,
|
||||
getIsFocusable: el => true,
|
||||
focus: () => element.focus()
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
this.focusableComponents = focusableComponents;
|
||||
return this.focusableComponents;
|
||||
|
@ -12638,7 +12714,10 @@
|
|||
}
|
||||
return null;
|
||||
}
|
||||
return searchForSuitableChild(component.el());
|
||||
if (component.el()) {
|
||||
return searchForSuitableChild(component.el());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -12797,7 +12876,7 @@
|
|||
*/
|
||||
refocusComponent() {
|
||||
if (this.lastFocusedComponent_) {
|
||||
// If use is not active, set it to active.
|
||||
// If user is not active, set it to active.
|
||||
if (!this.player_.userActive()) {
|
||||
this.player_.userActive(true);
|
||||
}
|
||||
|
@ -12824,6 +12903,9 @@
|
|||
* @param {Component} component - The component to be focused.
|
||||
*/
|
||||
focus(component) {
|
||||
if (typeof component !== 'object') {
|
||||
return;
|
||||
}
|
||||
if (component.getIsAvailableToBeFocused(component.el())) {
|
||||
component.focus();
|
||||
} else if (this.findSuitableDOMChild(component)) {
|
||||
|
@ -20679,11 +20761,11 @@
|
|||
this.addChild(trackSettingsControls);
|
||||
}
|
||||
bindFunctionsToSelectsAndButtons() {
|
||||
this.on(this.$('.vjs-done-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-done-button'), ['click', 'tap'], () => {
|
||||
this.saveSettings();
|
||||
this.close();
|
||||
});
|
||||
this.on(this.$('.vjs-default-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-default-button'), ['click', 'tap'], () => {
|
||||
this.setDefaults();
|
||||
this.updateDisplay();
|
||||
});
|
||||
|
@ -30451,7 +30533,6 @@
|
|||
* type of event through `on`
|
||||
* @return {boolean} if we could turn it off or not
|
||||
*/;
|
||||
|
||||
_proto.off = function off(type, listener) {
|
||||
if (!this.listeners[type]) {
|
||||
return false;
|
||||
|
@ -30475,7 +30556,6 @@
|
|||
*
|
||||
* @param {string} type the event name
|
||||
*/;
|
||||
|
||||
_proto.trigger = function trigger(type) {
|
||||
var callbacks = this.listeners[type];
|
||||
if (!callbacks) {
|
||||
|
@ -30501,7 +30581,6 @@
|
|||
/**
|
||||
* Destroys the stream and cleans up.
|
||||
*/;
|
||||
|
||||
_proto.dispose = function dispose() {
|
||||
this.listeners = {};
|
||||
}
|
||||
|
@ -30513,7 +30592,6 @@
|
|||
* @param {Stream} destination the stream that will receive all `data` events
|
||||
* @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
|
||||
*/;
|
||||
|
||||
_proto.pipe = function pipe(destination) {
|
||||
this.on('data', function (data) {
|
||||
destination.push(data);
|
||||
|
@ -32788,7 +32866,7 @@
|
|||
var ls = list._refresh(list._node);
|
||||
__set__(list, 'length', ls.length);
|
||||
if (!list.$$length || ls.length < list.$$length) {
|
||||
for (var i = ls.length; (i in list); i++) {
|
||||
for (var i = ls.length; i in list; i++) {
|
||||
if (Object.prototype.hasOwnProperty.call(list, i)) {
|
||||
delete list[i];
|
||||
}
|
||||
|
@ -33500,7 +33578,6 @@
|
|||
if (cp) {
|
||||
cp.removeChild(node); //remove and update
|
||||
}
|
||||
|
||||
if (node.nodeType === DOCUMENT_FRAGMENT_NODE) {
|
||||
var newFirst = node.firstChild;
|
||||
if (newFirst == null) {
|
||||
|
@ -33959,7 +34036,6 @@
|
|||
];
|
||||
}
|
||||
}
|
||||
|
||||
serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);
|
||||
//console.log('###',this.nodeType,uri,prefix,buf.join(''))
|
||||
return buf.join('');
|
||||
|
@ -34022,7 +34098,6 @@
|
|||
}
|
||||
//buf.sort.apply(attrs, attributeSorter);
|
||||
}
|
||||
|
||||
switch (node.nodeType) {
|
||||
case ELEMENT_NODE:
|
||||
var attrs = node.attributes;
|
||||
|
@ -34220,11 +34295,9 @@
|
|||
//can not hit in level3
|
||||
//default:throw e;
|
||||
}
|
||||
|
||||
if (!node2) {
|
||||
node2 = node.cloneNode(false); //false
|
||||
}
|
||||
|
||||
node2.ownerDocument = doc;
|
||||
node2.parentNode = null;
|
||||
if (deep) {
|
||||
|
@ -36613,7 +36686,6 @@
|
|||
locator.lineNumber++;
|
||||
//console.log('line++:',locator,startPos,endPos)
|
||||
}
|
||||
|
||||
locator.columnNumber = p - lineStart + 1;
|
||||
}
|
||||
var lineStart = 0;
|
||||
|
@ -36782,7 +36854,6 @@
|
|||
//fatalError: equal must after attrName or space after attrName
|
||||
throw new Error('attribute equal must after attrName'); // No known test case
|
||||
}
|
||||
|
||||
break;
|
||||
case '\'':
|
||||
case '"':
|
||||
|
@ -36813,7 +36884,6 @@
|
|||
//fatalError: no equal before
|
||||
throw new Error('attribute value must after "="'); // No known test case
|
||||
}
|
||||
|
||||
break;
|
||||
case '/':
|
||||
switch (s) {
|
||||
|
@ -36835,7 +36905,6 @@
|
|||
throw new Error("attribute invalid close char('/')");
|
||||
// No known test case
|
||||
}
|
||||
|
||||
break;
|
||||
case '':
|
||||
//end document
|
||||
|
@ -36977,7 +37046,6 @@
|
|||
_copy(currentNSMap, currentNSMap = {});
|
||||
//console.log(currentNSMap,1)
|
||||
}
|
||||
|
||||
currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;
|
||||
a.uri = NAMESPACE$1.XMLNS;
|
||||
domBuilder.startPrefixMapping(nsPrefix, value);
|
||||
|
@ -36999,7 +37067,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
var nsp = tagName.indexOf(':');
|
||||
if (nsp > 0) {
|
||||
prefix = el.prefix = tagName.slice(0, nsp);
|
||||
|
@ -37048,7 +37115,6 @@
|
|||
//}
|
||||
}
|
||||
}
|
||||
|
||||
return elStartEnd + 1;
|
||||
}
|
||||
function fixSelfClosed(source, elStartEnd, tagName, closeMap) {
|
||||
|
@ -37066,7 +37132,6 @@
|
|||
return pos < elStartEnd;
|
||||
//}
|
||||
}
|
||||
|
||||
function _copy(source, target) {
|
||||
for (var n in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, n)) {
|
||||
|
@ -37188,7 +37253,6 @@
|
|||
// getType:function(uri,localName){}
|
||||
// getType:function(i){},
|
||||
};
|
||||
|
||||
function split(source, start) {
|
||||
var match;
|
||||
var buf = [];
|
||||
|
@ -37399,7 +37463,6 @@
|
|||
this.doc.appendChild(charNode);
|
||||
//process xml
|
||||
}
|
||||
|
||||
this.locator && position(this.locator, charNode);
|
||||
}
|
||||
},
|
||||
|
@ -40691,7 +40754,7 @@
|
|||
};
|
||||
var clock_1 = clock.ONE_SECOND_IN_TS;
|
||||
|
||||
/*! @name @videojs/http-streaming @version 3.13.1 @license Apache-2.0 */
|
||||
/*! @name @videojs/http-streaming @version 3.13.2 @license Apache-2.0 */
|
||||
|
||||
/**
|
||||
* @file resolve-url.js - Handling how URLs are resolved and manipulated
|
||||
|
@ -45196,7 +45259,6 @@
|
|||
// reserved
|
||||
0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'
|
||||
]);
|
||||
|
||||
AUDIO_HDLR = new Uint8Array([0x00,
|
||||
// version 0
|
||||
0x00, 0x00, 0x00,
|
||||
|
@ -45213,7 +45275,6 @@
|
|||
// reserved
|
||||
0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'
|
||||
]);
|
||||
|
||||
HDLR_TYPES = {
|
||||
video: VIDEO_HDLR,
|
||||
audio: AUDIO_HDLR
|
||||
|
@ -45232,7 +45293,6 @@
|
|||
// version 0
|
||||
0x00, 0x00, 0x01 // entry_flags
|
||||
]);
|
||||
|
||||
SMHD = new Uint8Array([0x00,
|
||||
// version
|
||||
0x00, 0x00, 0x00,
|
||||
|
@ -45241,14 +45301,12 @@
|
|||
// balance, 0 means centered
|
||||
0x00, 0x00 // reserved
|
||||
]);
|
||||
|
||||
STCO = new Uint8Array([0x00,
|
||||
// version
|
||||
0x00, 0x00, 0x00,
|
||||
// flags
|
||||
0x00, 0x00, 0x00, 0x00 // entry_count
|
||||
]);
|
||||
|
||||
STSC = STCO;
|
||||
STSZ = new Uint8Array([0x00,
|
||||
// version
|
||||
|
@ -45258,7 +45316,6 @@
|
|||
// sample_size
|
||||
0x00, 0x00, 0x00, 0x00 // sample_count
|
||||
]);
|
||||
|
||||
STTS = STCO;
|
||||
VMHD = new Uint8Array([0x00,
|
||||
// version
|
||||
|
@ -45269,7 +45326,6 @@
|
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // opcolor
|
||||
]);
|
||||
})();
|
||||
|
||||
box = function (type) {
|
||||
var payload = [],
|
||||
size = 0,
|
||||
|
@ -45337,7 +45393,6 @@
|
|||
track.audioobjecttype << 3 | track.samplingfrequencyindex >>> 1, track.samplingfrequencyindex << 7 | track.channelcount << 3, 0x06, 0x01, 0x02 // GASpecificConfig
|
||||
]));
|
||||
};
|
||||
|
||||
ftyp = function () {
|
||||
return box(types.ftyp, MAJOR_BRAND, MINOR_VERSION, MAJOR_BRAND, AVC1_BRAND);
|
||||
};
|
||||
|
@ -45383,7 +45438,6 @@
|
|||
(sequenceNumber & 0xFF000000) >> 24, (sequenceNumber & 0xFF0000) >> 16, (sequenceNumber & 0xFF00) >> 8, sequenceNumber & 0xFF // sequence_number
|
||||
]));
|
||||
};
|
||||
|
||||
minf = function (track) {
|
||||
return box(types.minf, track.type === 'video' ? box(types.vmhd, VMHD) : box(types.smhd, SMHD), dinf(), stbl(track));
|
||||
};
|
||||
|
@ -45447,7 +45501,6 @@
|
|||
// pre_defined
|
||||
0xff, 0xff, 0xff, 0xff // next_track_ID
|
||||
]);
|
||||
|
||||
return box(types.mvhd, bytes);
|
||||
};
|
||||
sdtp = function (track) {
|
||||
|
@ -45544,7 +45597,6 @@
|
|||
// maxBitrate
|
||||
0x00, 0x2d, 0xc6, 0xc0 // avgBitrate
|
||||
]))];
|
||||
|
||||
if (track.sarRatio) {
|
||||
var hSpacing = track.sarRatio[0],
|
||||
vSpacing = track.sarRatio[1];
|
||||
|
@ -45608,7 +45660,6 @@
|
|||
// width
|
||||
(track.height & 0xFF00) >> 8, track.height & 0xFF, 0x00, 0x00 // height
|
||||
]);
|
||||
|
||||
return box(types.tkhd, result);
|
||||
};
|
||||
/**
|
||||
|
@ -45632,7 +45683,6 @@
|
|||
// default_sample_size
|
||||
0x00, 0x00, 0x00, 0x00 // default_sample_flags
|
||||
]));
|
||||
|
||||
upperWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime / MAX_UINT32);
|
||||
lowerWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime % MAX_UINT32);
|
||||
trackFragmentDecodeTime = box(types.tfdt, new Uint8Array([0x01,
|
||||
|
@ -45737,7 +45787,6 @@
|
|||
(offset & 0xFF000000) >>> 24, (offset & 0xFF0000) >>> 16, (offset & 0xFF00) >>> 8, offset & 0xFF // data_offset
|
||||
];
|
||||
};
|
||||
|
||||
videoTrun = function (track, offset) {
|
||||
var bytesOffest, bytes, header, samples, sample, i;
|
||||
samples = track.samples || [];
|
||||
|
@ -45768,7 +45817,6 @@
|
|||
bytes[bytesOffest++] = (sample.compositionTimeOffset & 0xFF00) >>> 8;
|
||||
bytes[bytesOffest++] = sample.compositionTimeOffset & 0xFF; // sample_composition_time_offset
|
||||
}
|
||||
|
||||
return box(types.trun, bytes);
|
||||
};
|
||||
audioTrun = function (track, offset) {
|
||||
|
@ -45791,7 +45839,6 @@
|
|||
bytes[bytesOffest++] = (sample.size & 0xFF00) >>> 8;
|
||||
bytes[bytesOffest++] = sample.size & 0xFF; // sample_size
|
||||
}
|
||||
|
||||
return box(types.trun, bytes);
|
||||
};
|
||||
trun$1 = function (track, offset) {
|
||||
|
@ -46290,7 +46337,6 @@
|
|||
duration: 1024 // For AAC audio, all samples contain 1024 samples
|
||||
});
|
||||
}
|
||||
|
||||
return samples;
|
||||
}; // generate the track's sample table from an array of frames
|
||||
|
||||
|
@ -46604,13 +46650,11 @@
|
|||
// eslint-disable-line no-use-before-define
|
||||
new Cea608Stream(1, 1) // eslint-disable-line no-use-before-define
|
||||
];
|
||||
|
||||
if (this.parse708captions_) {
|
||||
this.cc708Stream_ = new Cea708Stream({
|
||||
captionServices: options.captionServices
|
||||
}); // eslint-disable-line no-use-before-define
|
||||
}
|
||||
|
||||
this.reset(); // forward data and done events from CCs to this CaptionStream
|
||||
|
||||
this.ccStreams_.forEach(function (cc) {
|
||||
|
@ -46845,7 +46889,6 @@
|
|||
// ⎡
|
||||
0x10a0: 0x3138 // ㄸ (CC char)
|
||||
};
|
||||
|
||||
var get708CharFromCode = function (code) {
|
||||
var newCode = CHARACTER_TRANSLATION_708[code] || code;
|
||||
if (code & 0x1000 && code === newCode) {
|
||||
|
@ -47827,7 +47870,6 @@
|
|||
// └
|
||||
0x033f: 0x2518 // ┘
|
||||
};
|
||||
|
||||
var getCharFromCode = function (code) {
|
||||
if (code === null) {
|
||||
return '';
|
||||
|
@ -48040,7 +48082,6 @@
|
|||
} // finish data processing
|
||||
};
|
||||
};
|
||||
|
||||
Cea608Stream.prototype = new Stream$7(); // Trigger a cue point that captures the current state of the
|
||||
// display buffer
|
||||
|
||||
|
@ -49619,7 +49660,6 @@
|
|||
// the number is odd if the low order bit is set
|
||||
return 1 + valu >>> 1; // add 1 to make it even, and divide by 2
|
||||
}
|
||||
|
||||
return -1 * (valu >>> 1); // divide by two then make it negative
|
||||
}; // Some convenience functions
|
||||
// :Boolean
|
||||
|
@ -49988,7 +50028,6 @@
|
|||
if (chromaFormatIdc === 3) {
|
||||
expGolombDecoder.skipBits(1); // separate_colour_plane_flag
|
||||
}
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_luma_minus8
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_chroma_minus8
|
||||
|
@ -50027,7 +50066,6 @@
|
|||
expGolombDecoder.skipExpGolomb(); // offset_for_ref_frame[ i ]
|
||||
}
|
||||
}
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // max_num_ref_frames
|
||||
|
||||
expGolombDecoder.skipBits(1); // gaps_in_frame_num_value_allowed_flag
|
||||
|
@ -50038,7 +50076,6 @@
|
|||
if (frameMbsOnlyFlag === 0) {
|
||||
expGolombDecoder.skipBits(1); // mb_adaptive_frame_field_flag
|
||||
}
|
||||
|
||||
expGolombDecoder.skipBits(1); // direct_8x8_inference_flag
|
||||
|
||||
if (expGolombDecoder.readBoolean()) {
|
||||
|
@ -50183,7 +50220,6 @@
|
|||
var parseIso88591 = function (bytes, start, end) {
|
||||
return unescape(percentEncode(bytes, start, end)); // jshint ignore:line
|
||||
};
|
||||
|
||||
var parseAdtsSize = function (header, byteIndex) {
|
||||
var lowThree = (header[byteIndex + 5] & 0xE0) >> 5,
|
||||
middle = header[byteIndex + 4] << 3,
|
||||
|
@ -52622,7 +52658,6 @@
|
|||
pes.dts += (packet[offset + 18] & 0x06) >>> 1; // OR by the two LSBs
|
||||
}
|
||||
}
|
||||
|
||||
return pes;
|
||||
};
|
||||
var parseNalUnitType = function (type) {
|
||||
|
@ -53657,7 +53692,6 @@
|
|||
dequeue(transmuxer);
|
||||
/* eslint-enable */
|
||||
};
|
||||
|
||||
const handleError = () => {
|
||||
const error = {
|
||||
message: 'Received an error message from the transmuxer worker',
|
||||
|
@ -56314,6 +56348,32 @@
|
|||
}
|
||||
return false;
|
||||
};
|
||||
const shouldFixBadTimelineChanges = timelineChangeController => {
|
||||
if (!timelineChangeController) {
|
||||
return false;
|
||||
}
|
||||
const pendingAudioTimelineChange = timelineChangeController.pendingTimelineChange({
|
||||
type: 'audio'
|
||||
});
|
||||
const pendingMainTimelineChange = timelineChangeController.pendingTimelineChange({
|
||||
type: 'main'
|
||||
});
|
||||
const hasPendingTimelineChanges = pendingAudioTimelineChange && pendingMainTimelineChange;
|
||||
const differentPendingChanges = hasPendingTimelineChanges && pendingAudioTimelineChange.to !== pendingMainTimelineChange.to;
|
||||
const isNotInitialPendingTimelineChange = hasPendingTimelineChanges && pendingAudioTimelineChange.from !== -1 && pendingMainTimelineChange.from !== -1;
|
||||
if (isNotInitialPendingTimelineChange && differentPendingChanges) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
const fixBadTimelineChange = segmentLoader => {
|
||||
if (!segmentLoader) {
|
||||
return;
|
||||
}
|
||||
segmentLoader.pause();
|
||||
segmentLoader.resetEverything();
|
||||
segmentLoader.load();
|
||||
};
|
||||
const mediaDuration = timingInfos => {
|
||||
let maxDuration = 0;
|
||||
['video', 'audio'].forEach(function (type) {
|
||||
|
@ -57823,6 +57883,9 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
loaderType: this.loaderType_,
|
||||
audioDisabled: this.audioDisabled_
|
||||
})) {
|
||||
if (shouldFixBadTimelineChanges(this.timelineChangeController_)) {
|
||||
fixBadTimelineChange(this);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -57864,7 +57927,8 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
|
||||
if (hasAudio && !this.audioDisabled_ && !isMuxed && !segmentInfo.audioTimingInfo) {
|
||||
return false;
|
||||
}
|
||||
} // we need to allow an append here even if we're moving to different timelines.
|
||||
|
||||
if (shouldWaitForTimelineChange({
|
||||
timelineChangeController: this.timelineChangeController_,
|
||||
currentTimeline: this.currentTimeline_,
|
||||
|
@ -57872,6 +57936,9 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
loaderType: this.loaderType_,
|
||||
audioDisabled: this.audioDisabled_
|
||||
})) {
|
||||
if (shouldFixBadTimelineChanges(this.timelineChangeController_)) {
|
||||
fixBadTimelineChange(this);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -59704,7 +59771,7 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
videoTimestampOffset(offset) {
|
||||
if (typeof offset !== 'undefined' && this.videoBuffer &&
|
||||
// no point in updating if it's the same
|
||||
this.videoTimestampOffset !== offset) {
|
||||
this.videoTimestampOffset_ !== offset) {
|
||||
pushQueue({
|
||||
type: 'video',
|
||||
sourceUpdater: this,
|
||||
|
@ -61253,7 +61320,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
* type of event through `on`
|
||||
* @return {boolean} if we could turn it off or not
|
||||
*/;
|
||||
|
||||
_proto.off = function off(type, listener) {
|
||||
if (!this.listeners[type]) {
|
||||
return false;
|
||||
|
@ -61277,7 +61343,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
*
|
||||
* @param {string} type the event name
|
||||
*/;
|
||||
|
||||
_proto.trigger = function trigger(type) {
|
||||
var callbacks = this.listeners[type];
|
||||
if (!callbacks) {
|
||||
|
@ -61303,7 +61368,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
/**
|
||||
* Destroys the stream and cleans up.
|
||||
*/;
|
||||
|
||||
_proto.dispose = function dispose() {
|
||||
this.listeners = {};
|
||||
}
|
||||
|
@ -61315,7 +61379,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
* @param {Stream} destination the stream that will receive all `data` events
|
||||
* @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
|
||||
*/;
|
||||
|
||||
_proto.pipe = function pipe(destination) {
|
||||
this.on('data', function (data) {
|
||||
destination.push(data);
|
||||
|
@ -61809,7 +61872,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
/* eslint-enable */
|
||||
};
|
||||
}));
|
||||
|
||||
var Decrypter = factory(workerCode);
|
||||
/* rollup-plugin-worker-factory end for worker!/home/runner/work/http-streaming/http-streaming/src/decrypter-worker.js */
|
||||
|
||||
|
@ -63989,16 +64051,11 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
this.waitingForFastQualityPlaylistReceived_ = true;
|
||||
}
|
||||
runFastQualitySwitch_() {
|
||||
this.waitingForFastQualityPlaylistReceived_ = false; // Delete all buffered data to allow an immediate quality switch, then seek to give
|
||||
// the browser a kick to remove any cached frames from the previous rendtion (.04 seconds
|
||||
// ahead was roughly the minimum that will accomplish this across a variety of content
|
||||
// in IE and Edge, but seeking in place is sufficient on all other browsers)
|
||||
// Edge/IE bug: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/14600375/
|
||||
// Chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=651904
|
||||
this.waitingForFastQualityPlaylistReceived_ = false; // Delete all buffered data to allow an immediate quality switch.
|
||||
|
||||
this.mainSegmentLoader_.pause();
|
||||
this.mainSegmentLoader_.resetEverything(() => {
|
||||
this.tech_.setCurrentTime(this.tech_.currentTime());
|
||||
this.mainSegmentLoader_.load();
|
||||
}); // don't need to reset audio as it is reset when media changes
|
||||
}
|
||||
/**
|
||||
|
@ -66036,7 +66093,7 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
const reloadSourceOnError = function (options) {
|
||||
initPlugin(this, options);
|
||||
};
|
||||
var version$4 = "3.13.1";
|
||||
var version$4 = "3.13.2";
|
||||
var version$3 = "7.0.3";
|
||||
var version$2 = "1.3.0";
|
||||
var version$1 = "7.1.0";
|
||||
|
|
229
node_modules/video.js/dist/alt/video.novtt.js
generated
vendored
229
node_modules/video.js/dist/alt/video.novtt.js
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @license
|
||||
* Video.js 8.17.1 <http://videojs.com/>
|
||||
* Video.js 8.17.3 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
||||
|
@ -16,7 +16,7 @@
|
|||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.videojs = factory());
|
||||
})(this, (function () { 'use strict';
|
||||
|
||||
var version$5 = "8.17.1";
|
||||
var version$5 = "8.17.3";
|
||||
|
||||
/**
|
||||
* An Object that contains lifecycle hooks as keys which point to an array
|
||||
|
@ -2171,7 +2171,6 @@
|
|||
/* eslint-enable */
|
||||
}
|
||||
}
|
||||
|
||||
event.fixed_ = true;
|
||||
// Returns fixed-up instance
|
||||
return event;
|
||||
|
@ -2985,7 +2984,12 @@
|
|||
}
|
||||
[type, listener] = args;
|
||||
} else {
|
||||
[target, type, listener] = args;
|
||||
// This was `[target, type, listener] = args;` but this block needs more than
|
||||
// one statement to produce minified output compatible with Chrome 53.
|
||||
// See https://github.com/videojs/video.js/pull/8810
|
||||
target = args[0];
|
||||
type = args[1];
|
||||
listener = args[2];
|
||||
}
|
||||
validateTarget(target, self, fnName);
|
||||
validateEventType(type, self, fnName);
|
||||
|
@ -6389,6 +6393,14 @@
|
|||
if (closeButton) {
|
||||
parentEl.appendChild(closeButton.el_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after `ModalDialog` is re-filled with content & close button is appended.
|
||||
*
|
||||
* @event ModalDialog#aftermodalfill
|
||||
* @type {Event}
|
||||
*/
|
||||
this.trigger('aftermodalfill');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -7477,18 +7489,13 @@
|
|||
|
||||
var _extends_1 = createCommonjsModule(function (module) {
|
||||
function _extends() {
|
||||
module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
for (var key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
return (module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
|
||||
for (var e = 1; e < arguments.length; e++) {
|
||||
var t = arguments[e];
|
||||
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
||||
}
|
||||
return target;
|
||||
}, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
||||
return _extends.apply(this, arguments);
|
||||
return n;
|
||||
}, module.exports.__esModule = true, module.exports["default"] = module.exports), _extends.apply(null, arguments);
|
||||
}
|
||||
module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
||||
});
|
||||
|
@ -7708,7 +7715,6 @@
|
|||
* So if we have delay as 1000
|
||||
* This function can generate any value from 900 to 1100
|
||||
*/;
|
||||
|
||||
_proto2.getCurrentFuzzedDelay = function getCurrentFuzzedDelay() {
|
||||
var lowValue = this.getCurrentMinPossibleDelay();
|
||||
var highValue = this.getCurrentMaxPossibleDelay();
|
||||
|
@ -10703,6 +10709,24 @@
|
|||
this.player_.on('focusin', this.handlePlayerFocus_.bind(this));
|
||||
this.player_.on('focusout', this.handlePlayerBlur_.bind(this));
|
||||
this.isListening_ = true;
|
||||
this.player_.errorDisplay.on('aftermodalfill', () => {
|
||||
this.updateFocusableComponents();
|
||||
if (this.focusableComponents.length) {
|
||||
// The modal has focusable components:
|
||||
|
||||
if (this.focusableComponents.length > 1) {
|
||||
// The modal has close button + some additional buttons.
|
||||
// Focusing first additional button:
|
||||
|
||||
this.focusableComponents[1].focus();
|
||||
} else {
|
||||
// The modal has only close button,
|
||||
// Focusing it:
|
||||
|
||||
this.focusableComponents[0].focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10831,7 +10855,7 @@
|
|||
}
|
||||
}
|
||||
if (!event.currentTarget.contains(event.relatedTarget) && !isChildrenOfPlayer || !nextFocusedElement) {
|
||||
if (currentComponent.name() === 'CloseButton') {
|
||||
if (currentComponent && currentComponent.name() === 'CloseButton') {
|
||||
this.refocusComponent();
|
||||
} else {
|
||||
this.pause();
|
||||
|
@ -10901,6 +10925,58 @@
|
|||
focusableComponents.push(value);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - Refactor the following logic after refactor of videojs-errors elements to be components is done.
|
||||
if (value.name_ === 'ErrorDisplay' && value.opened_) {
|
||||
const buttonContainer = value.el_.querySelector('.vjs-errors-ok-button-container');
|
||||
if (buttonContainer) {
|
||||
const modalButtons = buttonContainer.querySelectorAll('button');
|
||||
modalButtons.forEach((element, index) => {
|
||||
// Add elements as objects to be handled by the spatial navigation
|
||||
focusableComponents.push({
|
||||
name: () => {
|
||||
return 'ModalButton' + (index + 1);
|
||||
},
|
||||
el: () => element,
|
||||
getPositions: () => {
|
||||
const rect = element.getBoundingClientRect();
|
||||
|
||||
// Creating objects that mirror DOMRectReadOnly for boundingClientRect and center
|
||||
const boundingClientRect = {
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
top: rect.top,
|
||||
right: rect.right,
|
||||
bottom: rect.bottom,
|
||||
left: rect.left
|
||||
};
|
||||
|
||||
// Calculating the center position
|
||||
const center = {
|
||||
x: rect.left + rect.width / 2,
|
||||
y: rect.top + rect.height / 2,
|
||||
width: 0,
|
||||
height: 0,
|
||||
top: rect.top + rect.height / 2,
|
||||
right: rect.left + rect.width / 2,
|
||||
bottom: rect.top + rect.height / 2,
|
||||
left: rect.left + rect.width / 2
|
||||
};
|
||||
return {
|
||||
boundingClientRect,
|
||||
center
|
||||
};
|
||||
},
|
||||
// Asume that the following are always focusable
|
||||
getIsAvailableToBeFocused: () => true,
|
||||
getIsFocusable: el => true,
|
||||
focus: () => element.focus()
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
this.focusableComponents = focusableComponents;
|
||||
return this.focusableComponents;
|
||||
|
@ -10936,7 +11012,10 @@
|
|||
}
|
||||
return null;
|
||||
}
|
||||
return searchForSuitableChild(component.el());
|
||||
if (component.el()) {
|
||||
return searchForSuitableChild(component.el());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -11095,7 +11174,7 @@
|
|||
*/
|
||||
refocusComponent() {
|
||||
if (this.lastFocusedComponent_) {
|
||||
// If use is not active, set it to active.
|
||||
// If user is not active, set it to active.
|
||||
if (!this.player_.userActive()) {
|
||||
this.player_.userActive(true);
|
||||
}
|
||||
|
@ -11122,6 +11201,9 @@
|
|||
* @param {Component} component - The component to be focused.
|
||||
*/
|
||||
focus(component) {
|
||||
if (typeof component !== 'object') {
|
||||
return;
|
||||
}
|
||||
if (component.getIsAvailableToBeFocused(component.el())) {
|
||||
component.focus();
|
||||
} else if (this.findSuitableDOMChild(component)) {
|
||||
|
@ -18977,11 +19059,11 @@
|
|||
this.addChild(trackSettingsControls);
|
||||
}
|
||||
bindFunctionsToSelectsAndButtons() {
|
||||
this.on(this.$('.vjs-done-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-done-button'), ['click', 'tap'], () => {
|
||||
this.saveSettings();
|
||||
this.close();
|
||||
});
|
||||
this.on(this.$('.vjs-default-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-default-button'), ['click', 'tap'], () => {
|
||||
this.setDefaults();
|
||||
this.updateDisplay();
|
||||
});
|
||||
|
@ -28749,7 +28831,6 @@
|
|||
* type of event through `on`
|
||||
* @return {boolean} if we could turn it off or not
|
||||
*/;
|
||||
|
||||
_proto.off = function off(type, listener) {
|
||||
if (!this.listeners[type]) {
|
||||
return false;
|
||||
|
@ -28773,7 +28854,6 @@
|
|||
*
|
||||
* @param {string} type the event name
|
||||
*/;
|
||||
|
||||
_proto.trigger = function trigger(type) {
|
||||
var callbacks = this.listeners[type];
|
||||
if (!callbacks) {
|
||||
|
@ -28799,7 +28879,6 @@
|
|||
/**
|
||||
* Destroys the stream and cleans up.
|
||||
*/;
|
||||
|
||||
_proto.dispose = function dispose() {
|
||||
this.listeners = {};
|
||||
}
|
||||
|
@ -28811,7 +28890,6 @@
|
|||
* @param {Stream} destination the stream that will receive all `data` events
|
||||
* @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
|
||||
*/;
|
||||
|
||||
_proto.pipe = function pipe(destination) {
|
||||
this.on('data', function (data) {
|
||||
destination.push(data);
|
||||
|
@ -31086,7 +31164,7 @@
|
|||
var ls = list._refresh(list._node);
|
||||
__set__(list, 'length', ls.length);
|
||||
if (!list.$$length || ls.length < list.$$length) {
|
||||
for (var i = ls.length; (i in list); i++) {
|
||||
for (var i = ls.length; i in list; i++) {
|
||||
if (Object.prototype.hasOwnProperty.call(list, i)) {
|
||||
delete list[i];
|
||||
}
|
||||
|
@ -31798,7 +31876,6 @@
|
|||
if (cp) {
|
||||
cp.removeChild(node); //remove and update
|
||||
}
|
||||
|
||||
if (node.nodeType === DOCUMENT_FRAGMENT_NODE) {
|
||||
var newFirst = node.firstChild;
|
||||
if (newFirst == null) {
|
||||
|
@ -32257,7 +32334,6 @@
|
|||
];
|
||||
}
|
||||
}
|
||||
|
||||
serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);
|
||||
//console.log('###',this.nodeType,uri,prefix,buf.join(''))
|
||||
return buf.join('');
|
||||
|
@ -32320,7 +32396,6 @@
|
|||
}
|
||||
//buf.sort.apply(attrs, attributeSorter);
|
||||
}
|
||||
|
||||
switch (node.nodeType) {
|
||||
case ELEMENT_NODE:
|
||||
var attrs = node.attributes;
|
||||
|
@ -32518,11 +32593,9 @@
|
|||
//can not hit in level3
|
||||
//default:throw e;
|
||||
}
|
||||
|
||||
if (!node2) {
|
||||
node2 = node.cloneNode(false); //false
|
||||
}
|
||||
|
||||
node2.ownerDocument = doc;
|
||||
node2.parentNode = null;
|
||||
if (deep) {
|
||||
|
@ -34911,7 +34984,6 @@
|
|||
locator.lineNumber++;
|
||||
//console.log('line++:',locator,startPos,endPos)
|
||||
}
|
||||
|
||||
locator.columnNumber = p - lineStart + 1;
|
||||
}
|
||||
var lineStart = 0;
|
||||
|
@ -35080,7 +35152,6 @@
|
|||
//fatalError: equal must after attrName or space after attrName
|
||||
throw new Error('attribute equal must after attrName'); // No known test case
|
||||
}
|
||||
|
||||
break;
|
||||
case '\'':
|
||||
case '"':
|
||||
|
@ -35111,7 +35182,6 @@
|
|||
//fatalError: no equal before
|
||||
throw new Error('attribute value must after "="'); // No known test case
|
||||
}
|
||||
|
||||
break;
|
||||
case '/':
|
||||
switch (s) {
|
||||
|
@ -35133,7 +35203,6 @@
|
|||
throw new Error("attribute invalid close char('/')");
|
||||
// No known test case
|
||||
}
|
||||
|
||||
break;
|
||||
case '':
|
||||
//end document
|
||||
|
@ -35275,7 +35344,6 @@
|
|||
_copy(currentNSMap, currentNSMap = {});
|
||||
//console.log(currentNSMap,1)
|
||||
}
|
||||
|
||||
currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;
|
||||
a.uri = NAMESPACE$1.XMLNS;
|
||||
domBuilder.startPrefixMapping(nsPrefix, value);
|
||||
|
@ -35297,7 +35365,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
var nsp = tagName.indexOf(':');
|
||||
if (nsp > 0) {
|
||||
prefix = el.prefix = tagName.slice(0, nsp);
|
||||
|
@ -35346,7 +35413,6 @@
|
|||
//}
|
||||
}
|
||||
}
|
||||
|
||||
return elStartEnd + 1;
|
||||
}
|
||||
function fixSelfClosed(source, elStartEnd, tagName, closeMap) {
|
||||
|
@ -35364,7 +35430,6 @@
|
|||
return pos < elStartEnd;
|
||||
//}
|
||||
}
|
||||
|
||||
function _copy(source, target) {
|
||||
for (var n in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, n)) {
|
||||
|
@ -35486,7 +35551,6 @@
|
|||
// getType:function(uri,localName){}
|
||||
// getType:function(i){},
|
||||
};
|
||||
|
||||
function split(source, start) {
|
||||
var match;
|
||||
var buf = [];
|
||||
|
@ -35697,7 +35761,6 @@
|
|||
this.doc.appendChild(charNode);
|
||||
//process xml
|
||||
}
|
||||
|
||||
this.locator && position(this.locator, charNode);
|
||||
}
|
||||
},
|
||||
|
@ -38989,7 +39052,7 @@
|
|||
};
|
||||
var clock_1 = clock.ONE_SECOND_IN_TS;
|
||||
|
||||
/*! @name @videojs/http-streaming @version 3.13.1 @license Apache-2.0 */
|
||||
/*! @name @videojs/http-streaming @version 3.13.2 @license Apache-2.0 */
|
||||
|
||||
/**
|
||||
* @file resolve-url.js - Handling how URLs are resolved and manipulated
|
||||
|
@ -43494,7 +43557,6 @@
|
|||
// reserved
|
||||
0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'
|
||||
]);
|
||||
|
||||
AUDIO_HDLR = new Uint8Array([0x00,
|
||||
// version 0
|
||||
0x00, 0x00, 0x00,
|
||||
|
@ -43511,7 +43573,6 @@
|
|||
// reserved
|
||||
0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'
|
||||
]);
|
||||
|
||||
HDLR_TYPES = {
|
||||
video: VIDEO_HDLR,
|
||||
audio: AUDIO_HDLR
|
||||
|
@ -43530,7 +43591,6 @@
|
|||
// version 0
|
||||
0x00, 0x00, 0x01 // entry_flags
|
||||
]);
|
||||
|
||||
SMHD = new Uint8Array([0x00,
|
||||
// version
|
||||
0x00, 0x00, 0x00,
|
||||
|
@ -43539,14 +43599,12 @@
|
|||
// balance, 0 means centered
|
||||
0x00, 0x00 // reserved
|
||||
]);
|
||||
|
||||
STCO = new Uint8Array([0x00,
|
||||
// version
|
||||
0x00, 0x00, 0x00,
|
||||
// flags
|
||||
0x00, 0x00, 0x00, 0x00 // entry_count
|
||||
]);
|
||||
|
||||
STSC = STCO;
|
||||
STSZ = new Uint8Array([0x00,
|
||||
// version
|
||||
|
@ -43556,7 +43614,6 @@
|
|||
// sample_size
|
||||
0x00, 0x00, 0x00, 0x00 // sample_count
|
||||
]);
|
||||
|
||||
STTS = STCO;
|
||||
VMHD = new Uint8Array([0x00,
|
||||
// version
|
||||
|
@ -43567,7 +43624,6 @@
|
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // opcolor
|
||||
]);
|
||||
})();
|
||||
|
||||
box = function (type) {
|
||||
var payload = [],
|
||||
size = 0,
|
||||
|
@ -43635,7 +43691,6 @@
|
|||
track.audioobjecttype << 3 | track.samplingfrequencyindex >>> 1, track.samplingfrequencyindex << 7 | track.channelcount << 3, 0x06, 0x01, 0x02 // GASpecificConfig
|
||||
]));
|
||||
};
|
||||
|
||||
ftyp = function () {
|
||||
return box(types.ftyp, MAJOR_BRAND, MINOR_VERSION, MAJOR_BRAND, AVC1_BRAND);
|
||||
};
|
||||
|
@ -43681,7 +43736,6 @@
|
|||
(sequenceNumber & 0xFF000000) >> 24, (sequenceNumber & 0xFF0000) >> 16, (sequenceNumber & 0xFF00) >> 8, sequenceNumber & 0xFF // sequence_number
|
||||
]));
|
||||
};
|
||||
|
||||
minf = function (track) {
|
||||
return box(types.minf, track.type === 'video' ? box(types.vmhd, VMHD) : box(types.smhd, SMHD), dinf(), stbl(track));
|
||||
};
|
||||
|
@ -43745,7 +43799,6 @@
|
|||
// pre_defined
|
||||
0xff, 0xff, 0xff, 0xff // next_track_ID
|
||||
]);
|
||||
|
||||
return box(types.mvhd, bytes);
|
||||
};
|
||||
sdtp = function (track) {
|
||||
|
@ -43842,7 +43895,6 @@
|
|||
// maxBitrate
|
||||
0x00, 0x2d, 0xc6, 0xc0 // avgBitrate
|
||||
]))];
|
||||
|
||||
if (track.sarRatio) {
|
||||
var hSpacing = track.sarRatio[0],
|
||||
vSpacing = track.sarRatio[1];
|
||||
|
@ -43906,7 +43958,6 @@
|
|||
// width
|
||||
(track.height & 0xFF00) >> 8, track.height & 0xFF, 0x00, 0x00 // height
|
||||
]);
|
||||
|
||||
return box(types.tkhd, result);
|
||||
};
|
||||
/**
|
||||
|
@ -43930,7 +43981,6 @@
|
|||
// default_sample_size
|
||||
0x00, 0x00, 0x00, 0x00 // default_sample_flags
|
||||
]));
|
||||
|
||||
upperWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime / MAX_UINT32);
|
||||
lowerWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime % MAX_UINT32);
|
||||
trackFragmentDecodeTime = box(types.tfdt, new Uint8Array([0x01,
|
||||
|
@ -44035,7 +44085,6 @@
|
|||
(offset & 0xFF000000) >>> 24, (offset & 0xFF0000) >>> 16, (offset & 0xFF00) >>> 8, offset & 0xFF // data_offset
|
||||
];
|
||||
};
|
||||
|
||||
videoTrun = function (track, offset) {
|
||||
var bytesOffest, bytes, header, samples, sample, i;
|
||||
samples = track.samples || [];
|
||||
|
@ -44066,7 +44115,6 @@
|
|||
bytes[bytesOffest++] = (sample.compositionTimeOffset & 0xFF00) >>> 8;
|
||||
bytes[bytesOffest++] = sample.compositionTimeOffset & 0xFF; // sample_composition_time_offset
|
||||
}
|
||||
|
||||
return box(types.trun, bytes);
|
||||
};
|
||||
audioTrun = function (track, offset) {
|
||||
|
@ -44089,7 +44137,6 @@
|
|||
bytes[bytesOffest++] = (sample.size & 0xFF00) >>> 8;
|
||||
bytes[bytesOffest++] = sample.size & 0xFF; // sample_size
|
||||
}
|
||||
|
||||
return box(types.trun, bytes);
|
||||
};
|
||||
trun$1 = function (track, offset) {
|
||||
|
@ -44588,7 +44635,6 @@
|
|||
duration: 1024 // For AAC audio, all samples contain 1024 samples
|
||||
});
|
||||
}
|
||||
|
||||
return samples;
|
||||
}; // generate the track's sample table from an array of frames
|
||||
|
||||
|
@ -44902,13 +44948,11 @@
|
|||
// eslint-disable-line no-use-before-define
|
||||
new Cea608Stream(1, 1) // eslint-disable-line no-use-before-define
|
||||
];
|
||||
|
||||
if (this.parse708captions_) {
|
||||
this.cc708Stream_ = new Cea708Stream({
|
||||
captionServices: options.captionServices
|
||||
}); // eslint-disable-line no-use-before-define
|
||||
}
|
||||
|
||||
this.reset(); // forward data and done events from CCs to this CaptionStream
|
||||
|
||||
this.ccStreams_.forEach(function (cc) {
|
||||
|
@ -45143,7 +45187,6 @@
|
|||
// ⎡
|
||||
0x10a0: 0x3138 // ㄸ (CC char)
|
||||
};
|
||||
|
||||
var get708CharFromCode = function (code) {
|
||||
var newCode = CHARACTER_TRANSLATION_708[code] || code;
|
||||
if (code & 0x1000 && code === newCode) {
|
||||
|
@ -46125,7 +46168,6 @@
|
|||
// └
|
||||
0x033f: 0x2518 // ┘
|
||||
};
|
||||
|
||||
var getCharFromCode = function (code) {
|
||||
if (code === null) {
|
||||
return '';
|
||||
|
@ -46338,7 +46380,6 @@
|
|||
} // finish data processing
|
||||
};
|
||||
};
|
||||
|
||||
Cea608Stream.prototype = new Stream$7(); // Trigger a cue point that captures the current state of the
|
||||
// display buffer
|
||||
|
||||
|
@ -47917,7 +47958,6 @@
|
|||
// the number is odd if the low order bit is set
|
||||
return 1 + valu >>> 1; // add 1 to make it even, and divide by 2
|
||||
}
|
||||
|
||||
return -1 * (valu >>> 1); // divide by two then make it negative
|
||||
}; // Some convenience functions
|
||||
// :Boolean
|
||||
|
@ -48286,7 +48326,6 @@
|
|||
if (chromaFormatIdc === 3) {
|
||||
expGolombDecoder.skipBits(1); // separate_colour_plane_flag
|
||||
}
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_luma_minus8
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_chroma_minus8
|
||||
|
@ -48325,7 +48364,6 @@
|
|||
expGolombDecoder.skipExpGolomb(); // offset_for_ref_frame[ i ]
|
||||
}
|
||||
}
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // max_num_ref_frames
|
||||
|
||||
expGolombDecoder.skipBits(1); // gaps_in_frame_num_value_allowed_flag
|
||||
|
@ -48336,7 +48374,6 @@
|
|||
if (frameMbsOnlyFlag === 0) {
|
||||
expGolombDecoder.skipBits(1); // mb_adaptive_frame_field_flag
|
||||
}
|
||||
|
||||
expGolombDecoder.skipBits(1); // direct_8x8_inference_flag
|
||||
|
||||
if (expGolombDecoder.readBoolean()) {
|
||||
|
@ -48481,7 +48518,6 @@
|
|||
var parseIso88591 = function (bytes, start, end) {
|
||||
return unescape(percentEncode(bytes, start, end)); // jshint ignore:line
|
||||
};
|
||||
|
||||
var parseAdtsSize = function (header, byteIndex) {
|
||||
var lowThree = (header[byteIndex + 5] & 0xE0) >> 5,
|
||||
middle = header[byteIndex + 4] << 3,
|
||||
|
@ -50920,7 +50956,6 @@
|
|||
pes.dts += (packet[offset + 18] & 0x06) >>> 1; // OR by the two LSBs
|
||||
}
|
||||
}
|
||||
|
||||
return pes;
|
||||
};
|
||||
var parseNalUnitType = function (type) {
|
||||
|
@ -51955,7 +51990,6 @@
|
|||
dequeue(transmuxer);
|
||||
/* eslint-enable */
|
||||
};
|
||||
|
||||
const handleError = () => {
|
||||
const error = {
|
||||
message: 'Received an error message from the transmuxer worker',
|
||||
|
@ -54612,6 +54646,32 @@
|
|||
}
|
||||
return false;
|
||||
};
|
||||
const shouldFixBadTimelineChanges = timelineChangeController => {
|
||||
if (!timelineChangeController) {
|
||||
return false;
|
||||
}
|
||||
const pendingAudioTimelineChange = timelineChangeController.pendingTimelineChange({
|
||||
type: 'audio'
|
||||
});
|
||||
const pendingMainTimelineChange = timelineChangeController.pendingTimelineChange({
|
||||
type: 'main'
|
||||
});
|
||||
const hasPendingTimelineChanges = pendingAudioTimelineChange && pendingMainTimelineChange;
|
||||
const differentPendingChanges = hasPendingTimelineChanges && pendingAudioTimelineChange.to !== pendingMainTimelineChange.to;
|
||||
const isNotInitialPendingTimelineChange = hasPendingTimelineChanges && pendingAudioTimelineChange.from !== -1 && pendingMainTimelineChange.from !== -1;
|
||||
if (isNotInitialPendingTimelineChange && differentPendingChanges) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
const fixBadTimelineChange = segmentLoader => {
|
||||
if (!segmentLoader) {
|
||||
return;
|
||||
}
|
||||
segmentLoader.pause();
|
||||
segmentLoader.resetEverything();
|
||||
segmentLoader.load();
|
||||
};
|
||||
const mediaDuration = timingInfos => {
|
||||
let maxDuration = 0;
|
||||
['video', 'audio'].forEach(function (type) {
|
||||
|
@ -56121,6 +56181,9 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
loaderType: this.loaderType_,
|
||||
audioDisabled: this.audioDisabled_
|
||||
})) {
|
||||
if (shouldFixBadTimelineChanges(this.timelineChangeController_)) {
|
||||
fixBadTimelineChange(this);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -56162,7 +56225,8 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
|
||||
if (hasAudio && !this.audioDisabled_ && !isMuxed && !segmentInfo.audioTimingInfo) {
|
||||
return false;
|
||||
}
|
||||
} // we need to allow an append here even if we're moving to different timelines.
|
||||
|
||||
if (shouldWaitForTimelineChange({
|
||||
timelineChangeController: this.timelineChangeController_,
|
||||
currentTimeline: this.currentTimeline_,
|
||||
|
@ -56170,6 +56234,9 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
loaderType: this.loaderType_,
|
||||
audioDisabled: this.audioDisabled_
|
||||
})) {
|
||||
if (shouldFixBadTimelineChanges(this.timelineChangeController_)) {
|
||||
fixBadTimelineChange(this);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -58002,7 +58069,7 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
videoTimestampOffset(offset) {
|
||||
if (typeof offset !== 'undefined' && this.videoBuffer &&
|
||||
// no point in updating if it's the same
|
||||
this.videoTimestampOffset !== offset) {
|
||||
this.videoTimestampOffset_ !== offset) {
|
||||
pushQueue({
|
||||
type: 'video',
|
||||
sourceUpdater: this,
|
||||
|
@ -59551,7 +59618,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
* type of event through `on`
|
||||
* @return {boolean} if we could turn it off or not
|
||||
*/;
|
||||
|
||||
_proto.off = function off(type, listener) {
|
||||
if (!this.listeners[type]) {
|
||||
return false;
|
||||
|
@ -59575,7 +59641,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
*
|
||||
* @param {string} type the event name
|
||||
*/;
|
||||
|
||||
_proto.trigger = function trigger(type) {
|
||||
var callbacks = this.listeners[type];
|
||||
if (!callbacks) {
|
||||
|
@ -59601,7 +59666,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
/**
|
||||
* Destroys the stream and cleans up.
|
||||
*/;
|
||||
|
||||
_proto.dispose = function dispose() {
|
||||
this.listeners = {};
|
||||
}
|
||||
|
@ -59613,7 +59677,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
* @param {Stream} destination the stream that will receive all `data` events
|
||||
* @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
|
||||
*/;
|
||||
|
||||
_proto.pipe = function pipe(destination) {
|
||||
this.on('data', function (data) {
|
||||
destination.push(data);
|
||||
|
@ -60107,7 +60170,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
/* eslint-enable */
|
||||
};
|
||||
}));
|
||||
|
||||
var Decrypter = factory(workerCode);
|
||||
/* rollup-plugin-worker-factory end for worker!/home/runner/work/http-streaming/http-streaming/src/decrypter-worker.js */
|
||||
|
||||
|
@ -62287,16 +62349,11 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
this.waitingForFastQualityPlaylistReceived_ = true;
|
||||
}
|
||||
runFastQualitySwitch_() {
|
||||
this.waitingForFastQualityPlaylistReceived_ = false; // Delete all buffered data to allow an immediate quality switch, then seek to give
|
||||
// the browser a kick to remove any cached frames from the previous rendtion (.04 seconds
|
||||
// ahead was roughly the minimum that will accomplish this across a variety of content
|
||||
// in IE and Edge, but seeking in place is sufficient on all other browsers)
|
||||
// Edge/IE bug: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/14600375/
|
||||
// Chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=651904
|
||||
this.waitingForFastQualityPlaylistReceived_ = false; // Delete all buffered data to allow an immediate quality switch.
|
||||
|
||||
this.mainSegmentLoader_.pause();
|
||||
this.mainSegmentLoader_.resetEverything(() => {
|
||||
this.tech_.setCurrentTime(this.tech_.currentTime());
|
||||
this.mainSegmentLoader_.load();
|
||||
}); // don't need to reset audio as it is reset when media changes
|
||||
}
|
||||
/**
|
||||
|
@ -64334,7 +64391,7 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
const reloadSourceOnError = function (options) {
|
||||
initPlugin(this, options);
|
||||
};
|
||||
var version$4 = "3.13.1";
|
||||
var version$4 = "3.13.2";
|
||||
var version$3 = "7.0.3";
|
||||
var version$2 = "1.3.0";
|
||||
var version$1 = "7.1.0";
|
||||
|
|
39
node_modules/video.js/dist/alt/video.novtt.min.js
generated
vendored
39
node_modules/video.js/dist/alt/video.novtt.min.js
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/video.js/dist/types/mixins/evented.d.ts.map
generated
vendored
2
node_modules/video.js/dist/types/mixins/evented.d.ts.map
generated
vendored
|
@ -1 +1 @@
|
|||
{"version":3,"file":"evented.d.ts","sourceRoot":"","sources":["../../../src/js/mixins/evented.js"],"names":[],"mappings":";AAqcA;;;;;;;;;;;;;;;;GAgBG;AACH,gDARG;IAA0B,WAAW,GAA5B,MAAM;CAKf,OAsCF;AA1dD;;;;;;;;GAQG;AACH,wCAHY,OAAO,CAM0D;AAE7E;;;;;;;GAOG;AACH,0EASC"}
|
||||
{"version":3,"file":"evented.d.ts","sourceRoot":"","sources":["../../../src/js/mixins/evented.js"],"names":[],"mappings":";AA0cA;;;;;;;;;;;;;;;;GAgBG;AACH,gDARG;IAA0B,WAAW,GAA5B,MAAM;CAKf,OAsCF;AA/dD;;;;;;;;GAQG;AACH,wCAHY,OAAO,CAM0D;AAE7E;;;;;;;GAOG;AACH,0EASC"}
|
2
node_modules/video.js/dist/types/modal-dialog.d.ts.map
generated
vendored
2
node_modules/video.js/dist/types/modal-dialog.d.ts.map
generated
vendored
|
@ -1 +1 @@
|
|||
{"version":3,"file":"modal-dialog.d.ts","sourceRoot":"","sources":["../../src/js/modal-dialog.js"],"names":[],"mappings":";AAaA;;;;;;;;GAQG;AACH;IAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,oBAjCW,MAAM,YAMd;QAAoC,OAAO,GAAnC,qBAAiB;QAGA,WAAW,GAA5B,MAAM;QAGY,UAAU,GAA5B,OAAO;QAKU,KAAK,GAAtB,MAAM;QAGY,WAAW,GAA7B,OAAO;QAIW,SAAS,GAA3B,OAAO;QAIW,WAAW,GAA7B,OAAO;KAIjB,EA4BA;IAxBC,iCAAkD;IAClD,yBAAkC;IAClC,iBAAgE;IAAjD,wBAAiD;IAA3B,wBAA2B;IAQhE,oBAIE;IAEF,iBAGE;IAOJ;;;;;OAKG;IACH,YAHY,OAAO,CAclB;IAED,gBAMC;IAHC,yBAA+B;IAejC;;;;;OAKG;IACH,SAHY,MAAM,CAKjB;IAED;;;;;;OAMG;IACH,eAHY,MAAM,CAYjB;IAED;;;;;OAKG;IACH,aAmDC;IAxBC,qBAAmC;IASnC,sBAAqC;IAiBvC;;;;;;;;OAQG;IACH,eANY,OAAO,GAGP,OAAO,CAQlB;IAED;;;;;;OAMG;IACH,cA2CC;IAED;;;;;;;;OAQG;IACH,kBANY,OAAO,GAGP,OAAO,CA6BlB;IAxBqB,oBAAyB;IA0B/C;;;OAGG;IACH,aAEC;IAED;;;;;;;;;OASG;IACH,mBAHW,qBAAiB,QA2C3B;IAED;;;;;OAKG;IACH,cAiBC;IAED;;;;;;;;;;;;;;OAcG;IACH,gBARY,qBAAiB,GAKjB,qBAAiB,CAQ5B;IAHG,gCAAqB;IAKzB;;;;OAIG;IACH,0BAWC;IAED;;;;OAIG;IACH,yBAKC;IAED;;;;OAIG;IACH,gCA4CC;IAED;;;;OAIG;IACH,sBAgBC;CACF;sBA5gBqB,aAAa;qBADd,aAAa;wBAKV,UAAU"}
|
||||
{"version":3,"file":"modal-dialog.d.ts","sourceRoot":"","sources":["../../src/js/modal-dialog.js"],"names":[],"mappings":";AAaA;;;;;;;;GAQG;AACH;IAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,oBAjCW,MAAM,YAMd;QAAoC,OAAO,GAAnC,qBAAiB;QAGA,WAAW,GAA5B,MAAM;QAGY,UAAU,GAA5B,OAAO;QAKU,KAAK,GAAtB,MAAM;QAGY,WAAW,GAA7B,OAAO;QAIW,SAAS,GAA3B,OAAO;QAIW,WAAW,GAA7B,OAAO;KAIjB,EA4BA;IAxBC,iCAAkD;IAClD,yBAAkC;IAClC,iBAAgE;IAAjD,wBAAiD;IAA3B,wBAA2B;IAQhE,oBAIE;IAEF,iBAGE;IAOJ;;;;;OAKG;IACH,YAHY,OAAO,CAclB;IAED,gBAMC;IAHC,yBAA+B;IAejC;;;;;OAKG;IACH,SAHY,MAAM,CAKjB;IAED;;;;;;OAMG;IACH,eAHY,MAAM,CAYjB;IAED;;;;;OAKG;IACH,aAmDC;IAxBC,qBAAmC;IASnC,sBAAqC;IAiBvC;;;;;;;;OAQG;IACH,eANY,OAAO,GAGP,OAAO,CAQlB;IAED;;;;;;OAMG;IACH,cA2CC;IAED;;;;;;;;OAQG;IACH,kBANY,OAAO,GAGP,OAAO,CA6BlB;IAxBqB,oBAAyB;IA0B/C;;;OAGG;IACH,aAEC;IAED;;;;;;;;;OASG;IACH,mBAHW,qBAAiB,QAmD3B;IAED;;;;;OAKG;IACH,cAiBC;IAED;;;;;;;;;;;;;;OAcG;IACH,gBARY,qBAAiB,GAKjB,qBAAiB,CAQ5B;IAHG,gCAAqB;IAKzB;;;;OAIG;IACH,0BAWC;IAED;;;;OAIG;IACH,yBAKC;IAED;;;;OAIG;IACH,gCA4CC;IAED;;;;OAIG;IACH,sBAgBC;CACF;sBAphBqB,aAAa;qBADd,aAAa;wBAKV,UAAU"}
|
2
node_modules/video.js/dist/types/spatial-navigation.d.ts.map
generated
vendored
2
node_modules/video.js/dist/types/spatial-navigation.d.ts.map
generated
vendored
|
@ -1 +1 @@
|
|||
{"version":3,"file":"spatial-navigation.d.ts","sourceRoot":"","sources":["../../src/js/spatial-navigation.js"],"names":[],"mappings":";AAYA;;;;;;GAMG;AACH;IAEE;;;;;;OAMG;IACH,oBAFW,MAAM,EAUhB;IANC,gBAAqB;IACrB,2BAA6B;IAC7B,sBAAyB;IACzB,mBAAsB;IAuCxB;;;;;;OAMG;IACH,kBAFW,aAAa,QA4BvB;IAtEC,iCAAiC;IAGnC;;;OAGG;IACH,cAmBC;IAED;;;OAGG;IACH,aAGC;IAqCD;;;;;;;OAOG;IACH,yBAHW,MAAM,QA0BhB;IAED;;;;;;OAMG;IACH,cAHW,MAAM,QAShB;IAED;;;OAGG;IACH,cAEC;IAED;;;OAGG;IACH,eAEC;IAED;;;;;;;;;;;OAWG;IACH,yBATW,MAAM,GAAC,KAAK,MAAO,QAmC7B;IAED;;;;OAIG;IACH,2BAIC;IAED;;;;;OAKG;IACH,mCA6CC;IAED;;;;;OAKG;IACH,sCAFY,WAAW,GAAC,IAAI,CA+B3B;IAED;;;;;;;;;;OAUG;IACH,6BALW,WAAW,GAEV,SAAS,GAAC,IAAI,CAezB;IAED;;;;;OAKG;IACH,eAHW,SAAS,QAanB;IAED;;;;OAIG;IACH,kBAFW,SAAS,QAWnB;IAED;;OAEG;IACH,cASC;IAED;;;;OAIG;IACH,gBAFW,MAAM,QAqBhB;IAED;;;;;;;;OAQG;IACH,qEAHW,MAAM,GACL,MAAO,IAAI,CAiBtB;IAED;;;;;;;;OAQG;IACH,yDAHW,MAAM,GACL,OAAO,CAelB;IAED;;OAEG;IACH,yBAoBC;IAED;;;;;;OAMG;IACH,iBAFW,SAAS,QAQnB;IAED;;;;;;;;OAQG;IACH,0DAHW,MAAM,GACL,MAAM,CA6BjB;IAED;;;;;OAKG;IACH,8BASC;CACF;wBAxiBuB,gBAAgB;wBAIhB,UAAU;2BADP,aAAa"}
|
||||
{"version":3,"file":"spatial-navigation.d.ts","sourceRoot":"","sources":["../../src/js/spatial-navigation.js"],"names":[],"mappings":";AAYA;;;;;;GAMG;AACH;IAEE;;;;;;OAMG;IACH,oBAFW,MAAM,EAUhB;IANC,gBAAqB;IACrB,2BAA6B;IAC7B,sBAAyB;IACzB,mBAAsB;IA0DxB;;;;;;OAMG;IACH,kBAFW,aAAa,QA4BvB;IAzFC,iCAAiC;IAGnC;;;OAGG;IACH,cAsCC;IAED;;;OAGG;IACH,aAGC;IAqCD;;;;;;;OAOG;IACH,yBAHW,MAAM,QA0BhB;IAED;;;;;;OAMG;IACH,cAHW,MAAM,QAShB;IAED;;;OAGG;IACH,cAEC;IAED;;;OAGG;IACH,eAEC;IAED;;;;;;;;;;;OAWG;IACH,yBATW,MAAM,GAAC,KAAK,MAAO,QAmC7B;IAED;;;;OAIG;IACH,2BAIC;IAED;;;;;OAKG;IACH,mCAqGC;IAED;;;;;OAKG;IACH,sCAFY,WAAW,GAAC,IAAI,CAmC3B;IAED;;;;;;;;;;OAUG;IACH,6BALW,WAAW,GAEV,SAAS,GAAC,IAAI,CAezB;IAED;;;;;OAKG;IACH,eAHW,SAAS,QAanB;IAED;;;;OAIG;IACH,kBAFW,SAAS,QAWnB;IAED;;OAEG;IACH,cASC;IAED;;;;OAIG;IACH,gBAFW,MAAM,QAqBhB;IAED;;;;;;;;OAQG;IACH,qEAHW,MAAM,GACL,MAAO,IAAI,CAiBtB;IAED;;;;;;;;OAQG;IACH,yDAHW,MAAM,GACL,OAAO,CAelB;IAED;;OAEG;IACH,yBAoBC;IAED;;;;;;OAMG;IACH,iBAFW,SAAS,QAYnB;IAED;;;;;;;;OAQG;IACH,0DAHW,MAAM,GACL,MAAM,CA6BjB;IAED;;;;;OAKG;IACH,8BASC;CACF;wBA3nBuB,gBAAgB;wBAIhB,UAAU;2BADP,aAAa"}
|
190
node_modules/video.js/dist/video.cjs.js
generated
vendored
190
node_modules/video.js/dist/video.cjs.js
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @license
|
||||
* Video.js 8.17.1 <http://videojs.com/>
|
||||
* Video.js 8.17.3 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
||||
|
@ -40,7 +40,7 @@ var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|||
var _resolveUrl__default = /*#__PURE__*/_interopDefaultLegacy(_resolveUrl);
|
||||
var parseSidx__default = /*#__PURE__*/_interopDefaultLegacy(parseSidx);
|
||||
|
||||
var version$6 = "8.17.1";
|
||||
var version$6 = "8.17.3";
|
||||
|
||||
/**
|
||||
* An Object that contains lifecycle hooks as keys which point to an array
|
||||
|
@ -2195,7 +2195,6 @@ function fixEvent(event) {
|
|||
/* eslint-enable */
|
||||
}
|
||||
}
|
||||
|
||||
event.fixed_ = true;
|
||||
// Returns fixed-up instance
|
||||
return event;
|
||||
|
@ -3009,7 +3008,12 @@ const normalizeListenArgs = (self, args, fnName) => {
|
|||
}
|
||||
[type, listener] = args;
|
||||
} else {
|
||||
[target, type, listener] = args;
|
||||
// This was `[target, type, listener] = args;` but this block needs more than
|
||||
// one statement to produce minified output compatible with Chrome 53.
|
||||
// See https://github.com/videojs/video.js/pull/8810
|
||||
target = args[0];
|
||||
type = args[1];
|
||||
listener = args[2];
|
||||
}
|
||||
validateTarget(target, self, fnName);
|
||||
validateEventType(type, self, fnName);
|
||||
|
@ -6401,6 +6405,14 @@ class ModalDialog extends Component$1 {
|
|||
if (closeButton) {
|
||||
parentEl.appendChild(closeButton.el_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after `ModalDialog` is re-filled with content & close button is appended.
|
||||
*
|
||||
* @event ModalDialog#aftermodalfill
|
||||
* @type {Event}
|
||||
*/
|
||||
this.trigger('aftermodalfill');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10096,6 +10108,24 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
this.player_.on('focusin', this.handlePlayerFocus_.bind(this));
|
||||
this.player_.on('focusout', this.handlePlayerBlur_.bind(this));
|
||||
this.isListening_ = true;
|
||||
this.player_.errorDisplay.on('aftermodalfill', () => {
|
||||
this.updateFocusableComponents();
|
||||
if (this.focusableComponents.length) {
|
||||
// The modal has focusable components:
|
||||
|
||||
if (this.focusableComponents.length > 1) {
|
||||
// The modal has close button + some additional buttons.
|
||||
// Focusing first additional button:
|
||||
|
||||
this.focusableComponents[1].focus();
|
||||
} else {
|
||||
// The modal has only close button,
|
||||
// Focusing it:
|
||||
|
||||
this.focusableComponents[0].focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10224,7 +10254,7 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
}
|
||||
}
|
||||
if (!event.currentTarget.contains(event.relatedTarget) && !isChildrenOfPlayer || !nextFocusedElement) {
|
||||
if (currentComponent.name() === 'CloseButton') {
|
||||
if (currentComponent && currentComponent.name() === 'CloseButton') {
|
||||
this.refocusComponent();
|
||||
} else {
|
||||
this.pause();
|
||||
|
@ -10294,6 +10324,58 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
focusableComponents.push(value);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - Refactor the following logic after refactor of videojs-errors elements to be components is done.
|
||||
if (value.name_ === 'ErrorDisplay' && value.opened_) {
|
||||
const buttonContainer = value.el_.querySelector('.vjs-errors-ok-button-container');
|
||||
if (buttonContainer) {
|
||||
const modalButtons = buttonContainer.querySelectorAll('button');
|
||||
modalButtons.forEach((element, index) => {
|
||||
// Add elements as objects to be handled by the spatial navigation
|
||||
focusableComponents.push({
|
||||
name: () => {
|
||||
return 'ModalButton' + (index + 1);
|
||||
},
|
||||
el: () => element,
|
||||
getPositions: () => {
|
||||
const rect = element.getBoundingClientRect();
|
||||
|
||||
// Creating objects that mirror DOMRectReadOnly for boundingClientRect and center
|
||||
const boundingClientRect = {
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
top: rect.top,
|
||||
right: rect.right,
|
||||
bottom: rect.bottom,
|
||||
left: rect.left
|
||||
};
|
||||
|
||||
// Calculating the center position
|
||||
const center = {
|
||||
x: rect.left + rect.width / 2,
|
||||
y: rect.top + rect.height / 2,
|
||||
width: 0,
|
||||
height: 0,
|
||||
top: rect.top + rect.height / 2,
|
||||
right: rect.left + rect.width / 2,
|
||||
bottom: rect.top + rect.height / 2,
|
||||
left: rect.left + rect.width / 2
|
||||
};
|
||||
return {
|
||||
boundingClientRect,
|
||||
center
|
||||
};
|
||||
},
|
||||
// Asume that the following are always focusable
|
||||
getIsAvailableToBeFocused: () => true,
|
||||
getIsFocusable: el => true,
|
||||
focus: () => element.focus()
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
this.focusableComponents = focusableComponents;
|
||||
return this.focusableComponents;
|
||||
|
@ -10329,7 +10411,10 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
return searchForSuitableChild(component.el());
|
||||
if (component.el()) {
|
||||
return searchForSuitableChild(component.el());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10488,7 +10573,7 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
*/
|
||||
refocusComponent() {
|
||||
if (this.lastFocusedComponent_) {
|
||||
// If use is not active, set it to active.
|
||||
// If user is not active, set it to active.
|
||||
if (!this.player_.userActive()) {
|
||||
this.player_.userActive(true);
|
||||
}
|
||||
|
@ -10515,6 +10600,9 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
* @param {Component} component - The component to be focused.
|
||||
*/
|
||||
focus(component) {
|
||||
if (typeof component !== 'object') {
|
||||
return;
|
||||
}
|
||||
if (component.getIsAvailableToBeFocused(component.el())) {
|
||||
component.focus();
|
||||
} else if (this.findSuitableDOMChild(component)) {
|
||||
|
@ -18370,11 +18458,11 @@ class TextTrackSettings extends ModalDialog {
|
|||
this.addChild(trackSettingsControls);
|
||||
}
|
||||
bindFunctionsToSelectsAndButtons() {
|
||||
this.on(this.$('.vjs-done-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-done-button'), ['click', 'tap'], () => {
|
||||
this.saveSettings();
|
||||
this.close();
|
||||
});
|
||||
this.on(this.$('.vjs-default-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-default-button'), ['click', 'tap'], () => {
|
||||
this.setDefaults();
|
||||
this.updateDisplay();
|
||||
});
|
||||
|
@ -27902,7 +27990,7 @@ videojs.registerPlugin('qualityLevels', qualityLevels);
|
|||
// Include the version number.
|
||||
qualityLevels.VERSION = version$5;
|
||||
|
||||
/*! @name @videojs/http-streaming @version 3.13.1 @license Apache-2.0 */
|
||||
/*! @name @videojs/http-streaming @version 3.13.2 @license Apache-2.0 */
|
||||
|
||||
/**
|
||||
* @file resolve-url.js - Handling how URLs are resolved and manipulated
|
||||
|
@ -32407,7 +32495,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// reserved
|
||||
0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'
|
||||
]);
|
||||
|
||||
AUDIO_HDLR = new Uint8Array([0x00,
|
||||
// version 0
|
||||
0x00, 0x00, 0x00,
|
||||
|
@ -32424,7 +32511,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// reserved
|
||||
0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'
|
||||
]);
|
||||
|
||||
HDLR_TYPES = {
|
||||
video: VIDEO_HDLR,
|
||||
audio: AUDIO_HDLR
|
||||
|
@ -32443,7 +32529,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// version 0
|
||||
0x00, 0x00, 0x01 // entry_flags
|
||||
]);
|
||||
|
||||
SMHD = new Uint8Array([0x00,
|
||||
// version
|
||||
0x00, 0x00, 0x00,
|
||||
|
@ -32452,14 +32537,12 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// balance, 0 means centered
|
||||
0x00, 0x00 // reserved
|
||||
]);
|
||||
|
||||
STCO = new Uint8Array([0x00,
|
||||
// version
|
||||
0x00, 0x00, 0x00,
|
||||
// flags
|
||||
0x00, 0x00, 0x00, 0x00 // entry_count
|
||||
]);
|
||||
|
||||
STSC = STCO;
|
||||
STSZ = new Uint8Array([0x00,
|
||||
// version
|
||||
|
@ -32469,7 +32552,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// sample_size
|
||||
0x00, 0x00, 0x00, 0x00 // sample_count
|
||||
]);
|
||||
|
||||
STTS = STCO;
|
||||
VMHD = new Uint8Array([0x00,
|
||||
// version
|
||||
|
@ -32480,7 +32562,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // opcolor
|
||||
]);
|
||||
})();
|
||||
|
||||
box = function (type) {
|
||||
var payload = [],
|
||||
size = 0,
|
||||
|
@ -32548,7 +32629,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
track.audioobjecttype << 3 | track.samplingfrequencyindex >>> 1, track.samplingfrequencyindex << 7 | track.channelcount << 3, 0x06, 0x01, 0x02 // GASpecificConfig
|
||||
]));
|
||||
};
|
||||
|
||||
ftyp = function () {
|
||||
return box(types.ftyp, MAJOR_BRAND, MINOR_VERSION, MAJOR_BRAND, AVC1_BRAND);
|
||||
};
|
||||
|
@ -32594,7 +32674,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
(sequenceNumber & 0xFF000000) >> 24, (sequenceNumber & 0xFF0000) >> 16, (sequenceNumber & 0xFF00) >> 8, sequenceNumber & 0xFF // sequence_number
|
||||
]));
|
||||
};
|
||||
|
||||
minf = function (track) {
|
||||
return box(types.minf, track.type === 'video' ? box(types.vmhd, VMHD) : box(types.smhd, SMHD), dinf(), stbl(track));
|
||||
};
|
||||
|
@ -32658,7 +32737,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// pre_defined
|
||||
0xff, 0xff, 0xff, 0xff // next_track_ID
|
||||
]);
|
||||
|
||||
return box(types.mvhd, bytes);
|
||||
};
|
||||
sdtp = function (track) {
|
||||
|
@ -32755,7 +32833,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// maxBitrate
|
||||
0x00, 0x2d, 0xc6, 0xc0 // avgBitrate
|
||||
]))];
|
||||
|
||||
if (track.sarRatio) {
|
||||
var hSpacing = track.sarRatio[0],
|
||||
vSpacing = track.sarRatio[1];
|
||||
|
@ -32819,7 +32896,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// width
|
||||
(track.height & 0xFF00) >> 8, track.height & 0xFF, 0x00, 0x00 // height
|
||||
]);
|
||||
|
||||
return box(types.tkhd, result);
|
||||
};
|
||||
/**
|
||||
|
@ -32843,7 +32919,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// default_sample_size
|
||||
0x00, 0x00, 0x00, 0x00 // default_sample_flags
|
||||
]));
|
||||
|
||||
upperWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime / MAX_UINT32);
|
||||
lowerWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime % MAX_UINT32);
|
||||
trackFragmentDecodeTime = box(types.tfdt, new Uint8Array([0x01,
|
||||
|
@ -32948,7 +33023,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
(offset & 0xFF000000) >>> 24, (offset & 0xFF0000) >>> 16, (offset & 0xFF00) >>> 8, offset & 0xFF // data_offset
|
||||
];
|
||||
};
|
||||
|
||||
videoTrun = function (track, offset) {
|
||||
var bytesOffest, bytes, header, samples, sample, i;
|
||||
samples = track.samples || [];
|
||||
|
@ -32979,7 +33053,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
bytes[bytesOffest++] = (sample.compositionTimeOffset & 0xFF00) >>> 8;
|
||||
bytes[bytesOffest++] = sample.compositionTimeOffset & 0xFF; // sample_composition_time_offset
|
||||
}
|
||||
|
||||
return box(types.trun, bytes);
|
||||
};
|
||||
audioTrun = function (track, offset) {
|
||||
|
@ -33002,7 +33075,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
bytes[bytesOffest++] = (sample.size & 0xFF00) >>> 8;
|
||||
bytes[bytesOffest++] = sample.size & 0xFF; // sample_size
|
||||
}
|
||||
|
||||
return box(types.trun, bytes);
|
||||
};
|
||||
trun$1 = function (track, offset) {
|
||||
|
@ -33501,7 +33573,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
duration: 1024 // For AAC audio, all samples contain 1024 samples
|
||||
});
|
||||
}
|
||||
|
||||
return samples;
|
||||
}; // generate the track's sample table from an array of frames
|
||||
|
||||
|
@ -33815,13 +33886,11 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// eslint-disable-line no-use-before-define
|
||||
new Cea608Stream(1, 1) // eslint-disable-line no-use-before-define
|
||||
];
|
||||
|
||||
if (this.parse708captions_) {
|
||||
this.cc708Stream_ = new Cea708Stream({
|
||||
captionServices: options.captionServices
|
||||
}); // eslint-disable-line no-use-before-define
|
||||
}
|
||||
|
||||
this.reset(); // forward data and done events from CCs to this CaptionStream
|
||||
|
||||
this.ccStreams_.forEach(function (cc) {
|
||||
|
@ -34056,7 +34125,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// ⎡
|
||||
0x10a0: 0x3138 // ㄸ (CC char)
|
||||
};
|
||||
|
||||
var get708CharFromCode = function (code) {
|
||||
var newCode = CHARACTER_TRANSLATION_708[code] || code;
|
||||
if (code & 0x1000 && code === newCode) {
|
||||
|
@ -35038,7 +35106,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// └
|
||||
0x033f: 0x2518 // ┘
|
||||
};
|
||||
|
||||
var getCharFromCode = function (code) {
|
||||
if (code === null) {
|
||||
return '';
|
||||
|
@ -35251,7 +35318,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
} // finish data processing
|
||||
};
|
||||
};
|
||||
|
||||
Cea608Stream.prototype = new Stream$7(); // Trigger a cue point that captures the current state of the
|
||||
// display buffer
|
||||
|
||||
|
@ -36830,7 +36896,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// the number is odd if the low order bit is set
|
||||
return 1 + valu >>> 1; // add 1 to make it even, and divide by 2
|
||||
}
|
||||
|
||||
return -1 * (valu >>> 1); // divide by two then make it negative
|
||||
}; // Some convenience functions
|
||||
// :Boolean
|
||||
|
@ -37199,7 +37264,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
if (chromaFormatIdc === 3) {
|
||||
expGolombDecoder.skipBits(1); // separate_colour_plane_flag
|
||||
}
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_luma_minus8
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_chroma_minus8
|
||||
|
@ -37238,7 +37302,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
expGolombDecoder.skipExpGolomb(); // offset_for_ref_frame[ i ]
|
||||
}
|
||||
}
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // max_num_ref_frames
|
||||
|
||||
expGolombDecoder.skipBits(1); // gaps_in_frame_num_value_allowed_flag
|
||||
|
@ -37249,7 +37312,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
if (frameMbsOnlyFlag === 0) {
|
||||
expGolombDecoder.skipBits(1); // mb_adaptive_frame_field_flag
|
||||
}
|
||||
|
||||
expGolombDecoder.skipBits(1); // direct_8x8_inference_flag
|
||||
|
||||
if (expGolombDecoder.readBoolean()) {
|
||||
|
@ -37394,7 +37456,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
var parseIso88591 = function (bytes, start, end) {
|
||||
return unescape(percentEncode(bytes, start, end)); // jshint ignore:line
|
||||
};
|
||||
|
||||
var parseAdtsSize = function (header, byteIndex) {
|
||||
var lowThree = (header[byteIndex + 5] & 0xE0) >> 5,
|
||||
middle = header[byteIndex + 4] << 3,
|
||||
|
@ -39833,7 +39894,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
pes.dts += (packet[offset + 18] & 0x06) >>> 1; // OR by the two LSBs
|
||||
}
|
||||
}
|
||||
|
||||
return pes;
|
||||
};
|
||||
var parseNalUnitType = function (type) {
|
||||
|
@ -40868,7 +40928,6 @@ const processTransmux = options => {
|
|||
dequeue(transmuxer);
|
||||
/* eslint-enable */
|
||||
};
|
||||
|
||||
const handleError = () => {
|
||||
const error = {
|
||||
message: 'Received an error message from the transmuxer worker',
|
||||
|
@ -43525,6 +43584,32 @@ const shouldWaitForTimelineChange = ({
|
|||
}
|
||||
return false;
|
||||
};
|
||||
const shouldFixBadTimelineChanges = timelineChangeController => {
|
||||
if (!timelineChangeController) {
|
||||
return false;
|
||||
}
|
||||
const pendingAudioTimelineChange = timelineChangeController.pendingTimelineChange({
|
||||
type: 'audio'
|
||||
});
|
||||
const pendingMainTimelineChange = timelineChangeController.pendingTimelineChange({
|
||||
type: 'main'
|
||||
});
|
||||
const hasPendingTimelineChanges = pendingAudioTimelineChange && pendingMainTimelineChange;
|
||||
const differentPendingChanges = hasPendingTimelineChanges && pendingAudioTimelineChange.to !== pendingMainTimelineChange.to;
|
||||
const isNotInitialPendingTimelineChange = hasPendingTimelineChanges && pendingAudioTimelineChange.from !== -1 && pendingMainTimelineChange.from !== -1;
|
||||
if (isNotInitialPendingTimelineChange && differentPendingChanges) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
const fixBadTimelineChange = segmentLoader => {
|
||||
if (!segmentLoader) {
|
||||
return;
|
||||
}
|
||||
segmentLoader.pause();
|
||||
segmentLoader.resetEverything();
|
||||
segmentLoader.load();
|
||||
};
|
||||
const mediaDuration = timingInfos => {
|
||||
let maxDuration = 0;
|
||||
['video', 'audio'].forEach(function (type) {
|
||||
|
@ -45034,6 +45119,9 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
loaderType: this.loaderType_,
|
||||
audioDisabled: this.audioDisabled_
|
||||
})) {
|
||||
if (shouldFixBadTimelineChanges(this.timelineChangeController_)) {
|
||||
fixBadTimelineChange(this);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -45075,7 +45163,8 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
|
||||
if (hasAudio && !this.audioDisabled_ && !isMuxed && !segmentInfo.audioTimingInfo) {
|
||||
return false;
|
||||
}
|
||||
} // we need to allow an append here even if we're moving to different timelines.
|
||||
|
||||
if (shouldWaitForTimelineChange({
|
||||
timelineChangeController: this.timelineChangeController_,
|
||||
currentTimeline: this.currentTimeline_,
|
||||
|
@ -45083,6 +45172,9 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
loaderType: this.loaderType_,
|
||||
audioDisabled: this.audioDisabled_
|
||||
})) {
|
||||
if (shouldFixBadTimelineChanges(this.timelineChangeController_)) {
|
||||
fixBadTimelineChange(this);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -46915,7 +47007,7 @@ class SourceUpdater extends videojs.EventTarget {
|
|||
videoTimestampOffset(offset) {
|
||||
if (typeof offset !== 'undefined' && this.videoBuffer &&
|
||||
// no point in updating if it's the same
|
||||
this.videoTimestampOffset !== offset) {
|
||||
this.videoTimestampOffset_ !== offset) {
|
||||
pushQueue({
|
||||
type: 'video',
|
||||
sourceUpdater: this,
|
||||
|
@ -48464,7 +48556,6 @@ const workerCode = transform(getWorkerString(function () {
|
|||
* type of event through `on`
|
||||
* @return {boolean} if we could turn it off or not
|
||||
*/;
|
||||
|
||||
_proto.off = function off(type, listener) {
|
||||
if (!this.listeners[type]) {
|
||||
return false;
|
||||
|
@ -48488,7 +48579,6 @@ const workerCode = transform(getWorkerString(function () {
|
|||
*
|
||||
* @param {string} type the event name
|
||||
*/;
|
||||
|
||||
_proto.trigger = function trigger(type) {
|
||||
var callbacks = this.listeners[type];
|
||||
if (!callbacks) {
|
||||
|
@ -48514,7 +48604,6 @@ const workerCode = transform(getWorkerString(function () {
|
|||
/**
|
||||
* Destroys the stream and cleans up.
|
||||
*/;
|
||||
|
||||
_proto.dispose = function dispose() {
|
||||
this.listeners = {};
|
||||
}
|
||||
|
@ -48526,7 +48615,6 @@ const workerCode = transform(getWorkerString(function () {
|
|||
* @param {Stream} destination the stream that will receive all `data` events
|
||||
* @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
|
||||
*/;
|
||||
|
||||
_proto.pipe = function pipe(destination) {
|
||||
this.on('data', function (data) {
|
||||
destination.push(data);
|
||||
|
@ -49020,7 +49108,6 @@ const workerCode = transform(getWorkerString(function () {
|
|||
/* eslint-enable */
|
||||
};
|
||||
}));
|
||||
|
||||
var Decrypter = factory(workerCode);
|
||||
/* rollup-plugin-worker-factory end for worker!/home/runner/work/http-streaming/http-streaming/src/decrypter-worker.js */
|
||||
|
||||
|
@ -51200,16 +51287,11 @@ class PlaylistController extends videojs.EventTarget {
|
|||
this.waitingForFastQualityPlaylistReceived_ = true;
|
||||
}
|
||||
runFastQualitySwitch_() {
|
||||
this.waitingForFastQualityPlaylistReceived_ = false; // Delete all buffered data to allow an immediate quality switch, then seek to give
|
||||
// the browser a kick to remove any cached frames from the previous rendtion (.04 seconds
|
||||
// ahead was roughly the minimum that will accomplish this across a variety of content
|
||||
// in IE and Edge, but seeking in place is sufficient on all other browsers)
|
||||
// Edge/IE bug: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/14600375/
|
||||
// Chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=651904
|
||||
this.waitingForFastQualityPlaylistReceived_ = false; // Delete all buffered data to allow an immediate quality switch.
|
||||
|
||||
this.mainSegmentLoader_.pause();
|
||||
this.mainSegmentLoader_.resetEverything(() => {
|
||||
this.tech_.setCurrentTime(this.tech_.currentTime());
|
||||
this.mainSegmentLoader_.load();
|
||||
}); // don't need to reset audio as it is reset when media changes
|
||||
}
|
||||
/**
|
||||
|
@ -53247,7 +53329,7 @@ const initPlugin = function (player, options) {
|
|||
const reloadSourceOnError = function (options) {
|
||||
initPlugin(this, options);
|
||||
};
|
||||
var version$4 = "3.13.1";
|
||||
var version$4 = "3.13.2";
|
||||
var version$3 = "7.0.3";
|
||||
var version$2 = "1.3.0";
|
||||
var version$1 = "7.1.0";
|
||||
|
|
190
node_modules/video.js/dist/video.es.js
generated
vendored
190
node_modules/video.js/dist/video.es.js
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @license
|
||||
* Video.js 8.17.1 <http://videojs.com/>
|
||||
* Video.js 8.17.3 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
||||
|
@ -27,7 +27,7 @@ import { getId3Offset } from '@videojs/vhs-utils/es/id3-helpers';
|
|||
import { detectContainerForBytes, isLikelyFmp4MediaSegment } from '@videojs/vhs-utils/es/containers';
|
||||
import { ONE_SECOND_IN_TS } from 'mux.js/lib/utils/clock';
|
||||
|
||||
var version$6 = "8.17.1";
|
||||
var version$6 = "8.17.3";
|
||||
|
||||
/**
|
||||
* An Object that contains lifecycle hooks as keys which point to an array
|
||||
|
@ -2182,7 +2182,6 @@ function fixEvent(event) {
|
|||
/* eslint-enable */
|
||||
}
|
||||
}
|
||||
|
||||
event.fixed_ = true;
|
||||
// Returns fixed-up instance
|
||||
return event;
|
||||
|
@ -2996,7 +2995,12 @@ const normalizeListenArgs = (self, args, fnName) => {
|
|||
}
|
||||
[type, listener] = args;
|
||||
} else {
|
||||
[target, type, listener] = args;
|
||||
// This was `[target, type, listener] = args;` but this block needs more than
|
||||
// one statement to produce minified output compatible with Chrome 53.
|
||||
// See https://github.com/videojs/video.js/pull/8810
|
||||
target = args[0];
|
||||
type = args[1];
|
||||
listener = args[2];
|
||||
}
|
||||
validateTarget(target, self, fnName);
|
||||
validateEventType(type, self, fnName);
|
||||
|
@ -6388,6 +6392,14 @@ class ModalDialog extends Component$1 {
|
|||
if (closeButton) {
|
||||
parentEl.appendChild(closeButton.el_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after `ModalDialog` is re-filled with content & close button is appended.
|
||||
*
|
||||
* @event ModalDialog#aftermodalfill
|
||||
* @type {Event}
|
||||
*/
|
||||
this.trigger('aftermodalfill');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10083,6 +10095,24 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
this.player_.on('focusin', this.handlePlayerFocus_.bind(this));
|
||||
this.player_.on('focusout', this.handlePlayerBlur_.bind(this));
|
||||
this.isListening_ = true;
|
||||
this.player_.errorDisplay.on('aftermodalfill', () => {
|
||||
this.updateFocusableComponents();
|
||||
if (this.focusableComponents.length) {
|
||||
// The modal has focusable components:
|
||||
|
||||
if (this.focusableComponents.length > 1) {
|
||||
// The modal has close button + some additional buttons.
|
||||
// Focusing first additional button:
|
||||
|
||||
this.focusableComponents[1].focus();
|
||||
} else {
|
||||
// The modal has only close button,
|
||||
// Focusing it:
|
||||
|
||||
this.focusableComponents[0].focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10211,7 +10241,7 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
}
|
||||
}
|
||||
if (!event.currentTarget.contains(event.relatedTarget) && !isChildrenOfPlayer || !nextFocusedElement) {
|
||||
if (currentComponent.name() === 'CloseButton') {
|
||||
if (currentComponent && currentComponent.name() === 'CloseButton') {
|
||||
this.refocusComponent();
|
||||
} else {
|
||||
this.pause();
|
||||
|
@ -10281,6 +10311,58 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
focusableComponents.push(value);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - Refactor the following logic after refactor of videojs-errors elements to be components is done.
|
||||
if (value.name_ === 'ErrorDisplay' && value.opened_) {
|
||||
const buttonContainer = value.el_.querySelector('.vjs-errors-ok-button-container');
|
||||
if (buttonContainer) {
|
||||
const modalButtons = buttonContainer.querySelectorAll('button');
|
||||
modalButtons.forEach((element, index) => {
|
||||
// Add elements as objects to be handled by the spatial navigation
|
||||
focusableComponents.push({
|
||||
name: () => {
|
||||
return 'ModalButton' + (index + 1);
|
||||
},
|
||||
el: () => element,
|
||||
getPositions: () => {
|
||||
const rect = element.getBoundingClientRect();
|
||||
|
||||
// Creating objects that mirror DOMRectReadOnly for boundingClientRect and center
|
||||
const boundingClientRect = {
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
top: rect.top,
|
||||
right: rect.right,
|
||||
bottom: rect.bottom,
|
||||
left: rect.left
|
||||
};
|
||||
|
||||
// Calculating the center position
|
||||
const center = {
|
||||
x: rect.left + rect.width / 2,
|
||||
y: rect.top + rect.height / 2,
|
||||
width: 0,
|
||||
height: 0,
|
||||
top: rect.top + rect.height / 2,
|
||||
right: rect.left + rect.width / 2,
|
||||
bottom: rect.top + rect.height / 2,
|
||||
left: rect.left + rect.width / 2
|
||||
};
|
||||
return {
|
||||
boundingClientRect,
|
||||
center
|
||||
};
|
||||
},
|
||||
// Asume that the following are always focusable
|
||||
getIsAvailableToBeFocused: () => true,
|
||||
getIsFocusable: el => true,
|
||||
focus: () => element.focus()
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
this.focusableComponents = focusableComponents;
|
||||
return this.focusableComponents;
|
||||
|
@ -10316,7 +10398,10 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
return searchForSuitableChild(component.el());
|
||||
if (component.el()) {
|
||||
return searchForSuitableChild(component.el());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -10475,7 +10560,7 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
*/
|
||||
refocusComponent() {
|
||||
if (this.lastFocusedComponent_) {
|
||||
// If use is not active, set it to active.
|
||||
// If user is not active, set it to active.
|
||||
if (!this.player_.userActive()) {
|
||||
this.player_.userActive(true);
|
||||
}
|
||||
|
@ -10502,6 +10587,9 @@ class SpatialNavigation extends EventTarget$2 {
|
|||
* @param {Component} component - The component to be focused.
|
||||
*/
|
||||
focus(component) {
|
||||
if (typeof component !== 'object') {
|
||||
return;
|
||||
}
|
||||
if (component.getIsAvailableToBeFocused(component.el())) {
|
||||
component.focus();
|
||||
} else if (this.findSuitableDOMChild(component)) {
|
||||
|
@ -18357,11 +18445,11 @@ class TextTrackSettings extends ModalDialog {
|
|||
this.addChild(trackSettingsControls);
|
||||
}
|
||||
bindFunctionsToSelectsAndButtons() {
|
||||
this.on(this.$('.vjs-done-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-done-button'), ['click', 'tap'], () => {
|
||||
this.saveSettings();
|
||||
this.close();
|
||||
});
|
||||
this.on(this.$('.vjs-default-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-default-button'), ['click', 'tap'], () => {
|
||||
this.setDefaults();
|
||||
this.updateDisplay();
|
||||
});
|
||||
|
@ -27889,7 +27977,7 @@ videojs.registerPlugin('qualityLevels', qualityLevels);
|
|||
// Include the version number.
|
||||
qualityLevels.VERSION = version$5;
|
||||
|
||||
/*! @name @videojs/http-streaming @version 3.13.1 @license Apache-2.0 */
|
||||
/*! @name @videojs/http-streaming @version 3.13.2 @license Apache-2.0 */
|
||||
|
||||
/**
|
||||
* @file resolve-url.js - Handling how URLs are resolved and manipulated
|
||||
|
@ -32394,7 +32482,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// reserved
|
||||
0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'
|
||||
]);
|
||||
|
||||
AUDIO_HDLR = new Uint8Array([0x00,
|
||||
// version 0
|
||||
0x00, 0x00, 0x00,
|
||||
|
@ -32411,7 +32498,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// reserved
|
||||
0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'
|
||||
]);
|
||||
|
||||
HDLR_TYPES = {
|
||||
video: VIDEO_HDLR,
|
||||
audio: AUDIO_HDLR
|
||||
|
@ -32430,7 +32516,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// version 0
|
||||
0x00, 0x00, 0x01 // entry_flags
|
||||
]);
|
||||
|
||||
SMHD = new Uint8Array([0x00,
|
||||
// version
|
||||
0x00, 0x00, 0x00,
|
||||
|
@ -32439,14 +32524,12 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// balance, 0 means centered
|
||||
0x00, 0x00 // reserved
|
||||
]);
|
||||
|
||||
STCO = new Uint8Array([0x00,
|
||||
// version
|
||||
0x00, 0x00, 0x00,
|
||||
// flags
|
||||
0x00, 0x00, 0x00, 0x00 // entry_count
|
||||
]);
|
||||
|
||||
STSC = STCO;
|
||||
STSZ = new Uint8Array([0x00,
|
||||
// version
|
||||
|
@ -32456,7 +32539,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// sample_size
|
||||
0x00, 0x00, 0x00, 0x00 // sample_count
|
||||
]);
|
||||
|
||||
STTS = STCO;
|
||||
VMHD = new Uint8Array([0x00,
|
||||
// version
|
||||
|
@ -32467,7 +32549,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // opcolor
|
||||
]);
|
||||
})();
|
||||
|
||||
box = function (type) {
|
||||
var payload = [],
|
||||
size = 0,
|
||||
|
@ -32535,7 +32616,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
track.audioobjecttype << 3 | track.samplingfrequencyindex >>> 1, track.samplingfrequencyindex << 7 | track.channelcount << 3, 0x06, 0x01, 0x02 // GASpecificConfig
|
||||
]));
|
||||
};
|
||||
|
||||
ftyp = function () {
|
||||
return box(types.ftyp, MAJOR_BRAND, MINOR_VERSION, MAJOR_BRAND, AVC1_BRAND);
|
||||
};
|
||||
|
@ -32581,7 +32661,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
(sequenceNumber & 0xFF000000) >> 24, (sequenceNumber & 0xFF0000) >> 16, (sequenceNumber & 0xFF00) >> 8, sequenceNumber & 0xFF // sequence_number
|
||||
]));
|
||||
};
|
||||
|
||||
minf = function (track) {
|
||||
return box(types.minf, track.type === 'video' ? box(types.vmhd, VMHD) : box(types.smhd, SMHD), dinf(), stbl(track));
|
||||
};
|
||||
|
@ -32645,7 +32724,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// pre_defined
|
||||
0xff, 0xff, 0xff, 0xff // next_track_ID
|
||||
]);
|
||||
|
||||
return box(types.mvhd, bytes);
|
||||
};
|
||||
sdtp = function (track) {
|
||||
|
@ -32742,7 +32820,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// maxBitrate
|
||||
0x00, 0x2d, 0xc6, 0xc0 // avgBitrate
|
||||
]))];
|
||||
|
||||
if (track.sarRatio) {
|
||||
var hSpacing = track.sarRatio[0],
|
||||
vSpacing = track.sarRatio[1];
|
||||
|
@ -32806,7 +32883,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// width
|
||||
(track.height & 0xFF00) >> 8, track.height & 0xFF, 0x00, 0x00 // height
|
||||
]);
|
||||
|
||||
return box(types.tkhd, result);
|
||||
};
|
||||
/**
|
||||
|
@ -32830,7 +32906,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// default_sample_size
|
||||
0x00, 0x00, 0x00, 0x00 // default_sample_flags
|
||||
]));
|
||||
|
||||
upperWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime / MAX_UINT32);
|
||||
lowerWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime % MAX_UINT32);
|
||||
trackFragmentDecodeTime = box(types.tfdt, new Uint8Array([0x01,
|
||||
|
@ -32935,7 +33010,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
(offset & 0xFF000000) >>> 24, (offset & 0xFF0000) >>> 16, (offset & 0xFF00) >>> 8, offset & 0xFF // data_offset
|
||||
];
|
||||
};
|
||||
|
||||
videoTrun = function (track, offset) {
|
||||
var bytesOffest, bytes, header, samples, sample, i;
|
||||
samples = track.samples || [];
|
||||
|
@ -32966,7 +33040,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
bytes[bytesOffest++] = (sample.compositionTimeOffset & 0xFF00) >>> 8;
|
||||
bytes[bytesOffest++] = sample.compositionTimeOffset & 0xFF; // sample_composition_time_offset
|
||||
}
|
||||
|
||||
return box(types.trun, bytes);
|
||||
};
|
||||
audioTrun = function (track, offset) {
|
||||
|
@ -32989,7 +33062,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
bytes[bytesOffest++] = (sample.size & 0xFF00) >>> 8;
|
||||
bytes[bytesOffest++] = sample.size & 0xFF; // sample_size
|
||||
}
|
||||
|
||||
return box(types.trun, bytes);
|
||||
};
|
||||
trun$1 = function (track, offset) {
|
||||
|
@ -33488,7 +33560,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
duration: 1024 // For AAC audio, all samples contain 1024 samples
|
||||
});
|
||||
}
|
||||
|
||||
return samples;
|
||||
}; // generate the track's sample table from an array of frames
|
||||
|
||||
|
@ -33802,13 +33873,11 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// eslint-disable-line no-use-before-define
|
||||
new Cea608Stream(1, 1) // eslint-disable-line no-use-before-define
|
||||
];
|
||||
|
||||
if (this.parse708captions_) {
|
||||
this.cc708Stream_ = new Cea708Stream({
|
||||
captionServices: options.captionServices
|
||||
}); // eslint-disable-line no-use-before-define
|
||||
}
|
||||
|
||||
this.reset(); // forward data and done events from CCs to this CaptionStream
|
||||
|
||||
this.ccStreams_.forEach(function (cc) {
|
||||
|
@ -34043,7 +34112,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// ⎡
|
||||
0x10a0: 0x3138 // ㄸ (CC char)
|
||||
};
|
||||
|
||||
var get708CharFromCode = function (code) {
|
||||
var newCode = CHARACTER_TRANSLATION_708[code] || code;
|
||||
if (code & 0x1000 && code === newCode) {
|
||||
|
@ -35025,7 +35093,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// └
|
||||
0x033f: 0x2518 // ┘
|
||||
};
|
||||
|
||||
var getCharFromCode = function (code) {
|
||||
if (code === null) {
|
||||
return '';
|
||||
|
@ -35238,7 +35305,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
} // finish data processing
|
||||
};
|
||||
};
|
||||
|
||||
Cea608Stream.prototype = new Stream$7(); // Trigger a cue point that captures the current state of the
|
||||
// display buffer
|
||||
|
||||
|
@ -36817,7 +36883,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
// the number is odd if the low order bit is set
|
||||
return 1 + valu >>> 1; // add 1 to make it even, and divide by 2
|
||||
}
|
||||
|
||||
return -1 * (valu >>> 1); // divide by two then make it negative
|
||||
}; // Some convenience functions
|
||||
// :Boolean
|
||||
|
@ -37186,7 +37251,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
if (chromaFormatIdc === 3) {
|
||||
expGolombDecoder.skipBits(1); // separate_colour_plane_flag
|
||||
}
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_luma_minus8
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_chroma_minus8
|
||||
|
@ -37225,7 +37289,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
expGolombDecoder.skipExpGolomb(); // offset_for_ref_frame[ i ]
|
||||
}
|
||||
}
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // max_num_ref_frames
|
||||
|
||||
expGolombDecoder.skipBits(1); // gaps_in_frame_num_value_allowed_flag
|
||||
|
@ -37236,7 +37299,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
if (frameMbsOnlyFlag === 0) {
|
||||
expGolombDecoder.skipBits(1); // mb_adaptive_frame_field_flag
|
||||
}
|
||||
|
||||
expGolombDecoder.skipBits(1); // direct_8x8_inference_flag
|
||||
|
||||
if (expGolombDecoder.readBoolean()) {
|
||||
|
@ -37381,7 +37443,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
var parseIso88591 = function (bytes, start, end) {
|
||||
return unescape(percentEncode(bytes, start, end)); // jshint ignore:line
|
||||
};
|
||||
|
||||
var parseAdtsSize = function (header, byteIndex) {
|
||||
var lowThree = (header[byteIndex + 5] & 0xE0) >> 5,
|
||||
middle = header[byteIndex + 4] << 3,
|
||||
|
@ -39820,7 +39881,6 @@ const workerCode$1 = transform(getWorkerString(function () {
|
|||
pes.dts += (packet[offset + 18] & 0x06) >>> 1; // OR by the two LSBs
|
||||
}
|
||||
}
|
||||
|
||||
return pes;
|
||||
};
|
||||
var parseNalUnitType = function (type) {
|
||||
|
@ -40855,7 +40915,6 @@ const processTransmux = options => {
|
|||
dequeue(transmuxer);
|
||||
/* eslint-enable */
|
||||
};
|
||||
|
||||
const handleError = () => {
|
||||
const error = {
|
||||
message: 'Received an error message from the transmuxer worker',
|
||||
|
@ -43512,6 +43571,32 @@ const shouldWaitForTimelineChange = ({
|
|||
}
|
||||
return false;
|
||||
};
|
||||
const shouldFixBadTimelineChanges = timelineChangeController => {
|
||||
if (!timelineChangeController) {
|
||||
return false;
|
||||
}
|
||||
const pendingAudioTimelineChange = timelineChangeController.pendingTimelineChange({
|
||||
type: 'audio'
|
||||
});
|
||||
const pendingMainTimelineChange = timelineChangeController.pendingTimelineChange({
|
||||
type: 'main'
|
||||
});
|
||||
const hasPendingTimelineChanges = pendingAudioTimelineChange && pendingMainTimelineChange;
|
||||
const differentPendingChanges = hasPendingTimelineChanges && pendingAudioTimelineChange.to !== pendingMainTimelineChange.to;
|
||||
const isNotInitialPendingTimelineChange = hasPendingTimelineChanges && pendingAudioTimelineChange.from !== -1 && pendingMainTimelineChange.from !== -1;
|
||||
if (isNotInitialPendingTimelineChange && differentPendingChanges) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
const fixBadTimelineChange = segmentLoader => {
|
||||
if (!segmentLoader) {
|
||||
return;
|
||||
}
|
||||
segmentLoader.pause();
|
||||
segmentLoader.resetEverything();
|
||||
segmentLoader.load();
|
||||
};
|
||||
const mediaDuration = timingInfos => {
|
||||
let maxDuration = 0;
|
||||
['video', 'audio'].forEach(function (type) {
|
||||
|
@ -45021,6 +45106,9 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
loaderType: this.loaderType_,
|
||||
audioDisabled: this.audioDisabled_
|
||||
})) {
|
||||
if (shouldFixBadTimelineChanges(this.timelineChangeController_)) {
|
||||
fixBadTimelineChange(this);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -45062,7 +45150,8 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
|
||||
if (hasAudio && !this.audioDisabled_ && !isMuxed && !segmentInfo.audioTimingInfo) {
|
||||
return false;
|
||||
}
|
||||
} // we need to allow an append here even if we're moving to different timelines.
|
||||
|
||||
if (shouldWaitForTimelineChange({
|
||||
timelineChangeController: this.timelineChangeController_,
|
||||
currentTimeline: this.currentTimeline_,
|
||||
|
@ -45070,6 +45159,9 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
loaderType: this.loaderType_,
|
||||
audioDisabled: this.audioDisabled_
|
||||
})) {
|
||||
if (shouldFixBadTimelineChanges(this.timelineChangeController_)) {
|
||||
fixBadTimelineChange(this);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -46902,7 +46994,7 @@ class SourceUpdater extends videojs.EventTarget {
|
|||
videoTimestampOffset(offset) {
|
||||
if (typeof offset !== 'undefined' && this.videoBuffer &&
|
||||
// no point in updating if it's the same
|
||||
this.videoTimestampOffset !== offset) {
|
||||
this.videoTimestampOffset_ !== offset) {
|
||||
pushQueue({
|
||||
type: 'video',
|
||||
sourceUpdater: this,
|
||||
|
@ -48451,7 +48543,6 @@ const workerCode = transform(getWorkerString(function () {
|
|||
* type of event through `on`
|
||||
* @return {boolean} if we could turn it off or not
|
||||
*/;
|
||||
|
||||
_proto.off = function off(type, listener) {
|
||||
if (!this.listeners[type]) {
|
||||
return false;
|
||||
|
@ -48475,7 +48566,6 @@ const workerCode = transform(getWorkerString(function () {
|
|||
*
|
||||
* @param {string} type the event name
|
||||
*/;
|
||||
|
||||
_proto.trigger = function trigger(type) {
|
||||
var callbacks = this.listeners[type];
|
||||
if (!callbacks) {
|
||||
|
@ -48501,7 +48591,6 @@ const workerCode = transform(getWorkerString(function () {
|
|||
/**
|
||||
* Destroys the stream and cleans up.
|
||||
*/;
|
||||
|
||||
_proto.dispose = function dispose() {
|
||||
this.listeners = {};
|
||||
}
|
||||
|
@ -48513,7 +48602,6 @@ const workerCode = transform(getWorkerString(function () {
|
|||
* @param {Stream} destination the stream that will receive all `data` events
|
||||
* @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
|
||||
*/;
|
||||
|
||||
_proto.pipe = function pipe(destination) {
|
||||
this.on('data', function (data) {
|
||||
destination.push(data);
|
||||
|
@ -49007,7 +49095,6 @@ const workerCode = transform(getWorkerString(function () {
|
|||
/* eslint-enable */
|
||||
};
|
||||
}));
|
||||
|
||||
var Decrypter = factory(workerCode);
|
||||
/* rollup-plugin-worker-factory end for worker!/home/runner/work/http-streaming/http-streaming/src/decrypter-worker.js */
|
||||
|
||||
|
@ -51187,16 +51274,11 @@ class PlaylistController extends videojs.EventTarget {
|
|||
this.waitingForFastQualityPlaylistReceived_ = true;
|
||||
}
|
||||
runFastQualitySwitch_() {
|
||||
this.waitingForFastQualityPlaylistReceived_ = false; // Delete all buffered data to allow an immediate quality switch, then seek to give
|
||||
// the browser a kick to remove any cached frames from the previous rendtion (.04 seconds
|
||||
// ahead was roughly the minimum that will accomplish this across a variety of content
|
||||
// in IE and Edge, but seeking in place is sufficient on all other browsers)
|
||||
// Edge/IE bug: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/14600375/
|
||||
// Chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=651904
|
||||
this.waitingForFastQualityPlaylistReceived_ = false; // Delete all buffered data to allow an immediate quality switch.
|
||||
|
||||
this.mainSegmentLoader_.pause();
|
||||
this.mainSegmentLoader_.resetEverything(() => {
|
||||
this.tech_.setCurrentTime(this.tech_.currentTime());
|
||||
this.mainSegmentLoader_.load();
|
||||
}); // don't need to reset audio as it is reset when media changes
|
||||
}
|
||||
/**
|
||||
|
@ -53234,7 +53316,7 @@ const initPlugin = function (player, options) {
|
|||
const reloadSourceOnError = function (options) {
|
||||
initPlugin(this, options);
|
||||
};
|
||||
var version$4 = "3.13.1";
|
||||
var version$4 = "3.13.2";
|
||||
var version$3 = "7.0.3";
|
||||
var version$2 = "1.3.0";
|
||||
var version$1 = "7.1.0";
|
||||
|
|
229
node_modules/video.js/dist/video.js
generated
vendored
229
node_modules/video.js/dist/video.js
generated
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @license
|
||||
* Video.js 8.17.1 <http://videojs.com/>
|
||||
* Video.js 8.17.3 <http://videojs.com/>
|
||||
* Copyright Brightcove, Inc. <https://www.brightcove.com/>
|
||||
* Available under Apache License Version 2.0
|
||||
* <https://github.com/videojs/video.js/blob/main/LICENSE>
|
||||
|
@ -16,7 +16,7 @@
|
|||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.videojs = factory());
|
||||
})(this, (function () { 'use strict';
|
||||
|
||||
var version$5 = "8.17.1";
|
||||
var version$5 = "8.17.3";
|
||||
|
||||
/**
|
||||
* An Object that contains lifecycle hooks as keys which point to an array
|
||||
|
@ -2171,7 +2171,6 @@
|
|||
/* eslint-enable */
|
||||
}
|
||||
}
|
||||
|
||||
event.fixed_ = true;
|
||||
// Returns fixed-up instance
|
||||
return event;
|
||||
|
@ -2985,7 +2984,12 @@
|
|||
}
|
||||
[type, listener] = args;
|
||||
} else {
|
||||
[target, type, listener] = args;
|
||||
// This was `[target, type, listener] = args;` but this block needs more than
|
||||
// one statement to produce minified output compatible with Chrome 53.
|
||||
// See https://github.com/videojs/video.js/pull/8810
|
||||
target = args[0];
|
||||
type = args[1];
|
||||
listener = args[2];
|
||||
}
|
||||
validateTarget(target, self, fnName);
|
||||
validateEventType(type, self, fnName);
|
||||
|
@ -6389,6 +6393,14 @@
|
|||
if (closeButton) {
|
||||
parentEl.appendChild(closeButton.el_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fired after `ModalDialog` is re-filled with content & close button is appended.
|
||||
*
|
||||
* @event ModalDialog#aftermodalfill
|
||||
* @type {Event}
|
||||
*/
|
||||
this.trigger('aftermodalfill');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -7477,18 +7489,13 @@
|
|||
|
||||
var _extends_1 = createCommonjsModule(function (module) {
|
||||
function _extends() {
|
||||
module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
for (var key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
return (module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
|
||||
for (var e = 1; e < arguments.length; e++) {
|
||||
var t = arguments[e];
|
||||
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
||||
}
|
||||
return target;
|
||||
}, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
||||
return _extends.apply(this, arguments);
|
||||
return n;
|
||||
}, module.exports.__esModule = true, module.exports["default"] = module.exports), _extends.apply(null, arguments);
|
||||
}
|
||||
module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
||||
});
|
||||
|
@ -7708,7 +7715,6 @@
|
|||
* So if we have delay as 1000
|
||||
* This function can generate any value from 900 to 1100
|
||||
*/;
|
||||
|
||||
_proto2.getCurrentFuzzedDelay = function getCurrentFuzzedDelay() {
|
||||
var lowValue = this.getCurrentMinPossibleDelay();
|
||||
var highValue = this.getCurrentMaxPossibleDelay();
|
||||
|
@ -12405,6 +12411,24 @@
|
|||
this.player_.on('focusin', this.handlePlayerFocus_.bind(this));
|
||||
this.player_.on('focusout', this.handlePlayerBlur_.bind(this));
|
||||
this.isListening_ = true;
|
||||
this.player_.errorDisplay.on('aftermodalfill', () => {
|
||||
this.updateFocusableComponents();
|
||||
if (this.focusableComponents.length) {
|
||||
// The modal has focusable components:
|
||||
|
||||
if (this.focusableComponents.length > 1) {
|
||||
// The modal has close button + some additional buttons.
|
||||
// Focusing first additional button:
|
||||
|
||||
this.focusableComponents[1].focus();
|
||||
} else {
|
||||
// The modal has only close button,
|
||||
// Focusing it:
|
||||
|
||||
this.focusableComponents[0].focus();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -12533,7 +12557,7 @@
|
|||
}
|
||||
}
|
||||
if (!event.currentTarget.contains(event.relatedTarget) && !isChildrenOfPlayer || !nextFocusedElement) {
|
||||
if (currentComponent.name() === 'CloseButton') {
|
||||
if (currentComponent && currentComponent.name() === 'CloseButton') {
|
||||
this.refocusComponent();
|
||||
} else {
|
||||
this.pause();
|
||||
|
@ -12603,6 +12627,58 @@
|
|||
focusableComponents.push(value);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO - Refactor the following logic after refactor of videojs-errors elements to be components is done.
|
||||
if (value.name_ === 'ErrorDisplay' && value.opened_) {
|
||||
const buttonContainer = value.el_.querySelector('.vjs-errors-ok-button-container');
|
||||
if (buttonContainer) {
|
||||
const modalButtons = buttonContainer.querySelectorAll('button');
|
||||
modalButtons.forEach((element, index) => {
|
||||
// Add elements as objects to be handled by the spatial navigation
|
||||
focusableComponents.push({
|
||||
name: () => {
|
||||
return 'ModalButton' + (index + 1);
|
||||
},
|
||||
el: () => element,
|
||||
getPositions: () => {
|
||||
const rect = element.getBoundingClientRect();
|
||||
|
||||
// Creating objects that mirror DOMRectReadOnly for boundingClientRect and center
|
||||
const boundingClientRect = {
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
top: rect.top,
|
||||
right: rect.right,
|
||||
bottom: rect.bottom,
|
||||
left: rect.left
|
||||
};
|
||||
|
||||
// Calculating the center position
|
||||
const center = {
|
||||
x: rect.left + rect.width / 2,
|
||||
y: rect.top + rect.height / 2,
|
||||
width: 0,
|
||||
height: 0,
|
||||
top: rect.top + rect.height / 2,
|
||||
right: rect.left + rect.width / 2,
|
||||
bottom: rect.top + rect.height / 2,
|
||||
left: rect.left + rect.width / 2
|
||||
};
|
||||
return {
|
||||
boundingClientRect,
|
||||
center
|
||||
};
|
||||
},
|
||||
// Asume that the following are always focusable
|
||||
getIsAvailableToBeFocused: () => true,
|
||||
getIsFocusable: el => true,
|
||||
focus: () => element.focus()
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
this.focusableComponents = focusableComponents;
|
||||
return this.focusableComponents;
|
||||
|
@ -12638,7 +12714,10 @@
|
|||
}
|
||||
return null;
|
||||
}
|
||||
return searchForSuitableChild(component.el());
|
||||
if (component.el()) {
|
||||
return searchForSuitableChild(component.el());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -12797,7 +12876,7 @@
|
|||
*/
|
||||
refocusComponent() {
|
||||
if (this.lastFocusedComponent_) {
|
||||
// If use is not active, set it to active.
|
||||
// If user is not active, set it to active.
|
||||
if (!this.player_.userActive()) {
|
||||
this.player_.userActive(true);
|
||||
}
|
||||
|
@ -12824,6 +12903,9 @@
|
|||
* @param {Component} component - The component to be focused.
|
||||
*/
|
||||
focus(component) {
|
||||
if (typeof component !== 'object') {
|
||||
return;
|
||||
}
|
||||
if (component.getIsAvailableToBeFocused(component.el())) {
|
||||
component.focus();
|
||||
} else if (this.findSuitableDOMChild(component)) {
|
||||
|
@ -20679,11 +20761,11 @@
|
|||
this.addChild(trackSettingsControls);
|
||||
}
|
||||
bindFunctionsToSelectsAndButtons() {
|
||||
this.on(this.$('.vjs-done-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-done-button'), ['click', 'tap'], () => {
|
||||
this.saveSettings();
|
||||
this.close();
|
||||
});
|
||||
this.on(this.$('.vjs-default-button'), 'click', () => {
|
||||
this.on(this.$('.vjs-default-button'), ['click', 'tap'], () => {
|
||||
this.setDefaults();
|
||||
this.updateDisplay();
|
||||
});
|
||||
|
@ -30451,7 +30533,6 @@
|
|||
* type of event through `on`
|
||||
* @return {boolean} if we could turn it off or not
|
||||
*/;
|
||||
|
||||
_proto.off = function off(type, listener) {
|
||||
if (!this.listeners[type]) {
|
||||
return false;
|
||||
|
@ -30475,7 +30556,6 @@
|
|||
*
|
||||
* @param {string} type the event name
|
||||
*/;
|
||||
|
||||
_proto.trigger = function trigger(type) {
|
||||
var callbacks = this.listeners[type];
|
||||
if (!callbacks) {
|
||||
|
@ -30501,7 +30581,6 @@
|
|||
/**
|
||||
* Destroys the stream and cleans up.
|
||||
*/;
|
||||
|
||||
_proto.dispose = function dispose() {
|
||||
this.listeners = {};
|
||||
}
|
||||
|
@ -30513,7 +30592,6 @@
|
|||
* @param {Stream} destination the stream that will receive all `data` events
|
||||
* @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
|
||||
*/;
|
||||
|
||||
_proto.pipe = function pipe(destination) {
|
||||
this.on('data', function (data) {
|
||||
destination.push(data);
|
||||
|
@ -32788,7 +32866,7 @@
|
|||
var ls = list._refresh(list._node);
|
||||
__set__(list, 'length', ls.length);
|
||||
if (!list.$$length || ls.length < list.$$length) {
|
||||
for (var i = ls.length; (i in list); i++) {
|
||||
for (var i = ls.length; i in list; i++) {
|
||||
if (Object.prototype.hasOwnProperty.call(list, i)) {
|
||||
delete list[i];
|
||||
}
|
||||
|
@ -33500,7 +33578,6 @@
|
|||
if (cp) {
|
||||
cp.removeChild(node); //remove and update
|
||||
}
|
||||
|
||||
if (node.nodeType === DOCUMENT_FRAGMENT_NODE) {
|
||||
var newFirst = node.firstChild;
|
||||
if (newFirst == null) {
|
||||
|
@ -33959,7 +34036,6 @@
|
|||
];
|
||||
}
|
||||
}
|
||||
|
||||
serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);
|
||||
//console.log('###',this.nodeType,uri,prefix,buf.join(''))
|
||||
return buf.join('');
|
||||
|
@ -34022,7 +34098,6 @@
|
|||
}
|
||||
//buf.sort.apply(attrs, attributeSorter);
|
||||
}
|
||||
|
||||
switch (node.nodeType) {
|
||||
case ELEMENT_NODE:
|
||||
var attrs = node.attributes;
|
||||
|
@ -34220,11 +34295,9 @@
|
|||
//can not hit in level3
|
||||
//default:throw e;
|
||||
}
|
||||
|
||||
if (!node2) {
|
||||
node2 = node.cloneNode(false); //false
|
||||
}
|
||||
|
||||
node2.ownerDocument = doc;
|
||||
node2.parentNode = null;
|
||||
if (deep) {
|
||||
|
@ -36613,7 +36686,6 @@
|
|||
locator.lineNumber++;
|
||||
//console.log('line++:',locator,startPos,endPos)
|
||||
}
|
||||
|
||||
locator.columnNumber = p - lineStart + 1;
|
||||
}
|
||||
var lineStart = 0;
|
||||
|
@ -36782,7 +36854,6 @@
|
|||
//fatalError: equal must after attrName or space after attrName
|
||||
throw new Error('attribute equal must after attrName'); // No known test case
|
||||
}
|
||||
|
||||
break;
|
||||
case '\'':
|
||||
case '"':
|
||||
|
@ -36813,7 +36884,6 @@
|
|||
//fatalError: no equal before
|
||||
throw new Error('attribute value must after "="'); // No known test case
|
||||
}
|
||||
|
||||
break;
|
||||
case '/':
|
||||
switch (s) {
|
||||
|
@ -36835,7 +36905,6 @@
|
|||
throw new Error("attribute invalid close char('/')");
|
||||
// No known test case
|
||||
}
|
||||
|
||||
break;
|
||||
case '':
|
||||
//end document
|
||||
|
@ -36977,7 +37046,6 @@
|
|||
_copy(currentNSMap, currentNSMap = {});
|
||||
//console.log(currentNSMap,1)
|
||||
}
|
||||
|
||||
currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;
|
||||
a.uri = NAMESPACE$1.XMLNS;
|
||||
domBuilder.startPrefixMapping(nsPrefix, value);
|
||||
|
@ -36999,7 +37067,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
var nsp = tagName.indexOf(':');
|
||||
if (nsp > 0) {
|
||||
prefix = el.prefix = tagName.slice(0, nsp);
|
||||
|
@ -37048,7 +37115,6 @@
|
|||
//}
|
||||
}
|
||||
}
|
||||
|
||||
return elStartEnd + 1;
|
||||
}
|
||||
function fixSelfClosed(source, elStartEnd, tagName, closeMap) {
|
||||
|
@ -37066,7 +37132,6 @@
|
|||
return pos < elStartEnd;
|
||||
//}
|
||||
}
|
||||
|
||||
function _copy(source, target) {
|
||||
for (var n in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, n)) {
|
||||
|
@ -37188,7 +37253,6 @@
|
|||
// getType:function(uri,localName){}
|
||||
// getType:function(i){},
|
||||
};
|
||||
|
||||
function split(source, start) {
|
||||
var match;
|
||||
var buf = [];
|
||||
|
@ -37399,7 +37463,6 @@
|
|||
this.doc.appendChild(charNode);
|
||||
//process xml
|
||||
}
|
||||
|
||||
this.locator && position(this.locator, charNode);
|
||||
}
|
||||
},
|
||||
|
@ -40691,7 +40754,7 @@
|
|||
};
|
||||
var clock_1 = clock.ONE_SECOND_IN_TS;
|
||||
|
||||
/*! @name @videojs/http-streaming @version 3.13.1 @license Apache-2.0 */
|
||||
/*! @name @videojs/http-streaming @version 3.13.2 @license Apache-2.0 */
|
||||
|
||||
/**
|
||||
* @file resolve-url.js - Handling how URLs are resolved and manipulated
|
||||
|
@ -45196,7 +45259,6 @@
|
|||
// reserved
|
||||
0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'
|
||||
]);
|
||||
|
||||
AUDIO_HDLR = new Uint8Array([0x00,
|
||||
// version 0
|
||||
0x00, 0x00, 0x00,
|
||||
|
@ -45213,7 +45275,6 @@
|
|||
// reserved
|
||||
0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'
|
||||
]);
|
||||
|
||||
HDLR_TYPES = {
|
||||
video: VIDEO_HDLR,
|
||||
audio: AUDIO_HDLR
|
||||
|
@ -45232,7 +45293,6 @@
|
|||
// version 0
|
||||
0x00, 0x00, 0x01 // entry_flags
|
||||
]);
|
||||
|
||||
SMHD = new Uint8Array([0x00,
|
||||
// version
|
||||
0x00, 0x00, 0x00,
|
||||
|
@ -45241,14 +45301,12 @@
|
|||
// balance, 0 means centered
|
||||
0x00, 0x00 // reserved
|
||||
]);
|
||||
|
||||
STCO = new Uint8Array([0x00,
|
||||
// version
|
||||
0x00, 0x00, 0x00,
|
||||
// flags
|
||||
0x00, 0x00, 0x00, 0x00 // entry_count
|
||||
]);
|
||||
|
||||
STSC = STCO;
|
||||
STSZ = new Uint8Array([0x00,
|
||||
// version
|
||||
|
@ -45258,7 +45316,6 @@
|
|||
// sample_size
|
||||
0x00, 0x00, 0x00, 0x00 // sample_count
|
||||
]);
|
||||
|
||||
STTS = STCO;
|
||||
VMHD = new Uint8Array([0x00,
|
||||
// version
|
||||
|
@ -45269,7 +45326,6 @@
|
|||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // opcolor
|
||||
]);
|
||||
})();
|
||||
|
||||
box = function (type) {
|
||||
var payload = [],
|
||||
size = 0,
|
||||
|
@ -45337,7 +45393,6 @@
|
|||
track.audioobjecttype << 3 | track.samplingfrequencyindex >>> 1, track.samplingfrequencyindex << 7 | track.channelcount << 3, 0x06, 0x01, 0x02 // GASpecificConfig
|
||||
]));
|
||||
};
|
||||
|
||||
ftyp = function () {
|
||||
return box(types.ftyp, MAJOR_BRAND, MINOR_VERSION, MAJOR_BRAND, AVC1_BRAND);
|
||||
};
|
||||
|
@ -45383,7 +45438,6 @@
|
|||
(sequenceNumber & 0xFF000000) >> 24, (sequenceNumber & 0xFF0000) >> 16, (sequenceNumber & 0xFF00) >> 8, sequenceNumber & 0xFF // sequence_number
|
||||
]));
|
||||
};
|
||||
|
||||
minf = function (track) {
|
||||
return box(types.minf, track.type === 'video' ? box(types.vmhd, VMHD) : box(types.smhd, SMHD), dinf(), stbl(track));
|
||||
};
|
||||
|
@ -45447,7 +45501,6 @@
|
|||
// pre_defined
|
||||
0xff, 0xff, 0xff, 0xff // next_track_ID
|
||||
]);
|
||||
|
||||
return box(types.mvhd, bytes);
|
||||
};
|
||||
sdtp = function (track) {
|
||||
|
@ -45544,7 +45597,6 @@
|
|||
// maxBitrate
|
||||
0x00, 0x2d, 0xc6, 0xc0 // avgBitrate
|
||||
]))];
|
||||
|
||||
if (track.sarRatio) {
|
||||
var hSpacing = track.sarRatio[0],
|
||||
vSpacing = track.sarRatio[1];
|
||||
|
@ -45608,7 +45660,6 @@
|
|||
// width
|
||||
(track.height & 0xFF00) >> 8, track.height & 0xFF, 0x00, 0x00 // height
|
||||
]);
|
||||
|
||||
return box(types.tkhd, result);
|
||||
};
|
||||
/**
|
||||
|
@ -45632,7 +45683,6 @@
|
|||
// default_sample_size
|
||||
0x00, 0x00, 0x00, 0x00 // default_sample_flags
|
||||
]));
|
||||
|
||||
upperWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime / MAX_UINT32);
|
||||
lowerWordBaseMediaDecodeTime = Math.floor(track.baseMediaDecodeTime % MAX_UINT32);
|
||||
trackFragmentDecodeTime = box(types.tfdt, new Uint8Array([0x01,
|
||||
|
@ -45737,7 +45787,6 @@
|
|||
(offset & 0xFF000000) >>> 24, (offset & 0xFF0000) >>> 16, (offset & 0xFF00) >>> 8, offset & 0xFF // data_offset
|
||||
];
|
||||
};
|
||||
|
||||
videoTrun = function (track, offset) {
|
||||
var bytesOffest, bytes, header, samples, sample, i;
|
||||
samples = track.samples || [];
|
||||
|
@ -45768,7 +45817,6 @@
|
|||
bytes[bytesOffest++] = (sample.compositionTimeOffset & 0xFF00) >>> 8;
|
||||
bytes[bytesOffest++] = sample.compositionTimeOffset & 0xFF; // sample_composition_time_offset
|
||||
}
|
||||
|
||||
return box(types.trun, bytes);
|
||||
};
|
||||
audioTrun = function (track, offset) {
|
||||
|
@ -45791,7 +45839,6 @@
|
|||
bytes[bytesOffest++] = (sample.size & 0xFF00) >>> 8;
|
||||
bytes[bytesOffest++] = sample.size & 0xFF; // sample_size
|
||||
}
|
||||
|
||||
return box(types.trun, bytes);
|
||||
};
|
||||
trun$1 = function (track, offset) {
|
||||
|
@ -46290,7 +46337,6 @@
|
|||
duration: 1024 // For AAC audio, all samples contain 1024 samples
|
||||
});
|
||||
}
|
||||
|
||||
return samples;
|
||||
}; // generate the track's sample table from an array of frames
|
||||
|
||||
|
@ -46604,13 +46650,11 @@
|
|||
// eslint-disable-line no-use-before-define
|
||||
new Cea608Stream(1, 1) // eslint-disable-line no-use-before-define
|
||||
];
|
||||
|
||||
if (this.parse708captions_) {
|
||||
this.cc708Stream_ = new Cea708Stream({
|
||||
captionServices: options.captionServices
|
||||
}); // eslint-disable-line no-use-before-define
|
||||
}
|
||||
|
||||
this.reset(); // forward data and done events from CCs to this CaptionStream
|
||||
|
||||
this.ccStreams_.forEach(function (cc) {
|
||||
|
@ -46845,7 +46889,6 @@
|
|||
// ⎡
|
||||
0x10a0: 0x3138 // ㄸ (CC char)
|
||||
};
|
||||
|
||||
var get708CharFromCode = function (code) {
|
||||
var newCode = CHARACTER_TRANSLATION_708[code] || code;
|
||||
if (code & 0x1000 && code === newCode) {
|
||||
|
@ -47827,7 +47870,6 @@
|
|||
// └
|
||||
0x033f: 0x2518 // ┘
|
||||
};
|
||||
|
||||
var getCharFromCode = function (code) {
|
||||
if (code === null) {
|
||||
return '';
|
||||
|
@ -48040,7 +48082,6 @@
|
|||
} // finish data processing
|
||||
};
|
||||
};
|
||||
|
||||
Cea608Stream.prototype = new Stream$7(); // Trigger a cue point that captures the current state of the
|
||||
// display buffer
|
||||
|
||||
|
@ -49619,7 +49660,6 @@
|
|||
// the number is odd if the low order bit is set
|
||||
return 1 + valu >>> 1; // add 1 to make it even, and divide by 2
|
||||
}
|
||||
|
||||
return -1 * (valu >>> 1); // divide by two then make it negative
|
||||
}; // Some convenience functions
|
||||
// :Boolean
|
||||
|
@ -49988,7 +50028,6 @@
|
|||
if (chromaFormatIdc === 3) {
|
||||
expGolombDecoder.skipBits(1); // separate_colour_plane_flag
|
||||
}
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_luma_minus8
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // bit_depth_chroma_minus8
|
||||
|
@ -50027,7 +50066,6 @@
|
|||
expGolombDecoder.skipExpGolomb(); // offset_for_ref_frame[ i ]
|
||||
}
|
||||
}
|
||||
|
||||
expGolombDecoder.skipUnsignedExpGolomb(); // max_num_ref_frames
|
||||
|
||||
expGolombDecoder.skipBits(1); // gaps_in_frame_num_value_allowed_flag
|
||||
|
@ -50038,7 +50076,6 @@
|
|||
if (frameMbsOnlyFlag === 0) {
|
||||
expGolombDecoder.skipBits(1); // mb_adaptive_frame_field_flag
|
||||
}
|
||||
|
||||
expGolombDecoder.skipBits(1); // direct_8x8_inference_flag
|
||||
|
||||
if (expGolombDecoder.readBoolean()) {
|
||||
|
@ -50183,7 +50220,6 @@
|
|||
var parseIso88591 = function (bytes, start, end) {
|
||||
return unescape(percentEncode(bytes, start, end)); // jshint ignore:line
|
||||
};
|
||||
|
||||
var parseAdtsSize = function (header, byteIndex) {
|
||||
var lowThree = (header[byteIndex + 5] & 0xE0) >> 5,
|
||||
middle = header[byteIndex + 4] << 3,
|
||||
|
@ -52622,7 +52658,6 @@
|
|||
pes.dts += (packet[offset + 18] & 0x06) >>> 1; // OR by the two LSBs
|
||||
}
|
||||
}
|
||||
|
||||
return pes;
|
||||
};
|
||||
var parseNalUnitType = function (type) {
|
||||
|
@ -53657,7 +53692,6 @@
|
|||
dequeue(transmuxer);
|
||||
/* eslint-enable */
|
||||
};
|
||||
|
||||
const handleError = () => {
|
||||
const error = {
|
||||
message: 'Received an error message from the transmuxer worker',
|
||||
|
@ -56314,6 +56348,32 @@
|
|||
}
|
||||
return false;
|
||||
};
|
||||
const shouldFixBadTimelineChanges = timelineChangeController => {
|
||||
if (!timelineChangeController) {
|
||||
return false;
|
||||
}
|
||||
const pendingAudioTimelineChange = timelineChangeController.pendingTimelineChange({
|
||||
type: 'audio'
|
||||
});
|
||||
const pendingMainTimelineChange = timelineChangeController.pendingTimelineChange({
|
||||
type: 'main'
|
||||
});
|
||||
const hasPendingTimelineChanges = pendingAudioTimelineChange && pendingMainTimelineChange;
|
||||
const differentPendingChanges = hasPendingTimelineChanges && pendingAudioTimelineChange.to !== pendingMainTimelineChange.to;
|
||||
const isNotInitialPendingTimelineChange = hasPendingTimelineChanges && pendingAudioTimelineChange.from !== -1 && pendingMainTimelineChange.from !== -1;
|
||||
if (isNotInitialPendingTimelineChange && differentPendingChanges) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
const fixBadTimelineChange = segmentLoader => {
|
||||
if (!segmentLoader) {
|
||||
return;
|
||||
}
|
||||
segmentLoader.pause();
|
||||
segmentLoader.resetEverything();
|
||||
segmentLoader.load();
|
||||
};
|
||||
const mediaDuration = timingInfos => {
|
||||
let maxDuration = 0;
|
||||
['video', 'audio'].forEach(function (type) {
|
||||
|
@ -57823,6 +57883,9 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
loaderType: this.loaderType_,
|
||||
audioDisabled: this.audioDisabled_
|
||||
})) {
|
||||
if (shouldFixBadTimelineChanges(this.timelineChangeController_)) {
|
||||
fixBadTimelineChange(this);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -57864,7 +57927,8 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
|
||||
if (hasAudio && !this.audioDisabled_ && !isMuxed && !segmentInfo.audioTimingInfo) {
|
||||
return false;
|
||||
}
|
||||
} // we need to allow an append here even if we're moving to different timelines.
|
||||
|
||||
if (shouldWaitForTimelineChange({
|
||||
timelineChangeController: this.timelineChangeController_,
|
||||
currentTimeline: this.currentTimeline_,
|
||||
|
@ -57872,6 +57936,9 @@ Fetch At Buffer: ${this.fetchAtBuffer_}
|
|||
loaderType: this.loaderType_,
|
||||
audioDisabled: this.audioDisabled_
|
||||
})) {
|
||||
if (shouldFixBadTimelineChanges(this.timelineChangeController_)) {
|
||||
fixBadTimelineChange(this);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -59704,7 +59771,7 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
videoTimestampOffset(offset) {
|
||||
if (typeof offset !== 'undefined' && this.videoBuffer &&
|
||||
// no point in updating if it's the same
|
||||
this.videoTimestampOffset !== offset) {
|
||||
this.videoTimestampOffset_ !== offset) {
|
||||
pushQueue({
|
||||
type: 'video',
|
||||
sourceUpdater: this,
|
||||
|
@ -61253,7 +61320,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
* type of event through `on`
|
||||
* @return {boolean} if we could turn it off or not
|
||||
*/;
|
||||
|
||||
_proto.off = function off(type, listener) {
|
||||
if (!this.listeners[type]) {
|
||||
return false;
|
||||
|
@ -61277,7 +61343,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
*
|
||||
* @param {string} type the event name
|
||||
*/;
|
||||
|
||||
_proto.trigger = function trigger(type) {
|
||||
var callbacks = this.listeners[type];
|
||||
if (!callbacks) {
|
||||
|
@ -61303,7 +61368,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
/**
|
||||
* Destroys the stream and cleans up.
|
||||
*/;
|
||||
|
||||
_proto.dispose = function dispose() {
|
||||
this.listeners = {};
|
||||
}
|
||||
|
@ -61315,7 +61379,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
* @param {Stream} destination the stream that will receive all `data` events
|
||||
* @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
|
||||
*/;
|
||||
|
||||
_proto.pipe = function pipe(destination) {
|
||||
this.on('data', function (data) {
|
||||
destination.push(data);
|
||||
|
@ -61809,7 +61872,6 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
/* eslint-enable */
|
||||
};
|
||||
}));
|
||||
|
||||
var Decrypter = factory(workerCode);
|
||||
/* rollup-plugin-worker-factory end for worker!/home/runner/work/http-streaming/http-streaming/src/decrypter-worker.js */
|
||||
|
||||
|
@ -63989,16 +64051,11 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
this.waitingForFastQualityPlaylistReceived_ = true;
|
||||
}
|
||||
runFastQualitySwitch_() {
|
||||
this.waitingForFastQualityPlaylistReceived_ = false; // Delete all buffered data to allow an immediate quality switch, then seek to give
|
||||
// the browser a kick to remove any cached frames from the previous rendtion (.04 seconds
|
||||
// ahead was roughly the minimum that will accomplish this across a variety of content
|
||||
// in IE and Edge, but seeking in place is sufficient on all other browsers)
|
||||
// Edge/IE bug: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/14600375/
|
||||
// Chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=651904
|
||||
this.waitingForFastQualityPlaylistReceived_ = false; // Delete all buffered data to allow an immediate quality switch.
|
||||
|
||||
this.mainSegmentLoader_.pause();
|
||||
this.mainSegmentLoader_.resetEverything(() => {
|
||||
this.tech_.setCurrentTime(this.tech_.currentTime());
|
||||
this.mainSegmentLoader_.load();
|
||||
}); // don't need to reset audio as it is reset when media changes
|
||||
}
|
||||
/**
|
||||
|
@ -66036,7 +66093,7 @@ ${segmentInfoString(segmentInfo)}`); // If there's an init segment associated wi
|
|||
const reloadSourceOnError = function (options) {
|
||||
initPlugin(this, options);
|
||||
};
|
||||
var version$4 = "3.13.1";
|
||||
var version$4 = "3.13.2";
|
||||
var version$3 = "7.0.3";
|
||||
var version$2 = "1.3.0";
|
||||
var version$1 = "7.1.0";
|
||||
|
|
39
node_modules/video.js/dist/video.min.js
generated
vendored
39
node_modules/video.js/dist/video.min.js
generated
vendored
File diff suppressed because one or more lines are too long
6
node_modules/video.js/package.json
generated
vendored
6
node_modules/video.js/package.json
generated
vendored
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "video.js",
|
||||
"description": "An HTML5 video player that supports HLS and DASH with a common API and skin.",
|
||||
"version": "8.17.1",
|
||||
"version": "8.17.3",
|
||||
"main": "./dist/video.cjs.js",
|
||||
"module": "./dist/video.es.js",
|
||||
"style": "./dist/video-js.css",
|
||||
|
@ -86,7 +86,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.12.5",
|
||||
"@videojs/http-streaming": "3.13.1",
|
||||
"@videojs/http-streaming": "3.13.2",
|
||||
"@videojs/vhs-utils": "^4.0.0",
|
||||
"@videojs/xhr": "2.7.0",
|
||||
"aes-decrypter": "^4.0.1",
|
||||
|
@ -161,7 +161,7 @@
|
|||
"shx": "^0.3.2",
|
||||
"sinon": "^11.1.1",
|
||||
"typescript": "^5.5.2",
|
||||
"uglify-js": "^3.6.0",
|
||||
"uglify-js": "^3.19.0",
|
||||
"unified": "^7.0.2",
|
||||
"videojs-generate-karma-config": "^8.1.0",
|
||||
"videojs-languages": "^2.0.0",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue