| Age | Commit message (Collapse) | Author |
|
so upstream dullahan_host's rpath, which is meant to have
$ORIGIN/../lib, would correctly refer to the library dir (where
libcef.so is), without having to manipulate dullahan_host (cause
Flatpak SDK doesn't have patchelf). But Dullahan/CEF is still not
working on Flatpak just yet (LibVLC does, now, after I changed the
prebuilt package from Debian 13 binaries to Fedora 44 binaries,
where libvlccore links to libidn with the same compatibility
version.
|
|
but excluding AppleClang.
|
|
Still uses prebuilt GLU, could be improved by using the glu shared
module.
Still uses prebuilt OpenAL, could be improved by separating the
ALUT dependency (which isn't available on the runtime) from it,
so we could use runtime's OpenAL.
Still uses prebuilt LibXML2, could be improved by separating the
Minizip & ColladaDOM from it (which aren't available on the
runtime) from it, so we could use runtime's LibXML2 but have
ColladaDOM built against it (and a still non-runtime Minizip).
Still uses FLTK 1.3, when I tried using 1.4, it still had linking
errors (might need to just add Cairo libraries to the
target_link_libraries).
VLC plugins are installed in vlc/plugins path relative to the vlc
& vlccore libraries, the way they are in the distro I got the
binaries from (Debian), cause I think it's the libraries that are
compiled with that path.
Still uses prebuilt dependencies in general, could be improved by
having them as modules to be built.
_FORTIFY_SOURCE needs to be skipped to avoid redefinition cause
Flatpak build system already defines it.
The conditionals for deciding installation paths need to be
reorganised to accomodate installation that doesn't require an
encapsulating namespace (because the installed files are already
encapsulated in the app sandbox).
The library directory naming scheme used here is lib64.
The libGLESv2.so & libvulkan.so.1 installed are still copies, not
links yet, because I'm still not familiar yet with the runtime
hierarchies (they might reside just in /usr/lib/x86_64-linux-gnu).
|
|
|
|
|
|
This includes files of WebRTC, Discord, VLC & CEF and their media
plugins & resources.
This is so they won't clash just in case some other packages install
files with the same names in system library directories.
Furthermore, this seems to prevent Dullahan/CEF from breaking in
general.
The path to this encapsulating folder needs to be added as a runtime
path to especially dullahan_host & libmedia_plugin_cef.so so they can
find libcef.so etc, also for the viewer to find libllwebrtc.so &
libdiscord_partner_sdk.so. And that's why `patchelf` needs to be made
sure it's installed.
|
|
|
|
disconnect (#5706)
* Fix P2P text chat timeout on WebRTC regions and delay voice renegotiation on disconnect
Text chat: On WebRTC regions, getOutgoingCallInterface() returns nullptr,
causing mP2PAsAdhocCall to be true for all P2P sessions including text-only
IMs. This routed text chat through startP2PVoiceCoro which sent a "start p2p
voice" request and waited for a server reply that never came, resulting in a
30-second session initialization timeout. Fix by gating the p2p-as-adhoc
server init on mStartedAsIMCall so text-only sessions initialize immediately.
WebRTC: Split kFailed and kDisconnected handling in OnConnectionChange.
kFailed still renegotiates immediately. kDisconnected now waits 10 seconds
before renegotiating, giving the connection time to recover on its own. Uses
a sequence counter to ensure only the most recent disconnect transition can
trigger renegotiation, preventing stale delayed tasks from firing early
after disconnect/reconnect cycles.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Revert im-change for not using the voice subsystem when doing a text-only IM
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
|
|
|
settings (#5581)
|
|
|
|
Voice moderation -> 26.2
|
|
|
|
|
|
|
|
* Fix failure to reconnect after disconnect and occasional dropout issue
We were occasionally seeing dropouts which may have been caused by ICE
renegotiate requests. The code is there to reconnect in that case,
but there were a few bugs, some of which were likely due to the webrtc upgrade.
Also, we were seeing failures to reconnect after voice server restart.
There were some issues with the PTT button that came up after the above issue was fixed.
* Added a clarification as part of CR
* We need to set mute state for p2p/adhoc/group calls as well
|
|
* Fix failure to reconnect after disconnect and occasional dropout issue
We were occasionally seeing dropouts which may have been caused by ICE
renegotiate requests. The code is there to reconnect in that case,
but there were a few bugs, some of which were likely due to the webrtc upgrade.
Also, we were seeing failures to reconnect after voice server restart.
There were some issues with the PTT button that came up after the above issue was fixed.
* We need to set mute state for p2p/adhoc/group calls as well
|
|
# Conflicts:
# indra/newview/llviewerstats.h
|
|
|
|
2025.08 -> Develop
|
|
|
|
|
|
|
|
|
|
|
|
microphone. (#4897)
The mac audio device manager was being "helpful" by restarting
playout and recording if the Default device was changed, assuming
the application wouldn't care.
However, we received an update of device change, and attempted to
stop and start playout anyway, causing a conflict.
The fix was simply to not deploy new devices when the device id didn't
change.
|
|
Wrong approach. Might need to split workerDeployDevices into
separate recording and rendering variants.
This partiall reverts commit bb26aa3c2cb8ff961668cf0ad8180d3e9c57f941,
I left log lines.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Somehow there would be undefined references to
webrtc::RtpStreamConfig::Rtx::Rtx()
and
webrtc::LossBasedBweV2::Config::Config()
Rtx definition is not found in "call/rtp_config.h", there's only the
declarations there.
And Config definition either in
"modules/congestion_controller/goog_cc/loss_based_bwe_v2.h"
So, for now, we define those somewhere in llwebrtc code, may not be
ideal at all since they're empty, for now, but at least it builds now
and WebRTC seems to be working (I tested in a WebRTC Voice region, but
this needs to be really tested with microphones and at least 2 people).
|
|
|
|
which are SetObserver, GetPlayoutDevice and GetRecordingDevice.
|
|
|
|
|
|
|
|
Cleanup is in LLVoiceClient::terminate()
gWebRTCImpl was never deleted
Added mDeviceModule security
|
|
* Fix indexing problem with mac devices
This resulted in the wrong device being selected.
Also, fix a shutdown crash where recording was not being stopped, hence the recording
thread was still running on shutdown and crashed because it lost access to resources.
Fix an issue with p2p calls where they're coming up muted even though the button indicates
they are unmuted.
* Always refresh device list on notification of device changes
Even when the selected device doesn't change, we need to
re-deploy it as it might have had characteristics (sampling rate, etc.) changed.
Also, we need to redeploy when the Default device has changed
|
|
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
|
|
|
|
|
|
regions.
Muting was a bit random in the code, so it's now been straightened out and should
prevent echo.
Also, code was added to not attempt connection to non-webrtc regions in the webrtc code.
|
|
|
|
This reverts commit a8dfeed4632aad0233ff08d1efd950b620fd1be7.
|
|
1. set_enabled(false) failed to apply, force set it to trigger observers
and remove the icon
2. Don't set audio devices if voice was disabled
|
|
so we don't have to keep adding unsupporting ones to the preprocessors
in llvoiceclient.
Note that CM_WEBRTC is complementary to LL_WEBRTC, which means its
purpose is not to be XOR-ed.
Any WebRTC supporting (either using LL's or CM's build) will have
LL_WEBRTC set to ON, but *only* ones that use CM builds will have
CM_WEBRTC set to ON *too*.
|