diff --git a/openvidu-browser/package-lock.json b/openvidu-browser/package-lock.json index 165cc1f8..fb621d0f 100644 --- a/openvidu-browser/package-lock.json +++ b/openvidu-browser/package-lock.json @@ -2569,7 +2569,8 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true }, "inline-source-map": { "version": "0.6.2", @@ -2990,11 +2991,6 @@ "trim-newlines": "^1.0.0" } }, - "merge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", - "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=" - }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", @@ -3682,19 +3678,6 @@ "resolved": "https://registry.npmjs.org/sdp/-/sdp-2.7.4.tgz", "integrity": "sha512-0+wTfgvUUEGcvvFoHIC0aiGbx6gzwAUm8FkKt5Oqqkjf9mEEDLgwnoDKX7MYTGXrNNwzikVbutJ+OVNAGmJBQw==" }, - "sdp-transform": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-1.5.3.tgz", - "integrity": "sha1-im0Pi9aZzjq8MQuksc3lmJKKCBY=" - }, - "sdp-translator": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/sdp-translator/-/sdp-translator-0.1.24.tgz", - "integrity": "sha1-g/uNY0pj8VzZlEI33ZC9QGkGxvM=", - "requires": { - "sdp-transform": "1.5.*" - } - }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", @@ -4088,13 +4071,13 @@ "progress": "^2.0.0", "shelljs": "^0.8.1", "typedoc-default-themes": "^0.5.0", - "typescript": "2.7.2" + "typescript": "2.9.1" }, "dependencies": { "typescript": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", - "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.1.tgz", + "integrity": "sha512-h6pM2f/GDchCFlldnriOhs1QHuwbnmj6/v7499eMHqPeW4V2G0elua2eIc2nu8v2NdHV0Gm+tzX83Hr6nUFjQA==", "dev": true } } @@ -4117,11 +4100,6 @@ "integrity": "sha512-h6pM2f/GDchCFlldnriOhs1QHuwbnmj6/v7499eMHqPeW4V2G0elua2eIc2nu8v2NdHV0Gm+tzX83Hr6nUFjQA==", "dev": true }, - "ua-parser-js": { - "version": "0.7.18", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", - "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==" - }, "uglify-js": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.0.tgz", diff --git a/openvidu-browser/package.json b/openvidu-browser/package.json index e4e5eb2d..358b4704 100644 --- a/openvidu-browser/package.json +++ b/openvidu-browser/package.json @@ -5,11 +5,7 @@ "@types/platform": "1.3.1", "freeice": "2.2.0", "hark": "1.2.0", - "inherits": "2.0.3", - "merge": "1.2.0", "platform": "^1.3.5", - "sdp-translator": "0.1.24", - "ua-parser-js": "0.7.18", "uuid": "3.2.1", "webrtc-adapter": "6.2.1", "wolfy87-eventemitter": "5.2.4" diff --git a/openvidu-browser/src/OpenViduInternal/WebRtcPeer/WebRtcPeer.ts b/openvidu-browser/src/OpenViduInternal/WebRtcPeer/WebRtcPeer.ts index 3c8b4dff..53afefb4 100644 --- a/openvidu-browser/src/OpenViduInternal/WebRtcPeer/WebRtcPeer.ts +++ b/openvidu-browser/src/OpenViduInternal/WebRtcPeer/WebRtcPeer.ts @@ -136,7 +136,7 @@ export class WebRtcPeer { this.configuration.mediaConstraints.video : true; } - const constraints = { + const constraints: RTCOfferOptions = { offerToReceiveAudio: + (this.configuration.mode !== 'sendonly' && offerAudio), offerToReceiveVideo: + (this.configuration.mode !== 'sendonly' && offerVideo) }; @@ -145,7 +145,6 @@ export class WebRtcPeer { this.pc.createOffer(constraints).then(offer => { console.debug('Created SDP offer'); - offer = this.mangleSdpToAddSimulcast(offer); return this.pc.setLocalDescription(offer); }).then(() => { const localDescription = this.pc.localDescription; @@ -180,7 +179,6 @@ export class WebRtcPeer { .then(() => { return this.pc.createAnswer(); }).then(answer => { - answer = this.mangleSdpToAddSimulcast(answer); console.debug('Created SDP answer'); return this.pc.setLocalDescription(answer); }).then(() => { @@ -245,59 +243,6 @@ export class WebRtcPeer { stream.removeTrack(track); }); } - - - /* Simulcast utilities */ - - private mangleSdpToAddSimulcast(answer) { - if (this.configuration.simulcast && !!this.configuration.mediaStream) { - if (platform.name === 'Chrome' || platform.name === 'Chrome Mobile') { - console.debug('Adding multicast info'); - answer = new RTCSessionDescription({ - type: answer.type, - sdp: this.removeFIDFromOffer(answer.sdp) + this.getSimulcastInfo(this.configuration.mediaStream) - }); - } else { - console.warn('Simulcast is only available in Chrome browser'); - } - } - return answer; - } - - private removeFIDFromOffer(sdp) { - const n = sdp.indexOf('a=ssrc-group:FID'); - if (n > 0) { - return sdp.slice(0, n); - } else { - return sdp; - } - } - - private getSimulcastInfo(videoStream: MediaStream) { - const videoTracks = videoStream.getVideoTracks(); - if (!videoTracks.length) { - console.warn('No video tracks available in the video stream'); - return ''; - } - const lines = [ - 'a=x-google-flag:conference', - 'a=ssrc-group:SIM 1 2 3', - 'a=ssrc:1 cname:localVideo', - 'a=ssrc:1 msid:' + videoStream.id + ' ' + videoTracks[0].id, - 'a=ssrc:1 mslabel:' + videoStream.id, - 'a=ssrc:1 label:' + videoTracks[0].id, - 'a=ssrc:2 cname:localVideo', - 'a=ssrc:2 msid:' + videoStream.id + ' ' + videoTracks[0].id, - 'a=ssrc:2 mslabel:' + videoStream.id, - 'a=ssrc:2 label:' + videoTracks[0].id, - 'a=ssrc:3 cname:localVideo', - 'a=ssrc:3 msid:' + videoStream.id + ' ' + videoTracks[0].id, - 'a=ssrc:3 mslabel:' + videoStream.id, - 'a=ssrc:3 label:' + videoTracks[0].id - ]; - lines.push(''); - return lines.join('\n'); - } }