Commit Graph

3405 Commits (0cdae450d884ecd18fc0f596b58a194ed6cb951a)

Author SHA1 Message Date
Beq 125f42cbe7 Use RyeMutt fixed WebRTC in lieu of LL until upstream is re-aligned
Linux support is broken in LL's upstream repo. Using Rye's fixes across all three platforms for consistency
2025-10-15 14:30:32 +01:00
Roxanne Skelly d070b996bd [WebRTC] Rework device handling sequence so that we can handle unplugging/re-plugging devices (#4593)
* [WebRTC] Rework device handling sequence so that we can handle unplugging/re-plugging devices

The device handling was not processing device updates in the proper sequence as
things like AEC use both input and output devices.  Devices like headsets are both
so unplugging them resulted in various mute conditions and sometimes even a crash.

Now, we update both capture and render devices at once in the proper sequence.

Test Guidance:
* Bring two users in the same place in webrtc regions.
* The 'listening' one should have a headset or something set oas 'Default'
* Press 'talk' on one, and verify the other can hear.
* Unplug the headset from the listening one.
* Validate that audio changes from the headset to the speakers.
* Plug the headset back in.
* Validate that audio changes from speakers to headset.
* Do the same type of test with the headset viewer talking.
* The microphone used should switch from the headset to the computer (it should have one)

Do other various device tests, such as setting devices explicitly, messing with the device selector, etc.

* Fix race condition when multiple change device requests might come in at once

* Update to m137

The primary feature of this commit is to update libwebrtc from m114
to m137.  This is needed to make webrtc buildable, as m114 is not buildable
by the current toolset.

m137 had some changes to the API, which required renaming or changing namespace
of some of the calls.

Additionally, this PR moves from a callback mechanism for gathering the energy
levels for tuning to a wrapper AudioDeviceModule, which gives us more control
over the audio stream.

Finally, the new m137-based webrtc has been updated to allow for 192khz audio
streams.

* Properly pass the observer setting into the inner audio device module

* Update to m137 and get rid of some noise

    This change updates to m137 from m114, which required a few API changes.

    Additionally, this fixes the hiss that happens shortly after someone unmutes: https://github.com/secondlife/server/issues/2094

    There was also an issue with a slight amount of repeated after unmuting if there was audio right before unmuting.  This is because
    the audio processing and buffering still had audio from the previous speaking session.  Now, we inject nearly a half second of
    silence into the audio buffers/processor after unmuting to flush things.

* Install nsis on windows

* Use the newer digital AGC pipeline

m137 improved the AGC pipeline and the existing analog style is going away
so move to the new digital pipeline.

Also, some tweaking for audio levels so that we don't see inworld bars when tuning,
so one's own bars seem a reasonable size, etc.

* Install NSIS during windows sisgning and package build step

* Try pinning the packaging to windows 2022 to deal with missing nsis

* Adjust gain calculation and audio level calculations for tuning and peer connections

* Update with mac universal webrtc build

* Tuning of voice indicators for both tuning mode and inworld for self.

* Redo device deployment to handle cases where multiple deploy requests pile up

Also, mute when leaving webrtc-enabled regions or parcels,
and unmute when voice comes back.

* pre commit issue
2025-10-12 16:32:18 +10:00
Beq a61a802c34 Universal-arch KDU for Mac 2025-10-01 00:10:10 +01:00
Beq 9e11b02b81 KDU 8.6 2025-09-30 17:59:38 +01:00
Ansariel 539959a7f8 Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm-develop
# Conflicts:
#	.github/workflows/qatest.yaml
#	indra/newview/llfloatermodelpreview.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/llwearableitemslist.cpp
2025-08-06 18:47:44 +02:00
Ansariel b4e83bc346 Merge branch 'develop' of https://github.com/secondlife/viewer 2025-08-06 18:27:08 +02:00
Andrey Kleshchev 819817f5c9 #4470 Temporarily disable Discord SDK 2025-08-06 14:39:11 +03:00
Ansariel 2034100049 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/cmake/Discord.cmake
#	indra/newview/CMakeLists.txt
#	indra/newview/llfloaterpreference.cpp
#	indra/newview/viewer_manifest.py
2025-08-05 17:50:50 +02:00
Andrey Kleshchev 61d53a8731 #4470 Plug in Discord SDK package 2025-08-05 18:26:29 +03:00
Ansariel 6cb5a7425f Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm
# Conflicts:
#	indra/newview/llskinningutil.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/skins/default/xui/ja/strings.xml
2025-05-23 12:22:21 +02:00
Beq b140b9451d Update FMOD Studio to 2.03.07 for Linux and MacOS 2025-04-22 19:09:00 +01:00
Ansariel 096e32ff03 Update FMOD Studio to 2.03.07 on Windows 2025-04-22 13:53:58 +02:00
Ansariel 4c355879cc Merge branch 'release/2025.05' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/llui/llfolderviewitem.h
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltexteditor.h
#	indra/newview/app_settings/settings.xml
#	indra/newview/llagent.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloatermodelpreview.h
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryfilter.cpp
#	indra/newview/llinventoryfilter.h
#	indra/newview/llmaterialeditor.cpp
#	indra/newview/lloutfitslist.cpp
#	indra/newview/lloutfitslist.h
#	indra/newview/llpanelmaininventory.cpp
#	indra/newview/llpaneloutfitedit.cpp
#	indra/newview/llpaneloutfitsinventory.cpp
#	indra/newview/llpaneloutfitsinventory.h
#	indra/newview/llpanelpermissions.cpp
#	indra/newview/llpanelpermissions.h
#	indra/newview/llpanelwearing.cpp
#	indra/newview/llpanelwearing.h
#	indra/newview/llselectmgr.h
#	indra/newview/llskinningutil.cpp
#	indra/newview/lltexturectrl.cpp
#	indra/newview/lltexturefetch.cpp
#	indra/newview/lltooldraganddrop.cpp
#	indra/newview/llviewerattachmenu.cpp
#	indra/newview/llviewerinventory.cpp
#	indra/newview/llviewerinventory.h
#	indra/newview/llviewerwindow.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/llwearableitemslist.cpp
#	indra/newview/skins/default/textures/textures.xml
#	indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml
#	indra/newview/skins/default/xui/en/floater_object_weights.xml
#	indra/newview/skins/default/xui/en/menu_gallery_outfit_tab.xml
#	indra/newview/skins/default/xui/en/menu_inventory.xml
#	indra/newview/skins/default/xui/en/menu_outfit_tab.xml
#	indra/newview/skins/default/xui/en/menu_wearing_tab.xml
#	indra/newview/skins/default/xui/en/notifications.xml
#	indra/newview/skins/default/xui/en/panel_main_inventory.xml
#	indra/newview/skins/default/xui/en/panel_outfit_gallery.xml
#	indra/newview/skins/default/xui/en/panel_outfits_list.xml
#	indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
#	indra/newview/skins/default/xui/en/panel_places.xml
#	indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
#	indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml
#	indra/newview/skins/default/xui/en/sidepanel_appearance.xml
#	indra/newview/skins/default/xui/en/strings.xml
#	indra/newview/skins/default/xui/ja/panel_settings_sky_sunmoon.xml
#	indra/newview/skins/default/xui/pl/panel_settings_sky_sunmoon.xml
2025-04-16 17:49:47 +02:00
Andrey Lihatskiy ae93198735 Merge branch 'main' into marchcat/maint-c-restore
# Conflicts:
#	indra/llcommon/lldate.h
#	indra/newview/llappviewer.cpp
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llmaterialeditor.cpp
#	indra/newview/llviewerparceloverlay.cpp
#	indra/newview/llvoavatar.cpp
2025-04-15 19:31:20 +03:00
Andrey Lihatskiy 5d7a5001b4 Merge commit '9e24b30' into marchcat/maint-c/restore
# Conflicts:
#	indra/llmath/v2math.cpp
#	indra/llmath/v2math.h
#	indra/llmath/v3math.h
#	indra/llmath/v4math.h
#	indra/llui/llfolderviewitem.cpp
#	indra/llui/llfolderviewitem.h
#	indra/llui/llfolderviewmodel.h
#	indra/llui/llmodaldialog.cpp
#	indra/llui/lltexteditor.cpp
#	indra/llui/lltexteditor.h
#	indra/llwindow/llwindowwin32.cpp
#	indra/newview/llagent.cpp
#	indra/newview/llagentcamera.h
#	indra/newview/llavatarrenderinfoaccountant.cpp
#	indra/newview/llconversationmodel.h
#	indra/newview/llfloaterinventorysettings.cpp
#	indra/newview/llfloaternamedesc.cpp
#	indra/newview/llfloaternamedesc.h
#	indra/newview/llfloaterobjectweights.cpp
#	indra/newview/llfloaterobjectweights.h
#	indra/newview/llfolderviewmodelinventory.h
#	indra/newview/llinspecttexture.cpp
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorybridge.h
#	indra/newview/llinventoryfunctions.cpp
#	indra/newview/llinventorygallery.h
#	indra/newview/llinventorygallerymenu.cpp
#	indra/newview/llinventorymodel.cpp
#	indra/newview/llinventorypanel.cpp
#	indra/newview/llinventorypanel.h
#	indra/newview/llmaterialeditor.cpp
#	indra/newview/lloutfitgallery.cpp
#	indra/newview/lloutfitgallery.h
#	indra/newview/lloutfitslist.cpp
#	indra/newview/lloutfitslist.h
#	indra/newview/llpanelgroupcreate.cpp
#	indra/newview/llpanelgroupgeneral.cpp
#	indra/newview/llpanelobjectinventory.cpp
#	indra/newview/llpaneloutfitsinventory.h
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llpanelwearing.cpp
#	indra/newview/llreflectionmap.cpp
#	indra/newview/llselectmgr.cpp
#	indra/newview/llsidepanelappearance.cpp
#	indra/newview/llsidepaneliteminfo.cpp
#	indra/newview/llteleporthistorystorage.cpp
#	indra/newview/lltexturectrl.cpp
#	indra/newview/lltexturectrl.h
#	indra/newview/lltexturefetch.cpp
#	indra/newview/lltexturefetch.h
#	indra/newview/llviewerassetupload.cpp
#	indra/newview/llviewercamera.cpp
#	indra/newview/llviewercamera.h
#	indra/newview/llviewermenufile.cpp
#	indra/newview/llviewerobject.h
#	indra/newview/llviewertexture.cpp
#	indra/newview/llviewerwindow.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/llvoavatar.h
#	indra/newview/llvoavatarself.cpp
#	indra/newview/llvovolume.cpp
#	indra/newview/llvovolume.h
#	indra/newview/tests/llviewerassetstats_test.cpp
2025-04-10 06:01:50 +03:00
Ansariel 01831e462e Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2025-04-03 23:07:22 +02:00
Beq 005483536b Update KDU to 8.5 for all platforms. 2025-04-02 13:49:27 +01:00
Ansariel 750099db68 Merge branch 'release/2025.03' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llmessage/llproxy.cpp
#	indra/llui/llfolderviewitem.cpp
#	indra/newview/CMakeLists.txt
#	indra/newview/llappviewer.cpp
#	indra/newview/llfilepicker.cpp
#	indra/newview/llfloaterpreference.cpp
#	indra/newview/lloutfitslist.cpp
#	indra/newview/llpanelmaininventory.cpp
#	indra/newview/llviewerprecompiledheaders.h
#	indra/newview/llviewerwindow.cpp
#	indra/newview/skins/default/xui/en/floater_world_map.xml
#	indra/newview/skins/default/xui/en/menu_viewer.xml
#	indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
#	indra/newview/viewer_manifest.py
2025-03-12 19:31:51 +01:00
Rye d915cf17df Try to parallelize xcode builds further and add more headers to PCH to reduce build time 2025-03-12 18:37:27 +02:00
Ansariel d49359c086 Merge branch 'release/2025.03' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llaudio/llaudioengine_openal.cpp
#	indra/llui/lltextbox.h
#	indra/newview/llnotificationhandlerutil.cpp
#	indra/newview/llviewertexture.cpp
#	indra/newview/skins/default/xui/de/strings.xml
#	indra/newview/skins/default/xui/es/strings.xml
#	indra/newview/skins/default/xui/fr/strings.xml
#	indra/newview/skins/default/xui/it/strings.xml
#	indra/newview/skins/default/xui/pl/strings.xml
#	indra/newview/skins/default/xui/pt/strings.xml
#	indra/newview/skins/default/xui/ru/strings.xml
#	indra/newview/skins/default/xui/tr/strings.xml
2025-03-08 13:15:21 +01:00
Andrey Kleshchev d8fbfb4e1a #3569 Update OpenAL-Soft to 1.24.2 2025-03-06 21:25:30 +02:00
Ansariel 6173233fb0 It's 2025... 2025-01-25 13:40:17 +01:00
Beq 640994c740 FIRE-34936 - Update FMOD to 2.02.26 2024-12-29 17:46:38 +00:00
Ansariel 619f326f9b Update Havok TPV lib 2024-12-19 18:21:05 +01:00
Ansariel 3de628f1ce Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm 2024-10-18 10:17:29 +02:00
Beq 7b9199f7d0 Updated Havok for the LL_ERRS fix. 2024-10-17 01:38:00 +01:00
Ansariel 10f176c925 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/newview/CMakeLists.txt
#	indra/newview/llpanelmaininventory.cpp
#	indra/newview/skins/default/textures/map_avatar_you_32.tga
2024-09-05 22:42:39 +02:00
Rye Cogtail 8c65a61b09 Introduce OpenXR SDK prebuilt package and cmake setup (#2503) 2024-09-04 23:10:50 -04:00
Ansariel a9b52b1f73 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llrender/llfontgl.cpp
#	indra/llrender/llrender.cpp
#	indra/llui/llbutton.h
#	indra/llui/llscrolllistctrl.cpp
#	indra/llui/llscrolllistctrl.h
#	indra/newview/llhudtext.h
#	indra/newview/llinventorymodelbackgroundfetch.cpp
#	indra/newview/llviewermenu.cpp
#	indra/newview/skins/default/xui/en/menu_viewer.xml
2024-09-04 11:17:13 +02:00
AiraYumi 60142c1b2f
update OpenJPEG 2.5.2 (#2452) 2024-08-30 17:35:19 +03:00
Ansariel 830eeaa6ff Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/llagentwearables.cpp
#	indra/newview/llface.cpp
#	indra/newview/llpanelpeople.cpp
#	indra/newview/llpanelprofile.cpp
#	indra/newview/llviewertexturelist.cpp
2024-08-21 00:46:46 +02:00
Andrey Lihatskiy 4149fba7d5 Update colladadom to 2.3.0-r8
after updating boost
2024-08-20 20:55:38 +03:00
Andrey Lihatskiy 355c4a7109 Update boost to v1.86 2024-08-20 20:30:12 +03:00
Andrey Lihatskiy 5c936e26c0 Update freetype to v2.13.3 2024-08-20 20:05:29 +03:00
Andrey Lihatskiy dda514ceb8 Update tinyexr to v1.0.9 2024-08-20 20:03:50 +03:00
Brad Linden 68f712615f Merge remote-tracking branch 'origin/release/2024.06-atlasaurus' into develop
# Conflicts:
 #	autobuild.xml
 #	indra/newview/llvoicewebrtc.cpp
2024-08-20 09:44:14 -07:00
Ansariel 571155c561 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llfilesystem/lldiskcache.cpp
#	indra/llfilesystem/lldiskcache.h
#	indra/llfilesystem/llfilesystem.cpp
#	indra/llui/llaccordionctrl.cpp
#	indra/llui/llaccordionctrl.h
#	indra/newview/llfloaterimnearbychathandler.cpp
#	indra/newview/llfloaterpreference.cpp
#	indra/newview/llfloatersettingsdebug.cpp
#	indra/newview/llfloatersettingsdebug.h
#	indra/newview/llfloatertools.cpp
#	indra/newview/llfloatertools.h
#	indra/newview/llpanelmaininventory.cpp
#	indra/newview/llpanelmaininventory.h
#	indra/newview/llpanelpeople.cpp
#	indra/newview/llpreviewnotecard.cpp
#	indra/newview/llpreviewnotecard.h
#	indra/newview/llpreviewscript.cpp
#	indra/newview/llpreviewtexture.cpp
#	indra/newview/llscreenchannel.cpp
#	indra/newview/llviewerwindow.cpp
#	indra/newview/pipeline.cpp
#	indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
2024-08-19 18:55:52 +02:00
Roxie Linden 2dae5a880d update webrtc again. 2024-08-18 23:12:03 -07:00
Roxie Linden 28fdd6e786 Update webrtc to fix loss of stereo in bluetooth issue.
When transitioning from mic-on hands-free mode to mic off,
it's expected that the audio stream would return to stereo.
Inproper logic in the mac device code in webrtc was preventing
that.
2024-08-18 00:30:16 -07:00
Roxie Linden 63d17b395b Microphone was being prematurely enabled on login for a short period.
The microphone issue was causing a short moment of sound, and was
causing bluetooth headsets to switch to hands-free/one channel mode
which is disruptive.

Also, update webrtc to deal with issue where airpods were garbled
after coming out of hands-free mode.
2024-08-17 20:11:46 -07:00
Brad Linden 5f26ba8014 Merge remote-tracking branch 'origin/release/webrtc-voice' into release/2024.06-atlasaurus
# Conflicts:
 #	indra/newview/llpanelpeople.cpp
2024-08-15 09:41:54 -07:00
Rye Mutt 75c422613f
Update nvapi to R560 (#2302) 2024-08-15 05:49:51 +03:00
Ansariel 07228d3a9e Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/CURL.cmake
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/cmake/FreeType.cmake
#	indra/cmake/LLPrimitive.cmake
#	indra/cmake/NGHTTP2.cmake
#	indra/cmake/Tracy.cmake
#	indra/llappearance/llavatarappearancedefines.cpp
#	indra/llcommon/llprofiler.cpp
#	indra/llcommon/llprofiler.h
#	indra/llfilesystem/lldiskcache.cpp
#	indra/llfilesystem/lldiskcache.h
#	indra/llinventory/llinventorytype.cpp
#	indra/media_plugins/example/CMakeLists.txt
#	indra/newview/CMakeLists.txt
#	indra/newview/installers/windows/installer_template.nsi
#	indra/newview/llappearancemgr.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llgroupmgr.cpp
#	indra/newview/llimprocessing.cpp
#	indra/newview/llviewermenu.cpp
#	indra/newview/llviewertexturelist.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/llvoavatarself.cpp
#	indra/newview/skins/default/xui/en/menu_viewer.xml
#	indra/newview/viewer_manifest.py
2024-08-15 00:12:13 +02:00
Roxie Linden 4e6143f0ef don't fatal error on AudioDeviceStop 2024-08-13 19:41:53 -07:00
Rye Mutt 183b097072 Update tracy integration to 0.11 and rework client library to be configurable at build time
Also copy tracy profiler client next to windows binary when enabled
2024-08-13 17:27:30 -04:00
Roxie Linden 47fc1d2f2a [WebRTC] allow quad channel microphones/inputs
Issue #257 - bugsplat crash.

In the debug version of WebRTC, it makes an explicit check that the number
of channels for an input device is between 1 and 2.  The release version allows
more, and should downmix if 1 channel is asked for.

This fix bumps up the max channels allowed to 8.
2024-08-12 11:32:19 -07:00
Rye Mutt f982463488
Update zlib-ng libxml2 libpng freetype minizip-ng boost collada-dom tinygltf packages (#2250)
Rebuild expat, apr, meshoptimizer, ogg_vorbis, libjpeg-turbo for symbol fixes
2024-08-12 07:30:42 +03:00
Ansariel dde5e9a8c1 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/newview/CMakeLists.txt
#	indra/newview/llvoavatar.cpp
2024-08-10 14:38:13 +02:00
Andrey Lihatskiy cf160e3023
Update dullahan to v1.14.0-r3 (#2243) 2024-08-09 20:12:57 +03:00
Ansariel 3be6763aa0 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/APR.cmake
#	indra/cmake/Copy3rdPartyLibs.cmake
#	indra/newview/llappviewer.cpp
#	indra/newview/llface.cpp
#	indra/newview/llface.h
#	indra/newview/llpanelface.cpp
#	indra/newview/llpanelface.h
#	indra/newview/llviewerobjectlist.cpp
#	indra/newview/llviewerobjectlist.h
#	indra/newview/llvoavatar.cpp
#	indra/newview/pipeline.cpp
#	indra/newview/viewer_manifest.py
2024-08-08 21:34:26 +02:00