mumble/scripts
Robert Adam 74faaba32e
Merge PR #5594: CHANGE: Use Protobuf for UDP messages
Previously Mumble was using a custom binary format for transmitting data
via UDP (mainly audio). This has worked for a long time but besides
being inconvenient for 3rdParty implementors (they had to manually
re-implement encoding and decoding support for this format) this format
was not very flexible and changes to the data format were very hard.

In order to improve on this situation, this commit introduces changes
that allow to use Protobuf for the UDP messages as well (it's already
used for TCP). With that it should be relatively easy to extend/change
the UDP packet formats in the future and 3rdParty implementors can now
simply use Protobuf to handle decoding/encoding packets for them (much
less work and much less prone to errors).

Since the new Protobuf format is incompatible with the old UDP format,
this commit also includes support for dealing with older clients or
servers that don't recognize the new protocol yet. That way the new
protocol format is only used if both the client and the server are
recent enough to have it implemented (assumed to be the case >=1.5.0).

Note also that the server will make sure that clients using the old and
the new format can seamlessly communicate with one another.

Therefore, on the surface it should not be noticeable to the user which
protocol is currently used.

Note also that the new protocol format only supports Opus as an audio
codec. If one of the legacy codecs is to be used, the legacy packet
format has to be used as well. However, all codecs except for Opus will
be removed from Mumble in the future anyway.

Fixes #4350

NOTE: When this gets merged, all clients and servers claiming to support the protocol version 1.5.0 that do not include these changes, will become incompatible with the ones that do integrate these changes. This is important for everyone closely following our upstream master branch. A simple update to the latest code changes (including the changes from this PR) should be enough to restore full compatibility.
All servers and clients of version < 1.5.0 will be not affected by this as this PR is completely backwards compatible with those clients.
2022-03-27 18:57:54 +02:00
..
commitMessage MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
development MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
server MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
vcpkg CHANGE(server): Remove gRPC implementation 2022-03-16 08:23:38 +01:00
backportTranslations.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
docker-compose.yml MAINT(docker): Set Docker Compose restart policy to 'unless-stopped'. 2022-01-17 13:41:13 +01:00
extract-emojione-flags.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
generate_cmake_options_docs.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
generate-ApplicationPalette-class.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
generate-ffdhe.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
generate-mumble_qt-qrc.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
generate-qrc.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
generateChangelog.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
generateIceWrapper.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
git2cl.pl MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
info.mumble.Mumble.appdata.xml.in FIX(client): Improve appstream metadata 2022-01-19 19:23:28 +01:00
info.mumble.Mumble.desktop FIX(client): Improve appstream metadata 2022-01-19 19:23:28 +01:00
mkflags.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
mkini-win32.bat MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
mkini.sh MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
mklic.pl MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
mumble-build-number.py MAINT: Fix password use in build-number script 2022-01-11 09:41:18 +01:00
mumble-overlay FIX(client/overlay): Update unix script to use the current library names 2020-09-19 21:03:07 +02:00
mumble-server-user-wrapper MAINT(manpages): Replace murmur with mumble-server 2022-02-07 08:32:23 +01:00
mumble-version.py MAINT: Use python3 for mumble-version script 2022-01-09 19:54:49 +01:00
mumble.protocol More Ubuntu fixes 2007-11-09 01:24:29 +00:00
murmur.conf Rename ubuntu package from murmur back to mumble-server 2008-01-14 17:29:15 +00:00
murmur.ini CHANGE(server): Enforce Opus by default 2022-03-27 09:49:59 +02:00
murmur.init MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
murmur.logrotate Make the logrotate fail gracefully if murmur isn't running 2009-03-22 22:37:35 +01:00
murmur.service MAINT/FIX(server): Fix systemd murmur.service 2020-12-09 14:49:21 +03:00
php.ini Include weblist.php using ICE 2008-07-03 12:34:38 +00:00
rcc-depends.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
release.pl MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
runClangFormat.sh MAINT: Don't try to format files in build dirs 2022-03-27 09:49:59 +02:00
sign_macOS.py MAINT: Add script to sign macOS binaries and packages 2022-01-18 01:25:14 +01:00
transtate.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
updateLicenseHeaders.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
updatetranslations.py MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00