I'm adapting mumble to be a distributed application, meaning that each
participator will run their own murmurd and murmurds talk to each other.
However, my code now works for two clients if there are in the same network,
and does not work for clients that are far away from each other. So my guess
would be that, in the latter case, although the voice data was received by the
client, it was not able to be playback because it missed the deadline for
Can anyone tell me the strategy for playback in mumble (e.g. the voice data
will not be playback if it is 5 seconds late), and where in the source code is
this strategy implemented?
There are no timestamps in the audio packets and the client will play
everything it receives if it's able to decode it. It will skip playback if it
gets too many packets (= jitter buffer full) or if the delay between packets
is too big (that's somewhere in AudioOutputSpeech::needSamples).