ソースを参照

squash: Address review comments.

release-8443
Jaya Allamsetty 1年前
コミット
f16cadceca
4個のファイルの変更19行の追加34行の削除
  1. 10
    5
      JitsiConferenceEventManager.js
  2. 3
    6
      JitsiTrackEvents.spec.ts
  3. 2
    8
      JitsiTrackEvents.ts
  4. 4
    15
      modules/xmpp/JingleSessionPC.js

+ 10
- 5
JitsiConferenceEventManager.js ファイルの表示

@@ -173,11 +173,16 @@ JitsiConferenceEventManager.prototype.setupChatRoomListeners = function() {
173 173
         }
174 174
     });
175 175
 
176
-    chatRoom.addListener(JitsiTrackEvents.TRACK_OWNER_ADDED, track => {
177
-        conference.eventEmitter.emit(JitsiConferenceEvents.TRACK_ADDED, track);
178
-    });
179
-    chatRoom.addListener(JitsiTrackEvents.TRACK_OWNER_REMOVED, track => {
180
-        conference.eventEmitter.emit(JitsiConferenceEvents.TRACK_REMOVED, track);
176
+    chatRoom.addListener(JitsiTrackEvents.TRACK_OWNER_SET, (track, owner, sourceName, videoType) => {
177
+        if (track.getParticipantId() !== owner || track.getSourceName() !== sourceName) {
178
+            conference.eventEmitter.emit(JitsiConferenceEvents.TRACK_REMOVED, track);
179
+
180
+            // Update the owner and other properties on the track.
181
+            track.setOwner(owner);
182
+            track.setSourceName(sourceName);
183
+            track._setVideoType(videoType);
184
+            owner && conference.eventEmitter.emit(JitsiConferenceEvents.TRACK_ADDED, track);
185
+        }
181 186
     });
182 187
 
183 188
     this.chatRoomForwarder.forward(XMPPEvents.ROOM_JOIN_ERROR,

+ 3
- 6
JitsiTrackEvents.spec.ts ファイルの表示

@@ -8,8 +8,7 @@ describe( "/JitsiTrackEvents members", () => {
8 8
         TRACK_AUDIO_LEVEL_CHANGED,
9 9
         TRACK_AUDIO_OUTPUT_CHANGED,
10 10
         TRACK_MUTE_CHANGED,
11
-        TRACK_OWNER_ADDED,
12
-        TRACK_OWNER_REMOVED,
11
+        TRACK_OWNER_SET,
13 12
         TRACK_STREAMING_STATUS_CHANGED,
14 13
         TRACK_VIDEOTYPE_CHANGED,
15 14
         NO_DATA_FROM_SOURCE,
@@ -23,8 +22,7 @@ describe( "/JitsiTrackEvents members", () => {
23 22
         expect( TRACK_AUDIO_LEVEL_CHANGED ).toBe( 'track.audioLevelsChanged' );
24 23
         expect( TRACK_AUDIO_OUTPUT_CHANGED ).toBe( 'track.audioOutputChanged' );
25 24
         expect( TRACK_MUTE_CHANGED ).toBe( 'track.trackMuteChanged' );
26
-        expect( TRACK_OWNER_ADDED ).toBe( 'track.owner_added' );
27
-        expect( TRACK_OWNER_REMOVED ).toBe( 'track.owner_removed' );
25
+        expect( TRACK_OWNER_SET ).toBe( 'track.owner_set' );
28 26
         expect( TRACK_STREAMING_STATUS_CHANGED ).toBe( 'track.streaming_status_changed' );
29 27
         expect( TRACK_VIDEOTYPE_CHANGED ).toBe( 'track.videoTypeChanged' );
30 28
         expect( NO_DATA_FROM_SOURCE ).toBe( 'track.no_data_from_source' );
@@ -36,8 +34,7 @@ describe( "/JitsiTrackEvents members", () => {
36 34
         expect( JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED ).toBe( 'track.audioLevelsChanged' );
37 35
         expect( JitsiTrackEvents.TRACK_AUDIO_OUTPUT_CHANGED ).toBe( 'track.audioOutputChanged' );
38 36
         expect( JitsiTrackEvents.TRACK_MUTE_CHANGED ).toBe( 'track.trackMuteChanged' );
39
-        expect( JitsiTrackEvents.TRACK_OWNER_ADDED ).toBe( 'track.owner_added' );
40
-        expect( JitsiTrackEvents.TRACK_OWNER_REMOVED ).toBe( 'track.owner_removed' );
37
+        expect( JitsiTrackEvents.TRACK_OWNER_SET ).toBe( 'track.owner_set' );
41 38
         expect( JitsiTrackEvents.TRACK_STREAMING_STATUS_CHANGED ).toBe( 'track.streaming_status_changed' );
42 39
         expect( JitsiTrackEvents.TRACK_VIDEOTYPE_CHANGED ).toBe( 'track.videoTypeChanged' );
43 40
         expect( JitsiTrackEvents.NO_DATA_FROM_SOURCE ).toBe( 'track.no_data_from_source' );

+ 2
- 8
JitsiTrackEvents.ts ファイルの表示

@@ -48,12 +48,7 @@ export enum JitsiTrackEvents {
48 48
     /**
49 49
      * Indicates that a new owner has been assigned to a remote track when SSRC rewriting is enabled.
50 50
      */
51
-    TRACK_OWNER_ADDED = 'track.owner_added',
52
-
53
-    /**
54
-     * Indicates that an owner has been removed from a remote track when SSRC rewriting is enabled.
55
-     */
56
-    TRACK_OWNER_REMOVED = 'track.owner_removed',
51
+    TRACK_OWNER_SET = 'track.owner_set',
57 52
 
58 53
     /**
59 54
      * Event fired whenever video track's streaming changes.
@@ -77,6 +72,5 @@ export const TRACK_MUTE_CHANGED = JitsiTrackEvents.TRACK_MUTE_CHANGED;
77 72
 export const TRACK_VIDEOTYPE_CHANGED = JitsiTrackEvents.TRACK_VIDEOTYPE_CHANGED;
78 73
 export const NO_DATA_FROM_SOURCE = JitsiTrackEvents.NO_DATA_FROM_SOURCE;
79 74
 export const NO_AUDIO_INPUT = JitsiTrackEvents.NO_AUDIO_INPUT;
80
-export const TRACK_OWNER_ADDED = JitsiTrackEvents.TRACK_OWNER_ADDED;
81
-export const TRACK_OWNER_REMOVED = JitsiTrackEvents.TRACK_OWNER_REMOVED;
75
+export const TRACK_OWNER_SET = JitsiTrackEvents.TRACK_OWNER_SET;
82 76
 export const TRACK_STREAMING_STATUS_CHANGED = JitsiTrackEvents.TRACK_STREAMING_STATUS_CHANGED;

+ 4
- 15
modules/xmpp/JingleSessionPC.js ファイルの表示

@@ -1777,32 +1777,21 @@ export default class JingleSessionPC extends JingleSession {
1777 1777
                     const track = this.peerconnection.getTrackBySSRC(oldSsrc);
1778 1778
 
1779 1779
                     if (track) {
1780
-                        track.setSourceName(null);
1781
-                        track.setOwner(null);
1782
-                        track._setVideoType(null);
1783
-                        this.room.eventEmitter.emit(JitsiTrackEvents.TRACK_OWNER_REMOVED, track);
1780
+                        this.room.eventEmitter.emit(JitsiTrackEvents.TRACK_OWNER_SET, track);
1784 1781
                     }
1785 1782
                 }
1786 1783
             } else {
1787 1784
                 logger.debug(`Existing SSRC re-mapped ${ssrc}: new owner=${owner}, source-name=${source}`);
1788 1785
                 const track = this.peerconnection.getTrackBySSRC(ssrc);
1789 1786
 
1790
-                this.room.eventEmitter.emit(JitsiTrackEvents.TRACK_OWNER_REMOVED, track);
1791
-
1792 1787
                 this._signalingLayer.setSSRCOwner(ssrc, owner, source);
1793
-                track.setSourceName(source);
1794
-                track.setOwner(owner);
1795
-
1796
-                this.room.eventEmitter.emit(JitsiTrackEvents.TRACK_OWNER_ADDED, track);
1797 1788
 
1798 1789
                 // Update the muted state and the video type on the track since the presence for this track could have
1799 1790
                 // been received before the updated source map is received on the bridge channel.
1800
-                const peerMediaInfo = this._signalingLayer.getPeerMediaInfo(owner, mediaType, source);
1791
+                const { muted, videoType } = this._signalingLayer.getPeerMediaInfo(owner, mediaType, source);
1801 1792
 
1802
-                if (peerMediaInfo) {
1803
-                    track._setVideoType(peerMediaInfo.videoType);
1804
-                    this.peerconnection._sourceMutedChanged(source, peerMediaInfo.muted);
1805
-                }
1793
+                muted && this.peerconnection._sourceMutedChanged(source, muted);
1794
+                this.room.eventEmitter.emit(JitsiTrackEvents.TRACK_OWNER_SET, track, owner, source, videoType);
1806 1795
             }
1807 1796
         }
1808 1797
 

読み込み中…
キャンセル
保存