rx-player 3.29.0-dev.2022110200 → 3.29.0
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 +2 -2
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +1 -1
- package/dist/_esm5.processed/compat/browser_detection.js +10 -5
- package/dist/_esm5.processed/compat/eme/close_session.js +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/load_session.js +1 -1
- package/dist/_esm5.processed/compat/event_listeners.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +3 -3
- package/dist/_esm5.processed/core/adaptive/network_analyzer.d.ts +1 -1
- package/dist/_esm5.processed/core/api/option_utils.d.ts +2 -2
- package/dist/_esm5.processed/core/api/playback_observer.d.ts +1 -1
- package/dist/_esm5.processed/core/api/public_api.js +2 -2
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +1 -1
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +21 -18
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +1 -1
- package/dist/_esm5.processed/core/decrypt/create_session.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/create_session.js +1 -1
- package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +1 -1
- package/dist/_esm5.processed/core/decrypt/find_key_system.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +1 -1
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +1 -1
- package/dist/_esm5.processed/core/decrypt/init_media_keys.js +1 -1
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +1 -1
- package/dist/_esm5.processed/core/decrypt/types.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +1 -1
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +1 -1
- package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.d.ts +1 -1
- package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +2 -1
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +1 -1
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +1 -1
- package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.d.ts +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +1 -1
- package/dist/_esm5.processed/core/init/content_time_boundaries_observer.d.ts +1 -1
- package/dist/_esm5.processed/core/init/initial_seek_and_play.d.ts +1 -1
- package/dist/_esm5.processed/core/init/link_drm_and_content.d.ts +1 -1
- package/dist/_esm5.processed/core/init/load_on_media_source.js +5 -7
- package/dist/_esm5.processed/core/init/manifest_update_scheduler.d.ts +2 -2
- package/dist/_esm5.processed/core/init/stream_events_emitter/types.d.ts +1 -1
- package/dist/_esm5.processed/core/init/types.d.ts +4 -4
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/period/get_adaptation_switch_strategy.d.ts +1 -1
- package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +1 -1
- package/dist/_esm5.processed/core/stream/representation/append_segment_to_buffer.js +1 -1
- package/dist/_esm5.processed/core/stream/representation/downloading_queue.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.js +2 -5
- package/dist/_esm5.processed/core/stream/types.d.ts +5 -5
- package/dist/_esm5.processed/default_config.d.ts +1 -1
- package/dist/_esm5.processed/errors/error_codes.d.ts +7 -7
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +5 -5
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.d.ts +1 -1
- package/dist/_esm5.processed/features/types.d.ts +10 -10
- package/dist/_esm5.processed/manifest/period.d.ts +1 -1
- package/dist/_esm5.processed/manifest/types.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/local/types.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +2 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_styling.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/types.d.ts +2 -2
- package/dist/_esm5.processed/public_types.d.ts +14 -14
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +1 -1
- package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.d.ts +1 -1
- package/dist/_esm5.processed/transports/smooth/pipelines.js +1 -1
- package/dist/_esm5.processed/transports/types.d.ts +11 -11
- package/dist/_esm5.processed/utils/assert.d.ts +1 -1
- package/dist/_esm5.processed/utils/deep_merge.d.ts +2 -2
- package/dist/_esm5.processed/utils/event_emitter.d.ts +2 -2
- package/dist/_esm5.processed/utils/logger.d.ts +2 -2
- package/dist/_esm5.processed/utils/request/fetch.js +1 -1
- package/dist/_esm5.processed/utils/task_canceller.d.ts +1 -1
- package/dist/rx-player.js +69 -70
- package/dist/rx-player.min.js +1 -1
- package/package.json +20 -20
- package/sonar-project.properties +1 -1
- package/src/compat/browser_detection.ts +15 -5
- package/src/core/api/public_api.ts +2 -2
- package/src/core/decrypt/content_decryptor.ts +13 -15
- package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +3 -1
- package/src/core/init/load_on_media_source.ts +5 -7
- package/src/core/stream/representation/force_garbage_collection.ts +1 -4
- package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +6 -5
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +2 -4
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rx-player",
|
|
3
3
|
"author": "Canal+",
|
|
4
|
-
"version": "3.29.0
|
|
4
|
+
"version": "3.29.0",
|
|
5
5
|
"description": "Canal+ HTML5 Video Player",
|
|
6
6
|
"main": "./dist/rx-player.js",
|
|
7
7
|
"keywords": [
|
|
@@ -81,34 +81,34 @@
|
|
|
81
81
|
"rxjs": "7.5.7"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
|
-
"@babel/core": "7.
|
|
84
|
+
"@babel/core": "7.20.2",
|
|
85
85
|
"@babel/plugin-transform-runtime": "7.19.6",
|
|
86
|
-
"@babel/preset-env": "7.
|
|
86
|
+
"@babel/preset-env": "7.20.2",
|
|
87
87
|
"@babel/preset-react": "7.18.6",
|
|
88
|
-
"@types/chai": "4.3.
|
|
89
|
-
"@types/jest": "29.2.
|
|
88
|
+
"@types/chai": "4.3.4",
|
|
89
|
+
"@types/jest": "29.2.3",
|
|
90
90
|
"@types/mocha": "10.0.0",
|
|
91
|
-
"@types/node": "18.11.
|
|
91
|
+
"@types/node": "18.11.9",
|
|
92
92
|
"@types/sinon": "10.0.13",
|
|
93
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
94
|
-
"@typescript-eslint/eslint-plugin-tslint": "5.
|
|
95
|
-
"@typescript-eslint/parser": "5.
|
|
93
|
+
"@typescript-eslint/eslint-plugin": "5.43.0",
|
|
94
|
+
"@typescript-eslint/eslint-plugin-tslint": "5.43.0",
|
|
95
|
+
"@typescript-eslint/parser": "5.43.0",
|
|
96
96
|
"arraybuffer-loader": "1.0.8",
|
|
97
|
-
"babel-loader": "9.
|
|
98
|
-
"chai": "4.3.
|
|
97
|
+
"babel-loader": "9.1.0",
|
|
98
|
+
"chai": "4.3.7",
|
|
99
99
|
"cheerio": "1.0.0-rc.12",
|
|
100
|
-
"core-js": "3.26.
|
|
101
|
-
"esbuild": "0.15.
|
|
102
|
-
"eslint": "8.
|
|
100
|
+
"core-js": "3.26.1",
|
|
101
|
+
"esbuild": "0.15.14",
|
|
102
|
+
"eslint": "8.27.0",
|
|
103
103
|
"eslint-plugin-import": "2.26.0",
|
|
104
|
-
"eslint-plugin-jsdoc": "39.
|
|
104
|
+
"eslint-plugin-jsdoc": "39.6.2",
|
|
105
105
|
"eslint-plugin-react": "7.31.10",
|
|
106
106
|
"esm": "3.2.25",
|
|
107
107
|
"express": "4.18.2",
|
|
108
108
|
"highlight.js": "11.6.0",
|
|
109
109
|
"html-entities": "2.3.3",
|
|
110
|
-
"jest": "29.
|
|
111
|
-
"jest-environment-jsdom": "29.
|
|
110
|
+
"jest": "29.3.1",
|
|
111
|
+
"jest-environment-jsdom": "29.3.1",
|
|
112
112
|
"karma": "6.4.1",
|
|
113
113
|
"karma-chrome-launcher": "3.1.1",
|
|
114
114
|
"karma-firefox-launcher": "2.1.2",
|
|
@@ -123,13 +123,13 @@
|
|
|
123
123
|
"regenerator-runtime": "0.13.10",
|
|
124
124
|
"rimraf": "3.0.2",
|
|
125
125
|
"semver": "7.3.8",
|
|
126
|
-
"sinon": "14.0.
|
|
126
|
+
"sinon": "14.0.2",
|
|
127
127
|
"terser-webpack-plugin": "5.3.6",
|
|
128
128
|
"ts-jest": "29.0.3",
|
|
129
129
|
"ts-loader": "9.4.1",
|
|
130
130
|
"tslint": "6.1.3",
|
|
131
|
-
"typescript": "4.
|
|
132
|
-
"webpack": "5.
|
|
131
|
+
"typescript": "4.9.3",
|
|
132
|
+
"webpack": "5.75.0",
|
|
133
133
|
"webpack-bundle-analyzer": "4.7.0",
|
|
134
134
|
"webpack-cli": "4.10.0"
|
|
135
135
|
},
|
package/sonar-project.properties
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
sonar.projectKey=rx-player
|
|
2
2
|
sonar.organization=rx-player
|
|
3
3
|
sonar.projectName=rx-player
|
|
4
|
-
sonar.projectVersion=3.29.0
|
|
4
|
+
sonar.projectVersion=3.29.0
|
|
5
5
|
sonar.sources=./src,./demo,./tests
|
|
6
6
|
sonar.exclusions=demo/full/bundle.js,demo/standalone/lib.js,demo/bundle.js
|
|
7
7
|
sonar.host.url=https://sonarcloud.io
|
|
@@ -51,11 +51,21 @@ const isTizen : boolean = !isNode &&
|
|
|
51
51
|
/Tizen/.test(navigator.userAgent);
|
|
52
52
|
|
|
53
53
|
const isWebOs : boolean = !isNode &&
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
navigator.userAgent.indexOf("Web0S") >= 0;
|
|
55
|
+
|
|
56
|
+
// Inspired form: http://webostv.developer.lge.com/discover/specifications/web-engine/
|
|
57
|
+
// Note: even that page doesn't correspond to what we've actually seen in the
|
|
58
|
+
// wild
|
|
59
|
+
const isWebOs2021 : boolean = isWebOs &&
|
|
60
|
+
(
|
|
61
|
+
/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent) ||
|
|
62
|
+
/[Cc]hr[o0]me\/79/.test(navigator.userAgent)
|
|
63
|
+
);
|
|
64
|
+
const isWebOs2022 : boolean = isWebOs &&
|
|
65
|
+
(
|
|
66
|
+
/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent) ||
|
|
67
|
+
/[Cc]hr[o0]me\/87/.test(navigator.userAgent)
|
|
68
|
+
);
|
|
59
69
|
|
|
60
70
|
interface ISafariWindowObject extends Window {
|
|
61
71
|
safari? : { pushNotification? : { toString() : string } };
|
|
@@ -460,7 +460,7 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
460
460
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
461
461
|
videoElement.preload = "auto";
|
|
462
462
|
|
|
463
|
-
this.version = /* PLAYER_VERSION */"3.29.0
|
|
463
|
+
this.version = /* PLAYER_VERSION */"3.29.0";
|
|
464
464
|
this.log = log;
|
|
465
465
|
this.state = "STOPPED";
|
|
466
466
|
this.videoElement = videoElement;
|
|
@@ -3002,7 +3002,7 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
3002
3002
|
return activeRepresentations[currentPeriod.id];
|
|
3003
3003
|
}
|
|
3004
3004
|
}
|
|
3005
|
-
Player.version = /* PLAYER_VERSION */"3.29.0
|
|
3005
|
+
Player.version = /* PLAYER_VERSION */"3.29.0";
|
|
3006
3006
|
|
|
3007
3007
|
/** Every events sent by the RxPlayer's public API. */
|
|
3008
3008
|
interface IPublicAPIEvent {
|
|
@@ -487,10 +487,9 @@ export default class ContentDecryptor extends EventEmitter<IContentDecryptorEven
|
|
|
487
487
|
.subscribe({
|
|
488
488
|
|
|
489
489
|
next: (evt) : void => {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
return;
|
|
490
|
+
if (evt.type === "warning") {
|
|
491
|
+
this.trigger("warning", evt.value);
|
|
492
|
+
return;
|
|
494
493
|
}
|
|
495
494
|
|
|
496
495
|
const linkedKeys = getKeyIdsLinkedToSession(
|
|
@@ -853,20 +852,19 @@ function updateDecipherability(
|
|
|
853
852
|
}
|
|
854
853
|
const contentKIDs = representation.contentProtections.keyIds;
|
|
855
854
|
if (contentKIDs !== undefined) {
|
|
856
|
-
for (
|
|
857
|
-
const
|
|
858
|
-
|
|
859
|
-
if (areKeyIdsEqual(blacklistedKeyIds[j], elt.keyId)) {
|
|
855
|
+
for (const elt of contentKIDs) {
|
|
856
|
+
for (const blacklistedKeyId of blacklistedKeyIds) {
|
|
857
|
+
if (areKeyIdsEqual(blacklistedKeyId, elt.keyId)) {
|
|
860
858
|
return false;
|
|
861
859
|
}
|
|
862
860
|
}
|
|
863
|
-
for (
|
|
864
|
-
if (areKeyIdsEqual(
|
|
861
|
+
for (const whitelistedKeyId of whitelistedKeyIds) {
|
|
862
|
+
if (areKeyIdsEqual(whitelistedKeyId, elt.keyId)) {
|
|
865
863
|
return true;
|
|
866
864
|
}
|
|
867
865
|
}
|
|
868
|
-
for (
|
|
869
|
-
if (areKeyIdsEqual(
|
|
866
|
+
for (const delistedKeyId of delistedKeyIds) {
|
|
867
|
+
if (areKeyIdsEqual(delistedKeyId, elt.keyId)) {
|
|
870
868
|
return undefined;
|
|
871
869
|
}
|
|
872
870
|
}
|
|
@@ -891,13 +889,13 @@ function blackListProtectionData(
|
|
|
891
889
|
return false;
|
|
892
890
|
}
|
|
893
891
|
const segmentProtections = representation.contentProtections?.initData ?? [];
|
|
894
|
-
for (
|
|
892
|
+
for (const protection of segmentProtections) {
|
|
895
893
|
if (initData.type === undefined ||
|
|
896
|
-
|
|
894
|
+
protection.type === initData.type)
|
|
897
895
|
{
|
|
898
896
|
const containedInitData = initData.values.getFormattedValues()
|
|
899
897
|
.every(undecipherableVal => {
|
|
900
|
-
return
|
|
898
|
+
return protection.values.some(currVal => {
|
|
901
899
|
return (undecipherableVal.systemId === undefined ||
|
|
902
900
|
currVal.systemId === undecipherableVal.systemId) &&
|
|
903
901
|
areArraysOfNumbersEqual(currVal.data,
|
|
@@ -53,11 +53,13 @@ export default function applyPrioritizerToSegmentFetcher<TSegmentDataType>(
|
|
|
53
53
|
* @param {Object} content - content to request
|
|
54
54
|
* @param {Number} priority - priority at which the content should be requested.
|
|
55
55
|
* Lower number == higher priority.
|
|
56
|
+
* @param {Object} callbacks
|
|
57
|
+
* @param {Object} cancelSignal
|
|
56
58
|
* @returns {Promise}
|
|
57
59
|
*/
|
|
58
60
|
createRequest(
|
|
59
61
|
content : ISegmentLoaderContent,
|
|
60
|
-
priority : number
|
|
62
|
+
priority : number,
|
|
61
63
|
callbacks : IPrioritizedSegmentFetcherCallbacks<TSegmentDataType>,
|
|
62
64
|
cancelSignal : CancellationSignal
|
|
63
65
|
) : Promise<void> {
|
|
@@ -195,14 +195,12 @@ export default function createMediaSourceLoader(
|
|
|
195
195
|
streamObserver)
|
|
196
196
|
.pipe(
|
|
197
197
|
mergeMap((evt) => {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
return EMPTY;
|
|
203
|
-
default:
|
|
204
|
-
return observableOf(evt);
|
|
198
|
+
if (evt.type === "contentDurationUpdate") {
|
|
199
|
+
log.debug("Init: Duration has to be updated.", evt.value);
|
|
200
|
+
mediaDurationUpdater.updateKnownDuration(evt.value);
|
|
201
|
+
return EMPTY;
|
|
205
202
|
}
|
|
203
|
+
return observableOf(evt);
|
|
206
204
|
}));
|
|
207
205
|
|
|
208
206
|
/**
|
|
@@ -59,7 +59,6 @@ export default async function forceGarbageCollection(
|
|
|
59
59
|
await bufferingQueue.removeBuffer(start, end, cancellationSignal);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
return;
|
|
63
62
|
}
|
|
64
63
|
|
|
65
64
|
/**
|
|
@@ -89,9 +88,7 @@ function selectGCedRanges(
|
|
|
89
88
|
// current time and respect the gcGap
|
|
90
89
|
for (let i = 0; i < outerRanges.length; i++) {
|
|
91
90
|
const outerRange = outerRanges[i];
|
|
92
|
-
if (position - gcGap > outerRange.end) {
|
|
93
|
-
cleanedupRanges.push(outerRange);
|
|
94
|
-
} else if (position + gcGap < outerRange.start) {
|
|
91
|
+
if ((position - gcGap > outerRange.end) || (position + gcGap < outerRange.start)) {
|
|
95
92
|
cleanedupRanges.push(outerRange);
|
|
96
93
|
}
|
|
97
94
|
}
|
|
@@ -33,19 +33,20 @@ export default function removeBufferAroundTime(
|
|
|
33
33
|
videoElement: HTMLMediaElement,
|
|
34
34
|
sourceBuffer: AudioVideoSegmentBuffer,
|
|
35
35
|
time: number,
|
|
36
|
-
margin: number
|
|
36
|
+
margin: number | undefined,
|
|
37
37
|
cancelSignal: CancellationSignal
|
|
38
38
|
): Promise<unknown> {
|
|
39
|
+
const removalMargin = margin ?? 10 * 60;
|
|
39
40
|
if (videoElement.buffered.length === 0) {
|
|
40
41
|
return Promise.resolve();
|
|
41
42
|
}
|
|
42
43
|
const bufferRemovals = [];
|
|
43
|
-
if ((time -
|
|
44
|
+
if ((time - removalMargin) > 0) {
|
|
44
45
|
bufferRemovals.push(
|
|
45
|
-
sourceBuffer.removeBuffer(0, time -
|
|
46
|
+
sourceBuffer.removeBuffer(0, time - removalMargin, cancelSignal));
|
|
46
47
|
}
|
|
47
|
-
if ((time +
|
|
48
|
-
bufferRemovals.push(sourceBuffer.removeBuffer(time +
|
|
48
|
+
if ((time + removalMargin) < videoElement.duration) {
|
|
49
|
+
bufferRemovals.push(sourceBuffer.removeBuffer(time + removalMargin,
|
|
49
50
|
videoElement.duration,
|
|
50
51
|
cancelSignal));
|
|
51
52
|
}
|
|
@@ -31,10 +31,8 @@ export function generateBaseUrlAttrParser(
|
|
|
31
31
|
) : IAttributeParser {
|
|
32
32
|
const textDecoder = new TextDecoder();
|
|
33
33
|
return function onMPDAttribute(attr : number, ptr : number, len : number) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
baseUrlAttrs.value = parseString(textDecoder, linearMemory.buffer, ptr, len);
|
|
37
|
-
break;
|
|
34
|
+
if (attr === AttributeName.Text) {
|
|
35
|
+
baseUrlAttrs.value = parseString(textDecoder, linearMemory.buffer, ptr, len);
|
|
38
36
|
}
|
|
39
37
|
};
|
|
40
38
|
}
|