|
@@ -7,9 +7,11 @@ import MediaDirection from '../../service/RTC/MediaDirection';
|
7
|
7
|
import * as MediaType from '../../service/RTC/MediaType';
|
8
|
8
|
import RTCEvents from '../../service/RTC/RTCEvents';
|
9
|
9
|
import * as SignalingEvents from '../../service/RTC/SignalingEvents';
|
|
10
|
+import { getSourceNameForJitsiTrack } from '../../service/RTC/SignalingLayer';
|
10
|
11
|
import * as VideoType from '../../service/RTC/VideoType';
|
11
|
12
|
import { SS_DEFAULT_FRAME_RATE } from '../RTC/ScreenObtainer';
|
12
|
13
|
import browser from '../browser';
|
|
14
|
+import FeatureFlags from '../flags/FeatureFlags';
|
13
|
15
|
import LocalSdpMunger from '../sdp/LocalSdpMunger';
|
14
|
16
|
import RtxModifier from '../sdp/RtxModifier';
|
15
|
17
|
import SDP from '../sdp/SDP';
|
|
@@ -896,7 +898,22 @@ TraceablePeerConnection.prototype._remoteTrackAdded = function(stream, track, tr
|
896
|
898
|
return;
|
897
|
899
|
}
|
898
|
900
|
|
899
|
|
- logger.info(`${this} creating remote track[endpoint=${ownerEndpointId},ssrc=${trackSsrc},type=${mediaType}]`);
|
|
901
|
+
|
|
902
|
+ let sourceName;
|
|
903
|
+
|
|
904
|
+ if (FeatureFlags.isSourceNameSignalingEnabled()) {
|
|
905
|
+ sourceName = this.signalingLayer.getTrackSourceName(trackSsrc);
|
|
906
|
+
|
|
907
|
+ // If source name was not signaled, we'll generate one which allows testing signaling
|
|
908
|
+ // when mixing legacy(mobile) with new clients.
|
|
909
|
+ if (!sourceName) {
|
|
910
|
+ sourceName = getSourceNameForJitsiTrack(ownerEndpointId, mediaType, 0);
|
|
911
|
+ }
|
|
912
|
+ }
|
|
913
|
+
|
|
914
|
+ // eslint-disable-next-line no-undef
|
|
915
|
+ logger.info(`${this} creating remote track[endpoint=${ownerEndpointId},ssrc=${trackSsrc},`
|
|
916
|
+ + `type=${mediaType},sourceName=${sourceName}]`);
|
900
|
917
|
|
901
|
918
|
const peerMediaInfo
|
902
|
919
|
= this.signalingLayer.getPeerMediaInfo(ownerEndpointId, mediaType);
|
|
@@ -911,8 +928,9 @@ TraceablePeerConnection.prototype._remoteTrackAdded = function(stream, track, tr
|
911
|
928
|
const muted = peerMediaInfo.muted;
|
912
|
929
|
const videoType = peerMediaInfo.videoType; // can be undefined
|
913
|
930
|
|
|
931
|
+ // eslint-disable-next-line no-undef
|
914
|
932
|
this._createRemoteTrack(
|
915
|
|
- ownerEndpointId, stream, track, mediaType, videoType, trackSsrc, muted);
|
|
933
|
+ ownerEndpointId, stream, track, mediaType, videoType, trackSsrc, muted, sourceName);
|
916
|
934
|
};
|
917
|
935
|
|
918
|
936
|
// FIXME cleanup params
|
|
@@ -929,6 +947,7 @@ TraceablePeerConnection.prototype._remoteTrackAdded = function(stream, track, tr
|
929
|
947
|
* @param {VideoType} [videoType] the track's type of the video (if applicable)
|
930
|
948
|
* @param {number} ssrc the track's main SSRC number
|
931
|
949
|
* @param {boolean} muted the initial muted status
|
|
950
|
+ * @param {String} sourceName the track's source name
|
932
|
951
|
*/
|
933
|
952
|
TraceablePeerConnection.prototype._createRemoteTrack = function(
|
934
|
953
|
ownerEndpointId,
|
|
@@ -937,7 +956,8 @@ TraceablePeerConnection.prototype._createRemoteTrack = function(
|
937
|
956
|
mediaType,
|
938
|
957
|
videoType,
|
939
|
958
|
ssrc,
|
940
|
|
- muted) {
|
|
959
|
+ muted,
|
|
960
|
+ sourceName) {
|
941
|
961
|
let remoteTracksMap = this.remoteTracks.get(ownerEndpointId);
|
942
|
962
|
|
943
|
963
|
if (!remoteTracksMap) {
|
|
@@ -977,7 +997,8 @@ TraceablePeerConnection.prototype._createRemoteTrack = function(
|
977
|
997
|
videoType,
|
978
|
998
|
ssrc,
|
979
|
999
|
muted,
|
980
|
|
- this.isP2P);
|
|
1000
|
+ this.isP2P,
|
|
1001
|
+ sourceName);
|
981
|
1002
|
|
982
|
1003
|
remoteTracksMap.set(mediaType, remoteTrack);
|
983
|
1004
|
|