0
0
Fork 0
mirror of https://github.com/mumble-voip/mumble.git synced 2025-03-14 20:53:06 +00:00
Commit graph

49 commits

Author SHA1 Message Date
Davide Beatrici
ffddb3ce54 REFAC(client): Replace <codecvt> usage
Deprecated in C++17 and slated for removal in C++26.

Unfortunately no standard replacement is available yet.
2024-07-26 20:14:22 +02:00
Andreas Stieger
2c60e3f97c FIX(ui): Replace Emoji One icons with MIT licensed flag-icons
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 
2024-05-09 10:30:20 +02:00
Hartmnt
84f759d99d FEAT(client): Add ReNameNoise as a replacement for RNNoise 2024-04-04 14:59:09 +00:00
Robert Adam
f8c79aed15 MAINT: Update SPSCQueue submodule
We use our own fork in order to be able to mark included files as system
files to avoid warnings from them.
2024-01-07 16:56:35 +01:00
Robert Adam
9d5f484b7d MAINT: Add cmake-compiler-flags submodule 2024-01-07 16:56:35 +01:00
Robert Adam
34f334b29f MAINT: Update nlohmann::json 2024-01-07 16:48:55 +01:00
jvbsl
829ec88709
FIX(client): Fix speex bug, introduced through double fix
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.
2023-07-30 11:14:46 +02:00
Phoenix591
474caae2db MAINT: Finish removing bundled opus git module
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.
2023-02-13 09:16:02 -06:00
Davide Beatrici
755b67ebf5 MAINT: Add SPSCQueue as submodule
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.
2022-12-30 13:16:02 +01:00
Robert Adam
d11fd05062 CHANGE(client): Remove bundled Opus version
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 
2022-12-28 13:04:25 +01:00
Robert Adam
60d0a86b8e MAINT: Downgrade Opus submodule
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 
2022-12-26 18:04:34 +01:00
Robert Adam
9214413b0a MAINT: Fix .gitmodules Opus entry 2022-12-26 17:45:11 +01:00
Robert Adam
4d05018c2e CHANGE(client): Drop support for all legacy codecs
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 
2022-09-10 10:29:12 +02:00
Robert Adam
3d99436252 MAINT: Add GSL as submodule
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.
2022-03-22 18:28:26 +01:00
Robert Adam
2002e6d668 CHANGE(client): Use JSON file for storing settings
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 
2022-02-07 20:00:41 +01:00
Robert Adam
dd56e174f2 FEAT(server): Add support for the tracy profiler
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.
2021-12-29 18:01:28 +01:00
Davide Beatrici
a4fdc46a80 BUILD(opus): Fetch submodule from upstream repository
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 .
2021-08-10 23:03:33 +02:00
Robert Adam
2cd4635e85 MAINT: Integrate theme submodule
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)
2021-06-01 08:26:51 +02:00
Robert Adam
53a92c6b78 MAINT: Add FindPythonInterpreter submodule
This submodule contains a cmake script to locate a Python interpreter in
an easy and straight-forward way.

Ref.: https://github.com/Krzmbrzl/FindPythonInterpreter
2021-05-13 13:34:04 +02:00
Robert Adam
34c602c85b BUILD(qmake): Remove
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.
2020-09-02 08:29:45 +02:00
Robert Adam
c5644c7d73 3rdparty: Removed sbcelt submodule as it is not used and broken 2020-05-07 08:14:09 +02:00
Davide Beatrici
9e1a5604d2 Remove CELT 0.11.0
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
2019-10-15 03:50:24 +02:00
main()
8060171958 Add RNNoise support 2018-07-07 00:40:05 +02:00
Mikkel Krautz
a642894f4a .gitmodules: always use our own submodule repos on GitHub.
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.
2017-07-17 15:21:10 +02:00
Mikkel Krautz
329afa3740 main.pro, 3rdparty: remove fx11 from the Mumble build.
It is no longer used.

Goodbye.
2015-11-28 10:05:07 +01:00
Stefan Hacker
d275284251 Add built-in "Mumble" theme and set "Lite" variant as default.
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.
2015-07-12 01:15:34 +02:00
Kevin Strasser
5aabbcdb77 Normalize submodule URLs as https
Those of us behind corporate firewalls have trouble cloning repos with
the git protocol. Change all submodule URLs to use https instead of git.
2015-07-04 15:36:22 +02:00
Stefan Hacker
2c0d37f9ef Switch from old speex to new speex and speexdsp
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.
2015-05-06 20:22:11 +02:00
Mikkel Krautz
3293f7ad4c Make 3rdparty/mach-override-src point to mumble-voip/mach_override, and use https instead of ssh. 2015-02-06 00:11:41 +01:00
Mikkel Krautz
403aedb35d Add mach_override as a 3rdparty dep and hook it into the OS X overlay.
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.
2015-02-05 23:11:28 +01:00
Mikkel Krautz
faa67303bd Move speex, celt-0.7.0, celt-0.11.0, opus and sbcelt to the 3rdparty directory. 2015-01-05 23:11:59 +01:00
Mikkel Krautz
93ad74b467 Add MinHook-based overlay for Windows x64.
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.
2015-01-03 19:44:02 +01:00
Mikkel Krautz
b2f5bd0981 Update Opus submodule to include our workaround for MSVC2013.3+ x64's bad sqrt auto-vectorizer codegen.
Fixes 
2014-12-29 16:23:30 +01:00
Mikkel Krautz
50206cee10 celt-0.7.0-src, .gitmodules: point the submodule to our own CELT 0.7.0 code base to fix Windows/amd64 build of celt-0.7.0. 2014-07-12 20:24:33 +02:00
Kissaki
9544bec1f9 Overlay: Add Direct3D 11 support
* Based on an initial patch by Benjamin Jemlich
* Effects11 code based on changes by nyet
2014-01-10 22:51:11 +01:00
Mikkel Krautz
c2655fc265 Mumble: allow client to use SBCELT for CELT decoding via CONFIG(sbcelt). 2012-08-09 23:53:09 +02:00
Benjamin Jemlich
7586a61226 Add basic Opus support 2011-11-05 23:21:22 +01:00
Thorvald Natvig
685809cf83 Remove CELT 0.10.0 2011-02-07 02:00:47 +01:00
Benjamin Jemlich
58aba64e55 Add CELT 0.11.0 support 2011-02-04 18:54:11 +01:00
Thorvald Natvig
c61522e2e9 Remove older CELT 0.9.0 2011-01-23 02:31:06 +01:00
Benjamin Jemlich
83dcdc3fd9 Add CELT 0.10.0 2010-12-21 06:18:29 +01:00
Benjamin Jemlich
7186e61bd4 Replace CELT 0.8.1 with 0.9.0 2010-11-06 19:53:04 +01:00
Thorvald Natvig
b6e257462b Add CELT 0.8.0 module 2010-04-21 11:04:58 +02:00
Thorvald Natvig
2de0060365 Build CELT 0.7.0 2009-10-26 19:39:08 +01:00
Thorvald Natvig
5247bf70c5 Clientside celt juggling library load 2009-10-18 15:29:22 +02:00
Thorvald Natvig
b8813f3027 Build CELT dynamic 2009-10-18 15:29:21 +02:00
Thorvald Natvig
59dff3c55e Use git:// instead of http:// for xiph submodules 2009-06-29 14:57:18 +02:00
Thorvald Natvig
ffe79299b5 Add CELT submodule 2009-03-30 21:32:06 +02:00
Thorvald Natvig
a66cf2dba1 Add speex as submodule 2009-03-13 17:17:50 +01:00