Mumble is an open-source, low-latency, high quality voice chat software.
Go to file
Mikkel Krautz a179f5d249 Move 'manual' plugin into Mumble itself.
The machinery needed to support the "manual" plugin as a DLL
file on Windows is very complex.

This is because we build Mumble itself as mumble_app.dll and link
our dependencies statically. And also because of various changes
made in Qt 5.

The manual plugin uses Qt. When Mumble linked dynamically against
Qt4Gui.dll, etc. - everything worked fine. The manual plugin simply
linked against the same DLLs.

With the move to mumble_app.dll, we also moved to statically link
against Qt for mumble_app.dll.

To accommodate the manual plugin, we implemented various hacks to
export the Qt symbols from mumble_app.dll that were necessary for
loading the manual plugin.

And that worked for a while.

However, right now, with Qt 5.6, the plugin is broken. And I get
a lot of weird crashes when interacting with the manual plugin.

Most of it boils down to the fact that both manual.dll and mumble_app.dll
have copies of statically initialized data, like QArrayData::shared_null.
Sharing objects between mumble_app.dll and manual.dll in this scenario is
impossible, because using the object in one module will cause one set of
statically initialized data to be used, while use in the other will cause
the other data to be accessed. This is especially bad for things that use
reference counting, because it'll get out of sync.

So, to get rid of this mess, we're moving the manual plugin into Mumble
itself. Functionally, it doesn't change anything. The manual plugin could
not be auto-updated because it depended on a specific Qt and Mumble
version. Mostly because it depended on the correct set of Qt symbols to be
exported from mumble_app.dll.

The plugin now works correctly, and we can safely remove a lot of the
hacks that were required to load the manual plugin in its earlier
incarnation.

The only downside is that we can't test the manual plugin in PAHelper.
But that wasn't really the case before either, because the plugin
practically depended on Mumble to run.
2016-07-17 00:32:06 +02:00
.tx Add transifex client configuration for project. 2014-04-27 03:20:48 +02:00
3rdparty Convert all remaining uses of LIBPATH in qmake files to use QMAKE_LIBDIR instead. 2016-07-05 23:07:27 +02:00
3rdPartyLicenses Remove old-style license header from WoW plugin. 2016-06-11 19:18:01 +02:00
docs docs/MurmurLocking.md: add documentation for Murmur's locking strategy. 2016-06-24 00:03:12 +02:00
g15helper g15helper: add Qt-based G15 emulator, for debugging. 2016-07-16 00:40:38 +02:00
icons Update svg URL(s) from sourceforge to github 2015-12-12 19:41:18 +01:00
installer Add GTA V plugin to the build and to the installer. 2016-05-29 11:55:22 +02:00
macx macx: update to use LICENSE.header. 2016-05-10 22:42:03 +02:00
man man/murmurd.1: add paragraph about what disabling SuperUser means. 2016-05-22 15:42:48 +02:00
overlay overlay: escape backslashes in overlay-shared.pro. 2016-07-05 22:54:20 +02:00
overlay_gl overlay_gl: use Elf_Sym instead of Elf64_Sym in FreeBSD specific-code. 2016-07-03 22:42:25 +02:00
overlay_winx64 Use # for license header instead of // in various .pro files. 2016-05-18 01:59:24 +02:00
plugins Move 'manual' plugin into Mumble itself. 2016-07-17 00:32:06 +02:00
samples Add sound for recording state change notifications 2010-08-25 23:24:37 +02:00
scripts scripts/mkini.sh: consider semicolons as comments to fix .ini generation. 2016-06-11 01:55:21 +02:00
src Move 'manual' plugin into Mumble itself. 2016-07-17 00:32:06 +02:00
themes themes/Mumble: sync with mumble-theme submodule. 2016-02-20 02:00:32 +01:00
toolchain/win32-msvc2013 toolchain/win32-msvc2013: escape all backslahes to make qmake happy. 2016-07-05 22:36:34 +02:00
.gitignore g15helper: add Qt-based G15 emulator, for debugging. 2016-07-16 00:40:38 +02:00
.gitmodules main.pro, 3rdparty: remove fx11 from the Mumble build. 2015-11-28 10:05:07 +01:00
.mailmap Fix mapping description 2016-07-13 21:16:00 +02:00
AUTHORS Add Joeliam to .mailmap and sync AUTHORS. 2016-05-10 22:47:33 +02:00
CHANGES scripts/generate-CHANGES.py, CHANGES: update script to use commit date rather than author date. 2016-05-18 23:49:09 +02:00
compiler.pri compiler.pri: enable warnings-as-errors by default if inside Mumble buildenv. 2016-06-27 23:25:12 +02:00
Doxyfile Remove 'doc' directory in favour of https://github.com/mumble-voip/mumble-protocol 2015-03-17 20:19:15 +01:00
INSTALL g15helper: add Qt-based G15 emulator, for debugging. 2016-07-16 00:40:38 +02:00
LICENSE Simplify LICENSE file, add LICENSE.header and add AUTHORS. 2016-02-20 01:13:38 +01:00
LICENSE.header LICENSE.header: update default license header to use "2005-2016". 2016-05-10 22:42:02 +02:00
main.pro *.pri: update to use LICENSE.header. 2016-05-10 22:42:03 +02:00
pkgconfig.pri Fix must_pkgconfig and misspelling in mumble.pro 2016-07-10 18:04:51 +02:00
python.pri Add python.pri to detect the system's Python binary. Use it in mumble.pro. 2016-05-10 20:47:58 +02:00
qt.pri *.pri: update to use LICENSE.header. 2016-05-10 22:42:03 +02:00
rcc.pri rcc.pri: escape backslahes. 2016-07-05 22:50:03 +02:00
README Update OS X murmur docs 2015-07-04 17:33:27 +02:00
README.Linux fix minor spelling mistake 2015-05-06 00:53:13 +02:00
README.md Add README.md for GitHub 2016-02-20 01:21:14 +01:00
README.static.linux changed sourceforge links to mumble.info links 2015-07-05 10:43:56 +02:00
README.static.osx changed sourceforge links to mumble.info links 2015-07-05 10:43:56 +02:00
symbols.pri *.pri: update to use LICENSE.header. 2016-05-10 22:42:03 +02:00
uname.pri uname.pri: introduce uname.pri, and use it in various .pri files. 2016-06-11 12:03:17 +02:00
winpaths_default.pri *.pri: update to use LICENSE.header. 2016-05-10 22:42:03 +02:00
winpaths_static.pri *.pri: update to use LICENSE.header. 2016-05-10 22:42:03 +02:00

Mumble - A voicechat utility for gamers

http://mumble.info/
#mumble on freenode

Mumble is a voicechat program for gamers written on top of Qt and Speex.

There are two modules in Mumble; the client (mumble) and the server (murmur). The client works on Win32/64, Linux and Mac OS X, while the server should work on anything Qt can be installed on.

Note that when we say Win32, we mean Windows XP or newer.

Running Mumble

On Windows, after installation, you should have a new Mumble folder in your Start Menu, from which you can start Mumble.

On Mac OS X, to install Mumble, drag the application from the downloaded disk image into your /Applications folder.

Once Mumble is launched, you need a server to connect to. Either create your own or join a friend's.

Running Murmur on Unix-like systems

Murmur should be run from the command line, so start a shell (command prompt) and go to wherever you installed Mumble. Run murmur as

murmurd [-supw <password>] [-ini <inifile>] [-fg] [v]

-supw   Set new password for the user SuperUser, which is hardcoded to
        bypass ACLs. Keep this password safe. Until you set a password,
        the SuperUser is disabled. If you use this option, murmur will
        set the password in the database and then exit.

-ini    Use a inifile other than murmur.ini, use this to run several instances
        of murmur from the same directory. Make sure each instance is using
        a separate database.

-fg     Run in the foreground, logging to standard output.

-v      More verbose logging.

Running Murmur on Mac OS X

Murmur is distributed seperately from the Mumble client on Mac OS X. It is called Static OS X Server and can be downloaded from the main webpage.

Once downloaded it can be run in the same way as on any other Unix-like system. For more information please see the 'Running Murmur on Unix-like systems' above.

Running Murmur on Win32

Doubleclick the Murmur icon to start murmur. There will be a small icon on your taskbar from which you can view the log.

To set the superuser password, run murmur with the parameters -supw <password>.

Bandwidth usage

Mumble will use 10-40 kbit/s outgoing, and the same incoming for each user. So if there are 10 other users on the server with you, your incoming bandwidth requirement will be 100-400 kbit/s if they all talk at the same time.