From 03b381f67034fe30055d28790a1cc5af6c4937f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Cervi=C3=B1o?= Date: Tue, 2 Oct 2018 10:28:43 +0200 Subject: [PATCH] Fix SDP negotiation when a stream is audio only (#1307) --- erizo/src/erizo/WebRtcConnection.cpp | 3 +++ .../erizoClient/src/webrtc-stacks/ChromeStableStack.js | 4 ++++ extras/basic_example/public/script.js | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/erizo/src/erizo/WebRtcConnection.cpp b/erizo/src/erizo/WebRtcConnection.cpp index e49384254c..9c642e6460 100644 --- a/erizo/src/erizo/WebRtcConnection.cpp +++ b/erizo/src/erizo/WebRtcConnection.cpp @@ -240,6 +240,9 @@ std::shared_ptr WebRtcConnection::getLocalSdpInfo() { bool receiving_audio = remote_sdp_->audio_ssrc_map.size() > 0; bool receiving_video = remote_sdp_->video_ssrc_map.size() > 0; + audio_enabled_ = sending_audio || receiving_audio; + video_enabled_ = sending_video || receiving_video; + if (!sending_audio && receiving_audio) { local_sdp_->audioDirection = erizo::RECVONLY; } else if (sending_audio && !receiving_audio) { diff --git a/erizo_controller/erizoClient/src/webrtc-stacks/ChromeStableStack.js b/erizo_controller/erizoClient/src/webrtc-stacks/ChromeStableStack.js index 4d31f8dd1d..e83c3f780e 100644 --- a/erizo_controller/erizoClient/src/webrtc-stacks/ChromeStableStack.js +++ b/erizo_controller/erizoClient/src/webrtc-stacks/ChromeStableStack.js @@ -7,6 +7,10 @@ const ChromeStableStack = (specInput) => { const spec = specInput; const that = BaseStack(specInput); const defaultSimulcastSpatialLayers = 2; + that.mediaConstraints = { + offerToReceiveVideo: true, + offerToReceiveAudio: true, + }; that.enableSimulcast = (sdpInput) => { let result; diff --git a/extras/basic_example/public/script.js b/extras/basic_example/public/script.js index 3d493f74f1..bd28862f9b 100644 --- a/extras/basic_example/public/script.js +++ b/extras/basic_example/public/script.js @@ -51,12 +51,13 @@ window.onload = function () { var roomName = getParameterByName('room') || 'basicExampleRoom'; var singlePC = getParameterByName('singlePC') || false; var roomType = getParameterByName('type') || 'erizo'; + var audioOnly = getParameterByName('onlyAudio') || false; var mediaConfiguration = getParameterByName('mediaConfiguration') || 'default'; var onlySubscribe = getParameterByName('onlySubscribe'); var onlyPublish = getParameterByName('onlyPublish'); console.log('Selected Room', roomName, 'of type', roomType); var config = {audio: true, - video: true, + video: !audioOnly, data: true, screen: screen, videoSize: [640, 480, 640, 480],