Friday, December 20, 2019

GAudio, GAudio and GAudio (and a little bit of GAudio3D)

Month: 2, Week: 4

I was working almost exclusively on GAudio and GAudio3D for the whole month. The huge breakthrough was achieved on all 3 platforms and majority of memory leaks are resolved (no GAudio related memory leaks on Windows and Mac; Linux has some minor memory leaks caused by pulseaudio mainloop functions that I could not find a resolution to). GAudio and GAudio3D now pretty stable and ready for a new Gateware release.

My branch that was based on Jacob's branch was merged into Alpha today pushing Gateware version to 7 due to addition of new library. A lot of work still remains on GAudio and GAudio3D (including some major one like multi-channel issues on Mac and Linux) which I will continue working on in January.

Linux has some very deep stability issues which I cannot reproduce (possibly caused by some internal race conditions but happens rarely) and the volume setting issue is quite complicated one to solve. Pulseaudio doesn't support per-stream volume setting, so I would need to load additional modules to make virtual sound sinks for every single sound/music to mimic that functionality (unless I find a cleaner solution).

Mac has issues with 5.1 matrix to play our surround system from GAudio3D. That would be one of the main goals for me next month. Also I would need to update GAudio/GAudio3D interfaces and rewrite some of the outdated Doxygen comments. A lot of general refactoring can still be done on GAudio systems (external thread-safety and stream/loading functions especially have to be addressed).

No comments:

Post a Comment