summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llwebrtc/llwebrtc.cpp17
-rw-r--r--indra/llwebrtc/llwebrtc_impl.h1
2 files changed, 16 insertions, 2 deletions
diff --git a/indra/llwebrtc/llwebrtc.cpp b/indra/llwebrtc/llwebrtc.cpp
index 32a75d3675..12997e34d3 100644
--- a/indra/llwebrtc/llwebrtc.cpp
+++ b/indra/llwebrtc/llwebrtc.cpp
@@ -300,10 +300,10 @@ void LLWebRTCImpl::setRenderDevice(const std::string &id)
{
mTuningDeviceModule->StartPlayout();
}
- renderDeviceCount = mPeerDeviceModule->PlayoutDevices();
if (mPeerDeviceModule)
{
+ renderDeviceCount = mPeerDeviceModule->PlayoutDevices();
for (int16_t i = 0; i < renderDeviceCount; i++)
{
char name[webrtc::kAdmMaxDeviceNameSize];
@@ -317,6 +317,7 @@ void LLWebRTCImpl::setRenderDevice(const std::string &id)
break;
}
}
+ mPeerDeviceModule->StopPlayout();
mPeerDeviceModule->SetPlayoutDevice(mPlayoutDevice);
mPeerDeviceModule->InitSpeaker();
mPeerDeviceModule->InitPlayout();
@@ -379,7 +380,14 @@ void LLWebRTCImpl::setTuningMode(bool enable)
});
for (auto& connection : mPeerConnections)
{
- connection->enableSenderTracks(enable ? false : !mMute);
+ if (enable)
+ {
+ connection->enableSenderTracks(false);
+ }
+ else
+ {
+ connection->resetMute();
+ }
connection->enableReceiverTracks(!enable);
}
}
@@ -620,6 +628,11 @@ void LLWebRTCPeerConnectionImpl::setMute(bool mute)
}
}
+void LLWebRTCPeerConnectionImpl::resetMute()
+{
+ setMute(mMute);
+}
+
void LLWebRTCPeerConnectionImpl::setReceiveVolume(float volume)
{
mWebRTCImpl->PostSignalingTask(
diff --git a/indra/llwebrtc/llwebrtc_impl.h b/indra/llwebrtc/llwebrtc_impl.h
index cc22c30f35..6a84f67ef5 100644
--- a/indra/llwebrtc/llwebrtc_impl.h
+++ b/indra/llwebrtc/llwebrtc_impl.h
@@ -273,6 +273,7 @@ class LLWebRTCPeerConnectionImpl : public LLWebRTCPeerConnection,
void OnMessage(const webrtc::DataBuffer& buffer) override;
// Helpers
+ void resetMute();
void enableSenderTracks(bool enable);
void enableReceiverTracks(bool enable);