rx-player 4.2.0-dev.2024081400 → 4.2.0-dev.2024090300
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 +38 -0
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/commonjs/compat/browser_detection.d.ts +3 -1
- package/dist/commonjs/compat/browser_detection.d.ts.map +1 -1
- package/dist/commonjs/compat/browser_detection.js +8 -1
- package/dist/commonjs/compat/can_reuse_media_keys.d.ts +2 -0
- package/dist/commonjs/compat/can_reuse_media_keys.d.ts.map +1 -1
- package/dist/commonjs/compat/can_reuse_media_keys.js +3 -1
- package/dist/commonjs/compat/eme/custom_media_keys/types.d.ts +3 -0
- package/dist/commonjs/compat/eme/custom_media_keys/types.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.d.ts +1 -1
- package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/eme-api-implementation.d.ts +2 -2
- package/dist/commonjs/compat/eme/eme-api-implementation.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/eme-api-implementation.js +19 -2
- package/dist/commonjs/compat/eme/get_init_data.d.ts +3 -1
- package/dist/commonjs/compat/eme/get_init_data.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/get_init_data.js +2 -2
- package/dist/commonjs/compat/event_listeners.d.ts +21 -19
- package/dist/commonjs/compat/event_listeners.d.ts.map +1 -1
- package/dist/commonjs/compat/event_listeners.js +0 -11
- package/dist/commonjs/core/cmcd/cmcd_data_builder.js +1 -1
- package/dist/commonjs/core/main/worker/worker_main.js +1 -0
- package/dist/commonjs/core/segment_sinks/inventory/segment_inventory.js +8 -5
- package/dist/commonjs/main_thread/api/public_api.d.ts +22 -10
- package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/public_api.js +68 -28
- package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts +8 -0
- package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/content_decryptor.js +51 -2
- package/dist/commonjs/main_thread/decrypt/types.d.ts +5 -0
- package/dist/commonjs/main_thread/decrypt/types.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/media_source_content_initializer.js +3 -3
- package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts +12 -4
- package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
- package/dist/commonjs/main_thread/tracks_store/tracks_store.js +18 -8
- package/dist/commonjs/manifest/classes/adaptation.d.ts +13 -13
- package/dist/commonjs/manifest/classes/adaptation.d.ts.map +1 -1
- package/dist/commonjs/manifest/classes/adaptation.js +1 -4
- package/dist/commonjs/manifest/classes/representation.d.ts +20 -12
- package/dist/commonjs/manifest/classes/representation.d.ts.map +1 -1
- package/dist/commonjs/manifest/classes/representation.js +8 -8
- package/dist/commonjs/manifest/utils.d.ts +4 -3
- package/dist/commonjs/manifest/utils.d.ts.map +1 -1
- package/dist/commonjs/manifest/utils.js +13 -7
- package/dist/commonjs/parsers/manifest/dash/common/content_protection_parser.js +4 -4
- package/dist/commonjs/parsers/manifest/local/parse_local_manifest.js +1 -1
- package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
- package/dist/commonjs/parsers/manifest/smooth/create_parser.js +1 -4
- package/dist/commonjs/parsers/manifest/types.d.ts +1 -6
- package/dist/commonjs/parsers/manifest/types.d.ts.map +1 -1
- package/dist/commonjs/public_types.d.ts +69 -0
- package/dist/commonjs/public_types.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/es2017/compat/browser_detection.d.ts +3 -1
- package/dist/es2017/compat/browser_detection.d.ts.map +1 -1
- package/dist/es2017/compat/browser_detection.js +7 -1
- package/dist/es2017/compat/can_reuse_media_keys.d.ts +2 -0
- package/dist/es2017/compat/can_reuse_media_keys.d.ts.map +1 -1
- package/dist/es2017/compat/can_reuse_media_keys.js +4 -2
- package/dist/es2017/compat/eme/custom_media_keys/types.d.ts +3 -0
- package/dist/es2017/compat/eme/custom_media_keys/types.d.ts.map +1 -1
- package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.d.ts +1 -1
- package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.d.ts.map +1 -1
- package/dist/es2017/compat/eme/eme-api-implementation.d.ts +2 -2
- package/dist/es2017/compat/eme/eme-api-implementation.d.ts.map +1 -1
- package/dist/es2017/compat/eme/eme-api-implementation.js +19 -2
- package/dist/es2017/compat/eme/get_init_data.d.ts +3 -1
- package/dist/es2017/compat/eme/get_init_data.d.ts.map +1 -1
- package/dist/es2017/compat/eme/get_init_data.js +2 -2
- package/dist/es2017/compat/event_listeners.d.ts +21 -19
- package/dist/es2017/compat/event_listeners.d.ts.map +1 -1
- package/dist/es2017/compat/event_listeners.js +0 -11
- package/dist/es2017/core/cmcd/cmcd_data_builder.js +1 -1
- package/dist/es2017/core/main/worker/worker_main.js +1 -0
- package/dist/es2017/core/segment_sinks/inventory/segment_inventory.js +8 -5
- package/dist/es2017/main_thread/api/public_api.d.ts +22 -10
- package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/public_api.js +64 -24
- package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts +8 -0
- package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/content_decryptor.js +47 -2
- package/dist/es2017/main_thread/decrypt/types.d.ts +5 -0
- package/dist/es2017/main_thread/decrypt/types.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.js +3 -3
- package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts +12 -4
- package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
- package/dist/es2017/main_thread/tracks_store/tracks_store.js +18 -8
- package/dist/es2017/manifest/classes/adaptation.d.ts +13 -13
- package/dist/es2017/manifest/classes/adaptation.d.ts.map +1 -1
- package/dist/es2017/manifest/classes/adaptation.js +1 -1
- package/dist/es2017/manifest/classes/representation.d.ts +20 -12
- package/dist/es2017/manifest/classes/representation.d.ts.map +1 -1
- package/dist/es2017/manifest/classes/representation.js +8 -8
- package/dist/es2017/manifest/utils.d.ts +4 -3
- package/dist/es2017/manifest/utils.d.ts.map +1 -1
- package/dist/es2017/manifest/utils.js +13 -7
- package/dist/es2017/parsers/manifest/dash/common/content_protection_parser.js +4 -4
- package/dist/es2017/parsers/manifest/local/parse_local_manifest.js +1 -1
- package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
- package/dist/es2017/parsers/manifest/smooth/create_parser.js +1 -4
- package/dist/es2017/parsers/manifest/types.d.ts +1 -6
- package/dist/es2017/parsers/manifest/types.d.ts.map +1 -1
- package/dist/es2017/public_types.d.ts +69 -0
- package/dist/es2017/public_types.d.ts.map +1 -1
- package/dist/rx-player.js +18 -18
- package/dist/worker.js +5 -5
- package/package.json +2 -2
- package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
- package/src/compat/__tests__/can_reuse_media_keys.test.ts +33 -2
- package/src/compat/browser_detection.ts +9 -0
- package/src/compat/can_reuse_media_keys.ts +4 -2
- package/src/compat/eme/custom_media_keys/types.ts +4 -0
- package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +1 -1
- package/src/compat/eme/eme-api-implementation.ts +35 -4
- package/src/compat/eme/get_init_data.ts +5 -3
- package/src/compat/event_listeners.ts +30 -5
- package/src/core/cmcd/cmcd_data_builder.ts +1 -1
- package/src/core/main/worker/worker_main.ts +1 -0
- package/src/core/segment_sinks/inventory/segment_inventory.ts +7 -4
- package/src/main_thread/api/public_api.ts +96 -24
- package/src/main_thread/decrypt/content_decryptor.ts +60 -3
- package/src/main_thread/decrypt/types.ts +5 -0
- package/src/main_thread/init/media_source_content_initializer.ts +3 -3
- package/src/main_thread/tracks_store/tracks_store.ts +30 -6
- package/src/manifest/classes/adaptation.ts +14 -16
- package/src/manifest/classes/representation.ts +26 -18
- package/src/manifest/utils.ts +14 -6
- package/src/parsers/manifest/dash/common/content_protection_parser.ts +4 -4
- package/src/parsers/manifest/local/parse_local_manifest.ts +1 -1
- package/src/parsers/manifest/smooth/create_parser.ts +2 -6
- package/src/parsers/manifest/types.ts +1 -7
- package/src/public_types.ts +73 -0
- package/vitest.config.mjs +1 -0
|
@@ -142,7 +142,7 @@ class Player extends EventEmitter {
|
|
|
142
142
|
// Workaround to support Firefox autoplay on FF 42.
|
|
143
143
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
144
144
|
videoElement.preload = "auto";
|
|
145
|
-
this.version = /* PLAYER_VERSION */ "4.2.0-dev.
|
|
145
|
+
this.version = /* PLAYER_VERSION */ "4.2.0-dev.2024090300";
|
|
146
146
|
this.log = log;
|
|
147
147
|
this.state = "STOPPED";
|
|
148
148
|
this.videoElement = videoElement;
|
|
@@ -1362,11 +1362,11 @@ class Player extends EventEmitter {
|
|
|
1362
1362
|
/**
|
|
1363
1363
|
* Returns every available audio tracks for a given Period - or the current
|
|
1364
1364
|
* one if no `periodId` is given.
|
|
1365
|
-
* @param {string|undefined} [
|
|
1365
|
+
* @param {string|Object|undefined} [arg]
|
|
1366
1366
|
* @returns {Array.<Object>}
|
|
1367
1367
|
*/
|
|
1368
|
-
getAvailableAudioTracks(
|
|
1369
|
-
var _a;
|
|
1368
|
+
getAvailableAudioTracks(arg) {
|
|
1369
|
+
var _a, _b;
|
|
1370
1370
|
if (this._priv_contentInfos === null) {
|
|
1371
1371
|
return [];
|
|
1372
1372
|
}
|
|
@@ -1374,7 +1374,16 @@ class Player extends EventEmitter {
|
|
|
1374
1374
|
if (isDirectFile) {
|
|
1375
1375
|
return (_a = mediaElementTracksStore === null || mediaElementTracksStore === void 0 ? void 0 : mediaElementTracksStore.getAvailableAudioTracks()) !== null && _a !== void 0 ? _a : [];
|
|
1376
1376
|
}
|
|
1377
|
-
|
|
1377
|
+
let periodId;
|
|
1378
|
+
let filterPlayableRepresentations;
|
|
1379
|
+
if (typeof arg === "string") {
|
|
1380
|
+
periodId = arg;
|
|
1381
|
+
}
|
|
1382
|
+
else {
|
|
1383
|
+
periodId = arg === null || arg === void 0 ? void 0 : arg.periodId;
|
|
1384
|
+
filterPlayableRepresentations = (_b = arg === null || arg === void 0 ? void 0 : arg.filterPlayableRepresentations) !== null && _b !== void 0 ? _b : true;
|
|
1385
|
+
}
|
|
1386
|
+
return this._priv_callTracksStoreGetterSetter(periodId, [], (tcm, periodRef) => { var _a; return (_a = tcm.getAvailableAudioTracks(periodRef, filterPlayableRepresentations)) !== null && _a !== void 0 ? _a : []; });
|
|
1378
1387
|
}
|
|
1379
1388
|
/**
|
|
1380
1389
|
* Returns every available text tracks for a given Period - or the current
|
|
@@ -1395,11 +1404,11 @@ class Player extends EventEmitter {
|
|
|
1395
1404
|
}
|
|
1396
1405
|
/**
|
|
1397
1406
|
* Returns every available video tracks for the current Period.
|
|
1398
|
-
* @param {string|undefined} [
|
|
1407
|
+
* @param {string|Object|undefined} [arg]
|
|
1399
1408
|
* @returns {Array.<Object>}
|
|
1400
1409
|
*/
|
|
1401
|
-
getAvailableVideoTracks(
|
|
1402
|
-
var _a;
|
|
1410
|
+
getAvailableVideoTracks(arg) {
|
|
1411
|
+
var _a, _b;
|
|
1403
1412
|
if (this._priv_contentInfos === null) {
|
|
1404
1413
|
return [];
|
|
1405
1414
|
}
|
|
@@ -1407,14 +1416,24 @@ class Player extends EventEmitter {
|
|
|
1407
1416
|
if (isDirectFile) {
|
|
1408
1417
|
return (_a = mediaElementTracksStore === null || mediaElementTracksStore === void 0 ? void 0 : mediaElementTracksStore.getAvailableVideoTracks()) !== null && _a !== void 0 ? _a : [];
|
|
1409
1418
|
}
|
|
1410
|
-
|
|
1419
|
+
let periodId;
|
|
1420
|
+
let filterPlayableRepresentations;
|
|
1421
|
+
if (typeof arg === "string") {
|
|
1422
|
+
periodId = arg;
|
|
1423
|
+
}
|
|
1424
|
+
else {
|
|
1425
|
+
periodId = arg === null || arg === void 0 ? void 0 : arg.periodId;
|
|
1426
|
+
filterPlayableRepresentations = (_b = arg === null || arg === void 0 ? void 0 : arg.filterPlayableRepresentations) !== null && _b !== void 0 ? _b : true;
|
|
1427
|
+
}
|
|
1428
|
+
return this._priv_callTracksStoreGetterSetter(periodId, [], (tcm, periodRef) => { var _a; return (_a = tcm.getAvailableVideoTracks(periodRef, filterPlayableRepresentations)) !== null && _a !== void 0 ? _a : []; });
|
|
1411
1429
|
}
|
|
1412
1430
|
/**
|
|
1413
1431
|
* Returns currently chosen audio language for the current Period.
|
|
1414
|
-
* @param {string|undefined} [
|
|
1432
|
+
* @param {string|Object|undefined} [arg]
|
|
1415
1433
|
* @returns {Object|null|undefined}
|
|
1416
1434
|
*/
|
|
1417
|
-
getAudioTrack(
|
|
1435
|
+
getAudioTrack(arg) {
|
|
1436
|
+
var _a;
|
|
1418
1437
|
if (this._priv_contentInfos === null) {
|
|
1419
1438
|
return undefined;
|
|
1420
1439
|
}
|
|
@@ -1425,7 +1444,16 @@ class Player extends EventEmitter {
|
|
|
1425
1444
|
}
|
|
1426
1445
|
return mediaElementTracksStore.getChosenAudioTrack();
|
|
1427
1446
|
}
|
|
1428
|
-
|
|
1447
|
+
let periodId;
|
|
1448
|
+
let filterPlayableRepresentations;
|
|
1449
|
+
if (typeof arg === "string") {
|
|
1450
|
+
periodId = arg;
|
|
1451
|
+
}
|
|
1452
|
+
else {
|
|
1453
|
+
periodId = arg === null || arg === void 0 ? void 0 : arg.periodId;
|
|
1454
|
+
filterPlayableRepresentations = (_a = arg === null || arg === void 0 ? void 0 : arg.filterPlayableRepresentations) !== null && _a !== void 0 ? _a : true;
|
|
1455
|
+
}
|
|
1456
|
+
return this._priv_callTracksStoreGetterSetter(periodId, undefined, (tcm, periodRef) => tcm.getChosenAudioTrack(periodRef, filterPlayableRepresentations));
|
|
1429
1457
|
}
|
|
1430
1458
|
/**
|
|
1431
1459
|
* Returns currently chosen subtitle for the current Period.
|
|
@@ -1447,10 +1475,11 @@ class Player extends EventEmitter {
|
|
|
1447
1475
|
}
|
|
1448
1476
|
/**
|
|
1449
1477
|
* Returns currently chosen video track for the current Period.
|
|
1450
|
-
* @param {string|undefined} [
|
|
1478
|
+
* @param {string|Object|undefined} [arg]
|
|
1451
1479
|
* @returns {Object|null|undefined}
|
|
1452
1480
|
*/
|
|
1453
|
-
getVideoTrack(
|
|
1481
|
+
getVideoTrack(arg) {
|
|
1482
|
+
var _a;
|
|
1454
1483
|
if (this._priv_contentInfos === null) {
|
|
1455
1484
|
return undefined;
|
|
1456
1485
|
}
|
|
@@ -1461,7 +1490,16 @@ class Player extends EventEmitter {
|
|
|
1461
1490
|
}
|
|
1462
1491
|
return mediaElementTracksStore.getChosenVideoTrack();
|
|
1463
1492
|
}
|
|
1464
|
-
|
|
1493
|
+
let periodId;
|
|
1494
|
+
let filterPlayableRepresentations;
|
|
1495
|
+
if (typeof arg === "string") {
|
|
1496
|
+
periodId = arg;
|
|
1497
|
+
}
|
|
1498
|
+
else {
|
|
1499
|
+
periodId = arg === null || arg === void 0 ? void 0 : arg.periodId;
|
|
1500
|
+
filterPlayableRepresentations = (_a = arg === null || arg === void 0 ? void 0 : arg.filterPlayableRepresentations) !== null && _a !== void 0 ? _a : true;
|
|
1501
|
+
}
|
|
1502
|
+
return this._priv_callTracksStoreGetterSetter(periodId, undefined, (tcm, periodRef) => tcm.getChosenVideoTrack(periodRef, filterPlayableRepresentations));
|
|
1465
1503
|
}
|
|
1466
1504
|
/**
|
|
1467
1505
|
* Update the audio language for the current Period.
|
|
@@ -1981,10 +2019,12 @@ class Player extends EventEmitter {
|
|
|
1981
2019
|
}
|
|
1982
2020
|
switch (elt.adaptation.type) {
|
|
1983
2021
|
case "audio":
|
|
1984
|
-
isCurrent =
|
|
2022
|
+
isCurrent =
|
|
2023
|
+
((_a = tStore.getChosenAudioTrack(periodRef, false)) === null || _a === void 0 ? void 0 : _a.id) === elt.adaptation.id;
|
|
1985
2024
|
break;
|
|
1986
2025
|
case "video":
|
|
1987
|
-
isCurrent =
|
|
2026
|
+
isCurrent =
|
|
2027
|
+
((_b = tStore.getChosenVideoTrack(periodRef, false)) === null || _b === void 0 ? void 0 : _b.id) === elt.adaptation.id;
|
|
1988
2028
|
break;
|
|
1989
2029
|
case "text":
|
|
1990
2030
|
isCurrent = ((_c = tStore.getChosenTextTrack(periodRef)) === null || _c === void 0 ? void 0 : _c.id) === elt.adaptation.id;
|
|
@@ -2030,11 +2070,11 @@ class Player extends EventEmitter {
|
|
|
2030
2070
|
if (!isNullOrUndefined(tracksStore)) {
|
|
2031
2071
|
const periodRef = tracksStore.getPeriodObjectFromPeriod(period);
|
|
2032
2072
|
if (periodRef) {
|
|
2033
|
-
const audioTrack = tracksStore.getChosenAudioTrack(periodRef);
|
|
2073
|
+
const audioTrack = tracksStore.getChosenAudioTrack(periodRef, true);
|
|
2034
2074
|
this._priv_triggerEventIfNotStopped("audioTrackChange", audioTrack, cancelSignal);
|
|
2035
2075
|
const textTrack = tracksStore.getChosenTextTrack(periodRef);
|
|
2036
2076
|
this._priv_triggerEventIfNotStopped("textTrackChange", textTrack, cancelSignal);
|
|
2037
|
-
const videoTrack = tracksStore.getChosenVideoTrack(periodRef);
|
|
2077
|
+
const videoTrack = tracksStore.getChosenVideoTrack(periodRef, true);
|
|
2038
2078
|
this._priv_triggerEventIfNotStopped("videoTrackChange", videoTrack, cancelSignal);
|
|
2039
2079
|
}
|
|
2040
2080
|
}
|
|
@@ -2154,7 +2194,7 @@ class Player extends EventEmitter {
|
|
|
2154
2194
|
}
|
|
2155
2195
|
switch (type) {
|
|
2156
2196
|
case "audio":
|
|
2157
|
-
const audioTrack = tracksStore.getChosenAudioTrack(periodRef);
|
|
2197
|
+
const audioTrack = tracksStore.getChosenAudioTrack(periodRef, true);
|
|
2158
2198
|
this._priv_triggerEventIfNotStopped("audioTrackChange", audioTrack, cancelSignal);
|
|
2159
2199
|
break;
|
|
2160
2200
|
case "text":
|
|
@@ -2162,7 +2202,7 @@ class Player extends EventEmitter {
|
|
|
2162
2202
|
this._priv_triggerEventIfNotStopped("textTrackChange", textTrack, cancelSignal);
|
|
2163
2203
|
break;
|
|
2164
2204
|
case "video":
|
|
2165
|
-
const videoTrack = tracksStore.getChosenVideoTrack(periodRef);
|
|
2205
|
+
const videoTrack = tracksStore.getChosenVideoTrack(periodRef, true);
|
|
2166
2206
|
this._priv_triggerEventIfNotStopped("videoTrackChange", videoTrack, cancelSignal);
|
|
2167
2207
|
break;
|
|
2168
2208
|
}
|
|
@@ -2361,11 +2401,11 @@ class Player extends EventEmitter {
|
|
|
2361
2401
|
}
|
|
2362
2402
|
switch (trackType) {
|
|
2363
2403
|
case "video":
|
|
2364
|
-
const videoTracks = tracksStore.getAvailableVideoTracks(periodRef);
|
|
2404
|
+
const videoTracks = tracksStore.getAvailableVideoTracks(periodRef, true);
|
|
2365
2405
|
this._priv_triggerEventIfNotStopped("availableVideoTracksChange", videoTracks !== null && videoTracks !== void 0 ? videoTracks : [], cancelSignal);
|
|
2366
2406
|
break;
|
|
2367
2407
|
case "audio":
|
|
2368
|
-
const audioTracks = tracksStore.getAvailableAudioTracks(periodRef);
|
|
2408
|
+
const audioTracks = tracksStore.getAvailableAudioTracks(periodRef, true);
|
|
2369
2409
|
this._priv_triggerEventIfNotStopped("availableAudioTracksChange", audioTracks !== null && audioTracks !== void 0 ? audioTracks : [], cancelSignal);
|
|
2370
2410
|
break;
|
|
2371
2411
|
case "text":
|
|
@@ -2410,5 +2450,5 @@ class Player extends EventEmitter {
|
|
|
2410
2450
|
* Use of a WeakSet ensure the object is garbage collected if it's not used anymore.
|
|
2411
2451
|
*/
|
|
2412
2452
|
Player._priv_currentlyUsedVideoElements = new WeakSet();
|
|
2413
|
-
Player.version = /* PLAYER_VERSION */ "4.2.0-dev.
|
|
2453
|
+
Player.version = /* PLAYER_VERSION */ "4.2.0-dev.2024090300";
|
|
2414
2454
|
export default Player;
|
|
@@ -164,6 +164,14 @@ export default class ContentDecryptor extends EventEmitter<IContentDecryptorEven
|
|
|
164
164
|
*/
|
|
165
165
|
private _processInitializationData;
|
|
166
166
|
private _tryToUseAlreadyCreatedSession;
|
|
167
|
+
/**
|
|
168
|
+
* Remove the session corresponding to the initData provided, and close it.
|
|
169
|
+
* It does nothing if no session was found for this initData.
|
|
170
|
+
* @param {Object} initData : The initialization data corresponding to the session
|
|
171
|
+
* that need to be removed
|
|
172
|
+
* @param {Object} mediaKeysData : The media keys data
|
|
173
|
+
*/
|
|
174
|
+
private removeSessionForInitData;
|
|
167
175
|
/**
|
|
168
176
|
* Callback that should be called if an error that made the current
|
|
169
177
|
* `ContentDecryptor` instance unusable arised.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content_decryptor.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/content_decryptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAO9E,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AAIzE,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAerD,OAAO,KAAK,EACV,eAAe,EAEf,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAA8B,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAU5E,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAChF;;;;;;;;;;;;OAYG;IACI,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC;;;OAGG;IACI,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU,CAA6B;IAE/C;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAuB;IAE/C;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc,CAAoB;IAE1C;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAAoB;IAExD;;;;;OAKG;WACW,UAAU,IAAI,OAAO;IAInC;;;;;;;;;;;;;OAaG;gBACS,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE;IAqEtE;;;;OAIG;IACI,QAAQ,IAAI,qBAAqB;IAIxC;;;;;;;;OAQG;IACI,MAAM,IAAI,IAAI;IAgFrB;;;;;;OAMG;IACI,OAAO;IAYd;;;;;;;;;;OAUG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAgB7E;;;;;;;;OAQG;IACI,oBAAoB,CAAC,kBAAkB,EAAE,eAAe,GAAG,IAAI;IAqBtE;;;;;;;;OAQG;YACW,0BAA0B;IAiTxC,OAAO,CAAC,8BAA8B;
|
|
1
|
+
{"version":3,"file":"content_decryptor.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/content_decryptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAO9E,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AAIzE,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAerD,OAAO,KAAK,EACV,eAAe,EAEf,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAA8B,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAU5E,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAChF;;;;;;;;;;;;OAYG;IACI,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC;;;OAGG;IACI,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU,CAA6B;IAE/C;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAuB;IAE/C;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc,CAAoB;IAE1C;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAAoB;IAExD;;;;;OAKG;WACW,UAAU,IAAI,OAAO;IAInC;;;;;;;;;;;;;OAaG;gBACS,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE;IAqEtE;;;;OAIG;IACI,QAAQ,IAAI,qBAAqB;IAIxC;;;;;;;;OAQG;IACI,MAAM,IAAI,IAAI;IAgFrB;;;;;;OAMG;IACI,OAAO;IAYd;;;;;;;;;;OAUG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAgB7E;;;;;;;;OAQG;IACI,oBAAoB,CAAC,kBAAkB,EAAE,eAAe,GAAG,IAAI;IAqBtE;;;;;;;;OAQG;YACW,0BAA0B;IAiTxC,OAAO,CAAC,8BAA8B;IAyItC;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAmChC;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAuBrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAOlB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAUpC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;CAQ7B;AAeD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,UAAU,EAAE,EAC5B,YAAY,EAAE,UAAU,EAAE,GACzB,UAAU,EAAE,CAId;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,UAAU,EAAE,GACtB,UAAU,EAAE,CAUd;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,kBAAkB,EAAE,wBAAwB,EAC5C,SAAS,EAAE,UAAU,EAAE,GACtB,UAAU,EAAE,CAcd"}
|
|
@@ -509,6 +509,20 @@ export default class ContentDecryptor extends EventEmitter {
|
|
|
509
509
|
if (compatibleSessionInfo === undefined) {
|
|
510
510
|
return false;
|
|
511
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
* On Safari using Directfile, the old EME implementation triggers
|
|
514
|
+
* the "webkitneedkey" event instead of "encrypted". There's an issue in Safari
|
|
515
|
+
* where "webkitneedkey" fires too early before all tracks are added from an HLS playlist.
|
|
516
|
+
* Safari incorrectly assumes some keys are missing for these tracks,
|
|
517
|
+
* leading to repeated "webkitneedkey" events. Because RxPlayer recognizes
|
|
518
|
+
* it already has a session for these keys and ignores the events,
|
|
519
|
+
* the content remains frozen. To resolve this, the session is re-created.
|
|
520
|
+
*/
|
|
521
|
+
const forceSessionRecreation = initializationData.forceSessionRecreation;
|
|
522
|
+
if (forceSessionRecreation === true) {
|
|
523
|
+
this.removeSessionForInitData(initializationData, mediaKeysData);
|
|
524
|
+
return false;
|
|
525
|
+
}
|
|
512
526
|
// Check if the compatible session is blacklisted
|
|
513
527
|
const blacklistedSessionError = compatibleSessionInfo.blacklistedSessionError;
|
|
514
528
|
if (!isNullOrUndefined(blacklistedSessionError)) {
|
|
@@ -592,6 +606,37 @@ export default class ContentDecryptor extends EventEmitter {
|
|
|
592
606
|
}
|
|
593
607
|
return false;
|
|
594
608
|
}
|
|
609
|
+
/**
|
|
610
|
+
* Remove the session corresponding to the initData provided, and close it.
|
|
611
|
+
* It does nothing if no session was found for this initData.
|
|
612
|
+
* @param {Object} initData : The initialization data corresponding to the session
|
|
613
|
+
* that need to be removed
|
|
614
|
+
* @param {Object} mediaKeysData : The media keys data
|
|
615
|
+
*/
|
|
616
|
+
removeSessionForInitData(initData, mediaKeysData) {
|
|
617
|
+
const { stores } = mediaKeysData;
|
|
618
|
+
/** Remove the session and close it from the loadedSessionStore */
|
|
619
|
+
const entry = stores.loadedSessionsStore.reuse(initData);
|
|
620
|
+
if (entry !== null) {
|
|
621
|
+
stores.loadedSessionsStore
|
|
622
|
+
.closeSession(entry.mediaKeySession)
|
|
623
|
+
.catch(() => log.error("DRM: Cannot close the session from the loaded session store"));
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* If set, a currently-used key session is already compatible to this
|
|
627
|
+
* initialization data.
|
|
628
|
+
*/
|
|
629
|
+
const compatibleSessionInfo = arrayFind(this._currentSessions, (x) => x.record.isCompatibleWith(initData));
|
|
630
|
+
if (compatibleSessionInfo === undefined) {
|
|
631
|
+
return;
|
|
632
|
+
}
|
|
633
|
+
/** Remove the session from the currentSessions */
|
|
634
|
+
const indexOf = this._currentSessions.indexOf(compatibleSessionInfo);
|
|
635
|
+
if (indexOf !== -1) {
|
|
636
|
+
log.debug("DRM: A session from a processed init is removed due to forceSessionRecreation policy.");
|
|
637
|
+
this._currentSessions.splice(indexOf, 1);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
595
640
|
/**
|
|
596
641
|
* Callback that should be called if an error that made the current
|
|
597
642
|
* `ContentDecryptor` instance unusable arised.
|
|
@@ -856,8 +901,8 @@ function addKeyIdsFromPeriod(set, period) {
|
|
|
856
901
|
for (const representation of adaptation.representations) {
|
|
857
902
|
if (representation.contentProtections !== undefined &&
|
|
858
903
|
representation.contentProtections.keyIds !== undefined) {
|
|
859
|
-
for (const
|
|
860
|
-
set.add(
|
|
904
|
+
for (const kid of representation.contentProtections.keyIds) {
|
|
905
|
+
set.add(kid);
|
|
861
906
|
}
|
|
862
907
|
}
|
|
863
908
|
}
|
|
@@ -109,6 +109,11 @@ export interface IProtectionData {
|
|
|
109
109
|
/** Protection initialization data actually processed by the `ContentDecryptor`. */
|
|
110
110
|
export interface IProcessedProtectionData extends Omit<IProtectionData, "values"> {
|
|
111
111
|
values: InitDataValuesContainer;
|
|
112
|
+
/**
|
|
113
|
+
* Enforce to recreate the media key session if there is already a session created
|
|
114
|
+
* with this init data
|
|
115
|
+
*/
|
|
116
|
+
forceSessionRecreation?: boolean | undefined;
|
|
112
117
|
}
|
|
113
118
|
/**
|
|
114
119
|
* Represent the initialization data linked to a key system that can be used to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,uBAAuB,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,uBAAuB,MAAM,mCAAmC,CAAC;AAE7E,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;;OAGG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;;;OAIG;IACH,WAAW,EAAE,qBAAqB,CAAC;IAEnC,uBAAuB,EAAE,wBAAwB,CAAC;IAElD,yBAAyB,EAAE;QACzB,iBAAiB,EAAE,UAAU,EAAE,CAAC;QAChC,iBAAiB,EAAE,UAAU,EAAE,CAAC;QAChC,cAAc,EAAE,UAAU,EAAE,CAAC;KAC9B,CAAC;CACH;AAED,2EAA2E;AAC3E,oBAAY,qBAAqB;IAC/B;;;;OAIG;IACH,YAAY,IAAA;IAEZ;;;;;;;;;;;;;OAaG;IACH,oBAAoB,IAAA;IAEpB;;;;;;OAMG;IACH,eAAe,IAAA;IAEf;;;OAGG;IACH,KAAK,IAAA;IAEL,uEAAuE;IACvE,QAAQ,IAAA;CACT;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IAClC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,+CAA+C;IAC/C,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,mFAAmF;AACnF,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC/E,MAAM,EAAE,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -785,17 +785,17 @@ function updateKeyIdsDecipherabilityOnManifest(manifest, whitelistedKeyIds, blac
|
|
|
785
785
|
if (contentKIDs !== undefined) {
|
|
786
786
|
for (const elt of contentKIDs) {
|
|
787
787
|
for (const blacklistedKeyId of blacklistedKeyIds) {
|
|
788
|
-
if (areArraysOfNumbersEqual(blacklistedKeyId, elt
|
|
788
|
+
if (areArraysOfNumbersEqual(blacklistedKeyId, elt)) {
|
|
789
789
|
return false;
|
|
790
790
|
}
|
|
791
791
|
}
|
|
792
792
|
for (const whitelistedKeyId of whitelistedKeyIds) {
|
|
793
|
-
if (areArraysOfNumbersEqual(whitelistedKeyId, elt
|
|
793
|
+
if (areArraysOfNumbersEqual(whitelistedKeyId, elt)) {
|
|
794
794
|
return true;
|
|
795
795
|
}
|
|
796
796
|
}
|
|
797
797
|
for (const delistedKeyId of delistedKeyIds) {
|
|
798
|
-
if (areArraysOfNumbersEqual(delistedKeyId, elt
|
|
798
|
+
if (areArraysOfNumbersEqual(delistedKeyId, elt)) {
|
|
799
799
|
return undefined;
|
|
800
800
|
}
|
|
801
801
|
}
|
|
@@ -229,7 +229,7 @@ export default class TracksStore extends EventEmitter<ITracksStoreEvents> {
|
|
|
229
229
|
* `null` if audio tracks were disabled and `undefined` if the Period is not
|
|
230
230
|
* known.
|
|
231
231
|
*/
|
|
232
|
-
getChosenAudioTrack(periodObj: ITSPeriodObject): IAudioTrack | null;
|
|
232
|
+
getChosenAudioTrack(periodObj: ITSPeriodObject, filterPlayableRepresentations: boolean): IAudioTrack | null;
|
|
233
233
|
/**
|
|
234
234
|
* Returns an object describing the chosen text track for the given text
|
|
235
235
|
* Period.
|
|
@@ -251,7 +251,7 @@ export default class TracksStore extends EventEmitter<ITracksStoreEvents> {
|
|
|
251
251
|
* @param {Object} periodObj - The concerned Period's object
|
|
252
252
|
* @returns {Object|null} - The video track chosen for this Period
|
|
253
253
|
*/
|
|
254
|
-
getChosenVideoTrack(periodObj: ITSPeriodObject): IVideoTrack | null;
|
|
254
|
+
getChosenVideoTrack(periodObj: ITSPeriodObject, filterPlayableRepresentations: boolean): IVideoTrack | null;
|
|
255
255
|
/**
|
|
256
256
|
* Returns all available audio tracks for a given Period, as an array of
|
|
257
257
|
* objects.
|
|
@@ -259,9 +259,13 @@ export default class TracksStore extends EventEmitter<ITracksStoreEvents> {
|
|
|
259
259
|
* Returns `undefined` if the given Period's id is not known.
|
|
260
260
|
*
|
|
261
261
|
* @param {Object} periodObj - The concerned Period's object
|
|
262
|
+
* @param {boolean} filterPlayableRepresentations - If `true`, only
|
|
263
|
+
* representations considered to be "playable" will be included in the
|
|
264
|
+
* returned response.
|
|
265
|
+
* If `false`, the response should contain all linked representations.
|
|
262
266
|
* @returns {Array.<Object>}
|
|
263
267
|
*/
|
|
264
|
-
getAvailableAudioTracks(periodObj: ITSPeriodObject): IAvailableAudioTrack[] | undefined;
|
|
268
|
+
getAvailableAudioTracks(periodObj: ITSPeriodObject, filterPlayableRepresentations: boolean): IAvailableAudioTrack[] | undefined;
|
|
265
269
|
/**
|
|
266
270
|
* Returns all available text tracks for a given Period, as an array of
|
|
267
271
|
* objects.
|
|
@@ -279,9 +283,13 @@ export default class TracksStore extends EventEmitter<ITracksStoreEvents> {
|
|
|
279
283
|
* Returns `undefined` if the given Period's id is not known.
|
|
280
284
|
*
|
|
281
285
|
* @param {Object} periodObj - The concerned Period's object
|
|
286
|
+
* @param {boolean} filterPlayableRepresentations - If `true`, only
|
|
287
|
+
* representations considered to be "playable" will be included in the
|
|
288
|
+
* returned response.
|
|
289
|
+
* If `false`, the response should contain all linked representations.
|
|
282
290
|
* @returns {Array.<Object>}
|
|
283
291
|
*/
|
|
284
|
-
getAvailableVideoTracks(periodObj: ITSPeriodObject): IAvailableVideoTrack[] | undefined;
|
|
292
|
+
getAvailableVideoTracks(periodObj: ITSPeriodObject, filterPlayableRepresentations: boolean): IAvailableVideoTrack[] | undefined;
|
|
285
293
|
getLockedAudioRepresentations(periodObj: ITSPeriodObject): string[] | null;
|
|
286
294
|
getLockedVideoRepresentations(periodObj: ITSPeriodObject): string[] | null;
|
|
287
295
|
lockAudioRepresentations(periodObj: ITSPeriodObject, lockSettings: IAudioRepresentationsLockSettings): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracks_store.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/tracks_store/tracks_store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tracks_store.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/tracks_store/tracks_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -690,10 +690,10 @@ export default class TracksStore extends EventEmitter {
|
|
|
690
690
|
* `null` if audio tracks were disabled and `undefined` if the Period is not
|
|
691
691
|
* known.
|
|
692
692
|
*/
|
|
693
|
-
getChosenAudioTrack(periodObj) {
|
|
693
|
+
getChosenAudioTrack(periodObj, filterPlayableRepresentations) {
|
|
694
694
|
return isNullOrUndefined(periodObj.audio.storedSettings)
|
|
695
695
|
? null
|
|
696
|
-
: toAudioTrack(periodObj.audio.storedSettings.adaptation,
|
|
696
|
+
: toAudioTrack(periodObj.audio.storedSettings.adaptation, filterPlayableRepresentations);
|
|
697
697
|
}
|
|
698
698
|
/**
|
|
699
699
|
* Returns an object describing the chosen text track for the given text
|
|
@@ -720,11 +720,11 @@ export default class TracksStore extends EventEmitter {
|
|
|
720
720
|
* @param {Object} periodObj - The concerned Period's object
|
|
721
721
|
* @returns {Object|null} - The video track chosen for this Period
|
|
722
722
|
*/
|
|
723
|
-
getChosenVideoTrack(periodObj) {
|
|
723
|
+
getChosenVideoTrack(periodObj, filterPlayableRepresentations) {
|
|
724
724
|
if (isNullOrUndefined(periodObj.video.storedSettings)) {
|
|
725
725
|
return null;
|
|
726
726
|
}
|
|
727
|
-
return toVideoTrack(periodObj.video.storedSettings.adaptation,
|
|
727
|
+
return toVideoTrack(periodObj.video.storedSettings.adaptation, filterPlayableRepresentations);
|
|
728
728
|
}
|
|
729
729
|
/**
|
|
730
730
|
* Returns all available audio tracks for a given Period, as an array of
|
|
@@ -733,9 +733,13 @@ export default class TracksStore extends EventEmitter {
|
|
|
733
733
|
* Returns `undefined` if the given Period's id is not known.
|
|
734
734
|
*
|
|
735
735
|
* @param {Object} periodObj - The concerned Period's object
|
|
736
|
+
* @param {boolean} filterPlayableRepresentations - If `true`, only
|
|
737
|
+
* representations considered to be "playable" will be included in the
|
|
738
|
+
* returned response.
|
|
739
|
+
* If `false`, the response should contain all linked representations.
|
|
736
740
|
* @returns {Array.<Object>}
|
|
737
741
|
*/
|
|
738
|
-
getAvailableAudioTracks(periodObj) {
|
|
742
|
+
getAvailableAudioTracks(periodObj, filterPlayableRepresentations) {
|
|
739
743
|
const storedSettings = periodObj.audio.storedSettings;
|
|
740
744
|
const currentId = !isNullOrUndefined(storedSettings)
|
|
741
745
|
? storedSettings.adaptation.id
|
|
@@ -743,7 +747,9 @@ export default class TracksStore extends EventEmitter {
|
|
|
743
747
|
const adaptations = getSupportedAdaptations(periodObj.period, "audio");
|
|
744
748
|
return adaptations.map((adaptation) => {
|
|
745
749
|
const active = currentId === null ? false : currentId === adaptation.id;
|
|
746
|
-
return objectAssign(toAudioTrack(adaptation,
|
|
750
|
+
return objectAssign(toAudioTrack(adaptation, filterPlayableRepresentations), {
|
|
751
|
+
active,
|
|
752
|
+
});
|
|
747
753
|
});
|
|
748
754
|
}
|
|
749
755
|
/**
|
|
@@ -773,9 +779,13 @@ export default class TracksStore extends EventEmitter {
|
|
|
773
779
|
* Returns `undefined` if the given Period's id is not known.
|
|
774
780
|
*
|
|
775
781
|
* @param {Object} periodObj - The concerned Period's object
|
|
782
|
+
* @param {boolean} filterPlayableRepresentations - If `true`, only
|
|
783
|
+
* representations considered to be "playable" will be included in the
|
|
784
|
+
* returned response.
|
|
785
|
+
* If `false`, the response should contain all linked representations.
|
|
776
786
|
* @returns {Array.<Object>}
|
|
777
787
|
*/
|
|
778
|
-
getAvailableVideoTracks(periodObj) {
|
|
788
|
+
getAvailableVideoTracks(periodObj, filterPlayableRepresentations) {
|
|
779
789
|
const storedSettings = periodObj.video.storedSettings;
|
|
780
790
|
const currentId = isNullOrUndefined(storedSettings)
|
|
781
791
|
? undefined
|
|
@@ -783,7 +793,7 @@ export default class TracksStore extends EventEmitter {
|
|
|
783
793
|
const adaptations = getSupportedAdaptations(periodObj.period, "video");
|
|
784
794
|
return adaptations.map((adaptation) => {
|
|
785
795
|
const active = currentId === null ? false : currentId === adaptation.id;
|
|
786
|
-
const track = toVideoTrack(adaptation,
|
|
796
|
+
const track = toVideoTrack(adaptation, filterPlayableRepresentations);
|
|
787
797
|
const trickModeTracks = track.trickModeTracks !== undefined
|
|
788
798
|
? track.trickModeTracks.map((trickModeAdaptation) => {
|
|
789
799
|
const isActive = currentId === null ? false : currentId === trickModeAdaptation.id;
|
|
@@ -35,55 +35,55 @@ export default class Adaptation implements IAdaptationMetadata {
|
|
|
35
35
|
*/
|
|
36
36
|
manuallyAdded?: boolean;
|
|
37
37
|
/**
|
|
38
|
-
* @see
|
|
38
|
+
* @see IAdaptationMetadata.representations
|
|
39
39
|
*/
|
|
40
40
|
readonly representations: Representation[];
|
|
41
41
|
/**
|
|
42
|
-
* @see
|
|
42
|
+
* @see ITrackType
|
|
43
43
|
*/
|
|
44
44
|
readonly type: ITrackType;
|
|
45
45
|
/**
|
|
46
|
-
* @see
|
|
46
|
+
* @see IAdaptationMetadata.isAudioDescription
|
|
47
47
|
*/
|
|
48
48
|
isAudioDescription?: boolean;
|
|
49
49
|
/**
|
|
50
|
-
* @see
|
|
50
|
+
* @see IAdaptationMetadata.isClosedCaption
|
|
51
51
|
*/
|
|
52
52
|
isClosedCaption?: boolean;
|
|
53
53
|
/**
|
|
54
|
-
* @see
|
|
54
|
+
* @see IAdaptationMetadata.isForcedSubtitles
|
|
55
55
|
*/
|
|
56
56
|
isForcedSubtitles?: boolean;
|
|
57
57
|
/**
|
|
58
|
-
* @see
|
|
58
|
+
* @see IAdaptationMetadata.isSignInterpreted
|
|
59
59
|
*/
|
|
60
60
|
isSignInterpreted?: boolean;
|
|
61
61
|
/**
|
|
62
|
-
* @see
|
|
62
|
+
* @see IAdaptationMetadata.isDub
|
|
63
63
|
*/
|
|
64
64
|
isDub?: boolean;
|
|
65
65
|
/**
|
|
66
|
-
* @see
|
|
66
|
+
* @see IAdaptationMetadata.language
|
|
67
67
|
*/
|
|
68
68
|
language?: string;
|
|
69
69
|
/**
|
|
70
|
-
* @see
|
|
70
|
+
* @see IAdaptationMetadata.normalizedLanguage
|
|
71
71
|
*/
|
|
72
72
|
normalizedLanguage?: string;
|
|
73
73
|
/**
|
|
74
|
-
* @see
|
|
74
|
+
* @see IAdaptationSupportStatus
|
|
75
75
|
*/
|
|
76
76
|
supportStatus: IAdaptationSupportStatus;
|
|
77
77
|
/**
|
|
78
|
-
* @see
|
|
78
|
+
* @see IAdaptationMetadata.isTrickModeTrack
|
|
79
79
|
*/
|
|
80
80
|
isTrickModeTrack?: boolean;
|
|
81
81
|
/**
|
|
82
|
-
* @see
|
|
82
|
+
* @see IAdaptationMetadata.label
|
|
83
83
|
*/
|
|
84
84
|
label?: string;
|
|
85
85
|
/**
|
|
86
|
-
* @see
|
|
86
|
+
* @see IAdaptationMetadata.trickModeTracks
|
|
87
87
|
*/
|
|
88
88
|
readonly trickModeTracks?: Adaptation[];
|
|
89
89
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptation.d.ts","sourceRoot":"","sources":["../../../../src/manifest/classes/adaptation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EAEtB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EACV,mBAAmB,EAEnB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAC3D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,mBAAmB;IAC5D,4DAA4D;IAC5D,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACI,aAAa,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,SAAgB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClD;;OAEG;IACH,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC;;OAEG;IACI,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACpC;;OAEG;IACI,eAAe,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACI,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACI,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACI,KAAK,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACI,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACnC;;OAEG;IACI,aAAa,EAAE,wBAAwB,CAAC;IAC/C;;OAEG;IACI,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAClC;;OAEG;IACI,KAAK,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;IAE/C;;;;OAIG;gBAED,gBAAgB,EAAE,iBAAiB,EACnC,kBAAkB,EAAE,iBAAiB,EACrC,OAAO,GAAE;QACP,oBAAoB,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;QACzD,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KAClC;
|
|
1
|
+
{"version":3,"file":"adaptation.d.ts","sourceRoot":"","sources":["../../../../src/manifest/classes/adaptation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EAEtB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EACV,mBAAmB,EAEnB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAC3D,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,mBAAmB;IAC5D,4DAA4D;IAC5D,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACI,aAAa,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,SAAgB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClD;;OAEG;IACH,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC;;OAEG;IACI,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACpC;;OAEG;IACI,eAAe,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACI,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACI,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACI,KAAK,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACI,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACnC;;OAEG;IACI,aAAa,EAAE,wBAAwB,CAAC;IAC/C;;OAEG;IACI,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAClC;;OAEG;IACI,KAAK,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;IAE/C;;;;OAIG;gBAED,gBAAgB,EAAE,iBAAiB,EACnC,kBAAkB,EAAE,iBAAiB,EACrC,OAAO,GAAE;QACP,oBAAoB,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;QACzD,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KAClC;IAoHR;;;;;;;;;;;;;OAaG;IACH,mBAAmB,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,IAAI;IA4BhE;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS;IAIxE;;;;;;;;;;;;;OAaG;IACH,mBAAmB,IAAI,mBAAmB;CAqB3C"}
|
|
@@ -88,7 +88,7 @@ export default class Adaptation {
|
|
|
88
88
|
if (representation.contentProtections !== undefined) {
|
|
89
89
|
reprObject.contentProtections = {};
|
|
90
90
|
if (representation.contentProtections.keyIds !== undefined) {
|
|
91
|
-
const keyIds = representation.contentProtections.keyIds
|
|
91
|
+
const keyIds = representation.contentProtections.keyIds;
|
|
92
92
|
reprObject.contentProtections.keyIds = keyIds;
|
|
93
93
|
}
|
|
94
94
|
}
|