1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-05 19:42:38 +02:00

Update node modules

This commit is contained in:
Daniel Neto 2024-09-09 23:54:57 -03:00
parent 52a013772f
commit 09d8558456
858 changed files with 5466 additions and 544833 deletions

18
node_modules/video.js/CHANGELOG.md generated vendored
View file

@ -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
View file

@ -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
View file

@ -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();
});

View file

@ -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();
});

File diff suppressed because one or more lines are too long

View file

@ -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();
});

File diff suppressed because one or more lines are too long

View file

@ -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";

View file

@ -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";

File diff suppressed because one or more lines are too long

View file

@ -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"}

View file

@ -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"}

View file

@ -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"}

View file

@ -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";

View file

@ -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
View file

@ -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";

File diff suppressed because one or more lines are too long

6
node_modules/video.js/package.json generated vendored
View file

@ -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",