@whereby.com/media 8.2.2 → 8.2.4

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) {
@@ -660,6 +657,7 @@ class Session {
660
657
  pc.oniceconnectionstatechange = null;
661
658
  pc.onicecandidate = null;
662
659
  pc.ontrack = null;
660
+ pc.onconnectionstatechange = null;
663
661
  try {
664
662
  pc.close();
665
663
  }
@@ -2543,7 +2541,8 @@ class P2pRtcManager {
2543
2541
  P2PMicNotWorking: 0,
2544
2542
  P2PLocalNetworkFailed: 0,
2545
2543
  P2PRelayedIceCandidate: 0,
2546
- P2PAddStoppedVideoTrack: 0,
2544
+ P2PSessionAddTrack: 0,
2545
+ P2PAddTrackToPeerConnections: 0,
2547
2546
  };
2548
2547
  }
2549
2548
  numberOfPeerconnections() {
@@ -3101,8 +3100,6 @@ class P2pRtcManager {
3101
3100
  }
3102
3101
  if (this._localCameraStream && !this._localCameraStream.getVideoTracks().length && this._stoppedVideoTrack) {
3103
3102
  pc.addTrack(this._stoppedVideoTrack, this._localCameraStream);
3104
- this.analytics.P2PAddStoppedVideoTrack++;
3105
- rtcStats.sendEvent("P2PAddStoppedVideoTrack", { trackId: this._stoppedVideoTrack.id });
3106
3103
  }
3107
3104
  return session;
3108
3105
  }
@@ -3126,9 +3123,15 @@ class P2pRtcManager {
3126
3123
  this._withForcedRenegotiation(session, () => session.addStream(stream));
3127
3124
  });
3128
3125
  }
3129
- _addTrackToPeerConnections(track, stream) {
3126
+ _addTrackToPeerConnections(track) {
3127
+ this.analytics.P2PAddTrackToPeerConnections++;
3128
+ rtcStats.sendEvent("P2PAddTrackToPeerConnections", {
3129
+ trackId: track.id,
3130
+ kind: track.kind,
3131
+ readyState: track.readyState,
3132
+ });
3130
3133
  this._forEachPeerConnection((session) => {
3131
- this._withForcedRenegotiation(session, () => session.addTrack(track, stream));
3134
+ this._withForcedRenegotiation(session, () => session.addTrack(track));
3132
3135
  });
3133
3136
  }
3134
3137
  _replaceTrackToPeerConnections(oldTrack, newTrack) {
@@ -3164,11 +3167,6 @@ class P2pRtcManager {
3164
3167
  this._withForcedRenegotiation(session, () => session.removeStream(stream));
3165
3168
  });
3166
3169
  }
3167
- _removeTrackFromPeerConnections(track) {
3168
- this._forEachPeerConnection((session) => {
3169
- this._withForcedRenegotiation(session, () => session.removeTrack(track));
3170
- });
3171
- }
3172
3170
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, mediaserverConfigTtlSeconds, }) {
3173
3171
  this._iceServers = iceServers;
3174
3172
  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) {
@@ -639,6 +636,7 @@ class Session {
639
636
  pc.oniceconnectionstatechange = null;
640
637
  pc.onicecandidate = null;
641
638
  pc.ontrack = null;
639
+ pc.onconnectionstatechange = null;
642
640
  try {
643
641
  pc.close();
644
642
  }
@@ -2522,7 +2520,8 @@ class P2pRtcManager {
2522
2520
  P2PMicNotWorking: 0,
2523
2521
  P2PLocalNetworkFailed: 0,
2524
2522
  P2PRelayedIceCandidate: 0,
2525
- P2PAddStoppedVideoTrack: 0,
2523
+ P2PSessionAddTrack: 0,
2524
+ P2PAddTrackToPeerConnections: 0,
2526
2525
  };
2527
2526
  }
2528
2527
  numberOfPeerconnections() {
@@ -3080,8 +3079,6 @@ class P2pRtcManager {
3080
3079
  }
3081
3080
  if (this._localCameraStream && !this._localCameraStream.getVideoTracks().length && this._stoppedVideoTrack) {
3082
3081
  pc.addTrack(this._stoppedVideoTrack, this._localCameraStream);
3083
- this.analytics.P2PAddStoppedVideoTrack++;
3084
- rtcStats.sendEvent("P2PAddStoppedVideoTrack", { trackId: this._stoppedVideoTrack.id });
3085
3082
  }
3086
3083
  return session;
3087
3084
  }
@@ -3105,9 +3102,15 @@ class P2pRtcManager {
3105
3102
  this._withForcedRenegotiation(session, () => session.addStream(stream));
3106
3103
  });
3107
3104
  }
3108
- _addTrackToPeerConnections(track, stream) {
3105
+ _addTrackToPeerConnections(track) {
3106
+ this.analytics.P2PAddTrackToPeerConnections++;
3107
+ rtcStats.sendEvent("P2PAddTrackToPeerConnections", {
3108
+ trackId: track.id,
3109
+ kind: track.kind,
3110
+ readyState: track.readyState,
3111
+ });
3109
3112
  this._forEachPeerConnection((session) => {
3110
- this._withForcedRenegotiation(session, () => session.addTrack(track, stream));
3113
+ this._withForcedRenegotiation(session, () => session.addTrack(track));
3111
3114
  });
3112
3115
  }
3113
3116
  _replaceTrackToPeerConnections(oldTrack, newTrack) {
@@ -3143,11 +3146,6 @@ class P2pRtcManager {
3143
3146
  this._withForcedRenegotiation(session, () => session.removeStream(stream));
3144
3147
  });
3145
3148
  }
3146
- _removeTrackFromPeerConnections(track) {
3147
- this._forEachPeerConnection((session) => {
3148
- this._withForcedRenegotiation(session, () => session.removeTrack(track));
3149
- });
3150
- }
3151
3149
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, mediaserverConfigTtlSeconds, }) {
3152
3150
  this._iceServers = iceServers;
3153
3151
  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) {
@@ -639,6 +636,7 @@ class Session {
639
636
  pc.oniceconnectionstatechange = null;
640
637
  pc.onicecandidate = null;
641
638
  pc.ontrack = null;
639
+ pc.onconnectionstatechange = null;
642
640
  try {
643
641
  pc.close();
644
642
  }
@@ -2522,7 +2520,8 @@ class P2pRtcManager {
2522
2520
  P2PMicNotWorking: 0,
2523
2521
  P2PLocalNetworkFailed: 0,
2524
2522
  P2PRelayedIceCandidate: 0,
2525
- P2PAddStoppedVideoTrack: 0,
2523
+ P2PSessionAddTrack: 0,
2524
+ P2PAddTrackToPeerConnections: 0,
2526
2525
  };
2527
2526
  }
2528
2527
  numberOfPeerconnections() {
@@ -3080,8 +3079,6 @@ class P2pRtcManager {
3080
3079
  }
3081
3080
  if (this._localCameraStream && !this._localCameraStream.getVideoTracks().length && this._stoppedVideoTrack) {
3082
3081
  pc.addTrack(this._stoppedVideoTrack, this._localCameraStream);
3083
- this.analytics.P2PAddStoppedVideoTrack++;
3084
- rtcStats.sendEvent("P2PAddStoppedVideoTrack", { trackId: this._stoppedVideoTrack.id });
3085
3082
  }
3086
3083
  return session;
3087
3084
  }
@@ -3105,9 +3102,15 @@ class P2pRtcManager {
3105
3102
  this._withForcedRenegotiation(session, () => session.addStream(stream));
3106
3103
  });
3107
3104
  }
3108
- _addTrackToPeerConnections(track, stream) {
3105
+ _addTrackToPeerConnections(track) {
3106
+ this.analytics.P2PAddTrackToPeerConnections++;
3107
+ rtcStats.sendEvent("P2PAddTrackToPeerConnections", {
3108
+ trackId: track.id,
3109
+ kind: track.kind,
3110
+ readyState: track.readyState,
3111
+ });
3109
3112
  this._forEachPeerConnection((session) => {
3110
- this._withForcedRenegotiation(session, () => session.addTrack(track, stream));
3113
+ this._withForcedRenegotiation(session, () => session.addTrack(track));
3111
3114
  });
3112
3115
  }
3113
3116
  _replaceTrackToPeerConnections(oldTrack, newTrack) {
@@ -3143,11 +3146,6 @@ class P2pRtcManager {
3143
3146
  this._withForcedRenegotiation(session, () => session.removeStream(stream));
3144
3147
  });
3145
3148
  }
3146
- _removeTrackFromPeerConnections(track) {
3147
- this._forEachPeerConnection((session) => {
3148
- this._withForcedRenegotiation(session, () => session.removeTrack(track));
3149
- });
3150
- }
3151
3149
  _updateAndScheduleMediaServersRefresh({ iceServers, turnServers, mediaserverConfigTtlSeconds, }) {
3152
3150
  this._iceServers = iceServers;
3153
3151
  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.4",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/whereby/sdk",
7
7
  "repository": {