Commit Graph

41 Commits

Author SHA1 Message Date
Robert Adam
1d45d991aa 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
2022-03-27 09:49:58 +02:00
Robert Adam
d100ff1467 MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
Robert Adam
59ae429972 MAINT: Update copyright notice to 2021
This was done by running scripts/updateLicenseHeaders.py and then
manually editing the LICENSE file.
2021-03-02 10:15:01 +01:00
Robert
af7dac72f4 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Robert Adam
09d4b41d81 FIX(code): Missing includes for PacketDataStream 2020-09-11 18:28:38 +02:00
Davide Beatrici
4e67a2fafb Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
Davide Beatrici
b427333257 Auto-update LICENSE.header in source files 2019-01-25 04:56:19 +01:00
Mikkel Krautz
f6ba3a52bf Auto-update LICENSE.header in source files. 2018-01-01 23:05:37 +01:00
Mikkel Krautz
91ebb8b0b5 Update tree copyrights to 2017. 2017-01-08 21:05:57 +01:00
Mikkel Krautz
395c084b7a src: update to use LICENSE.header. 2016-05-10 22:42:02 +02:00
Kissaki
1e4bb6dbd0 Prepend Projectname to header guard defines
* some few (4?) files actually already had it
2013-06-04 21:59:52 +02:00
Benjamin Jemlich
07737a314c Fix include guards and PCH includes 2011-11-09 00:12:10 +01:00
Thorvald Natvig
f3437a6ba7 Update copyright year ranges of dev team. 2011-03-18 05:52:51 +01:00
Thorvald Natvig
16339bfc91 Update license to 2010 2010-01-05 08:49:22 +01:00
Thorvald Natvig
6d9a0e06b2 Change to straight 4-byte encoding for floats 2009-11-30 12:56:55 +01:00
Thorvald Natvig
a9a1cf1827 Indent, changelog and submodule update 2009-10-20 00:02:02 +02:00
Thorvald Natvig
d71202bc4c Fix more compiler warnings 2009-10-19 19:22:15 +02:00
Thorvald Natvig
534753f65e Optimize audio framing, and preserve flags 2009-05-04 16:40:15 +02:00
Thorvald Natvig
1a36b56121 Handle positional audio distribution server-side 2009-04-20 15:54:56 +02:00
Thorvald Natvig
1718cde75e Make Mumble compile with protobuf. 2009-03-26 21:51:50 +01:00
Thorvald Natvig
481760c986 ProtoBuf for murmur (no DBus/Ice yet) 2009-03-23 00:20:33 +01:00
Thorvald Natvig
ad2b8e2149 Update copyright for 2009
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1380 05730e5d-ab1b-0410-a4ac-84af385074fa
2009-01-05 15:12:48 +00:00
Thorvald Natvig
d680eb9bf1 Add Q_DISABLE_COPY to most classes
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1326 05730e5d-ab1b-0410-a4ac-84af385074fa
2008-10-09 10:18:33 +00:00
Thorvald Natvig
11eea44343 Use explicit static_cast<> instead of implicit conversions for float<->int etc
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@1220 05730e5d-ab1b-0410-a4ac-84af385074fa
2008-08-13 20:08:19 +00:00
Thorvald Natvig
dc7e438976 Update copyright for 2008
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@908 05730e5d-ab1b-0410-a4ac-84af385074fa
2008-01-05 16:25:48 +00:00
Thorvald Natvig
d05df59f9e Indent
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@857 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-11-17 18:43:41 +00:00
Thorvald Natvig
568fdeb282 More gracefully handle oversized outgoing packets from murmur
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@763 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-09-07 02:09:40 +00:00
Thorvald Natvig
36f625a583 Start of proper statistics
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@723 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-08-11 14:33:20 +00:00
Thorvald Natvig
7ed5e47f6f Testing UDP crypt
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@686 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-08-04 17:08:38 +00:00
Thorvald Natvig
b4817ee463 obsessive PacketDataStream optimization
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@652 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-07-21 10:32:08 +00:00
Thorvald Natvig
ae9f13e776 PacketDataStream bug for negative numbers > 32 bit
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@645 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-07-20 00:37:29 +00:00
Thorvald Natvig
62dbc00a21 sPlayerId => uiSession
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@637 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-07-19 17:35:34 +00:00
Thorvald Natvig
7d145eb5e9 64-bit message support.
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@633 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-07-19 13:24:33 +00:00
Thorvald Natvig
4b8e2fd59e 64-bit message support.
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@632 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-07-19 13:23:22 +00:00
Thorvald Natvig
761f7460ce 64-bit message support.
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@631 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-07-19 13:21:25 +00:00
Thorvald Natvig
1b265ffa8c reindenting all the code
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@622 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-07-17 23:12:38 +00:00
Thorvald Natvig
25082c477a Custom UserTextures
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@547 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-07-05 21:32:55 +00:00
Thorvald Natvig
43853bc9aa Wrong int encoding in PacketDataStream.
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@546 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-07-05 21:14:37 +00:00
Thorvald Natvig
2ef9c1ddb6 Start of zero-copy UDP thread
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@511 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-06-30 12:29:32 +00:00
Thorvald Natvig
e7b260e7ef Updates for new binary protocol.
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@508 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-06-29 15:30:55 +00:00
Thorvald Natvig
a9008bdec3 New datastream. Breaks all kinds of things
git-svn-id: https://mumble.svn.sourceforge.net/svnroot/mumble/trunk@504 05730e5d-ab1b-0410-a4ac-84af385074fa
2007-06-29 14:13:16 +00:00