diff options
| author | Andrey Lihatskiy <118752495+marchcat@users.noreply.github.com> | 2025-11-18 03:26:24 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-18 03:26:24 +0200 |
| commit | e8f2ec678285f15be9fd44550d9b967a9485d9f0 (patch) | |
| tree | cf444a5b3ad3041e36b3e11307b2c6907badabda /indra/llwebrtc/llwebrtc.cpp | |
| parent | 2a620a9447b7d0544d5c500d88b4128565486018 (diff) | |
| parent | ceba070dcb42609ca267bdc5dac003db7aa2ad09 (diff) | |
Merge pull request #4997 from secondlife/marchcat/slua-2508
Update SLua editor with latest 2025.08
Diffstat (limited to 'indra/llwebrtc/llwebrtc.cpp')
| -rw-r--r-- | indra/llwebrtc/llwebrtc.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/indra/llwebrtc/llwebrtc.cpp b/indra/llwebrtc/llwebrtc.cpp index 2cf3f6bbf8..161d8d7e91 100644 --- a/indra/llwebrtc/llwebrtc.cpp +++ b/indra/llwebrtc/llwebrtc.cpp @@ -572,14 +572,20 @@ void LLWebRTCImpl::workerDeployDevices() void LLWebRTCImpl::setCaptureDevice(const std::string &id) { - mRecordingDevice = id; - deployDevices(); + if (mRecordingDevice != id) + { + mRecordingDevice = id; + deployDevices(); + } } void LLWebRTCImpl::setRenderDevice(const std::string &id) { - mPlayoutDevice = id; - deployDevices(); + if (mPlayoutDevice != id) + { + mPlayoutDevice = id; + deployDevices(); + } } // updateDevices needs to happen on the worker thread. @@ -914,6 +920,13 @@ bool LLWebRTCPeerConnectionImpl::initializeConnection(const LLWebRTCPeerConnecti config.set_max_port(60100); webrtc::PeerConnectionDependencies pc_dependencies(this); + if (mPeerConnectionFactory == nullptr) + { + RTC_LOG(LS_ERROR) << __FUNCTION__ << "Error creating peer connection, factory doesn't exist"; + // Too early? + mPendingJobs--; + return; + } auto error_or_peer_connection = mPeerConnectionFactory->CreatePeerConnectionOrError(config, std::move(pc_dependencies)); if (error_or_peer_connection.ok()) { @@ -1533,6 +1546,10 @@ void freePeerConnection(LLWebRTCPeerConnectionInterface* peer_connection) void init(LLWebRTCLogCallback* logCallback) { + if (gWebRTCImpl) + { + return; + } gWebRTCImpl = new LLWebRTCImpl(logCallback); gWebRTCImpl->init(); } |
