Drops icons/flags.
Deletes mention from license dialog, and helper script.
Adds submodule to 3rdparty/flag-icons.
Adjusts CMakefile to pick up new path.
Adds license (MIT) to license dialog.
Fixes#6411
As our speex fork contained a fix which was more of a workaround than actually fixing the underlying problem we move back to the upstream xiph/speexdsp repository, as we do not need our modified fork anymore.
The actual problem was fixed through https://github.com/mumble-voip/mumble/pull/6154/files but the combination of both fixes manifested a problem, where the cache was cleared at a point were it should not be cleared yet.
One of the tools (Gentoo Portage) I occasionally use to build mumble from git breaks with a submodule without a path.
Finishes the removal started in commit d11fd05 by removing the second 3rdparty/opus section and url (without path) added in commit 60d0a86.
A bounded single-producer single-consumer wait-free and lock-free queue written in C++11.
It is going to be used for the Windows implementation of global shortcuts.
Since newer versions of libsndfile now link to the system-wide installed
Opus version (on Linux distros), there would be a conflict between
symbols defined in the system-wide installation and the self-built
(bundled) Opus library.
This, as it turned out, can lead for instance to failing assertions due
to pointer identities no longer holding because e.g. a function from the
self-built Opus version ends up calling a sub-function from the
system-wide Opus installation instead. This is also the root cause for
the infamous "Opus crash" or "Audio wizard crash".
In order to avoid these issues, we don't ship a bundled Opus version
anymore and instead make it a build prerequisite to have Opus installed
on your system.
Fixes#5302
Since newer Opus versions appear to cause crashes under some
circumstances, we downgrade our Opus submodule to point to the latest
stable release, which is v1.3.1 from 2019.
We will only be able to upgrade again, once the underlying issue causing
the crashes has been identified and fixed.
Fixes#5302
Opus has been the go-to codec for years now and there is absolutely no
reason why one would want to use any of the legacy codecs (Speex or
CELT) its stead.
Thus, this commit completely removes the support for these codecs from
the Mumble client.
Incidentally, having different codecs available somehow even caused some
audio artifacts, which should now be resolved as well.
Fixes#4538
The "Guidelines Support Library" (GSL) is a library that implements
functions and types suggested by the C++ Core Guidelines. This should
make it relatively straight forward to follow these guidelines and thus
to write better C++ code.
This explicitly adds the Microsoft GSL as that seems to be the most
popular (and complete) GSL implementation available.
Previously we used different formats on different platforms (registry on
Windows, plists on macOS, ini files on Linux). This commit makes sure
that the same format is used on all platforms, regardless of the used
OS.
In this process a few unneeded settings have been removed and the
settings migration path has been tidied up as well (the code from
main.cpp was moved to Settings.cpp and the original uiUpdateCounter
variable was completely removed and replaced with logic inside the
routines handling the JSON (de)serialization of settings.
The old settings should be overtaken without issues and converted into
the new format on-the-fly without the user taking any notice of this.
From that on, the JSON settings file will be used instead.
Fixes#1940
Tracy (https://github.com/wolfpld/tracy) is a profiler that is aimed at
having a very low impact on the runtime performance and is thus suitable
to be used in production systems to figure out what is going on and how
the code is performing.
For the time being, this commit instruments only the server code.
Furthermore, the instrumentation is performed in a rather minimalistic
way that should suffice to start profiling audio and control message
processing but is definitely far from being complete. Further
instrumentation will be added on-demand.
Upon switching to CMake, we kept using our own fork for the repository because a few fixes for the build were needed.
Now that the upstream repository works correctly as submodule, we can fetch from it directly.
Please note that tests provided in the Opus repository are not built anymore.
Fixes#5223.
The theme is now integrated into the main repository. This facilitates
future work on it as we don't have to work across two repositories.
The theme is overtaken from https://github.com/mumble-voip/mumble-theme
without any modifications to it. All file from there are copied to this
repo now.
The theme's directory was renamed from "Mumble" to "Default" in order to
a) Make the name more descriptive
b) Avoid conflicts updating already checked out workspaces (git would
report conflicts if the new dir was called the same as the old one)
This commit removes all qmake-related build-files from the system. We
have now migrated to cmake and are no longer maintaining qmake anyways
and therefore there is no reason to keep it.
Removing it also clearly states to any potential user/programmer that
this project is no longer intended to be compiled with qmake.
Given that the .pri files no longer exist, the mumble-version.py script
had to be adapted to read the version from the CMakeLists.txt file
instead.
Furthermore a few of the submodules support cmake natively and therefore
we no longer need the src/buid-directory approach in order to build
them. The respective build dirs have been removed and the src-dirs have
been renamed.
CELT 0.11.0 provides better quality in comparison to CELT 0.7.0, but the two versions of the codecs are not compatible, which is why we provided both of them.
Opus was introduced in Mumble 1.2.4 (7586a61226), thus we expect that most (if not all) users are using it.
By removing CELT 0.11.0 we don't break backwards compatibility, because it's provided by CELT 0.7.0.
The main reason for removing the codec is the fact that its discontinued (in favor of Opus).
Also, CELT 0.11.0 was removed from the Debian package back in 2012: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=682010
The driving factor for this is that the CentOS builder is so
old that its copy of curl/OpenSSL doesn't support SNI properly,
so trying to clone from xiph.org fails (since the default certificate
for the site specifies opus-codec.org, not xiph.org).
It's also a bit nicer not to leech on Xiph.org's bandwidth. Plus,
we now have the possibility to do fixups (that aren't upstreamable for
some reason) to these repos without too much hassle.
Adds the Mumble theme as a submodule and ensures it is built
into the binary itself as a resource. Also changes the default
configuration to select the Mumble theme in it's Lite style
as the default. Whether we go with lite or dark in the end we'll
want to select a Metro Mumble style as the default. This will allow
us to always switch to the other without restart because they use
the same icons.
The speex library has been split into a codec part
(speex) and a dsp part (speex-dsp). As we still need
the codec for compatibility with 3rd party clients
only sending speex but still want the updates that
went into the dsp and codec since then this patch
modifies our build to enable that. To achieve that
we combined the two libraries back together. Doing
it this way might brittle but is only a temporary
solution until we can actually drop the codec part.
Prior versions of mach_override were small (a single file),
and we just had its source live in the OS X overlay directory.
Newer versions of mach_override use libudis86, so the file count
goes up a fair bit. So much so that it doesn't make sense to
have it live inside the OS X overlay anymore.
Because of that, this commit moves it into 3rdparty.
This commit adds MinHook as a 3rd party
dependency and adds an alternative HardHook
implementation that makes use of MinHook.
This new MinHook-based HardHook implementation
allows us to provide an overlay for Mumble on
Windows x64.
The x64 overlay hasn't seen much testing in
real-world x64 games, except some minor testing
for World of Warcraft running in x64 mode, where
it works just fine.
There seems to be a compatibility with the Uplay
overlay, which causes Far Cry 4 to crash at the
"Press any key to continue" screen that is shown
just after launching the game. However,
Assassin's Creed: Unity works fine, so it might
just be a Far Cry 4 issue.
The x64 overlay also seems to interoperate with
the Steam overlay just fine.
I think this is a good starting point for the
feature. Let us get it into snapshots and let
us try to squash any addition bugs we find.