rx-player 4.5.0-dev.2026060400 → 4.5.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +15 -14
  2. package/VERSION +1 -1
  3. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  6. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  7. package/dist/commonjs/core/fetchers/utils/schedule_request.d.ts.map +1 -1
  8. package/dist/commonjs/core/fetchers/utils/schedule_request.js +5 -2
  9. package/dist/commonjs/main_thread/api/public_api.js +2 -2
  10. package/dist/commonjs/main_thread/core_interface/monothread.d.ts.map +1 -1
  11. package/dist/commonjs/main_thread/core_interface/monothread.js +3 -2
  12. package/dist/commonjs/main_thread/render_thumbnail.d.ts.map +1 -1
  13. package/dist/commonjs/main_thread/render_thumbnail.js +7 -4
  14. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.js +28 -27
  15. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  16. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  17. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  18. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  19. package/dist/es2017/core/fetchers/utils/schedule_request.d.ts.map +1 -1
  20. package/dist/es2017/core/fetchers/utils/schedule_request.js +5 -2
  21. package/dist/es2017/main_thread/api/public_api.js +2 -2
  22. package/dist/es2017/main_thread/core_interface/monothread.d.ts.map +1 -1
  23. package/dist/es2017/main_thread/core_interface/monothread.js +3 -2
  24. package/dist/es2017/main_thread/render_thumbnail.d.ts.map +1 -1
  25. package/dist/es2017/main_thread/render_thumbnail.js +7 -4
  26. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.js +28 -27
  27. package/dist/mpd-parser.wasm +0 -0
  28. package/dist/worker.js +1 -1
  29. package/package.json +2 -2
  30. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  31. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  32. package/src/core/fetchers/utils/schedule_request.ts +4 -2
  33. package/src/main_thread/__tests__/render_thumbnail.test.ts +193 -0
  34. package/src/main_thread/api/public_api.ts +2 -2
  35. package/src/main_thread/core_interface/monothread.ts +3 -2
  36. package/src/main_thread/render_thumbnail.ts +7 -4
  37. package/src/main_thread/tracks_store/media_element_tracks_store.ts +18 -18
  38. package/src/parsers/manifest/dash/wasm-parser/rs/lib.rs +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"schedule_request.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/utils/schedule_request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAK9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,KAAK,cAAc,MAAM,oBAAoB,CAAC;AAiDrD,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAC3B,cAAc,EAAE,cAAc,GAAG,IAAI,EACrC,cAAc,EAAE,CACd,GAAG,EAAE,YAAY,GAAG,IAAI,EACxB,kBAAkB,EAAE,kBAAkB,KACnC,OAAO,CAAC,CAAC,CAAC,EACf,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,CAAC,CAAC,CAkPZ;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,cAAc,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,CAAC,CAAC,CAGZ"}
1
+ {"version":3,"file":"schedule_request.d.ts","sourceRoot":"","sources":["../../../../../src/core/fetchers/utils/schedule_request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAK9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,KAAK,cAAc,MAAM,oBAAoB,CAAC;AAmDrD,6EAA6E;AAC7E,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAC3B,cAAc,EAAE,cAAc,GAAG,IAAI,EACrC,cAAc,EAAE,CACd,GAAG,EAAE,YAAY,GAAG,IAAI,EACxB,kBAAkB,EAAE,kBAAkB,KACnC,OAAO,CAAC,CAAC,CAAC,EACf,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,CAAC,CAAC,CAkPZ;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,cAAc,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAAE,kBAAkB,GACrC,OAAO,CAAC,CAAC,CAAC,CAGZ"}
@@ -40,7 +40,9 @@ function shouldRetry(error) {
40
40
  error.status === 415 || // some CDN seems to use that code when
41
41
  // requesting low-latency segments too much
42
42
  // in advance
43
- error.status === 412);
43
+ error.status === 412 ||
44
+ error.status === 429 // TODO: Handle optional Retry-After header
45
+ );
44
46
  }
45
47
  return (error.type === NetworkErrorTypes.TIMEOUT ||
46
48
  error.type === NetworkErrorTypes.ERROR_EVENT);
@@ -55,7 +57,8 @@ function shouldRetry(error) {
55
57
  error.xhr.status === 415 || // some CDN seems to use that code when
56
58
  // requesting low-latency segments too much
57
59
  // in advance
58
- error.xhr.status === 412);
60
+ error.xhr.status === 412 ||
61
+ error.xhr.status === 429);
59
62
  }
60
63
  return false;
61
64
  }
@@ -164,7 +164,7 @@ class Player extends EventEmitter {
164
164
  // Workaround to support Firefox autoplay on FF 42.
165
165
  // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
166
166
  videoElement.preload = "auto";
167
- this.version = /* PLAYER_VERSION */ "4.5.0-dev.2026060400";
167
+ this.version = /* PLAYER_VERSION */ "4.5.0";
168
168
  this.log = log;
169
169
  this.state = "STOPPED";
170
170
  this.videoElement = videoElement;
@@ -2886,5 +2886,5 @@ class Player extends EventEmitter {
2886
2886
  * Use of a WeakSet ensure the object is garbage collected if it's not used anymore.
2887
2887
  */
2888
2888
  Player._priv_currentlyUsedVideoElements = new WeakSet();
2889
- Player.version = /* PLAYER_VERSION */ "4.5.0-dev.2026060400";
2889
+ Player.version = /* PLAYER_VERSION */ "4.5.0";
2890
2890
  export default Player;
@@ -1 +1 @@
1
- {"version":3,"file":"monothread.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/core_interface/monothread.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,aAAa,MAAM,QAAQ,CAAC;AAEnC,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,OAAO,CAAC,oBAAoB,CAA2B;;IAOhD,WAAW,CAAC,GAAG,EAAE,kBAAkB;IAQnC,YAAY,IAAI;QACrB,sBAAsB,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;QACpE,eAAe,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;KAC9E;CAgBF"}
1
+ {"version":3,"file":"monothread.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/core_interface/monothread.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,aAAa,MAAM,QAAQ,CAAC;AAEnC,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,OAAO,CAAC,oBAAoB,CAA2B;;IAOhD,WAAW,CAAC,GAAG,EAAE,kBAAkB;IAQnC,YAAY,IAAI;QACrB,sBAAsB,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;QACpE,eAAe,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;KAC9E;CAgBF"}
@@ -1,5 +1,6 @@
1
1
  import log from "../../log";
2
2
  import noop from "../../utils/noop";
3
+ import queueMicrotaskUtil from "../../utils/queue_microtask";
3
4
  import CoreInterface from "./base";
4
5
  export class MonoThreadCoreInterface extends CoreInterface {
5
6
  constructor() {
@@ -8,7 +9,7 @@ export class MonoThreadCoreInterface extends CoreInterface {
8
9
  }
9
10
  sendMessage(msg) {
10
11
  log.debug("M-->C", "Sending message", { name: msg.type });
11
- queueMicrotask(() => {
12
+ queueMicrotaskUtil(() => {
12
13
  // NOTE: We don't clone for performance reasons
13
14
  this._currentCoreListener({ data: msg });
14
15
  });
@@ -18,7 +19,7 @@ export class MonoThreadCoreInterface extends CoreInterface {
18
19
  this._currentCoreListener = handler;
19
20
  };
20
21
  const sendCoreMessage = (msg, _transferables) => {
21
- queueMicrotask(() => {
22
+ queueMicrotaskUtil(() => {
22
23
  if (msg.type !== "log" /* CoreMessageType.LogMessage */) {
23
24
  log.debug("M<--C", "Sending message", { name: msg.type });
24
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"render_thumbnail.d.ts","sourceRoot":"","sources":["../../../src/main_thread/render_thumbnail.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAKlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAA8B,eAAe,CAC3C,YAAY,EAAE,sBAAsB,GAAG,IAAI,EAC3C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAmNf"}
1
+ {"version":3,"file":"render_thumbnail.d.ts","sourceRoot":"","sources":["../../../src/main_thread/render_thumbnail.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAKlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAA8B,eAAe,CAC3C,YAAY,EAAE,sBAAsB,GAAG,IAAI,EAC3C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAsNf"}
@@ -44,7 +44,9 @@ export default async function renderThumbnail(contentInfos, options) {
44
44
  const onFinished = () => {
45
45
  unlinkCanceller();
46
46
  canceller.cancel("thumbnail request finished");
47
- thumbnailRequestsInfo.pendingRequests.delete(container);
47
+ if (thumbnailRequestsInfo.pendingRequests.get(container) === canceller) {
48
+ thumbnailRequestsInfo.pendingRequests.delete(container);
49
+ }
48
50
  // Let's revoke the URL after a round-trip to the event loop just in case
49
51
  // to prevent revoking before the browser use it.
50
52
  // This is normally not necessary, but better safe than sorry.
@@ -148,13 +150,14 @@ export default async function renderThumbnail(contentInfos, options) {
148
150
  });
149
151
  }
150
152
  catch (srcError) {
151
- if (options.keepPreviousThumbnailOnError !== true) {
152
- clearPreviousThumbnails();
153
- }
154
153
  if (srcError !== null && srcError === canceller.signal.cancellationError) {
154
+ onFinished();
155
155
  const error = new ThumbnailRenderingError("ABORTED", "Thumbnail rendering has been aborted");
156
156
  throw error;
157
157
  }
158
+ if (options.keepPreviousThumbnailOnError !== true) {
159
+ clearPreviousThumbnails();
160
+ }
158
161
  if (srcError instanceof ThumbnailRenderingError) {
159
162
  onFinished();
160
163
  throw srcError;
@@ -452,6 +452,7 @@ export default class MediaElementTracksStore extends EventEmitter {
452
452
  * change events.
453
453
  */
454
454
  _handleNativeTracksCallbacks() {
455
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
455
456
  if (this._nativeAudioTracks !== undefined) {
456
457
  const onAddAudioTrack = () => {
457
458
  var _a, _b;
@@ -469,10 +470,10 @@ export default class MediaElementTracksStore extends EventEmitter {
469
470
  }
470
471
  }
471
472
  };
472
- this._nativeAudioTracks.addEventListener("addtrack", onAddAudioTrack);
473
+ (_b = (_a = this._nativeAudioTracks).addEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, "addtrack", onAddAudioTrack);
473
474
  this.taskCanceller.signal.register(() => {
474
- var _a;
475
- (_a = this._nativeAudioTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener("addtrack", onAddAudioTrack);
475
+ var _a, _b;
476
+ (_b = (_a = this._nativeAudioTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, "addtrack", onAddAudioTrack);
476
477
  });
477
478
  const onRemoveAudioTrack = () => {
478
479
  var _a, _b;
@@ -490,10 +491,10 @@ export default class MediaElementTracksStore extends EventEmitter {
490
491
  }
491
492
  }
492
493
  };
493
- this._nativeAudioTracks.addEventListener("removetrack", onRemoveAudioTrack);
494
+ (_d = (_c = this._nativeAudioTracks).addEventListener) === null || _d === void 0 ? void 0 : _d.call(_c, "removetrack", onRemoveAudioTrack);
494
495
  this.taskCanceller.signal.register(() => {
495
- var _a;
496
- (_a = this._nativeAudioTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener("removetrack", onRemoveAudioTrack);
496
+ var _a, _b;
497
+ (_b = (_a = this._nativeAudioTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, "removetrack", onRemoveAudioTrack);
497
498
  });
498
499
  const onAudioChange = () => {
499
500
  if (this._audioTracks !== undefined) {
@@ -514,10 +515,10 @@ export default class MediaElementTracksStore extends EventEmitter {
514
515
  }
515
516
  return;
516
517
  };
517
- this._nativeAudioTracks.addEventListener("change", onAudioChange);
518
+ (_f = (_e = this._nativeAudioTracks).addEventListener) === null || _f === void 0 ? void 0 : _f.call(_e, "change", onAudioChange);
518
519
  this.taskCanceller.signal.register(() => {
519
- var _a;
520
- (_a = this._nativeAudioTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener("change", onAudioChange);
520
+ var _a, _b;
521
+ (_b = (_a = this._nativeAudioTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, "change", onAudioChange);
521
522
  });
522
523
  }
523
524
  if (this._nativeTextTracks !== undefined) {
@@ -537,10 +538,10 @@ export default class MediaElementTracksStore extends EventEmitter {
537
538
  }
538
539
  }
539
540
  };
540
- this._nativeTextTracks.addEventListener("addtrack", onAddTextTrack);
541
+ (_h = (_g = this._nativeTextTracks).addEventListener) === null || _h === void 0 ? void 0 : _h.call(_g, "addtrack", onAddTextTrack);
541
542
  this.taskCanceller.signal.register(() => {
542
- var _a;
543
- (_a = this._nativeTextTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener("addtrack", onAddTextTrack);
543
+ var _a, _b;
544
+ (_b = (_a = this._nativeTextTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, "addtrack", onAddTextTrack);
544
545
  });
545
546
  const onRemoveTextTrack = () => {
546
547
  var _a, _b;
@@ -558,10 +559,10 @@ export default class MediaElementTracksStore extends EventEmitter {
558
559
  }
559
560
  }
560
561
  };
561
- this._nativeTextTracks.addEventListener("removetrack", onRemoveTextTrack);
562
+ (_k = (_j = this._nativeTextTracks).addEventListener) === null || _k === void 0 ? void 0 : _k.call(_j, "removetrack", onRemoveTextTrack);
562
563
  this.taskCanceller.signal.register(() => {
563
- var _a;
564
- (_a = this._nativeTextTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener("removetrack", onRemoveTextTrack);
564
+ var _a, _b;
565
+ (_b = (_a = this._nativeTextTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, "removetrack", onRemoveTextTrack);
565
566
  });
566
567
  const onTextChange = () => {
567
568
  if (this._textTracks !== undefined) {
@@ -582,10 +583,10 @@ export default class MediaElementTracksStore extends EventEmitter {
582
583
  }
583
584
  return;
584
585
  };
585
- this._nativeTextTracks.addEventListener("change", onTextChange);
586
+ (_m = (_l = this._nativeTextTracks).addEventListener) === null || _m === void 0 ? void 0 : _m.call(_l, "change", onTextChange);
586
587
  this.taskCanceller.signal.register(() => {
587
- var _a;
588
- (_a = this._nativeTextTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener("change", onTextChange);
588
+ var _a, _b;
589
+ (_b = (_a = this._nativeTextTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, "change", onTextChange);
589
590
  });
590
591
  }
591
592
  if (this._nativeVideoTracks !== undefined) {
@@ -605,10 +606,10 @@ export default class MediaElementTracksStore extends EventEmitter {
605
606
  }
606
607
  }
607
608
  };
608
- this._nativeVideoTracks.addEventListener("addtrack", onAddVideoTrack);
609
+ (_p = (_o = this._nativeVideoTracks).addEventListener) === null || _p === void 0 ? void 0 : _p.call(_o, "addtrack", onAddVideoTrack);
609
610
  this.taskCanceller.signal.register(() => {
610
- var _a;
611
- (_a = this._nativeVideoTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener("addtrack", onAddVideoTrack);
611
+ var _a, _b;
612
+ (_b = (_a = this._nativeVideoTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, "addtrack", onAddVideoTrack);
612
613
  });
613
614
  const onRemoveVideoTrack = () => {
614
615
  var _a, _b;
@@ -626,10 +627,10 @@ export default class MediaElementTracksStore extends EventEmitter {
626
627
  }
627
628
  }
628
629
  };
629
- this._nativeVideoTracks.addEventListener("removetrack", onRemoveVideoTrack);
630
+ (_r = (_q = this._nativeVideoTracks).addEventListener) === null || _r === void 0 ? void 0 : _r.call(_q, "removetrack", onRemoveVideoTrack);
630
631
  this.taskCanceller.signal.register(() => {
631
- var _a;
632
- (_a = this._nativeVideoTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener("removetrack", onRemoveVideoTrack);
632
+ var _a, _b;
633
+ (_b = (_a = this._nativeVideoTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, "removetrack", onRemoveVideoTrack);
633
634
  });
634
635
  const onVideoChange = () => {
635
636
  if (this._videoTracks !== undefined) {
@@ -650,10 +651,10 @@ export default class MediaElementTracksStore extends EventEmitter {
650
651
  }
651
652
  return;
652
653
  };
653
- this._nativeVideoTracks.addEventListener("change", onVideoChange);
654
+ (_t = (_s = this._nativeVideoTracks).addEventListener) === null || _t === void 0 ? void 0 : _t.call(_s, "change", onVideoChange);
654
655
  this.taskCanceller.signal.register(() => {
655
- var _a;
656
- (_a = this._nativeVideoTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener("change", onVideoChange);
656
+ var _a, _b;
657
+ (_b = (_a = this._nativeVideoTracks) === null || _a === void 0 ? void 0 : _a.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(_a, "change", onVideoChange);
657
658
  });
658
659
  }
659
660
  }
Binary file