Friday, December 13, 2019

GAudio on Linux

Month:2, Week: 3

For the whole week I've been working on Linux side of GAudio. Probably the most complicated platform to grasp in terms of both understanding the base audio api (pulseaudio in case of Linux) and debugging with Valgrind. There were a lot of threading issues and hard pathing issues involved with Linux side, but I fixed most of them.

I can achieve 100% stability running the library (GSound) from Codeblocks, but Valgrind still manages to fail sometimes (it slows down the process tremendously and also running on VM, so this might be the issue). There is still some memory getting hold on by pulseaudio and I have not figured out a solution to it. It is pretty consistent and does not bleed any extra over the runtime, so for now it is safe to say that majority of memory leaks were resolved.

The other issue I just found out is inability to change volume at all which caused all of the sounds play in mono when I attempted to play surround/stereo sound. I am going to explore the documentation more, even though the callback is being called and the volume values are correct, the volume on actual output does not change.

Next week I am going to apply GSound fixes to GMusic and I will explore the volume setting issue and will attempt to achieve multi-channel support on Linux before the holidays.

No comments:

Post a Comment