mumble-voip / mumblekit

Objective-C-based Mumble client framework for iOS and Mac OS X
http://mumble-voip.github.com/mumblekit/
BSD 3-Clause "New" or "Revised" License
154 stars 68 forks source link

Compatibility with Murmur 1.2.4 and Opus #18

Open emiliopavia opened 11 years ago

emiliopavia commented 11 years ago

Hi,

the RC of Murmur 1.2.4 is out and I'd like to know if there are known issues with the current sources on mumblekit. I'm also interested in the current compatibility with the Opus codec: is it OK to use it with echo cancellation?

Thanks a lot.

P.S. if there's some work to do related to this we'll be happy to contribute

mkrautz commented 11 years ago

I don't know of any issues at present - it should work. I am not sure the Opus git checkout in 3rdparty matches the one used in desktop Mumble, but it should. Besides that, there are no known issues.

With that said, the code hasn't seen much real-life testing yet, so I'm not sure if there are hidden bugs. I am going to update the iOS Mumble client soon as well to enable Opus support, and I'll have to bang a bit on it before then to make absolutely sure.

That's the best I can recommend: try to break it. :-)

emiliopavia commented 11 years ago

Great! We're going to do some real life testing on it ;)

mkrautz commented 11 years ago

Has your testing shown any issues?

emiliopavia commented 11 years ago

Hi,

I've made a quick test using Opus with a running 1.2.3 server and even though I was able to talk I had some echo issues. In these days a colleague of mine will make several tests with Murmur 1.2.4 and we'll see what happens. We noticed that Opus in MumbleKit is not at its latest stable version. Are you updating the official Mumble client?

mkrautz commented 11 years ago

Opus won't work on an 1.2.3 server - the server will not let you negotiate it. (But you can force the client to send, if you really want to...).

I've updated MumbleKit to use the version of Opus we're targetting for our bundled Opus for the Mumble 1.2.4 release. However, there shouldn't be any issues with using a later version.

emiliopavia commented 11 years ago

Yeah, as a matter of fact I was forcing it on the client side :)

However we have great expectations for Opus and we've already setup a 1.2.4 server for doing some tests to tweak the codec.

mkrautz commented 11 years ago

Hi,

I found I was missing some of the later Opus fixes in the MumbleKit tree. I've now ported them from desktop Mumble in 6061213caf8c64cbb5da78f4c6875204a23e0397.

emiliopavia commented 11 years ago

Hi @mkrautz,

we're having some troubles on using Opus as a default codec. It seems that MumbleKit (we're using commit a9739f300a1894a8f54eae5a30d0c04c1c964cf2) is not able to properly enable the codec. The console output is full of:

2013-02-20 08:54:07.795 Acceptance[345:4f0f] MKConnection: Received Opus voice packet in no-Opus mode. Discarding.

I tried to modify MKVersion.m and force returning YES in - (BOOL)isOpusEnabled and in that way opus seems to work. Any idea? The server is the 1.2.4 version and is configured to use Opus only (so no fallback to other codecs).

Thanks in advance.

mkrautz commented 11 years ago

Sorry, you should use the following snippet to enable Opus mode in MumbleKit:

[[MKVersion sharedVersion] setOpusEnabled:YES];

Otherwise, it'll advertise itself as being Opus-less (this is what the currently released Mumble for iOS build uses - it doesn't enable Opus because it was released before the protocol details were finalised...)

Hope it helps.

emiliopavia commented 11 years ago

Oh, ok :) I thought it would have been enabled capabilities during the handshake with the server. Thanks, it helps a lot!