rx-player 3.32.2-dev.2023110700 → 3.33.0-dev.2023111400
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -1
- package/VERSION +1 -1
- package/dist/_esm5.processed/core/api/option_utils.d.ts +2 -0
- package/dist/_esm5.processed/core/api/option_utils.js +6 -0
- package/dist/_esm5.processed/core/api/public_api.d.ts +2 -1
- package/dist/_esm5.processed/core/api/public_api.js +14 -4
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +19 -2
- package/dist/_esm5.processed/manifest/representation.js +18 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.js +26 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +29 -17
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +3 -0
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +3 -0
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +4 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +4 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +1 -0
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +171 -31
- package/dist/rx-player.min.js +1 -1
- package/package.json +1 -1
- package/sonar-project.properties +1 -1
- package/src/core/api/option_utils.ts +8 -0
- package/src/core/api/public_api.ts +15 -3
- package/src/core/segment_buffers/implementations/text/html/__tests__/utils.test.ts +15 -0
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +57 -6
- package/src/core/segment_buffers/implementations/text/html/utils.ts +19 -2
- package/src/manifest/representation.ts +19 -6
- package/src/parsers/manifest/dash/common/__tests__/convert_supplemental_codecs.test.ts +37 -0
- package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +20 -0
- package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +32 -0
- package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +5 -0
- package/src/parsers/manifest/dash/common/parse_representations.ts +30 -17
- package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +4 -0
- package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +4 -0
- package/src/parsers/manifest/dash/node_parser_types.ts +2 -0
- package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +2 -0
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +2 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +4 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +4 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +2 -0
- package/src/parsers/manifest/types.ts +2 -0
package/dist/rx-player.js
CHANGED
|
@@ -22292,6 +22292,21 @@ function parseTextTrackToElements(type, data, timestampOffset, language) {
|
|
|
22292
22292
|
* Setting a value too high might lead to two segments targeting different times
|
|
22293
22293
|
* to be wrongly believed to target the same time. In worst case scenarios, this
|
|
22294
22294
|
* could lead to wanted text tracks being removed.
|
|
22295
|
+
*
|
|
22296
|
+
* When comparing 2 segments s1 and s2, you may want to take into account the duration
|
|
22297
|
+
* of the segments:
|
|
22298
|
+
* - if s1 is [0, 2] and s2 is [0, 2.1] s1 and s2 can be considered as nearly equal as
|
|
22299
|
+
* there is a relative difference of: (2.1-2) / 2 = 5%;
|
|
22300
|
+
* Formula: (end_s1 - end_s2) / duration_s2 = relative_difference
|
|
22301
|
+
* - if s1 is [0, 0.04] and s2 is [0.04, 0.08] s1 and s2 may not considered as nearly
|
|
22302
|
+
* equal as there is a relative difference of: (0.04-0.08) / 0.04 = 100%
|
|
22303
|
+
*
|
|
22304
|
+
* To compare relatively to the duration of a segment you can provide and additional
|
|
22305
|
+
* parameter "delta" that remplace MAX_DELTA_BUFFER_TIME.
|
|
22306
|
+
* If parameter "delta" is higher than MAX_DELTA_BUFFER_TIME, MAX_DELTA_BUFFER_TIME
|
|
22307
|
+
* is used instead of delta. This ensure that segments are nearly equal when comparing
|
|
22308
|
+
* relatively AND absolutely.
|
|
22309
|
+
*
|
|
22295
22310
|
* @type Number
|
|
22296
22311
|
*/
|
|
22297
22312
|
var MAX_DELTA_BUFFER_TIME = 0.2;
|
|
@@ -22299,10 +22314,14 @@ var MAX_DELTA_BUFFER_TIME = 0.2;
|
|
|
22299
22314
|
* @see MAX_DELTA_BUFFER_TIME
|
|
22300
22315
|
* @param {Number} a
|
|
22301
22316
|
* @param {Number} b
|
|
22317
|
+
* @param {Number} delta
|
|
22302
22318
|
* @returns {Boolean}
|
|
22303
22319
|
*/
|
|
22304
|
-
function areNearlyEqual(a, b) {
|
|
22305
|
-
|
|
22320
|
+
function areNearlyEqual(a, b, delta) {
|
|
22321
|
+
if (delta === void 0) {
|
|
22322
|
+
delta = MAX_DELTA_BUFFER_TIME;
|
|
22323
|
+
}
|
|
22324
|
+
return Math.abs(a - b) <= Math.min(delta, MAX_DELTA_BUFFER_TIME);
|
|
22306
22325
|
}
|
|
22307
22326
|
/**
|
|
22308
22327
|
* Get all cues which have data before the given time.
|
|
@@ -22375,6 +22394,22 @@ function removeCuesInfosBetween(cuesInfos, start, end) {
|
|
|
22375
22394
|
*/
|
|
22376
22395
|
|
|
22377
22396
|
|
|
22397
|
+
/**
|
|
22398
|
+
* first or last IHTMLCue in a group can have a slighlty different start
|
|
22399
|
+
* or end time than the start or end time of the ICuesGroup due to parsing
|
|
22400
|
+
* approximation.
|
|
22401
|
+
* DELTA_CUES_GROUP defines the tolerance level when comparing the start/end
|
|
22402
|
+
* of a IHTMLCue to the start/end of a ICuesGroup.
|
|
22403
|
+
* Having this value too high may lead to have unwanted subtitle displayed
|
|
22404
|
+
* Having this value too low may lead to have subtitles not displayed
|
|
22405
|
+
*/
|
|
22406
|
+
var DELTA_CUES_GROUP = 1e-3;
|
|
22407
|
+
/**
|
|
22408
|
+
* segment_duration / RELATIVE_DELTA_RATIO = relative_delta
|
|
22409
|
+
*
|
|
22410
|
+
* relative_delta is the tolerance to determine if two segements are the same
|
|
22411
|
+
*/
|
|
22412
|
+
var RELATIVE_DELTA_RATIO = 5;
|
|
22378
22413
|
/**
|
|
22379
22414
|
* Manage the buffer of the HTMLTextSegmentBuffer.
|
|
22380
22415
|
* Allows to add, remove and recuperate cues at given times.
|
|
@@ -22418,6 +22453,17 @@ var TextTrackCuesStore = /*#__PURE__*/function () {
|
|
|
22418
22453
|
ret.push(cues[j].element);
|
|
22419
22454
|
}
|
|
22420
22455
|
}
|
|
22456
|
+
// first or last IHTMLCue in a group can have a slighlty different start
|
|
22457
|
+
// or end time than the start or end time of the ICuesGroup due to parsing
|
|
22458
|
+
// approximation.
|
|
22459
|
+
// Add a tolerance of 1ms to fix this issue
|
|
22460
|
+
if (ret.length === 0 && cues.length > 0) {
|
|
22461
|
+
for (var _j = 0; _j < cues.length; _j++) {
|
|
22462
|
+
if (areNearlyEqual(time, cues[_j].start, DELTA_CUES_GROUP) || areNearlyEqual(time, cues[_j].end, DELTA_CUES_GROUP)) {
|
|
22463
|
+
ret.push(cues[_j].element);
|
|
22464
|
+
}
|
|
22465
|
+
}
|
|
22466
|
+
}
|
|
22421
22467
|
return ret;
|
|
22422
22468
|
}
|
|
22423
22469
|
}
|
|
@@ -22504,6 +22550,11 @@ var TextTrackCuesStore = /*#__PURE__*/function () {
|
|
|
22504
22550
|
end: end,
|
|
22505
22551
|
cues: cues
|
|
22506
22552
|
};
|
|
22553
|
+
// it's preferable to have a delta depending on the duration of the segment
|
|
22554
|
+
// if the delta is one fifth of the length of the segment:
|
|
22555
|
+
// a segment of [0, 2] is the "same" segment as [0, 2.1]
|
|
22556
|
+
// but [0, 0.04] is not the "same" segement as [0,04, 0.08]
|
|
22557
|
+
var relativeDelta = Math.abs(start - end) / RELATIVE_DELTA_RATIO;
|
|
22507
22558
|
/**
|
|
22508
22559
|
* Called when we found the index of the next cue relative to the cue we
|
|
22509
22560
|
* want to insert (that is a cue starting after its start or at the same
|
|
@@ -22516,7 +22567,7 @@ var TextTrackCuesStore = /*#__PURE__*/function () {
|
|
|
22516
22567
|
var nextCue = cuesBuffer[indexOfNextCue];
|
|
22517
22568
|
if (nextCue === undefined ||
|
|
22518
22569
|
// no cue
|
|
22519
|
-
areNearlyEqual(cuesInfosToInsert.end, nextCue.end))
|
|
22570
|
+
areNearlyEqual(cuesInfosToInsert.end, nextCue.end, relativeDelta))
|
|
22520
22571
|
// samey end
|
|
22521
22572
|
{
|
|
22522
22573
|
// ours: |AAAAA|
|
|
@@ -22551,8 +22602,8 @@ var TextTrackCuesStore = /*#__PURE__*/function () {
|
|
|
22551
22602
|
for (var cueIdx = 0; cueIdx < cuesBuffer.length; cueIdx++) {
|
|
22552
22603
|
var cuesInfos = cuesBuffer[cueIdx];
|
|
22553
22604
|
if (start < cuesInfos.end) {
|
|
22554
|
-
if (areNearlyEqual(start, cuesInfos.start)) {
|
|
22555
|
-
if (areNearlyEqual(end, cuesInfos.end)) {
|
|
22605
|
+
if (areNearlyEqual(start, cuesInfos.start, relativeDelta)) {
|
|
22606
|
+
if (areNearlyEqual(end, cuesInfos.end, relativeDelta)) {
|
|
22556
22607
|
// exact same segment
|
|
22557
22608
|
// ours: |AAAAA|
|
|
22558
22609
|
// the current one: |BBBBB|
|
|
@@ -22597,7 +22648,7 @@ var TextTrackCuesStore = /*#__PURE__*/function () {
|
|
|
22597
22648
|
// - add ours before the current one
|
|
22598
22649
|
cuesBuffer.splice(cueIdx, 0, cuesInfosToInsert);
|
|
22599
22650
|
return;
|
|
22600
|
-
} else if (areNearlyEqual(end, cuesInfos.start)) {
|
|
22651
|
+
} else if (areNearlyEqual(end, cuesInfos.start, relativeDelta)) {
|
|
22601
22652
|
// our cue goes just before the current one:
|
|
22602
22653
|
// ours: |AAAAAAA|
|
|
22603
22654
|
// the current one: |BBBB|
|
|
@@ -22608,7 +22659,7 @@ var TextTrackCuesStore = /*#__PURE__*/function () {
|
|
|
22608
22659
|
cuesInfos.start = end;
|
|
22609
22660
|
cuesBuffer.splice(cueIdx, 0, cuesInfosToInsert);
|
|
22610
22661
|
return;
|
|
22611
|
-
} else if (areNearlyEqual(end, cuesInfos.end)) {
|
|
22662
|
+
} else if (areNearlyEqual(end, cuesInfos.end, relativeDelta)) {
|
|
22612
22663
|
// ours: |AAAAAAA|
|
|
22613
22664
|
// the current one: |BBBB|
|
|
22614
22665
|
// Result: |AAAAAAA|
|
|
@@ -22635,7 +22686,7 @@ var TextTrackCuesStore = /*#__PURE__*/function () {
|
|
|
22635
22686
|
return;
|
|
22636
22687
|
}
|
|
22637
22688
|
// else -> start > cuesInfos.start
|
|
22638
|
-
if (areNearlyEqual(cuesInfos.end, end)) {
|
|
22689
|
+
if (areNearlyEqual(cuesInfos.end, end, relativeDelta)) {
|
|
22639
22690
|
// ours: |AAAAAA|
|
|
22640
22691
|
// the current one: |BBBBBBBB|
|
|
22641
22692
|
// Result: |BBAAAAAA|
|
|
@@ -22671,6 +22722,21 @@ var TextTrackCuesStore = /*#__PURE__*/function () {
|
|
|
22671
22722
|
}
|
|
22672
22723
|
}
|
|
22673
22724
|
}
|
|
22725
|
+
if (cuesBuffer.length) {
|
|
22726
|
+
var lastCue = cuesBuffer[cuesBuffer.length - 1];
|
|
22727
|
+
if (areNearlyEqual(lastCue.end, start, relativeDelta)) {
|
|
22728
|
+
// Match the end of the previous cue to the start of the following one
|
|
22729
|
+
// if they are close enough. If there is a small gap between two segments
|
|
22730
|
+
// it can lead to having no subtitles for a short time, this is noticeable when
|
|
22731
|
+
// two successive segments displays the same text, making it diseappear
|
|
22732
|
+
// and reappear quickly, which gives the impression of blinking
|
|
22733
|
+
//
|
|
22734
|
+
// ours: |AAAAA|
|
|
22735
|
+
// the current one: |BBBBB|...
|
|
22736
|
+
// Result: |BBBBBBBAAAAA|
|
|
22737
|
+
lastCue.end = start;
|
|
22738
|
+
}
|
|
22739
|
+
}
|
|
22674
22740
|
// no cues group has the end after our current start.
|
|
22675
22741
|
// These cues should be the last one
|
|
22676
22742
|
cuesBuffer.push(cuesInfosToInsert);
|
|
@@ -25713,6 +25779,7 @@ var Representation = /*#__PURE__*/function () {
|
|
|
25713
25779
|
* @param {Object} args
|
|
25714
25780
|
*/
|
|
25715
25781
|
function Representation(args, opts) {
|
|
25782
|
+
var _a;
|
|
25716
25783
|
this.id = args.id;
|
|
25717
25784
|
this.uniqueId = generateRepresentationUniqueId();
|
|
25718
25785
|
this.bitrate = args.bitrate;
|
|
@@ -25741,12 +25808,24 @@ var Representation = /*#__PURE__*/function () {
|
|
|
25741
25808
|
this.cdnMetadata = args.cdnMetadata;
|
|
25742
25809
|
this.index = args.index;
|
|
25743
25810
|
if (opts.type === "audio" || opts.type === "video") {
|
|
25744
|
-
|
|
25745
|
-
|
|
25746
|
-
|
|
25747
|
-
|
|
25811
|
+
this.isSupported = false;
|
|
25812
|
+
// Supplemental codecs are defined as backwards-compatible codecs enhancing
|
|
25813
|
+
// the experience of a base layer codec
|
|
25814
|
+
if (args.supplementalCodecs !== undefined) {
|
|
25815
|
+
var supplementalCodecMimeTypeStr = ((_a = this.mimeType) !== null && _a !== void 0 ? _a : "") + ";codecs=\"" + args.supplementalCodecs + "\"";
|
|
25816
|
+
if (isCodecSupported(supplementalCodecMimeTypeStr)) {
|
|
25817
|
+
this.codec = args.supplementalCodecs;
|
|
25818
|
+
this.isSupported = true;
|
|
25819
|
+
}
|
|
25820
|
+
}
|
|
25821
|
+
if (!this.isSupported) {
|
|
25822
|
+
var mimeTypeStr = this.getMimeTypeString();
|
|
25823
|
+
var isSupported = isCodecSupported(mimeTypeStr);
|
|
25824
|
+
if (!isSupported) {
|
|
25825
|
+
log/* default */.Z.info("Unsupported Representation", mimeTypeStr, this.id, this.bitrate);
|
|
25826
|
+
}
|
|
25827
|
+
this.isSupported = isSupported;
|
|
25748
25828
|
}
|
|
25749
|
-
this.isSupported = isSupported;
|
|
25750
25829
|
} else {
|
|
25751
25830
|
this.isSupported = true; // TODO for other types
|
|
25752
25831
|
}
|
|
@@ -29073,7 +29152,7 @@ function createDashUrlDetokenizer(time, nb) {
|
|
|
29073
29152
|
|
|
29074
29153
|
/***/ }),
|
|
29075
29154
|
|
|
29076
|
-
/***/
|
|
29155
|
+
/***/ 1707:
|
|
29077
29156
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
29078
29157
|
|
|
29079
29158
|
"use strict";
|
|
@@ -29533,6 +29612,11 @@ function flattenOverlappingPeriods(parsedPeriods) {
|
|
|
29533
29612
|
// `lastFlattenedPeriod` has now a negative or `0` duration.
|
|
29534
29613
|
// Remove it, consider the next Period in its place, and re-start the loop.
|
|
29535
29614
|
flattenedPeriods.pop();
|
|
29615
|
+
if (flattenedPeriods.length === 0) {
|
|
29616
|
+
// There's no remaining Period to compare to `parsedPeriod`
|
|
29617
|
+
break;
|
|
29618
|
+
}
|
|
29619
|
+
// Take the previous Period as reference and compare it now to `parsedPeriod`
|
|
29536
29620
|
lastFlattenedPeriod = flattenedPeriods[flattenedPeriods.length - 1];
|
|
29537
29621
|
}
|
|
29538
29622
|
}
|
|
@@ -29886,6 +29970,31 @@ function inferAdaptationType(representations, adaptationMimeType, adaptationCode
|
|
|
29886
29970
|
}
|
|
29887
29971
|
// EXTERNAL MODULE: ./src/utils/object_assign.ts
|
|
29888
29972
|
var object_assign = __webpack_require__(8026);
|
|
29973
|
+
;// CONCATENATED MODULE: ./src/parsers/manifest/dash/common/convert_supplemental_codecs.ts
|
|
29974
|
+
|
|
29975
|
+
var supplementalCodecSeparator = /[, ]+/g;
|
|
29976
|
+
/**
|
|
29977
|
+
* Converts SCTE 214 supplemental codec string into RFC4281 codec string
|
|
29978
|
+
*
|
|
29979
|
+
* The returned value is a codec string respecting RFC6381
|
|
29980
|
+
*
|
|
29981
|
+
* SCTE 214 defines supplemental codecs as a whitespace-separated multiple list of
|
|
29982
|
+
* codec strings
|
|
29983
|
+
*
|
|
29984
|
+
* RFC6381 defines codecs as a comma-separated list of codec strings.
|
|
29985
|
+
*
|
|
29986
|
+
* This two syntax differs and this parser is used to convert SCTE214
|
|
29987
|
+
* to be compliant with what MSE APIs expect
|
|
29988
|
+
*
|
|
29989
|
+
* @param {string} val - The codec string to parse
|
|
29990
|
+
* @returns { Array.<string | undefined | null>}
|
|
29991
|
+
*/
|
|
29992
|
+
function convertSupplementalCodecsToRFC6381(val) {
|
|
29993
|
+
if ((0,is_non_empty_string/* default */.Z)(val)) {
|
|
29994
|
+
return val.trim().replace(supplementalCodecSeparator, ", ");
|
|
29995
|
+
}
|
|
29996
|
+
return "";
|
|
29997
|
+
}
|
|
29889
29998
|
;// CONCATENATED MODULE: ./src/parsers/manifest/dash/common/get_hdr_information.ts
|
|
29890
29999
|
/**
|
|
29891
30000
|
* Copyright 2015 CANAL+ Group
|
|
@@ -31653,6 +31762,7 @@ function parse_representations_arrayLikeToArray(arr, len) { if (len == null || l
|
|
|
31653
31762
|
|
|
31654
31763
|
|
|
31655
31764
|
|
|
31765
|
+
|
|
31656
31766
|
/**
|
|
31657
31767
|
* Combine inband event streams from representation and
|
|
31658
31768
|
* adaptation data.
|
|
@@ -31728,7 +31838,7 @@ function parseRepresentations(representationsIR, adaptation, context) {
|
|
|
31728
31838
|
var _loop = function _loop() {
|
|
31729
31839
|
var representation = _step.value;
|
|
31730
31840
|
// Compute Representation ID
|
|
31731
|
-
var representationID = representation.attributes.id
|
|
31841
|
+
var representationID = representation.attributes.id !== undefined ? representation.attributes.id : String(representation.attributes.bitrate) + (representation.attributes.height !== undefined ? "-" + representation.attributes.height : "") + (representation.attributes.width !== undefined ? "-" + representation.attributes.width : "") + (representation.attributes.mimeType !== undefined ? "-" + representation.attributes.mimeType : "") + (representation.attributes.codecs !== undefined ? "-" + representation.attributes.codecs : "");
|
|
31732
31842
|
// Avoid duplicate IDs
|
|
31733
31843
|
while (parsedRepresentations.some(function (r) {
|
|
31734
31844
|
return r.id === representationID;
|
|
@@ -31750,7 +31860,7 @@ function parseRepresentations(representationsIR, adaptation, context) {
|
|
|
31750
31860
|
var representationIndex = parseRepresentationIndex(representation, reprIndexCtxt);
|
|
31751
31861
|
// Find bitrate
|
|
31752
31862
|
var representationBitrate;
|
|
31753
|
-
if (representation.attributes.bitrate
|
|
31863
|
+
if (representation.attributes.bitrate === undefined) {
|
|
31754
31864
|
log/* default */.Z.warn("DASH: No usable bitrate found in the Representation.");
|
|
31755
31865
|
representationBitrate = 0;
|
|
31756
31866
|
} else {
|
|
@@ -31785,33 +31895,42 @@ function parseRepresentations(representationsIR, adaptation, context) {
|
|
|
31785
31895
|
}
|
|
31786
31896
|
// Add optional attributes
|
|
31787
31897
|
var codecs;
|
|
31788
|
-
if (representation.attributes.codecs
|
|
31898
|
+
if (representation.attributes.codecs !== undefined) {
|
|
31789
31899
|
codecs = representation.attributes.codecs;
|
|
31790
|
-
} else if (adaptation.attributes.codecs
|
|
31900
|
+
} else if (adaptation.attributes.codecs !== undefined) {
|
|
31791
31901
|
codecs = adaptation.attributes.codecs;
|
|
31792
31902
|
}
|
|
31793
|
-
if (codecs
|
|
31903
|
+
if (codecs !== undefined) {
|
|
31794
31904
|
codecs = codecs === "mp4a.40.02" ? "mp4a.40.2" : codecs;
|
|
31795
31905
|
parsedRepresentation.codecs = codecs;
|
|
31796
31906
|
}
|
|
31797
|
-
|
|
31907
|
+
var supplementalCodecs;
|
|
31908
|
+
if (representation.attributes.supplementalCodecs !== undefined) {
|
|
31909
|
+
supplementalCodecs = representation.attributes.supplementalCodecs;
|
|
31910
|
+
} else if (adaptation.attributes.supplementalCodecs !== undefined) {
|
|
31911
|
+
supplementalCodecs = adaptation.attributes.supplementalCodecs;
|
|
31912
|
+
}
|
|
31913
|
+
if (supplementalCodecs !== undefined) {
|
|
31914
|
+
parsedRepresentation.supplementalCodecs = convertSupplementalCodecsToRFC6381(supplementalCodecs);
|
|
31915
|
+
}
|
|
31916
|
+
if (representation.attributes.frameRate !== undefined) {
|
|
31798
31917
|
parsedRepresentation.frameRate = representation.attributes.frameRate;
|
|
31799
|
-
} else if (adaptation.attributes.frameRate
|
|
31918
|
+
} else if (adaptation.attributes.frameRate !== undefined) {
|
|
31800
31919
|
parsedRepresentation.frameRate = adaptation.attributes.frameRate;
|
|
31801
31920
|
}
|
|
31802
|
-
if (representation.attributes.height
|
|
31921
|
+
if (representation.attributes.height !== undefined) {
|
|
31803
31922
|
parsedRepresentation.height = representation.attributes.height;
|
|
31804
|
-
} else if (adaptation.attributes.height
|
|
31923
|
+
} else if (adaptation.attributes.height !== undefined) {
|
|
31805
31924
|
parsedRepresentation.height = adaptation.attributes.height;
|
|
31806
31925
|
}
|
|
31807
|
-
if (representation.attributes.mimeType
|
|
31926
|
+
if (representation.attributes.mimeType !== undefined) {
|
|
31808
31927
|
parsedRepresentation.mimeType = representation.attributes.mimeType;
|
|
31809
|
-
} else if (adaptation.attributes.mimeType
|
|
31928
|
+
} else if (adaptation.attributes.mimeType !== undefined) {
|
|
31810
31929
|
parsedRepresentation.mimeType = adaptation.attributes.mimeType;
|
|
31811
31930
|
}
|
|
31812
|
-
if (representation.attributes.width
|
|
31931
|
+
if (representation.attributes.width !== undefined) {
|
|
31813
31932
|
parsedRepresentation.width = representation.attributes.width;
|
|
31814
|
-
} else if (adaptation.attributes.width
|
|
31933
|
+
} else if (adaptation.attributes.width !== undefined) {
|
|
31815
31934
|
parsedRepresentation.width = adaptation.attributes.width;
|
|
31816
31935
|
}
|
|
31817
31936
|
var contentProtectionsIr = adaptation.children.contentProtections !== undefined ? adaptation.children.contentProtections : [];
|
|
@@ -33846,6 +33965,9 @@ function parseRepresentationAttributes(representationElement) {
|
|
|
33846
33965
|
dashName: "qualityRanking"
|
|
33847
33966
|
});
|
|
33848
33967
|
break;
|
|
33968
|
+
case "scte214:supplementalCodecs":
|
|
33969
|
+
attributes.supplementalCodecs = attr.value;
|
|
33970
|
+
break;
|
|
33849
33971
|
case "segmentProfiles":
|
|
33850
33972
|
attributes.segmentProfiles = attr.value;
|
|
33851
33973
|
break;
|
|
@@ -34166,6 +34288,9 @@ function parseAdaptationSetAttributes(root) {
|
|
|
34166
34288
|
case "codecs":
|
|
34167
34289
|
parsedAdaptation.codecs = attribute.value;
|
|
34168
34290
|
break;
|
|
34291
|
+
case "scte214:supplementalCodecs":
|
|
34292
|
+
parsedAdaptation.supplementalCodecs = attribute.value;
|
|
34293
|
+
break;
|
|
34169
34294
|
case "codingDependency":
|
|
34170
34295
|
parseValue(attribute.value, {
|
|
34171
34296
|
asKey: "codingDependency",
|
|
@@ -50595,6 +50720,12 @@ function checkReloadOptions(options) {
|
|
|
50595
50720
|
if (typeof ((_c = options === null || options === void 0 ? void 0 : options.reloadAt) === null || _c === void 0 ? void 0 : _c.relative) !== "number" && ((_d = options === null || options === void 0 ? void 0 : options.reloadAt) === null || _d === void 0 ? void 0 : _d.relative) !== undefined) {
|
|
50596
50721
|
throw new Error("API: reload - Invalid 'reloadAt.relative' option format.");
|
|
50597
50722
|
}
|
|
50723
|
+
if (!Array.isArray(options === null || options === void 0 ? void 0 : options.keySystems) && (options === null || options === void 0 ? void 0 : options.keySystems) !== undefined) {
|
|
50724
|
+
throw new Error("API: reload - Invalid 'keySystems' option format.");
|
|
50725
|
+
}
|
|
50726
|
+
if ((options === null || options === void 0 ? void 0 : options.autoPlay) !== undefined && typeof options.autoPlay !== "boolean") {
|
|
50727
|
+
throw new Error("API: reload - Invalid 'autoPlay' option format.");
|
|
50728
|
+
}
|
|
50598
50729
|
}
|
|
50599
50730
|
/**
|
|
50600
50731
|
* Parse options given to loadVideo and set default options as found
|
|
@@ -52604,7 +52735,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
52604
52735
|
// Workaround to support Firefox autoplay on FF 42.
|
|
52605
52736
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
52606
52737
|
videoElement.preload = "auto";
|
|
52607
|
-
_this.version = /* PLAYER_VERSION */"3.
|
|
52738
|
+
_this.version = /* PLAYER_VERSION */"3.33.0-dev.2023111400";
|
|
52608
52739
|
_this.log = log/* default */.Z;
|
|
52609
52740
|
_this.state = "STOPPED";
|
|
52610
52741
|
_this.videoElement = videoElement;
|
|
@@ -52764,7 +52895,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
52764
52895
|
* @param {Object} reloadOpts
|
|
52765
52896
|
*/;
|
|
52766
52897
|
_proto.reload = function reload(reloadOpts) {
|
|
52767
|
-
var _a, _b;
|
|
52898
|
+
var _a, _b, _c;
|
|
52768
52899
|
var _this$_priv_reloading = this._priv_reloadingMetadata,
|
|
52769
52900
|
options = _this$_priv_reloading.options,
|
|
52770
52901
|
manifest = _this$_priv_reloading.manifest,
|
|
@@ -52798,6 +52929,12 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
52798
52929
|
} else if (reloadInPause !== undefined) {
|
|
52799
52930
|
autoPlay = !reloadInPause;
|
|
52800
52931
|
}
|
|
52932
|
+
var keySystems;
|
|
52933
|
+
if ((reloadOpts === null || reloadOpts === void 0 ? void 0 : reloadOpts.keySystems) !== undefined) {
|
|
52934
|
+
keySystems = reloadOpts.keySystems;
|
|
52935
|
+
} else if (((_c = this._priv_reloadingMetadata.options) === null || _c === void 0 ? void 0 : _c.keySystems) !== undefined) {
|
|
52936
|
+
keySystems = this._priv_reloadingMetadata.options.keySystems;
|
|
52937
|
+
}
|
|
52801
52938
|
var newOptions = Object.assign(Object.assign({}, options), {
|
|
52802
52939
|
initialManifest: manifest
|
|
52803
52940
|
});
|
|
@@ -52807,6 +52944,9 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
52807
52944
|
if (autoPlay !== undefined) {
|
|
52808
52945
|
newOptions.autoPlay = autoPlay;
|
|
52809
52946
|
}
|
|
52947
|
+
if (keySystems !== undefined) {
|
|
52948
|
+
newOptions.keySystems = keySystems;
|
|
52949
|
+
}
|
|
52810
52950
|
this._priv_initializeContentPlayback(newOptions);
|
|
52811
52951
|
};
|
|
52812
52952
|
_proto.createDebugElement = function createDebugElement(element) {
|
|
@@ -55018,7 +55158,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
55018
55158
|
}]);
|
|
55019
55159
|
return Player;
|
|
55020
55160
|
}(event_emitter/* default */.Z);
|
|
55021
|
-
Player.version = /* PLAYER_VERSION */"3.
|
|
55161
|
+
Player.version = /* PLAYER_VERSION */"3.33.0-dev.2023111400";
|
|
55022
55162
|
/* harmony default export */ var public_api = (Player);
|
|
55023
55163
|
;// CONCATENATED MODULE: ./src/core/api/index.ts
|
|
55024
55164
|
/**
|
|
@@ -55082,7 +55222,7 @@ function initializeFeaturesObject() {
|
|
|
55082
55222
|
}
|
|
55083
55223
|
if (true) {
|
|
55084
55224
|
features_object/* default */.Z.transports.dash = (__webpack_require__(85)/* ["default"] */ .Z);
|
|
55085
|
-
features_object/* default */.Z.dashParsers.js = (__webpack_require__(
|
|
55225
|
+
features_object/* default */.Z.dashParsers.js = (__webpack_require__(1707)/* ["default"] */ .Z);
|
|
55086
55226
|
}
|
|
55087
55227
|
if (false) {}
|
|
55088
55228
|
if (false) {}
|