livekit-client 0.14.2 → 0.15.2

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 (108) hide show
  1. package/.github/workflows/{lint.yaml → test.yaml} +7 -4
  2. package/.gitmodules +3 -0
  3. package/README.md +46 -14
  4. package/dist/api/SignalClient.d.ts +7 -32
  5. package/dist/api/SignalClient.js +37 -8
  6. package/dist/api/SignalClient.js.map +1 -1
  7. package/dist/connect.d.ts +1 -1
  8. package/dist/connect.js +71 -73
  9. package/dist/connect.js.map +1 -1
  10. package/dist/index.d.ts +3 -3
  11. package/dist/index.js +4 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/logger.d.ts +10 -0
  14. package/dist/logger.js +15 -0
  15. package/dist/logger.js.map +1 -1
  16. package/dist/options.d.ts +83 -19
  17. package/dist/options.js +0 -10
  18. package/dist/options.js.map +1 -1
  19. package/dist/proto/livekit_models.d.ts +42 -1
  20. package/dist/proto/livekit_models.js +292 -4
  21. package/dist/proto/livekit_models.js.map +1 -1
  22. package/dist/proto/livekit_rtc.d.ts +115 -7
  23. package/dist/proto/livekit_rtc.js +810 -30
  24. package/dist/proto/livekit_rtc.js.map +1 -1
  25. package/dist/room/RTCEngine.d.ts +4 -2
  26. package/dist/room/RTCEngine.js +31 -35
  27. package/dist/room/RTCEngine.js.map +1 -1
  28. package/dist/room/Room.d.ts +16 -17
  29. package/dist/room/Room.js +125 -77
  30. package/dist/room/Room.js.map +1 -1
  31. package/dist/room/events.d.ts +115 -6
  32. package/dist/room/events.js +114 -5
  33. package/dist/room/events.js.map +1 -1
  34. package/dist/room/participant/LocalParticipant.d.ts +29 -11
  35. package/dist/room/participant/LocalParticipant.js +209 -160
  36. package/dist/room/participant/LocalParticipant.js.map +1 -1
  37. package/dist/room/participant/Participant.d.ts +2 -0
  38. package/dist/room/participant/Participant.js +3 -1
  39. package/dist/room/participant/Participant.js.map +1 -1
  40. package/dist/room/participant/RemoteParticipant.d.ts +1 -1
  41. package/dist/room/participant/RemoteParticipant.js +6 -5
  42. package/dist/room/participant/RemoteParticipant.js.map +1 -1
  43. package/dist/room/participant/publishUtils.d.ts +11 -0
  44. package/dist/room/participant/publishUtils.js +148 -0
  45. package/dist/room/participant/publishUtils.js.map +1 -0
  46. package/dist/room/participant/publishUtils.test.d.ts +1 -0
  47. package/dist/room/participant/publishUtils.test.js +79 -0
  48. package/dist/room/participant/publishUtils.test.js.map +1 -0
  49. package/dist/room/stats.d.ts +21 -6
  50. package/dist/room/stats.js +22 -1
  51. package/dist/room/stats.js.map +1 -1
  52. package/dist/room/track/LocalAudioTrack.d.ts +8 -3
  53. package/dist/room/track/LocalAudioTrack.js +49 -3
  54. package/dist/room/track/LocalAudioTrack.js.map +1 -1
  55. package/dist/room/track/LocalTrack.d.ts +4 -3
  56. package/dist/room/track/LocalTrack.js +6 -48
  57. package/dist/room/track/LocalTrack.js.map +1 -1
  58. package/dist/room/track/LocalVideoTrack.d.ts +14 -5
  59. package/dist/room/track/LocalVideoTrack.js +154 -62
  60. package/dist/room/track/LocalVideoTrack.js.map +1 -1
  61. package/dist/room/track/LocalVideoTrack.test.d.ts +1 -0
  62. package/dist/room/track/LocalVideoTrack.test.js +68 -0
  63. package/dist/room/track/LocalVideoTrack.test.js.map +1 -0
  64. package/dist/room/track/RemoteAudioTrack.d.ts +7 -0
  65. package/dist/room/track/RemoteAudioTrack.js +61 -0
  66. package/dist/room/track/RemoteAudioTrack.js.map +1 -1
  67. package/dist/room/track/RemoteTrackPublication.d.ts +2 -3
  68. package/dist/room/track/RemoteTrackPublication.js +12 -10
  69. package/dist/room/track/RemoteTrackPublication.js.map +1 -1
  70. package/dist/room/track/RemoteVideoTrack.d.ts +10 -6
  71. package/dist/room/track/RemoteVideoTrack.js +97 -44
  72. package/dist/room/track/RemoteVideoTrack.js.map +1 -1
  73. package/dist/room/track/Track.d.ts +10 -2
  74. package/dist/room/track/Track.js +29 -2
  75. package/dist/room/track/Track.js.map +1 -1
  76. package/dist/room/track/TrackPublication.d.ts +2 -0
  77. package/dist/room/track/TrackPublication.js +1 -0
  78. package/dist/room/track/TrackPublication.js.map +1 -1
  79. package/dist/room/track/create.d.ts +4 -6
  80. package/dist/room/track/create.js +10 -57
  81. package/dist/room/track/create.js.map +1 -1
  82. package/dist/room/track/defaults.d.ts +4 -0
  83. package/dist/room/track/defaults.js +21 -0
  84. package/dist/room/track/defaults.js.map +1 -0
  85. package/dist/room/track/options.d.ts +15 -65
  86. package/dist/room/track/options.js +14 -13
  87. package/dist/room/track/options.js.map +1 -1
  88. package/dist/room/track/utils.d.ts +3 -0
  89. package/dist/room/track/utils.js +68 -0
  90. package/dist/room/track/utils.js.map +1 -0
  91. package/dist/room/track/utils.test.d.ts +1 -0
  92. package/dist/room/track/utils.test.js +85 -0
  93. package/dist/room/track/utils.test.js.map +1 -0
  94. package/dist/room/utils.d.ts +7 -1
  95. package/dist/room/utils.js +29 -6
  96. package/dist/room/utils.js.map +1 -1
  97. package/dist/version.d.ts +1 -1
  98. package/dist/version.js +1 -1
  99. package/example/index.html +194 -178
  100. package/example/sample.ts +454 -325
  101. package/example/styles.css +144 -0
  102. package/example/webpack.config.js +1 -1
  103. package/jest.config.js +6 -0
  104. package/package.json +9 -6
  105. package/tsconfig.eslint.json +8 -1
  106. package/dist/room/defaults.d.ts +0 -5
  107. package/dist/room/defaults.js +0 -32
  108. package/dist/room/defaults.js.map +0 -1
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const logger_1 = __importDefault(require("../../logger"));
7
+ const livekit_models_1 = require("../../proto/livekit_models");
7
8
  const livekit_rtc_1 = require("../../proto/livekit_rtc");
8
9
  const events_1 = require("../events");
9
10
  const RemoteVideoTrack_1 = __importDefault(require("./RemoteVideoTrack"));
@@ -12,14 +13,14 @@ class RemoteTrackPublication extends TrackPublication_1.default {
12
13
  constructor() {
13
14
  super(...arguments);
14
15
  this.disabled = false;
15
- this.currentVideoQuality = livekit_rtc_1.VideoQuality.HIGH;
16
+ this.currentVideoQuality = livekit_models_1.VideoQuality.HIGH;
16
17
  this.handleVisibilityChange = (visible) => {
17
- logger_1.default.debug(`automanage video visibility, visible=${visible}`);
18
+ logger_1.default.debug('adaptivestream video visibility', this.trackSid, `visible=${visible}`);
18
19
  this.disabled = !visible;
19
20
  this.emitTrackUpdate();
20
21
  };
21
22
  this.handleVideoDimensionsChange = (dimensions) => {
22
- logger_1.default.debug(`automanage video dimensions, ${dimensions.width}x${dimensions.height}`);
23
+ logger_1.default.debug('adaptivestream video dimensions', this.trackSid, `${dimensions.width}x${dimensions.height}`);
23
24
  this.videoDimensions = dimensions;
24
25
  this.emitTrackUpdate();
25
26
  };
@@ -33,6 +34,7 @@ class RemoteTrackPublication extends TrackPublication_1.default {
33
34
  const sub = {
34
35
  trackSids: [this.trackSid],
35
36
  subscribe: this.subscribed,
37
+ participantTracks: [],
36
38
  };
37
39
  this.emit(events_1.TrackEvent.UpdateSubscription, sub);
38
40
  }
@@ -52,10 +54,10 @@ class RemoteTrackPublication extends TrackPublication_1.default {
52
54
  * @param enabled
53
55
  */
54
56
  setEnabled(enabled) {
55
- if (this.isAutoManageVideo || !this.isSubscribed || this.disabled === !enabled) {
57
+ if (this.isAdaptiveStream || !this.isSubscribed || this.disabled === !enabled) {
56
58
  return;
57
59
  }
58
- if (this.track instanceof RemoteVideoTrack_1.default && this.track.isAutoManaged) {
60
+ if (this.track instanceof RemoteVideoTrack_1.default && this.track.isAdaptiveStream) {
59
61
  return;
60
62
  }
61
63
  this.disabled = !enabled;
@@ -69,7 +71,7 @@ class RemoteTrackPublication extends TrackPublication_1.default {
69
71
  * optimize for uninterrupted video
70
72
  */
71
73
  setVideoQuality(quality) {
72
- if (this.isAutoManageVideo || !this.isSubscribed || this.currentVideoQuality === quality) {
74
+ if (this.isAdaptiveStream || !this.isSubscribed || this.currentVideoQuality === quality) {
73
75
  return;
74
76
  }
75
77
  this.currentVideoQuality = quality;
@@ -78,7 +80,7 @@ class RemoteTrackPublication extends TrackPublication_1.default {
78
80
  }
79
81
  setVideoDimensions(dimensions) {
80
82
  var _a, _b;
81
- if (!this.isSubscribed || this.isAutoManageVideo) {
83
+ if (!this.isSubscribed || this.isAdaptiveStream) {
82
84
  return;
83
85
  }
84
86
  if (((_a = this.videoDimensions) === null || _a === void 0 ? void 0 : _a.width) === dimensions.width
@@ -112,8 +114,8 @@ class RemoteTrackPublication extends TrackPublication_1.default {
112
114
  this.metadataMuted = info.muted;
113
115
  (_a = this.track) === null || _a === void 0 ? void 0 : _a.setMuted(info.muted);
114
116
  }
115
- get isAutoManageVideo() {
116
- return this.track instanceof RemoteVideoTrack_1.default && this.track.isAutoManaged;
117
+ get isAdaptiveStream() {
118
+ return this.track instanceof RemoteVideoTrack_1.default && this.track.isAdaptiveStream;
117
119
  }
118
120
  emitTrackUpdate() {
119
121
  const settings = livekit_rtc_1.UpdateTrackSettings.fromPartial({
@@ -129,7 +131,7 @@ class RemoteTrackPublication extends TrackPublication_1.default {
129
131
  }
130
132
  else {
131
133
  // defaults to high quality
132
- settings.quality = livekit_rtc_1.VideoQuality.HIGH;
134
+ settings.quality = livekit_models_1.VideoQuality.HIGH;
133
135
  }
134
136
  this.emit(events_1.TrackEvent.UpdateSettings, settings);
135
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteTrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/RemoteTrackPublication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteTrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/RemoteTrackPublication.ts"],"names":[],"mappings":";;;;;AAAA,0DAA+B;AAC/B,+DAAqE;AACrE,yDAGiC;AACjC,sCAAuC;AACvC,0EAAkD;AAElD,0EAAkD;AAGlD,MAAqB,sBAAuB,SAAQ,0BAAgB;IAApE;;QAKY,aAAQ,GAAY,KAAK,CAAC;QAE1B,wBAAmB,GAAkB,6BAAY,CAAC,IAAI,CAAC;QAyGvD,2BAAsB,GAAG,CAAC,OAAgB,EAAE,EAAE;YACtD,gBAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,OAAO,EAAE,CAAC,CAAC;YAClF,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC;YACzB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC;QAEQ,gCAA2B,GAAG,CAAC,UAA4B,EAAE,EAAE;YACvE,gBAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACxG,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;YAClC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC;IAmBJ,CAAC;IAlIC;;;OAGG;IACH,aAAa,CAAC,UAAmB;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,MAAM,GAAG,GAAuB;YAC9B,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,iBAAiB,EAAE,EAAE;SACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,YAAY;QACd,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,KAAK,CAAC,YAAY,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,OAAO,EAAE;YAC7E,OAAO;SACR;QACD,IAAI,IAAI,CAAC,KAAK,YAAY,0BAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;YACzE,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC;QAEzB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,OAAqB;QACnC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,mBAAmB,KAAK,OAAO,EAAE;YACvF,OAAO;SACR;QACD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,kBAAkB,CAAC,UAA4B;;QAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC/C,OAAO;SACR;QACD,IAAI,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,KAAK,MAAK,UAAU,CAAC,KAAK;eAC7C,CAAA,MAAA,IAAI,CAAC,eAAe,0CAAE,MAAM,MAAK,UAAU,CAAC,MAAM,EAAE;YACzD,OAAO;SACR;QACD,IAAI,IAAI,CAAC,KAAK,YAAY,0BAAgB,EAAE;YAAE,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;SAAE;QAClF,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QAErC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,KAAa;;QACpB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,sBAAsB;YACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAU,CAAC,sBAAsB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACpF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;SAC3E;QACD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,MAAA,IAAI,CAAC,KAAK,0CAAE,EAAE,CAAC,mBAAU,CAAC,sBAAsB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACpF,MAAA,IAAI,CAAC,KAAK,0CAAE,EAAE,CAAC,mBAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC5E,CAAC;IAED,gBAAgB;IAChB,UAAU,CAAC,IAAe;;QACxB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAc,gBAAgB;QAC5B,OAAO,IAAI,CAAC,KAAK,YAAY,0BAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC/E,CAAC;IAcS,eAAe;QACvB,MAAM,QAAQ,GAAwB,iCAAmB,CAAC,WAAW,CAAC;YACpE,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAC5C,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;SAC/C;aAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACnC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;SAC7C;aAAM;YACL,2BAA2B;YAC3B,QAAQ,CAAC,OAAO,GAAG,6BAAY,CAAC,IAAI,CAAC;SACtC;QAED,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;CACF;AA7ID,yCA6IC"}
@@ -4,13 +4,14 @@ export default class RemoteVideoTrack extends Track {
4
4
  receiver?: RTCRtpReceiver;
5
5
  private prevStats?;
6
6
  private elementInfos;
7
- private intersectionObserver?;
8
- private resizeObserver?;
9
- private autoManaged?;
7
+ private adaptiveStream?;
10
8
  private lastVisible?;
11
9
  private lastDimensions?;
12
- constructor(mediaTrack: MediaStreamTrack, sid: string, receiver?: RTCRtpReceiver, autoManaged?: boolean);
13
- get isAutoManaged(): boolean;
10
+ private _currentBitrate;
11
+ constructor(mediaTrack: MediaStreamTrack, sid: string, receiver?: RTCRtpReceiver, adaptiveStream?: boolean);
12
+ get isAdaptiveStream(): boolean;
13
+ /** current receive bits per second */
14
+ get currentBitrate(): number;
14
15
  /** @internal */
15
16
  setMuted(muted: boolean): void;
16
17
  attach(): HTMLMediaElement;
@@ -19,9 +20,12 @@ export default class RemoteVideoTrack extends Track {
19
20
  detach(element: HTMLMediaElement): HTMLMediaElement;
20
21
  start(): void;
21
22
  stop(): void;
23
+ startMonitor(): void;
24
+ private monitorReceiver;
25
+ private getReceiverStats;
22
26
  private stopObservingElement;
23
27
  private handleVisibilityChanged;
24
- private handleResize;
28
+ private readonly debouncedHandleResize;
25
29
  private updateVisibility;
26
30
  private updateDimensions;
27
31
  }
@@ -1,47 +1,63 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  const ts_debounce_1 = require("ts-debounce");
4
13
  const events_1 = require("../events");
14
+ const stats_1 = require("../stats");
15
+ const utils_1 = require("../utils");
5
16
  const Track_1 = require("./Track");
6
- const REACTION_DELAY = 1000;
17
+ const REACTION_DELAY = 100;
7
18
  class RemoteVideoTrack extends Track_1.Track {
8
- constructor(mediaTrack, sid, receiver, autoManaged) {
19
+ constructor(mediaTrack, sid, receiver, adaptiveStream) {
9
20
  super(mediaTrack, Track_1.Track.Kind.Video);
10
21
  this.elementInfos = [];
11
- this.handleVisibilityChanged = (entries) => {
12
- for (const entry of entries) {
13
- const { target, isIntersecting } = entry;
14
- const elementInfo = this.elementInfos.find((info) => info.element === target);
15
- if (elementInfo) {
16
- elementInfo.visible = isIntersecting;
17
- elementInfo.visibilityChangedAt = Date.now();
18
- }
22
+ this._currentBitrate = 0;
23
+ this.monitorReceiver = () => __awaiter(this, void 0, void 0, function* () {
24
+ if (!this.receiver) {
25
+ this._currentBitrate = 0;
26
+ return;
27
+ }
28
+ const stats = yield this.getReceiverStats();
29
+ if (stats && this.prevStats) {
30
+ this._currentBitrate = stats_1.computeBitrate(stats, this.prevStats);
31
+ }
32
+ this.prevStats = stats;
33
+ setTimeout(() => {
34
+ this.monitorReceiver();
35
+ }, stats_1.monitorFrequency);
36
+ });
37
+ this.handleVisibilityChanged = (entry) => {
38
+ const { target, isIntersecting } = entry;
39
+ const elementInfo = this.elementInfos.find((info) => info.element === target);
40
+ if (elementInfo) {
41
+ elementInfo.visible = isIntersecting;
42
+ elementInfo.visibilityChangedAt = Date.now();
19
43
  }
20
44
  this.updateVisibility();
21
45
  };
22
- this.handleResize = (entries) => {
23
- for (const entry of entries) {
24
- const { target, contentRect } = entry;
25
- const elementInfo = this.elementInfos.find((info) => info.element === target);
26
- if (elementInfo) {
27
- elementInfo.width = contentRect.width;
28
- elementInfo.height = contentRect.height;
29
- }
30
- }
46
+ this.debouncedHandleResize = ts_debounce_1.debounce(() => {
31
47
  this.updateDimensions();
32
- };
48
+ }, REACTION_DELAY);
33
49
  // override id to parsed ID
34
50
  this.sid = sid;
35
51
  this.receiver = receiver;
36
- this.autoManaged = autoManaged;
37
- if (this.isAutoManaged) {
38
- this.intersectionObserver = new IntersectionObserver(this.handleVisibilityChanged);
39
- this.resizeObserver = new ResizeObserver(ts_debounce_1.debounce(this.handleResize, REACTION_DELAY));
40
- }
52
+ this.adaptiveStream = adaptiveStream;
41
53
  }
42
- get isAutoManaged() {
54
+ get isAdaptiveStream() {
43
55
  var _a;
44
- return (_a = this.autoManaged) !== null && _a !== void 0 ? _a : false;
56
+ return (_a = this.adaptiveStream) !== null && _a !== void 0 ? _a : false;
57
+ }
58
+ /** current receive bits per second */
59
+ get currentBitrate() {
60
+ return this._currentBitrate;
45
61
  }
46
62
  /** @internal */
47
63
  setMuted(muted) {
@@ -63,23 +79,27 @@ class RemoteVideoTrack extends Track_1.Track {
63
79
  if (!element) {
64
80
  element = super.attach();
65
81
  }
66
- super.attach(element);
67
- if (this.intersectionObserver && this.resizeObserver) {
82
+ else {
83
+ super.attach(element);
84
+ }
85
+ if (this.adaptiveStream) {
68
86
  this.elementInfos.push({
69
87
  element,
70
- visible: true,
71
- width: element.clientWidth,
72
- height: element.clientHeight,
88
+ visible: true, // default visible
73
89
  });
74
- this.intersectionObserver.observe(element);
75
- this.resizeObserver.observe(element);
90
+ element
91
+ .handleResize = this.debouncedHandleResize;
92
+ element
93
+ .handleVisibilityChanged = this.handleVisibilityChanged;
94
+ utils_1.getIntersectionObserver().observe(element);
95
+ utils_1.getResizeObserver().observe(element);
76
96
  }
77
97
  return element;
78
98
  }
79
99
  detach(element) {
80
100
  let detachedElements = [];
81
101
  if (element) {
82
- detachedElements.push(element);
102
+ this.stopObservingElement(element);
83
103
  return super.detach(element);
84
104
  }
85
105
  detachedElements = super.detach();
@@ -96,13 +116,46 @@ class RemoteVideoTrack extends Track_1.Track {
96
116
  // use `enabled` of track to enable re-use of transceiver
97
117
  super.disable();
98
118
  }
119
+ /* @internal */
120
+ startMonitor() {
121
+ setTimeout(() => {
122
+ this.monitorReceiver();
123
+ }, stats_1.monitorFrequency);
124
+ }
125
+ getReceiverStats() {
126
+ return __awaiter(this, void 0, void 0, function* () {
127
+ if (!this.receiver) {
128
+ return;
129
+ }
130
+ const stats = yield this.receiver.getStats();
131
+ let receiverStats;
132
+ stats.forEach((v) => {
133
+ if (v.type === 'inbound-rtp') {
134
+ receiverStats = {
135
+ type: 'video',
136
+ framesDecoded: v.framesDecoded,
137
+ framesDropped: v.framesDropped,
138
+ framesReceived: v.framesReceived,
139
+ packetsReceived: v.packetsReceived,
140
+ packetsLost: v.packetsLost,
141
+ frameWidth: v.frameWidth,
142
+ frameHeight: v.frameHeight,
143
+ pliCount: v.pliCount,
144
+ firCount: v.firCount,
145
+ nackCount: v.nackCount,
146
+ jitter: v.jitter,
147
+ timestamp: v.timestamp,
148
+ bytesReceived: v.bytesReceived,
149
+ };
150
+ }
151
+ });
152
+ return receiverStats;
153
+ });
154
+ }
99
155
  stopObservingElement(element) {
100
- if (this.intersectionObserver) {
101
- this.intersectionObserver.unobserve(element);
102
- }
103
- if (this.resizeObserver) {
104
- this.resizeObserver.unobserve(element);
105
- }
156
+ var _a, _b;
157
+ (_a = utils_1.getIntersectionObserver()) === null || _a === void 0 ? void 0 : _a.unobserve(element);
158
+ (_b = utils_1.getResizeObserver()) === null || _b === void 0 ? void 0 : _b.unobserve(element);
106
159
  this.elementInfos = this.elementInfos.filter((info) => info.element !== element);
107
160
  }
108
161
  updateVisibility() {
@@ -127,9 +180,9 @@ class RemoteVideoTrack extends Track_1.Track {
127
180
  let maxHeight = 0;
128
181
  for (const info of this.elementInfos) {
129
182
  if (info.visible) {
130
- if (info.width + info.height > maxWidth + maxHeight) {
131
- maxWidth = info.width;
132
- maxHeight = info.height;
183
+ if (info.element.clientWidth + info.element.clientHeight > maxWidth + maxHeight) {
184
+ maxWidth = info.element.clientWidth;
185
+ maxHeight = info.element.clientHeight;
133
186
  }
134
187
  }
135
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteVideoTrack.js","sourceRoot":"","sources":["../../../src/room/track/RemoteVideoTrack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteVideoTrack.js","sourceRoot":"","sources":["../../../src/room/track/RemoteVideoTrack.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
3
  import { TrackSource, TrackType } from '../../proto/livekit_models';
4
+ import { StreamState as ProtoStreamState } from '../../proto/livekit_rtc';
4
5
  export declare class Track extends EventEmitter {
5
6
  kind: Track.Kind;
6
- name: string;
7
7
  mediaStreamTrack: MediaStreamTrack;
8
8
  attachedElements: HTMLMediaElement[];
9
9
  isMuted: boolean;
10
+ streamState: Track.StreamState;
10
11
  source: Track.Source;
11
12
  /**
12
13
  * sid is set after track is published to server, or if it's a remote track
13
14
  */
14
15
  sid?: Track.SID;
15
- protected constructor(mediaTrack: MediaStreamTrack, kind: Track.Kind, name?: string);
16
+ protected constructor(mediaTrack: MediaStreamTrack, kind: Track.Kind);
16
17
  /**
17
18
  * creates a new HTMLAudioElement or HTMLVideoElement, attaches to it, and returns it
18
19
  */
@@ -53,6 +54,11 @@ export declare namespace Track {
53
54
  ScreenShareAudio = "screen_share_audio",
54
55
  Unknown = "unknown"
55
56
  }
57
+ enum StreamState {
58
+ Active = "active",
59
+ Paused = "paused",
60
+ Unknown = "unknown"
61
+ }
56
62
  interface Dimensions {
57
63
  width: number;
58
64
  height: number;
@@ -65,4 +71,6 @@ export declare namespace Track {
65
71
  function sourceToProto(s: Source): TrackSource;
66
72
  /** @internal */
67
73
  function sourceFromProto(s: TrackSource): Source;
74
+ /** @internal */
75
+ function streamStateFromProto(s: ProtoStreamState): StreamState;
68
76
  }
@@ -3,18 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.detachTrack = exports.attachToElement = exports.Track = void 0;
4
4
  const events_1 = require("events");
5
5
  const livekit_models_1 = require("../../proto/livekit_models");
6
+ const livekit_rtc_1 = require("../../proto/livekit_rtc");
6
7
  const events_2 = require("../events");
8
+ const utils_1 = require("../utils");
7
9
  // keep old audio elements when detached, we would re-use them since on iOS
8
10
  // Safari tracks which audio elements have been "blessed" by the user.
9
11
  const recycledElements = [];
10
12
  class Track extends events_1.EventEmitter {
11
- constructor(mediaTrack, kind, name) {
13
+ constructor(mediaTrack, kind) {
12
14
  super();
13
15
  this.attachedElements = [];
14
16
  this.isMuted = false;
17
+ this.streamState = Track.StreamState.Active;
15
18
  this.kind = kind;
16
19
  this.mediaStreamTrack = mediaTrack;
17
- this.name = name || '';
18
20
  this.source = Track.Source.Unknown;
19
21
  }
20
22
  attach(element) {
@@ -129,6 +131,13 @@ function attachToElement(track, element) {
129
131
  mediaStream.removeTrack(et);
130
132
  });
131
133
  mediaStream.addTrack(track);
134
+ if (utils_1.isFireFox()) {
135
+ // sometimes firefox doesn't render local video on the first try.
136
+ // It needs to be re-attached after a timeout.
137
+ setTimeout(() => {
138
+ element.srcObject = mediaStream;
139
+ }, 1);
140
+ }
132
141
  }
133
142
  exports.attachToElement = attachToElement;
134
143
  /** @internal */
@@ -155,6 +164,12 @@ exports.detachTrack = detachTrack;
155
164
  Source["ScreenShareAudio"] = "screen_share_audio";
156
165
  Source["Unknown"] = "unknown";
157
166
  })(Source = Track.Source || (Track.Source = {}));
167
+ let StreamState;
168
+ (function (StreamState) {
169
+ StreamState["Active"] = "active";
170
+ StreamState["Paused"] = "paused";
171
+ StreamState["Unknown"] = "unknown";
172
+ })(StreamState = Track.StreamState || (Track.StreamState = {}));
158
173
  /** @internal */
159
174
  function kindToProto(k) {
160
175
  switch (k) {
@@ -211,5 +226,17 @@ exports.detachTrack = detachTrack;
211
226
  }
212
227
  }
213
228
  Track.sourceFromProto = sourceFromProto;
229
+ /** @internal */
230
+ function streamStateFromProto(s) {
231
+ switch (s) {
232
+ case livekit_rtc_1.StreamState.ACTIVE:
233
+ return StreamState.Active;
234
+ case livekit_rtc_1.StreamState.PAUSED:
235
+ return StreamState.Paused;
236
+ default:
237
+ return StreamState.Unknown;
238
+ }
239
+ }
240
+ Track.streamStateFromProto = streamStateFromProto;
214
241
  })(Track = exports.Track || (exports.Track = {}));
215
242
  //# sourceMappingURL=Track.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Track.js","sourceRoot":"","sources":["../../../src/room/track/Track.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Track.js","sourceRoot":"","sources":["../../../src/room/track/Track.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ export default class TrackPublication extends EventEmitter {
12
12
  trackSid: Track.SID;
13
13
  track?: Track;
14
14
  source: Track.Source;
15
+ /** MimeType of the published track */
16
+ mimeType?: string;
15
17
  /** dimension of the original published stream, video-only */
16
18
  dimensions?: Track.Dimensions;
17
19
  /** true if track was simulcasted to server, video-only */
@@ -62,6 +62,7 @@ class TrackPublication extends events_1.EventEmitter {
62
62
  this.trackSid = info.sid;
63
63
  this.trackName = info.name;
64
64
  this.source = Track_1.Track.sourceFromProto(info.source);
65
+ this.mimeType = info.mimeType;
65
66
  if (this.kind === Track_1.Track.Kind.Video && info.width > 0) {
66
67
  this.dimensions = {
67
68
  width: info.width,
@@ -1 +1 @@
1
- {"version":3,"file":"TrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/TrackPublication.ts"],"names":[],"mappings":";;;;;AAAA,mCAAsC;AAEtC,sCAAuC;AACvC,wEAAgD;AAChD,wEAAgD;AAChD,0EAAkD;AAClD,0EAAkD;AAClD,mCAAgC;AAEhC,MAAqB,gBAAiB,SAAQ,qBAAY;IAmBxD,YAAY,IAAgB,EAAE,EAAU,EAAE,IAAY;QACpD,KAAK,EAAE,CAAC;QAHA,kBAAa,GAAY,KAAK,CAAC;QAIvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,aAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IACrC,CAAC;IAED,gBAAgB;IAChB,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,KAAK,EAAE;YACT,iBAAiB;YACjB,KAAK,CAAC,EAAE,CAAC,mBAAU,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC9B,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,mBAAU,CAAC,OAAO,EAAE,GAAG,EAAE;gBAChC,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,IAAI,IAAI,CAAC,KAAK,YAAY,yBAAe,IAAI,IAAI,CAAC,KAAK,YAAY,0BAAgB,EAAE;YACnF,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;IACH,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,IAAI,IAAI,CAAC,KAAK,YAAY,yBAAe,IAAI,IAAI,CAAC,KAAK,YAAY,0BAAgB,EAAE;YACnF,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;IACH,CAAC;IAED,gBAAgB;IAChB,UAAU,CAAC,IAAe;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,aAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YACpD,IAAI,CAAC,UAAU,GAAG;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;SACnC;IACH,CAAC;CACF;AAtFD,mCAsFC"}
1
+ {"version":3,"file":"TrackPublication.js","sourceRoot":"","sources":["../../../src/room/track/TrackPublication.ts"],"names":[],"mappings":";;;;;AAAA,mCAAsC;AAEtC,sCAAuC;AACvC,wEAAgD;AAChD,wEAAgD;AAChD,0EAAkD;AAClD,0EAAkD;AAClD,mCAAgC;AAEhC,MAAqB,gBAAiB,SAAQ,qBAAY;IAsBxD,YAAY,IAAgB,EAAE,EAAU,EAAE,IAAY;QACpD,KAAK,EAAE,CAAC;QAHA,kBAAa,GAAY,KAAK,CAAC;QAIvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,aAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IACrC,CAAC;IAED,gBAAgB;IAChB,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,KAAK,EAAE;YACT,iBAAiB;YACjB,KAAK,CAAC,EAAE,CAAC,mBAAU,CAAC,KAAK,EAAE,GAAG,EAAE;gBAC9B,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,mBAAU,CAAC,OAAO,EAAE,GAAG,EAAE;gBAChC,IAAI,CAAC,IAAI,CAAC,mBAAU,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,IAAI,IAAI,CAAC,KAAK,YAAY,yBAAe,IAAI,IAAI,CAAC,KAAK,YAAY,0BAAgB,EAAE;YACnF,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;IACH,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,IAAI,IAAI,CAAC,KAAK,YAAY,yBAAe,IAAI,IAAI,CAAC,KAAK,YAAY,0BAAgB,EAAE;YACnF,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;IACH,CAAC;IAED,gBAAgB;IAChB,UAAU,CAAC,IAAe;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,aAAK,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,aAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YACpD,IAAI,CAAC,UAAU,GAAG;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;SACnC;IACH,CAAC;CACF;AA1FD,mCA0FC"}
@@ -1,9 +1,7 @@
1
1
  import LocalAudioTrack from './LocalAudioTrack';
2
2
  import LocalTrack from './LocalTrack';
3
3
  import LocalVideoTrack from './LocalVideoTrack';
4
- import { CreateAudioTrackOptions, CreateLocalTracksOptions, CreateScreenTrackOptions, CreateVideoTrackOptions } from './options';
5
- export declare function getLastAudioCreateError(): Error | undefined;
6
- export declare function getLastVideoCreateError(): Error | undefined;
4
+ import { AudioCaptureOptions, CreateLocalTracksOptions, ScreenShareCaptureOptions, VideoCaptureOptions } from './options';
7
5
  /**
8
6
  * Creates a local video and audio track at the same time. When acquiring both
9
7
  * audio and video tracks together, it'll display a single permission prompt to
@@ -15,11 +13,11 @@ export declare function createLocalTracks(options?: CreateLocalTracksOptions): P
15
13
  * Creates a [[LocalVideoTrack]] with getUserMedia()
16
14
  * @param options
17
15
  */
18
- export declare function createLocalVideoTrack(options?: CreateVideoTrackOptions): Promise<LocalVideoTrack>;
19
- export declare function createLocalAudioTrack(options?: CreateAudioTrackOptions): Promise<LocalAudioTrack>;
16
+ export declare function createLocalVideoTrack(options?: VideoCaptureOptions): Promise<LocalVideoTrack>;
17
+ export declare function createLocalAudioTrack(options?: AudioCaptureOptions): Promise<LocalAudioTrack>;
20
18
  /**
21
19
  * Creates a screen capture tracks with getDisplayMedia().
22
20
  * A LocalVideoTrack is always created and returned.
23
21
  * If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.
24
22
  */
25
- export declare function createLocalScreenTracks(options?: CreateScreenTrackOptions): Promise<Array<LocalTrack>>;
23
+ export declare function createLocalScreenTracks(options?: ScreenShareCaptureOptions): Promise<Array<LocalTrack>>;