summaryrefslogtreecommitdiff
path: root/indra/newview/llvoicewebrtc.h
AgeCommit message (Collapse)Author
2024-08-14Voice dot not always visible after crossing region boundaries.Roxie Linden
For issue #2064 The connection to the voice server was not upgraded/downgraded to primary/secondary when crossing region boundaries, so the server sent the wrong value and the viewer chose not to display a voice dot.
2024-08-13viewer-private#262 webrtc crashes on shutdown #2Andrey Kleshchev
2024-08-09Teleport to a region with a different voice server type causes failure in voiceRoxie Linden
When teleporting, the viewer 'hides' voice, effectively disabling it, until the teleport has completed. It does this by instructing the voice module to hide and then unhide. The problem was, it would instruct one voice module for one voice server type to hide, and then after teleport, it would instruct the other voice module for the other voice server type to unhide, resulting in one voice module being hidden. When the user transitions back to a region with the initial voice module, it's hidden, hence voice doesn't work. The solution is to hide/unhide both voice modules.
2024-08-07Replace boost::shared_ptr with std in voice classesAndrey Kleshchev
2024-08-07viewer#2203 Crash at breakVoiceConnectionCoroAndrey Kleshchev
bar webrtc's coroutines from necromancy
2024-07-31Implement a Logging Sink for WebRTCRoxie Linden
WebRTC logs now pass out of the webrtc library into a logging sink, which converts them into SecondLife.log compatable logging calls. This includes fatal errors and asserts, which are now logged into SecondLife.log, and should be available in the crash logger.
2024-07-30viewer-private#255 p2p outgoing calls did not work correctly #2Andrey Kleshchev
2024-06-24[WebRTC] control microphone gain via custom audio processor.Roxie Linden
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-05-20Merge branch 'spaces-merge' into roxie/webrtc-voiceRoxie Linden
2024-05-16Race condition resulted in close causing removal of peer connection while ↵Roxie Linden
other jobs might be using it.
2024-05-02Unregister requested data channel when using the negotiated one.Roxie Linden
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-04-30Remove voice participants for a connection when shutting it down.Roxie Linden
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-21Reconnect when parcel voice params change.Roxie Linden
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-03-30Merge branch 'roxie/webrtc-voice' of https://github.com/secondlife/viewer ↵Roxie Linden
into roxie/webrtc-voice
2024-03-30Add UI for managing echo cancellation, AGC, and noise control.Roxie Linden
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-24Throw 'area full' message when the voice server reports max users for voiceRoxie Linden
2024-03-22Add Tracy categories for WebRTC VoiceRoxie Linden
Also: * Fix a few crashes. * Only send position data when it changes.
2024-03-20Turn procesIceUpdates into a coroutine to chop up the work a bit.Roxie Linden
2024-03-19Simplify workqueue calls. Fix issue with webrtc blocking on destruction.Roxie Linden
2024-03-18Use LL::WorkQueue to handle transitions from llwebrtc threads to the main threadRoxie Linden
2024-03-13Add increasing random timeout to retries.Roxie Linden
2024-03-11Fixup some logic relating to teleporting and new regionsRoxie Linden
2024-03-10Remove trailing spaces. Other code cleanup.Roxie Linden
2024-03-09code beautification/commentsRoxie Linden
2024-03-09Code cleanup and commentingRoxie Linden
2024-03-05For webrtc, 'calling' dialog should remain up, disappearing when peer ↵Roxie Linden
connects (p2p)
2024-03-03fix webrtc logic bugs and suchRoxie Linden
2024-03-03Refactor for vivox spatial and p2pRoxie Linden
General refactoring to improve vivox spacial and p2p voice including generalizing voice info instead of just using sip uri and credentials. Voice server type is also passed around in the generalized voice info blob.
2024-02-08race between session established and data channel readyRoxie Linden
2024-02-08Handle 'device changed' callbackRoxie Linden
2024-02-08Checkpoint mute/volumeRoxie Linden
2024-02-08Hang up when peer hangs up in ad-hoc driven p2p callRoxie Linden
2024-02-08checkpoint p2p/adhoc voiceRoxie Linden
2024-02-08mac build fixesRoxie Linden
2024-02-08Treat adhoc/p2p as primary connectionsRoxie Linden
2024-02-08Checkpoint Ad-Hoc voice.Roxie Linden
Unlike vivox, P2P uses the ad-hoc voice mechanism, which is also used by group voice.
2024-02-08OSX build fixesRoxie Linden
2024-02-08checkpoint for adhoc voiceRoxie Linden
2024-02-08some commentsRoxie Linden
2024-02-08Add viewer-visible session ID to allow multiple sessions under same agent idRoxie Linden
2024-02-08Don't need to send level data up to the server anymoreRoxie Linden
2024-02-08add concept of primary/secondary connectionsRoxie Linden
2024-02-08Connect to close neighboring regions and mute outgoing to themRoxie Linden
2024-02-08Touch up parcel voice enable/disable.Roxie Linden
2024-02-08Better renegotiation support for parcel voiceRoxie Linden
Better handle starting up and shutting down WebRTC connections simultaneously.
2024-02-08Rework VU meter level processing to be closer to VivoxRoxie Linden
2024-02-08Fix crash when disconnecting.Roxie Linden
When disconnecting, we need to wait for any outstanding http calls to complete as the handlers may use the session objects. Also, reap empty sessions.
2024-02-08Mute using enable.Roxie Linden
Muting using the device module microphone mute was muting other applications, speakers, and so on. Instead, we mute by enabling/disabling the input and output streams.
2024-02-08Using the device module to set speaker/mic volume set the system mic/volumeRoxie Linden
for all applications. Instead, modify the volume on the various streams.
2024-02-08Refactor/clean-up WebRTC voice to handle multiple voice streamsRoxie Linden
This is useful for cross-region voice, quick voice switching, etc.