Friday, February 21, 2020

Post-mortem thoughts

From a generalist position to almost completely being audio programmer:

Achieved tasks:
-Memory leaks found and resolved on all platforms in Audio (was leaking everything on each platform)
-Fixed reference counting logic on each platform in Audio which caused crashes and memory leaks
-Fixed crashes due to unsafe pointer usage in Audio libraries
-Fixed crashes due to multi-threading communications with audio libraries
-Fixed a lot of issued with Music streaming loop (dirty buffers, main thread delays and slowdowns)
-Ported GAudio, GSound, GMusic and GInput libraries to new architecture
-Wrote or completely refactored unit tests for GDaemon, GInput and GAudio classes
-Significantly improved memory usage of Audio libraries
-Significantly improved the perfomance of Audio libraries
-Audio classes were completely rewritten for a completely asynchronous and event-based system

Issues and incomplete tasks:
-Despite being my one of the main tasks, I never managed to implement full 5.1 support on Linux and Mac due to more critical issues mentioned above being a higher priority.
-Volume controls on Linux side is a huge pain and currently not implemented (NOTE: This is most likely going to be fixed before post-mortem)
-A lot of time was spent on efficient reference counting system which is no longer used on the new architecture (Despite that, it is currently in use by 2 final project teams)

No comments:

Post a Comment