summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-05-19 22:17:00 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-05-22 20:40:39 +0300
commit663bf4d3eba16e1d0a781ac5261541e7e2d6b4f2 (patch)
treeaf5baa1610854e884745bcd8b0aa6bd136ccb9ed /indra/newview
parent0c5fd5e8110f55c713c5cbf721769fa485746f77 (diff)
#4823 WebRTC crashes
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llvoicewebrtc.cpp32
1 files changed, 28 insertions, 4 deletions
diff --git a/indra/newview/llvoicewebrtc.cpp b/indra/newview/llvoicewebrtc.cpp
index 0125ea4e47..ecf963039f 100644
--- a/indra/newview/llvoicewebrtc.cpp
+++ b/indra/newview/llvoicewebrtc.cpp
@@ -1678,6 +1678,10 @@ void LLWebRTCVoiceClient::setVoiceVolume(F32 volume)
void LLWebRTCVoiceClient::predSetSpeakerVolume(const LLWebRTCVoiceClient::sessionStatePtr_t &session, F32 volume)
{
+ if (session->mShuttingDown)
+ {
+ return;
+ }
session->setSpeakerVolume(volume);
}
@@ -1906,6 +1910,10 @@ LLWebRTCVoiceClient::sessionState::sessionState() :
void LLWebRTCVoiceClient::predUpdateOwnVolume(const LLWebRTCVoiceClient::sessionStatePtr_t &session, F32 audio_level)
{
+ if (session->mShuttingDown)
+ {
+ return;
+ }
participantStatePtr_t participant = session->findParticipantByID(gAgentID);
if (participant)
{
@@ -1934,9 +1942,16 @@ void LLWebRTCVoiceClient::sessionState::sendData(const std::string &data)
void LLWebRTCVoiceClient::sessionState::setMuteMic(bool muted)
{
mMuted = muted;
+ if (mShuttingDown)
+ {
+ return;
+ }
for (auto &connection : mWebRTCConnections)
{
- connection->setMuteMic(muted);
+ if (!connection->isShuttingDown())
+ {
+ connection->setMuteMic(muted);
+ }
}
}
@@ -1945,7 +1960,10 @@ void LLWebRTCVoiceClient::sessionState::setSpeakerVolume(F32 volume)
mSpeakerVolume = volume;
for (auto &connection : mWebRTCConnections)
{
- connection->setSpeakerVolume(volume);
+ if (!connection->isShuttingDown())
+ {
+ connection->setSpeakerVolume(volume);
+ }
}
}
@@ -1957,7 +1975,10 @@ void LLWebRTCVoiceClient::sessionState::setUserVolume(const LLUUID &id, F32 volu
}
for (auto &connection : mWebRTCConnections)
{
- connection->setUserVolume(id, volume);
+ if (!connection->isShuttingDown())
+ {
+ connection->setUserVolume(id, volume);
+ }
}
}
@@ -1969,7 +1990,10 @@ void LLWebRTCVoiceClient::sessionState::setUserMute(const LLUUID &id, bool mute)
}
for (auto &connection : mWebRTCConnections)
{
- connection->setUserMute(id, mute);
+ if (!connection->isShuttingDown())
+ {
+ connection->setUserMute(id, mute);
+ }
}
}
/*static*/