summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-09-14 11:38:40 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-09-17 17:44:43 +0300
commitc8e39fa4bda02c23f5cd7c1eef2d278e3c3ee583 (patch)
tree2d6a93f2a494ce9148d63c50d08a3d3dda31a27b
parentf2586370166a41b0be95c607df2f8df98589458f (diff)
#6109 StopPlayout crash
-rw-r--r--indra/llwebrtc/llwebrtc.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/indra/llwebrtc/llwebrtc.cpp b/indra/llwebrtc/llwebrtc.cpp
index b6b205e858..3b3e7ea3ba 100644
--- a/indra/llwebrtc/llwebrtc.cpp
+++ b/indra/llwebrtc/llwebrtc.cpp
@@ -768,8 +768,14 @@ void LLWebRTCImpl::workerDeployDevices()
// Stop first so the start helpers (which no-op when already running) will
// re-select the now-current device.
- mDeviceModule->StopPlayout();
- mDeviceModule->ForceStopRecording();
+ if (mDeviceModule->Playing())
+ {
+ mDeviceModule->StopPlayout();
+ }
+ if (mDeviceModule->Recording())
+ {
+ mDeviceModule->ForceStopRecording();
+ }
workerStartRecording();
workerStartPlayout();
@@ -1061,7 +1067,10 @@ void LLWebRTCImpl::freePeerConnection(LLWebRTCPeerConnectionInterface* peer_conn
{
if (mDeviceModule)
{
- mDeviceModule->StopPlayout();
+ if (mDeviceModule->Playing())
+ {
+ mDeviceModule->StopPlayout();
+ }
if (!mVoiceEnabled)
{
mDeviceModule->ForceStopRecording();