Commit Graph

79641 Commits (574dc5b65ac72da28e2ef931598073a11e164f05)

Author SHA1 Message Date
Ansariel 574dc5b65a Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-10-31 19:25:58 +01:00
minerjr bd1282a235 Merge branch 'FIRE-36022-USB-HeadsetWebRTC' 2025-10-31 14:40:56 -03:00
minerjr 9ee2595ac1 Reduced the time_mutx lock to 1 second from 3 seconds
Originally setup with 3 second as a was not sure how long it would take to recover, but 1 second should be good to recover and enumerate devices.
2025-10-29 21:39:57 -03:00
minerjr b37a210e38 Fixed up the i prefix to g to follow coding standards
Changed iWebRTCUpdateDevices and iAudioDeviceMutex to gWebRTCUpdateDevicesand gAudioDeviceMutex to follow Firestorm coding standards.

They are global static variables.
2025-10-29 15:37:55 -03:00
minerjr f6ce46c726 Fixed up not python operator to proper C++ operator
Fixed up the follow Firestorm coding standards.
2025-10-29 15:21:51 -03:00
Ansariel 1002a28e39 Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-10-29 19:16:44 +01:00
minerjr cc3bae406c FIRE-36022 - Removing my USB headset crashes entire viewer - FMOD fixes
Added three FMOD specific changes based upon reading the FMOD manual.
See: https://www.fmod.com/docs/2.00/api/platforms-win.html
As well, switched to using the FMOD log version of the library and found one error on the get advanced features.

Also, the call back method should be a static method. Just being cautious.
2025-10-28 23:30:18 -03:00
minerjr 6ad9a57c39 FIRE-36022 - Removing my USB headset crashes entire viewer - audio device mutex
As with the previous change, this is to address the issue FIRE-36022 where users who remove their USB headsets with microphones are having the viewer lock up.

This introduces a new inline mutex called iAudioDeviceMutex. This is stored in a shared header file located on llcommon. iAudioDeviceMutex is a timed_mutex which allows for a time limit to be placed on a wait for a lock. Once the time runs out or the lock is achiveved the code moves on. With a check after the lock, if the owner is the current thread, then the lock was successful, otherwise it's still being used by another thread and the function should exit to try again later on.

This logic is wrapping WebRTC, FMOD and Vinvox calls to the audio hardware by the Viewer. OpenAL does not currently support changing of audio hardware and always defaults to the default audio hardware.

Added exceptions handling for the new unique_lock with the timed_mutex as they can throw 2 exceptions if the thread is already locked by the current thread and if the mutex is invalid.

Further testing may reveal other areas which would need the timed_mutex added to protect from threads locking up.
2025-10-28 23:22:13 -03:00
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
Angeldark Raymaker 44ffa1df51 FIRE-35670: Move poses and copy newer versions
Moved preset poses so they're easier to find on non-windows
Updated viewer_manifest copy everything
Update preset poses in user dir if version updated
2025-10-27 21:54:31 +00:00
PanteraPolnocy 6c67960b21 FIRE-36045 Chinese Translation Update, by 小滢 Zi Ying 2025-10-27 20:07:39 +01:00
Ansariel b1026c6ea2 Update German translation 2025-10-24 22:10:51 +02:00
PanteraPolnocy 390f5431b6 FIRE-36037 Updated Japanese translation, by Logue Takacs
Pay + panel preference chat.
2025-10-24 15:21:26 +02:00
PanteraPolnocy d4fd72e5ac Add an option o disable auto-completion when typing @ mentions in chat 2025-10-23 16:33:22 +02:00
Hecklezz 0e59ef1112 Updated APR library and removed hotfix patch in APR cmake 2025-10-22 19:20:04 +10:00
Hecklezz 3930c4b4c1 [FIRE-35996] Restore allowing creating folder from selected on recent and favorites inventory panels if they were in your clipboard 2025-10-21 18:22:10 +10:00
Hecklezz f479ed8757 [FIRE-36028] Fix OpenSim object permissions 2025-10-21 05:11:28 +10:00
Ansariel 77746a648f Prevent full rebuild each time CMake detects any changes 2025-10-20 11:27:00 +02:00
Andrey Kleshchev fa7cacc755 #4724 Fix performance problems with My Outfits - <FS:PP> Cherry pick for FIRE-35936
# Conflicts:
#	indra/newview/lloutfitslist.cpp
2025-10-19 18:54:08 +02:00
Hecklezz 42df6526a2 [FIRE-35962] Fix crashes when checking for corrupt sounds 2025-10-19 17:59:03 +10:00
Hecklezz 31b81b2c05 Corrected spacing and use of tab instead of spaces 2025-10-19 01:27:57 +10:00
Ansariel 3410a182c5 initWebRTC() can get multiple times - make sure to unset previous observers before re-adding 2025-10-18 13:32:44 +02:00
Ansariel b05f460b1a Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-10-18 13:01:33 +02:00
Ansariel d733bef269 Restore original indentation 2025-10-18 12:42:20 +02:00
Ansariel 9fe6e65aed Continue keeping built-in audio effects disabled - only disable duplicate call to updateDevices() which is already called via
LLWebRTCVoiceClient::initWebRTC() -> LLWebRTCVoiceClient::refreshDeviceLists() -> LLWebRTCImpl::refreshDevices()

and duplicate to

LLWebRTCVoiceClient::initWebRTC() -> llwebrtc::init() -> LLWebRTCImpl::init()
2025-10-18 12:26:47 +02:00
Ansariel 1acef3b7f0 Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-10-18 11:57:41 +02:00
minerjr 4a6975a944 FIRE-36022 - Removing my USB headset crashes entire viewer
Commented out a block of new code recently added which was also being called by one of the callback functions.
This had the side effect of having 2 LLWebRTCDevicesObserver listening to the hardware removal events and cause both to trigger events at the same time, which may be the source of the queue being locked up in a race condition.

Was able to reproduce issue 2x without code change by moving mouse around a lot while on  rezing and then pulling USB headset out of the USB port. Direct motherboard USB port seemed to work the best as could not trigger while headset was in USB hub.
2025-10-17 22:01:17 -03:00
Ansariel d066691c06 Merge branch 'main' of https://github.com/secondlife/viewer 2025-10-17 23:54:54 +02:00
Ansariel 2ca5c9ed74 Sync with develop 2025-10-17 23:54:36 +02:00
Ansariel 6252c2c0a8 Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm-202507 2025-10-17 23:44:55 +02:00
Ansariel c696396df8 Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-10-17 23:40:43 +02:00
Jonathan "Geenz" Goodman aec7bf19eb
Merge pull request #4714 from secondlife/release/2025.07
Release/2025.07
2025-10-17 16:56:48 -04:00
PanteraPolnocy b5c02e1914 FIRE-36021 Chinese Translation Update, by 小滢 Zi Ying 2025-10-17 13:01:25 +02:00
Hecklezz dd3175ae81 Fall back to using ad-hoc signing for macOS when no signing certificate exists (arm64 requirement) 2025-10-17 20:13:13 +10:00
PanteraPolnocy 4b3420c4ee Set OutfitListFilterFullList to true by default to bring back the older behaviour of displaying filtered outfits that users are familiar with
This also ensures compatibility with skins that don't provide a toggle for this option (such as Starlight).
2025-10-17 08:36:25 +02:00
TJ 9328c8e559
Merge pull request 'Fixes for 2025.07 to compile on macOS' 2025-10-17 16:15:04 +10:00
Hecklezz 119a31f9f6 Corrected CEF library path for macOS signing to fix signing error 2025-10-17 16:07:03 +10:00
Hecklezz 6184be4e84 Updated autobuild.xml for missing MacOS universal libraries 2025-10-17 15:26:26 +10:00
Hecklezz 076142913c Remove unneeded code from viewer_manifest.py preventing packaging 2025-10-17 15:26:26 +10:00
Hecklezz b456ae2dc7 Fixed crash relating to looking for the wrong .xib resource file for MacOS 2025-10-17 15:26:25 +10:00
Hecklezz b542e69fe7 Fixed CMake files to work with MacOS universal libraries 2025-10-17 15:25:28 +10:00
Hecklezz 6a522ed3fb Initial fixes for 2025.07 to compile on MacOS 2025-10-17 15:25:28 +10:00
Hecklezz 2d9b26a648 Fix compilation errors when building without Havok 2025-10-17 15:25:04 +10:00
Hecklezz 27fe962a3a Merge remote-tracking branch 'upstream/release/2025.07' 2025-10-17 15:20:58 +10:00
Ansariel 06e8393846 Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-10-16 22:48:43 +02:00
PanteraPolnocy 1797b9e80e Update chat transcripts radar context menu item in all translations 2025-10-16 16:59:30 +02:00
Hecklezz 90a1885942 [FIRE-35076] Added the 'View chat transcripts...' button to our nearby people/radar right-click context menu 2025-10-16 21:31:50 +10:00
Hecklezz 08fc848653 Reverted part of Linking.cmake update for WebRTC until 2025.07 is merged 2025-10-16 14:39:47 +10:00
PanteraPolnocy 0f72d5090b FIRE-36018 Updated Japanese translation, by Logue Takacs 2025-10-15 18:30:46 +02:00
Beq 763f7b7f9a Merge remote-tracking branch 'origin/master' 2025-10-15 14:31:01 +01:00