This PR rewrites the voice engine to use the native WebRTC client library from Google, with a native socket layer, alongside some quality of life changes because I just can't help myself apparently.
Pros:
Quality code, vetted for security by people who know what they're doing
Easier support of more advanced features like additional codecs, RTCP and video
Improved filtering pipeline allowing for noise suppression, automatic gain control and such
Cons:
Much longer build times and space requirements
Unicord is built entirely from source to the best of my ability, with no binary blobs distributed here and I'd prefer to keep it this way
Additional build tools required:
Python 2.7 (yuck)
Strawberry Perl (double yuck)
To-do:
[ ] Configurable processing (noise suppression, automatic gain control, etc.)
[ ] QoS support.
[ ] Proper channel movement.
[ ] Proper input/output device selection.
[ ] Fix a small memory leak.
[ ] Fix RTCP packet transport (how the fuck do they encrypt this shit??)
[ ] Reduce crashes and better handle voice process loss/recovery in the UI
This PR rewrites the voice engine to use the native WebRTC client library from Google, with a native socket layer, alongside some quality of life changes because I just can't help myself apparently.
Pros:
Cons:
To-do: