lorenzo
(Lorenzo Miniero)
May 3, 2023, 3:30pm
1
Hi all,
we just pushed a new PR that makes a considerable refactoring of the jitter buffer in the AudioBridge:
meetecho:0.x
← meetecho:audiobridge-speex-jitterbuffer
opened 03:22PM - 03 May 23 UTC
The audio buffer in the AudioBridge has historically been a bit of its Achilles … heel: while it worked fine in most situations, it definitely struggled more with problematic connections (e.g., high jitter or packet loss), which often resulted in broken or spotty audio for specific participants that could only be solved by having them reconnect (until the problem happened again).
This PR tries to fix this by using a proper jitter buffer, specifically the one made available as part of the Speex DSP library. In our tests in different circumstances where we could replicate problems before it seems to perform much better, so we thought we'd make this available as a PR so that you can test it before we merge. As a result of this change, we refactored a bit of related code too, which means that for instance the `prebuffer` property you used before is gone from configuration and API: in fact, that was only meaningful to our own old buffer, and doesn't make much sense using this new jitter buffer instead.
If you use the AudioBridge for anything in your application, you most definitely want to test this. Notice that this will be a breaking change for many: in fact, the fact we now rely on Speex DSP for its jitter buffer also means that the AudioBridge will not compile unless the library is available when rebuilding Janus. In most deployments currently relying on the AudioBridge this may not be the case, meaning they'd get stuck with an older version of the plugin. As such, make sure you install the library before compiling this PR, or when updating Janus after it's merged.
Also notice this PR is for the `0.x` branch: when it will come the time to merge this, I'll port all the same changes to `master` as well.
Looking forward to your feedback!
This patch makes the AudioBridge use the libspeexdsp jitter buffer internally. As such, when merged it will add a further dependency you’ll need to have if you want to use an updated version of the AudioBridge.
Please do take the time to test it before it lands in the main branches for good.
2 Likes
lorenzo
(Lorenzo Miniero)
May 10, 2023, 5:05pm
2
Bumping this thread, because I haven’t seen any feedback on this yet. As I said, it’s a big and important change: don’t blame me when I’ll merge, you’ll update, and things won’t work
2 Likes
lorenzo
(Lorenzo Miniero)
August 4, 2023, 9:57am
3
This has now been merged in both master
and 0.x
.
2 Likes