Commit Graph

125 Commits (cb43c1c792f02f35d2aa9acfa3a9e9f5bfe1b984)

Author SHA1 Message Date
Ansariel cb43c1c792 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/llcommon/llprofiler.h
#	indra/llcommon/llthread.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloaterpreferencesgraphicsadvanced.cpp
2024-07-10 12:36:15 +02:00
Rye Mutt 2a7030992f
Update tracy profiler to 0.10 (#1946) 2024-07-09 16:53:43 -05:00
Ansariel 088cc2ea35 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llcommon/llpointer.h
#	indra/llcommon/llqueuedthread.cpp
#	indra/llfilesystem/llfilesystem.cpp
#	indra/llui/llconsole.cpp
#	indra/llui/llkeywords.cpp
#	indra/llui/llstatgraph.cpp
#	indra/llui/llvirtualtrackball.cpp
#	indra/newview/llagentcamera.cpp
#	indra/newview/llappviewer.cpp
#	indra/newview/llfloateremojipicker.cpp
#	indra/newview/llfloaterimnearbychathandler.cpp
#	indra/newview/llfloatersettingsdebug.cpp
#	indra/newview/llfloatersnapshot.cpp
#	indra/newview/llglsandbox.cpp
#	indra/newview/llnetmap.cpp
#	indra/newview/llpanelface.cpp
#	indra/newview/llpanelpermissions.cpp
#	indra/newview/llpanelplaceprofile.cpp
#	indra/newview/llstartup.cpp
#	indra/newview/llviewermessage.cpp
#	indra/newview/llvocache.cpp
#	indra/newview/llworldmapview.cpp
2024-07-09 02:25:42 +02:00
Ansariel 9fdca96f8b Re-enable compiler warnings C4244 and C4396 except for lltracerecording.h and llunittype.h for now 2024-07-08 20:27:14 +02:00
Ansariel 9a2b83b294 Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llcommon/llmemory.cpp
#	indra/llmessage/CMakeLists.txt
#	indra/llmessage/llfiltersd2xmlrpc.cpp
#	indra/newview/lldebugview.cpp
#	indra/newview/lldrawpoolbump.cpp
#	indra/newview/llheroprobemanager.cpp
#	indra/newview/llnetmap.cpp
#	indra/newview/llslurl.cpp
#	indra/newview/llsurface.cpp
#	indra/newview/lltextureview.cpp
#	indra/newview/llversioninfo.cpp
#	indra/newview/llviewertexture.cpp
#	indra/newview/llviewertexturelist.h
#	indra/newview/llviewerwindow.cpp
#	indra/newview/llvlcomposition.cpp
#	indra/newview/llvoiceclient.cpp
#	indra/newview/llworld.cpp
#	indra/newview/llxmlrpctransaction.cpp
#	indra/newview/skins/default/xui/da/floater_about.xml
#	indra/newview/skins/default/xui/de/floater_about.xml
#	indra/newview/skins/default/xui/de/menu_viewer.xml
#	indra/newview/skins/default/xui/en/floater_about.xml
#	indra/newview/skins/default/xui/es/floater_about.xml
#	indra/newview/skins/default/xui/es/menu_viewer.xml
#	indra/newview/skins/default/xui/fr/floater_about.xml
#	indra/newview/skins/default/xui/it/floater_about.xml
#	indra/newview/skins/default/xui/it/menu_viewer.xml
#	indra/newview/skins/default/xui/ja/menu_viewer.xml
#	indra/newview/skins/default/xui/pl/menu_viewer.xml
#	indra/newview/skins/default/xui/pt/floater_about.xml
#	indra/newview/skins/default/xui/pt/menu_viewer.xml
#	indra/newview/skins/default/xui/ru/floater_about.xml
#	indra/newview/skins/default/xui/ru/menu_viewer.xml
#	indra/newview/skins/default/xui/tr/floater_about.xml
#	indra/newview/skins/default/xui/tr/menu_viewer.xml
#	indra/newview/skins/default/xui/zh/floater_about.xml
#	indra/newview/skins/default/xui/zh/menu_viewer.xml
#	scripts/messages/message_template.msg.sha1
2024-07-02 18:08:57 +02:00
Ansariel 59cc180281 Remove include of format library that isn't used and can't be used without C++20 support anyway 2024-07-01 17:58:45 +03:00
Brad Linden 35f4de5ebe Merge remote-tracking branch 'origin/release/webrtc-voice' into develop
# Conflicts:
 #	indra/newview/llvoicechannel.cpp
2024-06-28 12:50:59 -07:00
Roxie Linden 34a2fd525f [WebRTC] control microphone gain via custom audio processor.
Previously, there were two places audio gain could be controlled:
- the device manager
- the audio track

The device manager audio gain control sets the system gain for all applications,
not just the webrtc application.

The audio track gain happens well after the audio processing where we want it to happen.

So, gain control was added to the existing custom audio processor, which previously only
handled calculating and retrieving the audio levels.

After these changes, the microphone gain slider does impact the audio volume heard by peers.
2024-06-24 14:42:30 -07:00
Ansariel 364a14a8aa Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/llcommon/llprofilercategories.h
2024-06-21 22:45:12 +02:00
Ansariel e2c7a4d245 Fix some BOOL oversights during WebRTC merge 2024-06-21 19:48:18 +02:00
Ansariel 684bc1d1ea Merge branch 'develop' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/00-Common.cmake
#	indra/llcommon/llsys.cpp
#	indra/llwindow/llwindow.cpp
#	indra/llwindow/llwindow.h
#	indra/llwindow/llwindowmacosx.cpp
#	indra/llwindow/llwindowmacosx.h
#	indra/llwindow/llwindowwin32.cpp
#	indra/llwindow/llwindowwin32.h
#	indra/newview/app_settings/logcontrol.xml
#	indra/newview/llappviewerwin32.cpp
#	indra/newview/llpanelpeople.h
#	indra/newview/llspeakers.cpp
#	indra/newview/llviewerregion.cpp
#	indra/newview/llviewerwindow.cpp
#	indra/newview/llvoavatar.cpp
#	indra/newview/llvoavatar.h
#	indra/newview/llvocache.cpp
#	indra/newview/llvoicechannel.cpp
#	indra/newview/llvoicechannel.h
#	indra/newview/llvoiceclient.h
#	indra/newview/llvoicevivox.cpp
#	indra/newview/skins/default/xui/en/panel_preferences_sound.xml
#	indra/newview/viewer_manifest.py
#	scripts/messages/message_template.msg.sha1
2024-06-21 19:46:51 +02:00
Brad Linden 863c541ce0 Fix whitespace for pre-commit hooks 2024-06-18 11:57:11 -07:00
Roxie Linden 5e60392c27 Merge branch 'develop' of github.com:secondlife/viewer into roxie/webrtc-voice 2024-06-13 14:59:28 -07:00
Ansariel 4b0ad849a9 Merge remote-tracking branch 'LL/project/webrtc-voice'
# Conflicts:
#	autobuild.xml
#	indra/cmake/WebRTC.cmake
2024-05-21 00:42:55 +02:00
Roxie Linden ddbd1ab47e More session shutdown cleanup 2024-05-19 02:30:45 -07:00
Roxie Linden c6e147ff22 Race condition resulted in close causing removal of peer connection while other jobs might be using it. 2024-05-16 12:00:45 -07:00
Ansariel 223ac67c75 Merge branch 'project/webrtc-voice' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/newview/llvoicevivox.cpp
2024-05-12 17:16:46 +02:00
Roxie Linden c628c1f6e4 Fix some session shutdown/error handling code 2024-05-08 14:22:43 -07:00
Roxie Linden 74028326e8 The IM Floater speak button was disabled when making group calls
This is because the button enable state was updated before the
call had fully established.
2024-05-06 18:40:25 -07:00
Ansariel 5e5edd78ed Merge branch 'webrtc-voice' of https://github.com/secondlife/viewer
# Conflicts:
#	indra/newview/app_settings/settings.xml
2024-05-03 14:00:17 +02:00
Roxie Linden 05b2dd913f Update the participant's region when crossing region boundaries. 2024-05-02 13:15:44 -07:00
Roxie Linden 07c3095a78 Unregister requested data channel when using the negotiated one.
When creating a new connection, the viewer builds a data channel interface.
It then gets a new one, which is a proxy.  The viewer uses the new one,
and therefore must unregister the callbacks from the old one.

Also, update the position data before sending it after the join is sent.
2024-05-02 11:07:36 -07:00
Roxie Linden f9cb9a2b05 Can't delete from a map while iterating over it. 2024-04-30 12:58:07 -07:00
Roxie Linden 2c50399720 Remove voice participants for a connection when shutting it down.
When teleporting or moving around, connections to regions are shut down.
We need to track which participants are associated with the given
connections and remove those participants when the connection is
shut down.
2024-04-30 11:45:21 -07:00
Roxie Linden d4fce4990a Reconnects to the voice server weren't happening. 2024-04-28 17:43:15 -07:00
Roxie Linden 62cd262cca attempt to access participant after it's deleted 2024-04-26 22:00:32 -07:00
Roxie Linden 4c4d23acb0 Renegotiate voice if the voice server type has changed.
The server will send an update with new voice credentials
when another peer comes in requiring vivox, if the channel
was initially webrtc.
2024-04-26 21:31:06 -07:00
Roxie Linden 534ddc5290 Before login, voice device preferences were not populated.
Before login, when the user shows voice device preferences,
the dropdowns were not populated.  This is because WebRTC's view
of the main queue was not configured.
2024-04-23 10:57:02 -07:00
Roxie Linden 98322d5f07 Reconnect when parcel voice params change.
When parcel voice permissions and region/parcel-only voice
settings change, a callback will be made to the viewer with
new voice credential information.  For webrtc, this means
either just the uuid of the voice channel, or nothing if
voice is disabled.

This change looks at that callback and the channel id,
and sets the appropriate flags on the parcel/region as needed
which will cause voice to be renegotiated.

Also, there was a race condition if the voice connect attempt
was made before caps were retrieved, which would have resulted
in full renegotiate attempts.  Now, just wait until the cap
comes in and continue.
2024-04-21 21:12:06 -07:00
Roxie Linden 53c584e1de Fix cases where voice outstanding requests could be dropped, resulting in no voice 2024-04-16 23:23:35 -07:00
Ansariel 89b5410d0c Merge branch 'webrtc-voice' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/llcommon/llprofilercategories.h
#	indra/llwebrtc/llwebrtc.cpp
#	indra/newview/app_settings/settings.xml
#	indra/newview/llimview.cpp
#	indra/newview/skins/default/xui/en/panel_preferences_sound.xml
2024-04-16 12:53:16 +02:00
Roxie Linden 39cb0bca32 Show mute/unmute status in group voice 2024-04-08 21:29:12 -07:00
Roxie Linden 4ecf050439 Tell the user the peer has declined and shut down voice channel
When the server sends up a notification that a peer is not doing
voice in adhoc-style p2p chat, shut down the voice call and
notify the user the peer has declined.
2024-04-06 21:58:17 -07:00
Roxie Linden 3ff1f0f951 An explicit "decline" message for P2P
When declining a P2P voice call for webrtc, instead of relying
on vivox to stop "ringing," we need to send an explicit decline
message from the peer through the server infrastructure.
2024-04-04 11:32:51 -07:00
Roxie Linden c826aea079 Fix "default" audio device handling.
Windows and Mac/Linux behave slightly differently with respect
to Default devices, in that mac/linux (I think) simply assumes
the device at index 0 is the default one, and windows has a
separate API for enabling the default device.
2024-04-01 21:39:17 -07:00
Roxie Linden 567180508f Merge branch 'roxie/webrtc-voice' of https://github.com/secondlife/viewer into roxie/webrtc-voice 2024-03-30 22:03:59 -07:00
Roxie Linden b3bb3d2d51 Renegotiate on remote description error 2024-03-30 22:03:30 -07:00
Roxie Linden cdae5ebc16 Add UI for managing echo cancellation, AGC, and noise control.
Plumb audio settings through from webrtc to the sound preferences
UI (still needs some tweaking, of course.)

Also, choose stun servers based on grid.  Ultimately, the stun
stun servers will be passed up via login or something.
2024-03-30 21:58:00 -07:00
Roxie Linden e272e387d3 Throw 'area full' message when the voice server reports max users for voice 2024-03-24 20:51:08 -07:00
Roxie Linden 92171a42c9 Not sending proper voice server type down when breaking a connection 2024-03-24 20:50:49 -07:00
Roxie Linden 8d14df5984 Not sending proper voice server type down when breaking a connection 2024-03-24 20:42:32 -07:00
Roxie Linden 168081c7e9 Validate that we're not shutting down after coroutine processing
Coroutine yields can end after shutdown is requested and
voice connections are removed, so we need to check that
a shutdown hasn't occured before attempting to touch
connection objects.

(CR issue)
2024-03-22 17:00:34 -07:00
Roxie Linden e242c129f9 Add Tracy categories for WebRTC Voice
Also:
* Fix a few crashes.
* Only send position data when it changes.
2024-03-22 16:21:02 -07:00
Roxie Linden 4b709e7944 Turn procesIceUpdates into a coroutine to chop up the work a bit. 2024-03-20 11:15:12 -07:00
Roxie Linden 5bc92b8031 Simplify workqueue calls. Fix issue with webrtc blocking on destruction. 2024-03-19 15:23:43 -07:00
Ansariel 5e75273b49 Merge branch 'webrtc-voice' of https://github.com/secondlife/viewer
# Conflicts:
#	autobuild.xml
#	indra/cmake/00-Common.cmake
#	indra/newview/app_settings/settings.xml
#	indra/newview/llagent.cpp
#	indra/newview/llgroupactions.cpp
#	indra/newview/llimview.cpp
#	indra/newview/llpanelpeople.h
#	indra/newview/llvoavatar.cpp
#	indra/newview/llvoavatar.h
#	indra/newview/llvoiceclient.cpp
#	indra/newview/llvoiceclient.h
#	indra/newview/llvoicevivox.cpp
#	indra/newview/llvoicevivox.h
#	indra/newview/viewer_manifest.py
#	scripts/messages/message_template.msg.sha1
2024-03-19 17:09:42 +01:00
Roxie Linden e4dee511ca Use LL::WorkQueue to handle transitions from llwebrtc threads to the main thread 2024-03-18 17:47:56 -07:00
Roxie Linden 8530eadd98 Fix crash in setting peer volume/mute
Also fix issue where moving to a 'voice disabled' parcel and back
to the region (with voice) resulted in the voice dot not showing up.
2024-03-16 15:17:35 -07:00
Roxie Linden dbbbbc55af Refactor device selection logic
This refactor fixed a few bugs.  There is an annoying 'click' when
changing devices, however.  This will be addressed in the future.
2024-03-14 20:04:39 -07:00
Roxie Linden ef8a3833eb Add increasing random timeout to retries. 2024-03-13 13:15:50 -07:00