Skip to content

Commit f16cadc

Browse files
committedApr 24, 2024
squash: Address review comments.
1 parent 18f0769 commit f16cadc

4 files changed

+19
-34
lines changed
 

‎JitsiConferenceEventManager.js

+10-5
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,16 @@ JitsiConferenceEventManager.prototype.setupChatRoomListeners = function() {
173173
}
174174
});
175175

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+
}
181186
});
182187

183188
this.chatRoomForwarder.forward(XMPPEvents.ROOM_JOIN_ERROR,

‎JitsiTrackEvents.spec.ts

+3-6
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ describe( "/JitsiTrackEvents members", () => {
88
TRACK_AUDIO_LEVEL_CHANGED,
99
TRACK_AUDIO_OUTPUT_CHANGED,
1010
TRACK_MUTE_CHANGED,
11-
TRACK_OWNER_ADDED,
12-
TRACK_OWNER_REMOVED,
11+
TRACK_OWNER_SET,
1312
TRACK_STREAMING_STATUS_CHANGED,
1413
TRACK_VIDEOTYPE_CHANGED,
1514
NO_DATA_FROM_SOURCE,
@@ -23,8 +22,7 @@ describe( "/JitsiTrackEvents members", () => {
2322
expect( TRACK_AUDIO_LEVEL_CHANGED ).toBe( 'track.audioLevelsChanged' );
2423
expect( TRACK_AUDIO_OUTPUT_CHANGED ).toBe( 'track.audioOutputChanged' );
2524
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' );
2826
expect( TRACK_STREAMING_STATUS_CHANGED ).toBe( 'track.streaming_status_changed' );
2927
expect( TRACK_VIDEOTYPE_CHANGED ).toBe( 'track.videoTypeChanged' );
3028
expect( NO_DATA_FROM_SOURCE ).toBe( 'track.no_data_from_source' );
@@ -36,8 +34,7 @@ describe( "/JitsiTrackEvents members", () => {
3634
expect( JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED ).toBe( 'track.audioLevelsChanged' );
3735
expect( JitsiTrackEvents.TRACK_AUDIO_OUTPUT_CHANGED ).toBe( 'track.audioOutputChanged' );
3836
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' );
4138
expect( JitsiTrackEvents.TRACK_STREAMING_STATUS_CHANGED ).toBe( 'track.streaming_status_changed' );
4239
expect( JitsiTrackEvents.TRACK_VIDEOTYPE_CHANGED ).toBe( 'track.videoTypeChanged' );
4340
expect( JitsiTrackEvents.NO_DATA_FROM_SOURCE ).toBe( 'track.no_data_from_source' );

‎JitsiTrackEvents.ts

+2-8
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,7 @@ export enum JitsiTrackEvents {
4848
/**
4949
* Indicates that a new owner has been assigned to a remote track when SSRC rewriting is enabled.
5050
*/
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',
5752

5853
/**
5954
* Event fired whenever video track's streaming changes.
@@ -77,6 +72,5 @@ export const TRACK_MUTE_CHANGED = JitsiTrackEvents.TRACK_MUTE_CHANGED;
7772
export const TRACK_VIDEOTYPE_CHANGED = JitsiTrackEvents.TRACK_VIDEOTYPE_CHANGED;
7873
export const NO_DATA_FROM_SOURCE = JitsiTrackEvents.NO_DATA_FROM_SOURCE;
7974
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;
8276
export const TRACK_STREAMING_STATUS_CHANGED = JitsiTrackEvents.TRACK_STREAMING_STATUS_CHANGED;

‎modules/xmpp/JingleSessionPC.js

+4-15
Original file line numberDiff line numberDiff line change
@@ -1777,32 +1777,21 @@ export default class JingleSessionPC extends JingleSession {
17771777
const track = this.peerconnection.getTrackBySSRC(oldSsrc);
17781778

17791779
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);
17841781
}
17851782
}
17861783
} else {
17871784
logger.debug(`Existing SSRC re-mapped ${ssrc}: new owner=${owner}, source-name=${source}`);
17881785
const track = this.peerconnection.getTrackBySSRC(ssrc);
17891786

1790-
this.room.eventEmitter.emit(JitsiTrackEvents.TRACK_OWNER_REMOVED, track);
1791-
17921787
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);
17971788

17981789
// Update the muted state and the video type on the track since the presence for this track could have
17991790
// 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);
18011792

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);
18061795
}
18071796
}
18081797

0 commit comments

Comments
 (0)