@whereby.com/media 8.2.2 → 8.2.3

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/dist/index.cjs CHANGED
@@ -544,25 +544,22 @@ class Session {
544
544
  this.pc.addTrack(track, stream);
545
545
  });
546
546
  }
547
- addTrack(track, stream) {
547
+ addTrack(track) {
548
548
  var _a;
549
549
  if (track.kind === "video" && ((_a = this._mediaPrefs) === null || _a === void 0 ? void 0 : _a.wantsVideo) === false) {
550
550
  return;
551
551
  }
552
- if (!stream) {
553
- stream = this.streams[0];
554
- }
552
+ const stream = this.streams[0];
553
+ this._incrementAnalyticMetric("P2PSessionAddTrack");
554
+ rtcStats.sendEvent("P2PSessionAddTrack", {
555
+ trackId: track.id,
556
+ kind: track.kind,
557
+ hasSessionStream: !!stream,
558
+ trackOfSameKindInStream: !!(stream === null || stream === void 0 ? void 0 : stream.getTracks().filter((t) => t.kind === track.kind && t.id !== track.id).length),
559
+ });
555
560
  stream === null || stream === void 0 ? void 0 : stream.addTrack(track);
556
561
  this.pc.addTrack(track, stream);
557
562
  }
558
- removeTrack(track) {
559
- const stream = this.streams[0];
560
- stream.removeTrack(track);
561
- const sender = this.pc.getSenders().find((sender) => sender.track === track);
562
- if (sender) {
563
- this.pc.removeTrack(sender);
564
- }
565
- }
566
563
  removeStream(stream) {
567
564
  const streamIdIndex = this.streamIds.indexOf(stream.id);
568
565
  if (streamIdIndex !== -1) {
@@ -2543,7 +2540,8 @@ class P2pRtcManager {
2543
2540
  P2PMicNotWorking: 0,
2544
2541
  P2PLocalNetworkFailed: 0,
2545
2542
  P2PRelayedIceCandidate: 0,
2546
- P2PAddStoppedVideoTrack: 0,
2543
+ P2PSessionAddTrack: 0,
2544
+ P2PAddTrackToPeerConnections: 0,
2547
2545
  };
2548
2546
  }
2549
2547
  numberOfPeerconnections() {
@@ -3101,8 +3099,6 @@ class P2pRtcManager {
3101
3099
  }
3102
3100
  if (this._localCameraStream && !this._localCameraStream.getVideoTracks().length && this._stoppedVideoTrack) {
3103
3101
  pc.addTrack(this._stoppedVideoTrack, this._localCameraStream);
3104
- this.analytics.P2PAddStoppedVideoTrack++;
3105
- rtcStats.sendEvent("P2PAddStoppedVideoTrack", { trackId: this._stoppedVideoTrack.id });
3106
3102
  }
3107
3103
  return session;
3108
3104
  }
@@ -3126,9 +3122,15 @@ class P2pRtcManager {
3126
3122
  this._withForcedRenegotiation(session, () => session.addStream(stream));
3127
3123
  });
3128
3124
  }
3129
- _addTrackToPeerConnections(track, stream) {
3125
+ _addTrackToPeerConnections(track) {
3126
+ this.analytics.P2PAddTrackToPeerConnections++;
3127
+ rtcStats.sendEvent("P2PAddTrackToPeerConnections", {
3128
+ trackId: track.id,
3129
+ kind: track.kind,
3130
+ readyState: track.readyState,
3131
+ });
3130
3132
  this._forEachPeerConnection((session) => {
3131
- this._withForcedRenegotiation(session, () => session.addTrack(track, stream));
3133
+ this._withForcedRenegotiation(session, () => session.addTrack(track));
3132
3134
  });
3133
3135
  }
3134
3136
  _replaceTrackToPeerConnections(oldTrack, newTrack) {
@@ -3164,11 +3166,6 @@ class P2pRtcManager {
3164
3166
  this._withForcedRenegotiation(session, () => session.removeStream(stream));
3165
3167
  });
3166
3168
  }
3167
- _removeTrackFromPeerConnections(track) {
3168
- this._forEachPeerConnection((session) => {
3169
- this._withForcedRenegotiation(session, () => session.removeTrack(track));
3170
- });
3171
- }
3172
3169
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, mediaserverConfigTtlSeconds, }) {
3173
3170
  this._iceServers = iceServers;
3174
3171
  this._turnServers = turnServers;
package/dist/index.d.cts CHANGED
@@ -1294,8 +1294,7 @@ declare class Session {
1294
1294
  pendingReplaceTrackActions: (() => Promise<void>)[];
1295
1295
  constructor({ clientId, bandwidth, peerConnectionConfig, deprioritizeH264Encoding, incrementAnalyticMetric, mediaPrefs, }: P2PSessionOptions);
1296
1296
  addStream(stream: MediaStream): void;
1297
- addTrack(track: MediaStreamTrack, stream?: MediaStream): void;
1298
- removeTrack(track: MediaStreamTrack): void;
1297
+ addTrack(track: MediaStreamTrack): void;
1299
1298
  removeStream(stream: MediaStream): void;
1300
1299
  _setRemoteDescription(desc: SignalRTCSessionDescription): Promise<void>;
1301
1300
  handleOffer(offer: SignalRTCSessionDescription): Promise<SignalRTCSessionDescription>;
@@ -1345,7 +1344,8 @@ type P2PAnalytics = {
1345
1344
  P2PMicNotWorking: number;
1346
1345
  P2PLocalNetworkFailed: number;
1347
1346
  P2PRelayedIceCandidate: number;
1348
- P2PAddStoppedVideoTrack: number;
1347
+ P2PSessionAddTrack: number;
1348
+ P2PAddTrackToPeerConnections: number;
1349
1349
  };
1350
1350
  type P2PAnalyticMetric = keyof P2PAnalytics;
1351
1351
  type P2PIncrementAnalyticMetric = (metric: P2PAnalyticMetric) => void;
@@ -1417,10 +1417,9 @@ declare class P2pRtcManager implements RtcManager {
1417
1417
  _cleanup(clientId: string): void;
1418
1418
  _forEachPeerConnection(func: any): void;
1419
1419
  _addStreamToPeerConnections(stream: MediaStream): void;
1420
- _addTrackToPeerConnections(track: MediaStreamTrack, stream?: MediaStream): void;
1420
+ _addTrackToPeerConnections(track: MediaStreamTrack): void;
1421
1421
  _replaceTrackToPeerConnections(oldTrack: any, newTrack: any): Promise<void | any[]>;
1422
1422
  _removeStreamFromPeerConnections(stream: MediaStream): void;
1423
- _removeTrackFromPeerConnections(track: MediaStreamTrack): void;
1424
1423
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, mediaserverConfigTtlSeconds, }: SignalMediaServerConfig): void;
1425
1424
  _clearMediaServersRefresh(): void;
1426
1425
  _monitorAudioTrack(track: MediaStreamTrack): void;
package/dist/index.d.mts CHANGED
@@ -1294,8 +1294,7 @@ declare class Session {
1294
1294
  pendingReplaceTrackActions: (() => Promise<void>)[];
1295
1295
  constructor({ clientId, bandwidth, peerConnectionConfig, deprioritizeH264Encoding, incrementAnalyticMetric, mediaPrefs, }: P2PSessionOptions);
1296
1296
  addStream(stream: MediaStream): void;
1297
- addTrack(track: MediaStreamTrack, stream?: MediaStream): void;
1298
- removeTrack(track: MediaStreamTrack): void;
1297
+ addTrack(track: MediaStreamTrack): void;
1299
1298
  removeStream(stream: MediaStream): void;
1300
1299
  _setRemoteDescription(desc: SignalRTCSessionDescription): Promise<void>;
1301
1300
  handleOffer(offer: SignalRTCSessionDescription): Promise<SignalRTCSessionDescription>;
@@ -1345,7 +1344,8 @@ type P2PAnalytics = {
1345
1344
  P2PMicNotWorking: number;
1346
1345
  P2PLocalNetworkFailed: number;
1347
1346
  P2PRelayedIceCandidate: number;
1348
- P2PAddStoppedVideoTrack: number;
1347
+ P2PSessionAddTrack: number;
1348
+ P2PAddTrackToPeerConnections: number;
1349
1349
  };
1350
1350
  type P2PAnalyticMetric = keyof P2PAnalytics;
1351
1351
  type P2PIncrementAnalyticMetric = (metric: P2PAnalyticMetric) => void;
@@ -1417,10 +1417,9 @@ declare class P2pRtcManager implements RtcManager {
1417
1417
  _cleanup(clientId: string): void;
1418
1418
  _forEachPeerConnection(func: any): void;
1419
1419
  _addStreamToPeerConnections(stream: MediaStream): void;
1420
- _addTrackToPeerConnections(track: MediaStreamTrack, stream?: MediaStream): void;
1420
+ _addTrackToPeerConnections(track: MediaStreamTrack): void;
1421
1421
  _replaceTrackToPeerConnections(oldTrack: any, newTrack: any): Promise<void | any[]>;
1422
1422
  _removeStreamFromPeerConnections(stream: MediaStream): void;
1423
- _removeTrackFromPeerConnections(track: MediaStreamTrack): void;
1424
1423
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, mediaserverConfigTtlSeconds, }: SignalMediaServerConfig): void;
1425
1424
  _clearMediaServersRefresh(): void;
1426
1425
  _monitorAudioTrack(track: MediaStreamTrack): void;
package/dist/index.d.ts CHANGED
@@ -1294,8 +1294,7 @@ declare class Session {
1294
1294
  pendingReplaceTrackActions: (() => Promise<void>)[];
1295
1295
  constructor({ clientId, bandwidth, peerConnectionConfig, deprioritizeH264Encoding, incrementAnalyticMetric, mediaPrefs, }: P2PSessionOptions);
1296
1296
  addStream(stream: MediaStream): void;
1297
- addTrack(track: MediaStreamTrack, stream?: MediaStream): void;
1298
- removeTrack(track: MediaStreamTrack): void;
1297
+ addTrack(track: MediaStreamTrack): void;
1299
1298
  removeStream(stream: MediaStream): void;
1300
1299
  _setRemoteDescription(desc: SignalRTCSessionDescription): Promise<void>;
1301
1300
  handleOffer(offer: SignalRTCSessionDescription): Promise<SignalRTCSessionDescription>;
@@ -1345,7 +1344,8 @@ type P2PAnalytics = {
1345
1344
  P2PMicNotWorking: number;
1346
1345
  P2PLocalNetworkFailed: number;
1347
1346
  P2PRelayedIceCandidate: number;
1348
- P2PAddStoppedVideoTrack: number;
1347
+ P2PSessionAddTrack: number;
1348
+ P2PAddTrackToPeerConnections: number;
1349
1349
  };
1350
1350
  type P2PAnalyticMetric = keyof P2PAnalytics;
1351
1351
  type P2PIncrementAnalyticMetric = (metric: P2PAnalyticMetric) => void;
@@ -1417,10 +1417,9 @@ declare class P2pRtcManager implements RtcManager {
1417
1417
  _cleanup(clientId: string): void;
1418
1418
  _forEachPeerConnection(func: any): void;
1419
1419
  _addStreamToPeerConnections(stream: MediaStream): void;
1420
- _addTrackToPeerConnections(track: MediaStreamTrack, stream?: MediaStream): void;
1420
+ _addTrackToPeerConnections(track: MediaStreamTrack): void;
1421
1421
  _replaceTrackToPeerConnections(oldTrack: any, newTrack: any): Promise<void | any[]>;
1422
1422
  _removeStreamFromPeerConnections(stream: MediaStream): void;
1423
- _removeTrackFromPeerConnections(track: MediaStreamTrack): void;
1424
1423
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, mediaserverConfigTtlSeconds, }: SignalMediaServerConfig): void;
1425
1424
  _clearMediaServersRefresh(): void;
1426
1425
  _monitorAudioTrack(track: MediaStreamTrack): void;
package/dist/index.mjs CHANGED
@@ -523,25 +523,22 @@ class Session {
523
523
  this.pc.addTrack(track, stream);
524
524
  });
525
525
  }
526
- addTrack(track, stream) {
526
+ addTrack(track) {
527
527
  var _a;
528
528
  if (track.kind === "video" && ((_a = this._mediaPrefs) === null || _a === void 0 ? void 0 : _a.wantsVideo) === false) {
529
529
  return;
530
530
  }
531
- if (!stream) {
532
- stream = this.streams[0];
533
- }
531
+ const stream = this.streams[0];
532
+ this._incrementAnalyticMetric("P2PSessionAddTrack");
533
+ rtcStats.sendEvent("P2PSessionAddTrack", {
534
+ trackId: track.id,
535
+ kind: track.kind,
536
+ hasSessionStream: !!stream,
537
+ trackOfSameKindInStream: !!(stream === null || stream === void 0 ? void 0 : stream.getTracks().filter((t) => t.kind === track.kind && t.id !== track.id).length),
538
+ });
534
539
  stream === null || stream === void 0 ? void 0 : stream.addTrack(track);
535
540
  this.pc.addTrack(track, stream);
536
541
  }
537
- removeTrack(track) {
538
- const stream = this.streams[0];
539
- stream.removeTrack(track);
540
- const sender = this.pc.getSenders().find((sender) => sender.track === track);
541
- if (sender) {
542
- this.pc.removeTrack(sender);
543
- }
544
- }
545
542
  removeStream(stream) {
546
543
  const streamIdIndex = this.streamIds.indexOf(stream.id);
547
544
  if (streamIdIndex !== -1) {
@@ -2522,7 +2519,8 @@ class P2pRtcManager {
2522
2519
  P2PMicNotWorking: 0,
2523
2520
  P2PLocalNetworkFailed: 0,
2524
2521
  P2PRelayedIceCandidate: 0,
2525
- P2PAddStoppedVideoTrack: 0,
2522
+ P2PSessionAddTrack: 0,
2523
+ P2PAddTrackToPeerConnections: 0,
2526
2524
  };
2527
2525
  }
2528
2526
  numberOfPeerconnections() {
@@ -3080,8 +3078,6 @@ class P2pRtcManager {
3080
3078
  }
3081
3079
  if (this._localCameraStream && !this._localCameraStream.getVideoTracks().length && this._stoppedVideoTrack) {
3082
3080
  pc.addTrack(this._stoppedVideoTrack, this._localCameraStream);
3083
- this.analytics.P2PAddStoppedVideoTrack++;
3084
- rtcStats.sendEvent("P2PAddStoppedVideoTrack", { trackId: this._stoppedVideoTrack.id });
3085
3081
  }
3086
3082
  return session;
3087
3083
  }
@@ -3105,9 +3101,15 @@ class P2pRtcManager {
3105
3101
  this._withForcedRenegotiation(session, () => session.addStream(stream));
3106
3102
  });
3107
3103
  }
3108
- _addTrackToPeerConnections(track, stream) {
3104
+ _addTrackToPeerConnections(track) {
3105
+ this.analytics.P2PAddTrackToPeerConnections++;
3106
+ rtcStats.sendEvent("P2PAddTrackToPeerConnections", {
3107
+ trackId: track.id,
3108
+ kind: track.kind,
3109
+ readyState: track.readyState,
3110
+ });
3109
3111
  this._forEachPeerConnection((session) => {
3110
- this._withForcedRenegotiation(session, () => session.addTrack(track, stream));
3112
+ this._withForcedRenegotiation(session, () => session.addTrack(track));
3111
3113
  });
3112
3114
  }
3113
3115
  _replaceTrackToPeerConnections(oldTrack, newTrack) {
@@ -3143,11 +3145,6 @@ class P2pRtcManager {
3143
3145
  this._withForcedRenegotiation(session, () => session.removeStream(stream));
3144
3146
  });
3145
3147
  }
3146
- _removeTrackFromPeerConnections(track) {
3147
- this._forEachPeerConnection((session) => {
3148
- this._withForcedRenegotiation(session, () => session.removeTrack(track));
3149
- });
3150
- }
3151
3148
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, mediaserverConfigTtlSeconds, }) {
3152
3149
  this._iceServers = iceServers;
3153
3150
  this._turnServers = turnServers;
@@ -523,25 +523,22 @@ class Session {
523
523
  this.pc.addTrack(track, stream);
524
524
  });
525
525
  }
526
- addTrack(track, stream) {
526
+ addTrack(track) {
527
527
  var _a;
528
528
  if (track.kind === "video" && ((_a = this._mediaPrefs) === null || _a === void 0 ? void 0 : _a.wantsVideo) === false) {
529
529
  return;
530
530
  }
531
- if (!stream) {
532
- stream = this.streams[0];
533
- }
531
+ const stream = this.streams[0];
532
+ this._incrementAnalyticMetric("P2PSessionAddTrack");
533
+ rtcStats.sendEvent("P2PSessionAddTrack", {
534
+ trackId: track.id,
535
+ kind: track.kind,
536
+ hasSessionStream: !!stream,
537
+ trackOfSameKindInStream: !!(stream === null || stream === void 0 ? void 0 : stream.getTracks().filter((t) => t.kind === track.kind && t.id !== track.id).length),
538
+ });
534
539
  stream === null || stream === void 0 ? void 0 : stream.addTrack(track);
535
540
  this.pc.addTrack(track, stream);
536
541
  }
537
- removeTrack(track) {
538
- const stream = this.streams[0];
539
- stream.removeTrack(track);
540
- const sender = this.pc.getSenders().find((sender) => sender.track === track);
541
- if (sender) {
542
- this.pc.removeTrack(sender);
543
- }
544
- }
545
542
  removeStream(stream) {
546
543
  const streamIdIndex = this.streamIds.indexOf(stream.id);
547
544
  if (streamIdIndex !== -1) {
@@ -2522,7 +2519,8 @@ class P2pRtcManager {
2522
2519
  P2PMicNotWorking: 0,
2523
2520
  P2PLocalNetworkFailed: 0,
2524
2521
  P2PRelayedIceCandidate: 0,
2525
- P2PAddStoppedVideoTrack: 0,
2522
+ P2PSessionAddTrack: 0,
2523
+ P2PAddTrackToPeerConnections: 0,
2526
2524
  };
2527
2525
  }
2528
2526
  numberOfPeerconnections() {
@@ -3080,8 +3078,6 @@ class P2pRtcManager {
3080
3078
  }
3081
3079
  if (this._localCameraStream && !this._localCameraStream.getVideoTracks().length && this._stoppedVideoTrack) {
3082
3080
  pc.addTrack(this._stoppedVideoTrack, this._localCameraStream);
3083
- this.analytics.P2PAddStoppedVideoTrack++;
3084
- rtcStats.sendEvent("P2PAddStoppedVideoTrack", { trackId: this._stoppedVideoTrack.id });
3085
3081
  }
3086
3082
  return session;
3087
3083
  }
@@ -3105,9 +3101,15 @@ class P2pRtcManager {
3105
3101
  this._withForcedRenegotiation(session, () => session.addStream(stream));
3106
3102
  });
3107
3103
  }
3108
- _addTrackToPeerConnections(track, stream) {
3104
+ _addTrackToPeerConnections(track) {
3105
+ this.analytics.P2PAddTrackToPeerConnections++;
3106
+ rtcStats.sendEvent("P2PAddTrackToPeerConnections", {
3107
+ trackId: track.id,
3108
+ kind: track.kind,
3109
+ readyState: track.readyState,
3110
+ });
3109
3111
  this._forEachPeerConnection((session) => {
3110
- this._withForcedRenegotiation(session, () => session.addTrack(track, stream));
3112
+ this._withForcedRenegotiation(session, () => session.addTrack(track));
3111
3113
  });
3112
3114
  }
3113
3115
  _replaceTrackToPeerConnections(oldTrack, newTrack) {
@@ -3143,11 +3145,6 @@ class P2pRtcManager {
3143
3145
  this._withForcedRenegotiation(session, () => session.removeStream(stream));
3144
3146
  });
3145
3147
  }
3146
- _removeTrackFromPeerConnections(track) {
3147
- this._forEachPeerConnection((session) => {
3148
- this._withForcedRenegotiation(session, () => session.removeTrack(track));
3149
- });
3150
- }
3151
3148
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, mediaserverConfigTtlSeconds, }) {
3152
3149
  this._iceServers = iceServers;
3153
3150
  this._turnServers = turnServers;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@whereby.com/media",
3
3
  "description": "Media library for Whereby",
4
- "version": "8.2.2",
4
+ "version": "8.2.3",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/whereby/sdk",
7
7
  "repository": {