The Intel HDMI LPE driver continues to cause problems to PulseAudio despite previous attempts at making it work. To recap, the driver acts in an unusual way when the HDMI cable is not plugged in and PulseAudio tries to play audio to it. Of course, PulseAudio shouldn’t play audio to it in that situation, but there are still cases where that might happen. I wrote a patch that immediately suspends the HDMI sink when the cable is unplugged, which should finally make the worst problems go away (PulseAudio used to get killed due to too much CPU use). Even if the sink is suspended, though, streams may still be connected to it, so I made another patch for automatically moving streams away in this situation, but that was rejected in review. Georg Chini made a proposal for a better scheme, which I will implement. Details will hopefully appear in the January report.
I also made a couple of smaller fixes: A recent patch in module-augment-properties introduced a memory leak that was caught by Coverity, and I fixed that. Another recent patch in the build system had a typo that prevented module-default-device-restore from getting loaded, I fixed that too.
In order to make this report appear less short, I’ll mention some patches that I reviewed:
- Georg Chini fixed a crash related to profile changes (the root cause for the crash remains a mystery, but the patch adds an extra safety check that should make the crash impossible).
- Arun Raghavan simplified the build system by changing how module symbols are defined (we used to generate “symdef headers” with an m4 script, the script is now gone).
- Roliga added a new “sink_input_properties” option to module-ladspa-sink that allows setting e.g. a custom description for the virtual stream that the module creates.
- Samo Pogačnik added a new “use_system_clock_for_timing” option for module-pipe-sink, which makes it possible to use e.g. the “cat” command to write the sink output to a file. Previously “cat” would consume data so fast that streams connected to the pipe sink couldn’t keep up.
- Andrius Štikonas ported qpaeq from Qt 4 to Qt 5.
- I reviewed one of the messaging subsystem patches from Georg Chini that I’ve mentioned before.
In other news, Arun Raghavan has been working on a Meson-based build system for PulseAudio. That may or may not be merged soon. It won’t fully replace the old Autotools-based build system at least in the beginning, but it should be usable in many cases, and improve the build speed in those cases.
This post was originally written on 2018-01-04, and first made available to my Patreon supporters. Speaking of Patreon – I’m using crowdfunding in an attempt to make it financially sustainable to continue my volunteer work as a PulseAudio maintainer. If you’d like to help, check out my Patreon page.