@100mslive/hms-video-store 0.2.69 → 0.2.70

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.
@@ -1000,7 +1000,7 @@ var HMSPlaylistType;
1000
1000
  * @param newHmsTracks this will be update if required
1001
1001
  * @param newHmsSDkTracks this is future value of local hms tacks map
1002
1002
  */
1003
- var mergeNewPeersInDraft = function mergeNewPeersInDraft(draftPeers, newPeers, newHmsTracks, newHmsSDkTracks) {
1003
+ var mergeNewPeersInDraft = function mergeNewPeersInDraft(draftPeers, newPeers) {
1004
1004
  var peerIDs = union(Object.keys(draftPeers), Object.keys(newPeers));
1005
1005
 
1006
1006
  for (var _iterator = _createForOfIteratorHelperLoose(peerIDs), _step; !(_step = _iterator()).done;) {
@@ -1013,7 +1013,6 @@ var mergeNewPeersInDraft = function mergeNewPeersInDraft(draftPeers, newPeers, n
1013
1013
  newPeer.auxiliaryTracks = oldPeer.auxiliaryTracks;
1014
1014
  }
1015
1015
 
1016
- handleLocalVideoReplaceTrack(oldPeer, newPeer, newHmsTracks, newHmsSDkTracks);
1017
1016
  Object.assign(oldPeer, newPeer);
1018
1017
  } else if (isEntityRemoved(oldPeer, newPeer)) {
1019
1018
  delete draftPeers[peerID];
@@ -1101,23 +1100,6 @@ var union = function union(arr1, arr2) {
1101
1100
 
1102
1101
  return Array.from(set);
1103
1102
  };
1104
- /**
1105
- * on replace track, use prev video track id in peer object, this is because we
1106
- * don't want the peer or peers object reference to change, the fact that the video
1107
- * track is changed on mute/unmute because of replace track is abstracted
1108
- */
1109
-
1110
-
1111
- function handleLocalVideoReplaceTrack(oldPeer, newPeer, newHmsTracks, newHmsSDkTracks) {
1112
- if (oldPeer.isLocal && oldPeer.videoTrack && newPeer.videoTrack && oldPeer.videoTrack !== newPeer.videoTrack) {
1113
- newHmsSDkTracks[oldPeer.videoTrack] = newHmsSDkTracks[newPeer.videoTrack];
1114
- delete newHmsSDkTracks[newPeer.videoTrack];
1115
- newHmsTracks[oldPeer.videoTrack] = newHmsTracks[newPeer.videoTrack];
1116
- newHmsTracks[oldPeer.videoTrack].id = oldPeer.videoTrack;
1117
- delete newHmsTracks[newPeer.videoTrack];
1118
- newPeer.videoTrack = oldPeer.videoTrack;
1119
- }
1120
- }
1121
1103
 
1122
1104
  var SDKToHMS = /*#__PURE__*/function () {
1123
1105
  function SDKToHMS() {}
@@ -1132,8 +1114,8 @@ var SDKToHMS = /*#__PURE__*/function () {
1132
1114
  isLocal: sdkPeer.isLocal,
1133
1115
  videoTrack: (_sdkPeer$videoTrack = sdkPeer.videoTrack) == null ? void 0 : _sdkPeer$videoTrack.trackId,
1134
1116
  audioTrack: (_sdkPeer$audioTrack = sdkPeer.audioTrack) == null ? void 0 : _sdkPeer$audioTrack.trackId,
1135
- auxiliaryTracks: sdkPeer.auxiliaryTracks.map(function (t) {
1136
- return t.trackId;
1117
+ auxiliaryTracks: sdkPeer.auxiliaryTracks.map(function (track) {
1118
+ return track.trackId;
1137
1119
  }),
1138
1120
  customerUserId: sdkPeer.customerUserId,
1139
1121
  customerDescription: sdkPeer.customerDescription
@@ -2719,46 +2701,26 @@ var HMSSDKActions = /*#__PURE__*/function () {
2719
2701
  Object.assign(draftStore.playlist, SDKToHMS.convertPlaylist(_this.sdk.getPlaylistManager()));
2720
2702
  }, action);
2721
2703
  };
2722
- /**
2723
- * Handle store update on remote track changes
2724
- * @param {string} action - 'trackAdded' | 'trackUpdate'
2725
- * @param {SDKHMSTrack} track - track added/updated
2726
- * @param {sdkTypes.HMSPeer}peer - peer on which track is added/updated
2727
- */
2728
-
2729
2704
 
2730
- this.syncRemoteTrackState = function (action, track, peer) {
2731
- HMSLogger.time(action + "-" + track.trackId);
2705
+ this.sendPeerUpdateNotification = function (type, sdkPeer) {
2706
+ var peer = _this.store.getState(selectPeerByID(sdkPeer.peerId));
2732
2707
 
2733
- _this.setState(function (draftStore) {
2734
- var draftPeer = draftStore.peers[peer.peerId];
2735
- /**
2736
- * in preview -> leave -> join flow or join -> leave -> join flow,
2737
- * since peer will be cleared by leave, set peer again in the store
2738
- **/
2739
-
2740
- if (!draftPeer) {
2741
- var hmsPeer = SDKToHMS.convertPeer(peer);
2742
- draftStore.peers[peer.peerId] = hmsPeer;
2743
- draftPeer = hmsPeer;
2744
- }
2708
+ var actionName = 'peerUpdate';
2745
2709
 
2746
- var hmsTrack = SDKToHMS.convertTrack(track, peer.peerId);
2710
+ if (type === HMSPeerUpdate.PEER_JOINED) {
2711
+ actionName = 'peerJoined';
2712
+ } else if (type === HMSPeerUpdate.PEER_LEFT) {
2713
+ actionName = 'peerLeft';
2714
+ }
2747
2715
 
2748
- if (action === 'trackAdded') {
2749
- draftStore.tracks[hmsTrack.id] = hmsTrack;
2716
+ _this.syncRoomState(actionName); // if peer wasn't available before sync(will happen if event is peer join)
2750
2717
 
2751
- _this.updateTracksInPeer(peer, draftPeer, hmsTrack);
2752
- } else if (draftStore.tracks[hmsTrack.id]) {
2753
- Object.assign(draftStore.tracks[hmsTrack.id], hmsTrack);
2754
- } else {
2755
- _this.logPossibleInconsistency("track " + hmsTrack.id + " not present, unable to update track");
2756
- }
2757
2718
 
2758
- _this.hmsSDKTracks[track.trackId] = track;
2759
- }, action);
2719
+ if (!peer) {
2720
+ peer = _this.store.getState(selectPeerByID(sdkPeer.peerId));
2721
+ }
2760
2722
 
2761
- HMSLogger.timeEnd(action + "-" + track.trackId);
2723
+ _this.hmsNotifications.sendPeerUpdate(type, peer);
2762
2724
  };
2763
2725
  /**
2764
2726
  * setState is separate so any future changes to how state change can be done from one place.
@@ -4213,7 +4175,7 @@ var HMSSDKActions = /*#__PURE__*/function () {
4213
4175
  var draftPeers = draftStore.peers;
4214
4176
  var draftTracks = draftStore.tracks; // the order of below statements are important as merge functions are mutating
4215
4177
 
4216
- mergeNewPeersInDraft(draftPeers, newHmsPeers, newHmsTracks, newHmsSDkTracks);
4178
+ mergeNewPeersInDraft(draftPeers, newHmsPeers);
4217
4179
  mergeNewTracksInDraft(draftTracks, newHmsTracks);
4218
4180
  Object.assign(draftStore.settings, newMediaSettings);
4219
4181
  _this9.hmsSDKTracks = newHmsSDkTracks;
@@ -4260,9 +4222,11 @@ var HMSSDKActions = /*#__PURE__*/function () {
4260
4222
  };
4261
4223
 
4262
4224
  _proto.onPeerUpdate = function onPeerUpdate(type, sdkPeer) {
4263
- if (type === HMSPeerUpdate.BECAME_DOMINANT_SPEAKER || type === HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER) {
4225
+ if ([HMSPeerUpdate.BECAME_DOMINANT_SPEAKER, HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(type)) {
4264
4226
  return; // ignore, high frequency update so no point of syncing peers
4265
- } else if (Array.isArray(sdkPeer)) {
4227
+ }
4228
+
4229
+ if (Array.isArray(sdkPeer)) {
4266
4230
  this.syncRoomState('peersJoined');
4267
4231
  var hmsPeers = [];
4268
4232
 
@@ -4276,9 +4240,10 @@ var HMSSDKActions = /*#__PURE__*/function () {
4276
4240
  }
4277
4241
 
4278
4242
  this.hmsNotifications.sendPeerList(hmsPeers);
4279
- } else {
4280
- this.peerUpdateInternal(type, sdkPeer);
4243
+ return;
4281
4244
  }
4245
+
4246
+ this.sendPeerUpdateNotification(type, sdkPeer);
4282
4247
  };
4283
4248
 
4284
4249
  _proto.onTrackUpdate = function onTrackUpdate(type, track, peer) {
@@ -4289,7 +4254,7 @@ var HMSSDKActions = /*#__PURE__*/function () {
4289
4254
  this.handleTrackRemove(track, peer);
4290
4255
  } else {
4291
4256
  var actionName = type === HMSTrackUpdate.TRACK_ADDED ? 'trackAdded' : 'trackUpdate';
4292
- this.syncRemoteTrackState(actionName, track, peer);
4257
+ this.syncRoomState(actionName);
4293
4258
  this.hmsNotifications.sendTrackUpdate(type, track.trackId);
4294
4259
  }
4295
4260
  };
@@ -4471,22 +4436,23 @@ var HMSSDKActions = /*#__PURE__*/function () {
4471
4436
 
4472
4437
  this.setState(function (draftStore) {
4473
4438
  var hmsPeer = draftStore.peers[sdkPeer.peerId];
4474
- var draftTracks = draftStore.tracks; // find and remove the exact track from hmsPeer
4439
+ var draftTracks = draftStore.tracks;
4440
+ var trackId = sdkTrack.trackId; // find and remove the exact track from hmsPeer
4475
4441
 
4476
- if (_this12.isSameStoreSDKTrack(sdkTrack.trackId, hmsPeer == null ? void 0 : hmsPeer.audioTrack)) {
4442
+ if (_this12.isSameStoreSDKTrack(trackId, hmsPeer == null ? void 0 : hmsPeer.audioTrack)) {
4477
4443
  hmsPeer == null ? true : delete hmsPeer.audioTrack;
4478
- } else if (_this12.isSameStoreSDKTrack(sdkTrack.trackId, hmsPeer == null ? void 0 : hmsPeer.videoTrack)) {
4444
+ } else if (_this12.isSameStoreSDKTrack(trackId, hmsPeer == null ? void 0 : hmsPeer.videoTrack)) {
4479
4445
  hmsPeer == null ? true : delete hmsPeer.videoTrack;
4480
4446
  } else {
4481
- var auxiliaryIndex = hmsPeer == null ? void 0 : hmsPeer.auxiliaryTracks.indexOf(sdkTrack.trackId);
4447
+ var auxiliaryIndex = hmsPeer == null ? void 0 : hmsPeer.auxiliaryTracks.indexOf(trackId);
4482
4448
 
4483
- if (auxiliaryIndex > -1 && _this12.isSameStoreSDKTrack(sdkTrack.trackId, hmsPeer == null ? void 0 : hmsPeer.auxiliaryTracks[auxiliaryIndex])) {
4449
+ if (auxiliaryIndex > -1 && _this12.isSameStoreSDKTrack(trackId, hmsPeer == null ? void 0 : hmsPeer.auxiliaryTracks[auxiliaryIndex])) {
4484
4450
  hmsPeer == null ? void 0 : hmsPeer.auxiliaryTracks.splice(auxiliaryIndex, 1);
4485
4451
  }
4486
4452
  }
4487
4453
 
4488
- delete draftTracks[sdkTrack.trackId];
4489
- delete _this12.hmsSDKTracks[sdkTrack.trackId];
4454
+ delete draftTracks[trackId];
4455
+ delete _this12.hmsSDKTracks[trackId];
4490
4456
  }, 'trackRemoved');
4491
4457
  };
4492
4458
 
@@ -4863,64 +4829,6 @@ var HMSSDKActions = /*#__PURE__*/function () {
4863
4829
  });
4864
4830
  };
4865
4831
 
4866
- _proto.peerUpdateInternal = function peerUpdateInternal(type, sdkPeer) {
4867
- var _this14 = this;
4868
-
4869
- // store peer in case it doesn't exist later(will happen if event is peer leave)
4870
- var peer = this.store.getState(selectPeerByID(sdkPeer.peerId));
4871
- var actionName = 'peerUpdate';
4872
-
4873
- if (type === HMSPeerUpdate.PEER_JOINED) {
4874
- actionName = 'peerJoined';
4875
- } else if (type === HMSPeerUpdate.PEER_LEFT) {
4876
- actionName = 'peerLeft';
4877
- }
4878
-
4879
- HMSLogger.time(actionName + "-" + sdkPeer.peerId);
4880
- this.setState(function (draftStore) {
4881
- if (actionName === 'peerLeft') {
4882
- var index = draftStore.room.peers.indexOf(sdkPeer.peerId);
4883
-
4884
- if (index > -1) {
4885
- draftStore.room.peers.splice(index, 1);
4886
- }
4887
-
4888
- delete draftStore.peers[sdkPeer.peerId];
4889
- delete _this14.hmsSDKPeers[sdkPeer.peerId];
4890
- } else {
4891
- var hmsPeer = SDKToHMS.convertPeer(sdkPeer);
4892
-
4893
- if (draftStore.peers[hmsPeer.id]) {
4894
- Object.assign(draftStore.peers[hmsPeer.id], hmsPeer);
4895
- } else {
4896
- draftStore.peers[hmsPeer.id] = hmsPeer;
4897
- draftStore.room.peers.push(hmsPeer.id);
4898
- }
4899
-
4900
- _this14.hmsSDKPeers[sdkPeer.peerId] = sdkPeer;
4901
- }
4902
- }, actionName);
4903
- HMSLogger.time(actionName + "-" + sdkPeer.peerId); // if peer wasn't available before sync(will happen if event is peer join)
4904
-
4905
- if (!peer) {
4906
- peer = this.store.getState(selectPeerByID(sdkPeer.peerId));
4907
- }
4908
-
4909
- this.hmsNotifications.sendPeerUpdate(type, peer);
4910
- };
4911
-
4912
- _proto.updateTracksInPeer = function updateTracksInPeer(peer, draftPeer, hmsTrack) {
4913
- var _peer$audioTrack, _peer$videoTrack;
4914
-
4915
- if (((_peer$audioTrack = peer.audioTrack) == null ? void 0 : _peer$audioTrack.trackId) === hmsTrack.id) {
4916
- draftPeer.audioTrack = hmsTrack.id;
4917
- } else if (((_peer$videoTrack = peer.videoTrack) == null ? void 0 : _peer$videoTrack.trackId) === hmsTrack.id) {
4918
- draftPeer.videoTrack = hmsTrack.id;
4919
- } else if (!draftPeer.auxiliaryTracks.includes(hmsTrack.id)) {
4920
- draftPeer.auxiliaryTracks.push(hmsTrack.id);
4921
- }
4922
- };
4923
-
4924
4832
  return HMSSDKActions;
4925
4833
  }();
4926
4834