phoenix-firestorm/indra
minerjr 0cdae450d8 FIRE-36022- Removing my USB headset crashes entire viewer - WebRTC fix
This is created to address the issue of USB headsets being removed or Bluetooth headsets with bad connections causing the viewer to lock up.

First Part: WebRTC

WebRTC now has an added inline atomic bool used to track when the worker thread is accessing the audio hardware. If the coroutine that is always running detects 10 consecutive true flag values, it will set WebRTC to exit and exit itself.

This coroutine was what was locking up the viewer as it spammed the mMainQueue with messages every update, but the worker thread was locked up and unable to receive the messages. Once the queue reached 1024 messages, it would lock up.

Underlying issue is the Windows Core Audio driver system crashes if too many threads have requests to get audio updates upon hardware changes. And with a USB headset having 2 devices in 1, it multiples the updates by 2x. The WebRTC audio system itself locks a mutex as it calls the core audio system to get set the input, but if it is already being processed by another thread, it then gets an exception to try again. The audio driver is not handling the message and crashes and does not return leaving the WebRTC worker thread locked.
2025-10-28 23:05:53 -03:00
..
cmake Reverted part of Linking.cmake update for WebRTC until 2025.07 is merged 2025-10-16 14:39:47 +10:00
copy_win_scripts
doxygen
integration_tests
lib/python/indra
linux_crash_logger
llappearance
llaudio [FIRE-35962] Fix crashes when checking for corrupt sounds 2025-10-19 17:59:03 +10:00
llcharacter
llcommon Merge pull request #156 from FirestormViewer/improvement/opensim_remove_slt_time 2025-09-04 10:00:13 +01:00
llcorehttp
llcrashlogger
llfilesystem FIRE-35986: Restore using subfolders for asset cache 2025-10-03 15:49:56 +02:00
llimage Corrected calcDataSizeJ2C change so it compiles on macOS and Linux 2025-10-12 02:05:02 +10:00
llimagej2coj Fix OpenJPEG uploading small textures by correctly accounting for the maximum numresolutions 2025-09-20 22:10:21 +10:00
llinventory [FIRE-36028] Fix OpenSim object permissions 2025-10-21 05:11:28 +10:00
llkdu
llmath Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm into texture-changes-reverted 2025-09-30 16:38:47 +02:00
llmeshoptimizer
llmessage
llplugin
llprimitive
llrender FIRE-36016 - Re-added Store/Restore boost levels of selected objects 2025-10-13 21:04:25 -03:00
llui Add an option o disable auto-completion when typing @ mentions in chat 2025-10-23 16:33:22 +02:00
llwebrtc FIRE-36022- Removing my USB headset crashes entire viewer - WebRTC fix 2025-10-28 23:05:53 -03:00
llwindow
llxml
mac_crash_logger
media_plugins
newview FIRE-36022- Removing my USB headset crashes entire viewer - WebRTC fix 2025-10-28 23:05:53 -03:00
test
tools
viewer_components
win_crash_logger
CMakeLists.txt
Version
edit-me-to-trigger-new-build.txt