Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
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.
|
|
|
|
bar webrtc's coroutines from necromancy
|
|
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.
|
|
|
|
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.
|
|
|
|
other jobs might be using it.
|
|
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.
|
|
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.
|
|
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.
|
|
into roxie/webrtc-voice
|
|
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.
|
|
|
|
Also:
* Fix a few crashes.
* Only send position data when it changes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
connects (p2p)
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Unlike vivox, P2P uses the ad-hoc voice mechanism, which is also used by
group voice.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Better handle starting up and shutting down WebRTC connections
simultaneously.
|
|
|
|
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.
|
|
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.
|
|
for all applications. Instead, modify the volume on the various streams.
|
|
This is useful for cross-region voice, quick voice switching, etc.
|