1
0
mirror of https://github.com/danog/libtgvoip.git synced 2024-11-29 20:29:01 +01:00
Go to file
2020-03-19 14:20:01 +01:00
audio Fix secondary encoder bitrate 2020-03-12 16:57:39 +01:00
client/android Misc improvements and refactorings 2020-01-22 12:43:51 +01:00
controller Finish implementing legacy protocol, start implementing new protocol 2020-03-19 14:20:01 +01:00
libtgvoip_osx.xcodeproj Fix 2020-01-22 13:15:22 +01:00
libtgvoip.xcodeproj Fix 2020-01-22 13:15:22 +01:00
os Merge smore fixes 2020-03-10 20:31:58 +01:00
tests Updated WebRTC APM 2018-11-23 04:02:53 +03:00
tools Save 2020-03-18 21:43:44 +01:00
video Apply last fixes and commence further refactoring 2020-03-11 17:57:00 +01:00
webrtc_dsp Merge multiple fixes 2020-03-10 19:36:27 +01:00
.gitignore Cleanup classes a bit, preparing for my strategy 2020-01-23 16:45:53 +01:00
aclocal.m4 Merge multiple fixes 2020-03-10 19:36:27 +01:00
Android.mk Refactoring 2020-01-22 12:51:17 +01:00
compile 2.2 2018-07-17 19:48:21 +03:00
config.guess 2.2 2018-07-17 19:48:21 +03:00
config.h.in 2.2 2018-07-17 19:48:21 +03:00
config.h.in~ Misc improvements and refactorings 2020-01-22 12:43:51 +01:00
config.sub 2.2 2018-07-17 19:48:21 +03:00
configure Merge multiple fixes 2020-03-10 19:36:27 +01:00
configure.ac Updated projects 2019-03-12 16:15:22 +03:00
depcomp 2.2 2018-07-17 19:48:21 +03:00
Info.plist updated to 0.3.1 2017-03-30 17:06:59 +03:00
install-sh 2.2 2018-07-17 19:48:21 +03:00
libtgvoip.gyp Finish moving around 2020-01-25 18:36:49 +01:00
libtgvoip.UWP.vcxproj Fix 2020-01-22 13:15:22 +01:00
libtgvoip.UWP.vcxproj.filters Fix 2020-01-22 13:15:22 +01:00
libtgvoip.WP81.vcxproj Refactoring 2020-01-22 12:51:17 +01:00
libtgvoip.WP81.vcxproj.filters Refactoring 2020-01-22 12:51:17 +01:00
ltmain.sh Fix ARM Linux builds 2019-02-10 14:04:22 +03:00
Makefile.am Save 2020-03-18 21:43:44 +01:00
Makefile.in Finish implementing legacy protocol, start implementing new protocol 2020-03-19 14:20:01 +01:00
missing 2.2 2018-07-17 19:48:21 +03:00
README.md Move around code 2020-01-25 20:45:43 +01:00
scheme.tlb Finish writing new parser 2020-03-18 19:54:56 +01:00
schemeNew.tlb Finish implementing legacy protocol, start implementing new protocol 2020-03-19 14:20:01 +01:00
TgVoip.cpp Merge multiple fixes 2020-03-10 19:36:27 +01:00
TgVoip.h Merge multiple fixes 2020-03-10 19:36:27 +01:00
UNLICENSE Initial public release 2017-02-02 19:24:40 +03:00
VoIPController.cpp Minor refactoring 2020-03-16 16:07:13 +01:00
VoIPController.h Finish implementing legacy protocol, start implementing new protocol 2020-03-19 14:20:01 +01:00
VoIPGroupController.cpp Move around constants 2020-03-15 19:43:35 +01:00
VoIPGroupController.h Full RAII 2020-01-24 20:26:34 +01:00
VoIPServerConfig.cpp Cleanup 2020-01-23 18:06:11 +01:00
VoIPServerConfig.h Cleanup 2020-01-23 18:06:11 +01:00

Daniil Gentili's submission to the VoIP contest 2

My submission consists of a major refactor (to C++) of the existing libtgvoip library.

The existing code was somewhat readable, even if extremely bulky, all in one single controller class, and had way too many C-isms, assertions, unmanaged pointers and then unoptimized C++ code progressively added into the library at later stages.

I've removed many C-isms within the main controller, switching entirely to smart pointers for the management of internal objects, reducing to 0 the number of deletes in the destructor; with multiple refactoring passes I've optimized many places of the network loop with modern C++ data structures and general logical optimizations. I've also applied several optimizations to the code of the controller and helper utilities especially in the MessageThread, buffers and main network threads, switching to the C++ STL for many otherwise highly unefficient and unsafe operations (like throwing assertions if the deletion order of objects using buffers from bufferpool isn't exactly right, easily fixed with smart pointers and a lambda).