diff options
author | Roxie Linden <roxie@lindenlab.com> | 2024-08-18 23:10:00 -0700 |
---|---|---|
committer | Roxie Linden <roxie@lindenlab.com> | 2024-08-18 23:10:00 -0700 |
commit | de0b5afa25e9d0f1a1a6f68cc220610cc8fee55e (patch) | |
tree | 3c04a606ed304fdd6b87f1c534e1e791c4fe9fb8 | |
parent | 226f7bc5b78bbaf13485f2e94b4e185ccd1c5608 (diff) | |
parent | 28fdd6e78658f9935eeb2b122265e05aecb548ed (diff) |
Merge branch 'roxie/webrtc-airpod-fixes' of github.com:secondlife/viewer into roxie/webrtc-airpod-fixes
-rw-r--r-- | autobuild.xml | 14 | ||||
-rw-r--r-- | indra/llwebrtc/llwebrtc.cpp | 32 |
2 files changed, 24 insertions, 22 deletions
diff --git a/autobuild.xml b/autobuild.xml index fafa141e92..5720cc8c0f 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2793,11 +2793,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>archive</key> <map> <key>hash</key> - <string>f8a58d9b5d18810189c5b09ca5c5d7227346ac8d</string> + <string>cbf9fae6cdc6983456eec601a596ce27c961f05f</string> <key>hash_algorithm</key> <string>sha1</string> <key>url</key> - <string>https://github.com/secondlife/3p-webrtc-build/releases/download/m114.5735.08.72/webrtc-m114.5735.08.72.10447328796-darwin64-10447328796.tar.zst</string> + <string>https://github.com/secondlife/3p-webrtc-build/releases/download/m114.5735.08.72-debug/webrtc-m114.5735.08.72-debug.10438479298-darwin64-10438479298.tar.zst</string> </map> <key>name</key> <string>darwin64</string> @@ -2807,11 +2807,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>archive</key> <map> <key>hash</key> - <string>0037f70b29f6c85eb7ee2f030f466d774793bf41</string> + <string>8a874c6bd96cdcce8b6fe744f235dc60f1bb4279</string> <key>hash_algorithm</key> <string>sha1</string> <key>url</key> - <string>https://github.com/secondlife/3p-webrtc-build/releases/download/m114.5735.08.72/webrtc-m114.5735.08.72.10447328796-linux64-10447328796.tar.zst</string> + <string>https://github.com/secondlife/3p-webrtc-build/releases/download/m114.5735.08.72-debug/webrtc-m114.5735.08.72-debug.10438479298-linux64-10438479298.tar.zst</string> </map> <key>name</key> <string>linux64</string> @@ -2821,11 +2821,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>archive</key> <map> <key>hash</key> - <string>744ca0f034f73a10fc40182f6c099a5952cb42a6</string> + <string>379e29faa67a826729179f7228146e2812a6088a</string> <key>hash_algorithm</key> <string>sha1</string> <key>url</key> - <string>https://github.com/secondlife/3p-webrtc-build/releases/download/m114.5735.08.72/webrtc-m114.5735.08.72.10447328796-windows64-10447328796.tar.zst</string> + <string>https://github.com/secondlife/3p-webrtc-build/releases/download/m114.5735.08.72-debug/webrtc-m114.5735.08.72-debug.10438479298-windows64-10438479298.tar.zst</string> </map> <key>name</key> <string>windows64</string> @@ -2838,7 +2838,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>copyright</key> <string>Copyright (c) 2011, The WebRTC project authors. All rights reserved.</string> <key>version</key> - <string>m114.5735.08.72.10447328796</string> + <string>m114.5735.08.72-debug.10438479298</string> <key>name</key> <string>webrtc</string> <key>vcs_branch</key> diff --git a/indra/llwebrtc/llwebrtc.cpp b/indra/llwebrtc/llwebrtc.cpp index d154bfb8eb..0daa767766 100644 --- a/indra/llwebrtc/llwebrtc.cpp +++ b/indra/llwebrtc/llwebrtc.cpp @@ -206,10 +206,10 @@ void LLWebRTCImpl::init() mTuningDeviceModule->SetAudioDeviceSink(this); mTuningDeviceModule->InitMicrophone(); mTuningDeviceModule->InitSpeaker(); + mTuningDeviceModule->SetStereoRecording(false); + mTuningDeviceModule->SetStereoPlayout(true); mTuningDeviceModule->InitRecording(); mTuningDeviceModule->InitPlayout(); - mTuningDeviceModule->SetStereoRecording(true); - mTuningDeviceModule->SetStereoPlayout(true); updateDevices(); }); @@ -227,10 +227,6 @@ void LLWebRTCImpl::init() mPeerDeviceModule->EnableBuiltInAEC(false); mPeerDeviceModule->InitMicrophone(); mPeerDeviceModule->InitSpeaker(); - mPeerDeviceModule->InitRecording(); - mPeerDeviceModule->InitPlayout(); - mPeerDeviceModule->SetStereoRecording(true); - mPeerDeviceModule->SetStereoPlayout(true); }); // The custom processor allows us to retrieve audio data (and levels) @@ -253,6 +249,8 @@ void LLWebRTCImpl::init() apm_config.pipeline.multi_channel_render = true; apm_config.pipeline.multi_channel_capture = false; + mAudioProcessingModule->ApplyConfig(apm_config); + webrtc::ProcessingConfig processing_config; processing_config.input_stream().set_num_channels(2); processing_config.input_stream().set_sample_rate_hz(48000); @@ -263,10 +261,8 @@ void LLWebRTCImpl::init() processing_config.reverse_output_stream().set_num_channels(2); processing_config.reverse_output_stream().set_sample_rate_hz(48000); - mAudioProcessingModule->ApplyConfig(apm_config); mAudioProcessingModule->Initialize(processing_config); - mPeerConnectionFactory = webrtc::CreatePeerConnectionFactory(mNetworkThread.get(), mWorkerThread.get(), mSignalingThread.get(), @@ -329,6 +325,8 @@ void LLWebRTCImpl::setRecording(bool recording) { if (recording) { + mPeerDeviceModule->SetStereoRecording(false); + mPeerDeviceModule->InitRecording(); mPeerDeviceModule->StartRecording(); } else @@ -345,6 +343,8 @@ void LLWebRTCImpl::setPlayout(bool playing) { if (playing) { + mPeerDeviceModule->SetStereoPlayout(true); + mPeerDeviceModule->InitPlayout(); mPeerDeviceModule->StartPlayout(); } else @@ -430,9 +430,9 @@ void ll_set_device_module_capture_device(rtc::scoped_refptr<webrtc::AudioDeviceM // has it at 0 device_module->SetRecordingDevice(device + 1); #endif + device_module->SetStereoRecording(false); device_module->InitMicrophone(); device_module->InitRecording(); - device_module->SetStereoRecording(false); } void LLWebRTCImpl::setCaptureDevice(const std::string &id) @@ -494,9 +494,9 @@ void ll_set_device_module_render_device(rtc::scoped_refptr<webrtc::AudioDeviceMo #else device_module->SetPlayoutDevice(device + 1); #endif + device_module->SetStereoPlayout(true); device_module->InitSpeaker(); device_module->InitPlayout(); - device_module->SetStereoPlayout(true); } void LLWebRTCImpl::setRenderDevice(const std::string &id) @@ -626,6 +626,8 @@ void LLWebRTCImpl::setTuningMode(bool enable) //mTuningDeviceModule->StopPlayout(); ll_set_device_module_render_device(mPeerDeviceModule, mPlayoutDevice); ll_set_device_module_capture_device(mPeerDeviceModule, mRecordingDevice); + mPeerDeviceModule->SetStereoPlayout(true); + mPeerDeviceModule->SetStereoRecording(false); mPeerDeviceModule->InitPlayout(); mPeerDeviceModule->InitRecording(); mPeerDeviceModule->StartPlayout(); @@ -667,13 +669,13 @@ LLWebRTCPeerConnectionInterface *LLWebRTCImpl::newPeerConnection() rtc::scoped_refptr<LLWebRTCPeerConnectionImpl> peerConnection = rtc::scoped_refptr<LLWebRTCPeerConnectionImpl>(new rtc::RefCountedObject<LLWebRTCPeerConnectionImpl>()); peerConnection->init(this); + mPeerConnections.emplace_back(peerConnection); + peerConnection->enableSenderTracks(!mMute); if (mPeerConnections.empty()) { setRecording(true); setPlayout(true); } - mPeerConnections.emplace_back(peerConnection); - peerConnection->enableSenderTracks(!mMute); return peerConnection.get(); } @@ -702,7 +704,7 @@ void LLWebRTCImpl::freePeerConnection(LLWebRTCPeerConnectionInterface* peer_conn LLWebRTCPeerConnectionImpl::LLWebRTCPeerConnectionImpl() : mWebRTCImpl(nullptr), mPeerConnection(nullptr), - mMute(false), + mMute(true), mAnswerReceived(false) { } @@ -724,8 +726,8 @@ void LLWebRTCPeerConnectionImpl::init(LLWebRTCImpl * webrtc_impl) } void LLWebRTCPeerConnectionImpl::terminate() { - mWebRTCImpl->PostSignalingTask( - [=]() + mWebRTCImpl->SignalingBlockingCall( + [this]() { if (mPeerConnection) { |