PulseAudio 13.0 started to switch output to HDMI automatically when module-switch-on-connect is loaded (upstream PulseAudio doesn’t load it by default, but some distributions do). This change was not intentional, and caused very annoying behaviour in cases where waking up the monitor from sleep appears as a plug-in event in ALSA. I changed module-switch-on-connect so that it again ignores HDMI by default.
Earlier in the autumn I started reviewing Arun Raghavan’s patch set for automatically switching device channel configuration when playing a passthrough stream that requires it (Dolby TrueHD and DTS-HD Master Audio), now I have finished the review. There were many things to fix, but the needed fixes are mostly small.
I fixed a buffer overflow bug in volume string parsing (the exact location of the bug was pointed out by Patricia Aas, so doing the fix was trivial).
I found and applied an old patch from Peter Meerwald that fixes a bug in the public API headers. PA_CLAMP_VOLUME is a macro that makes sure that a volume value is within the valid range. It’s part of the public API, but applications couldn’t use it, because it used other macros that were private. The necessary macros are now all public.
I made a small fix to the pa_stream_connect_playback() and pa_stream_connect_record() function documentation. The functions can be given a device name if the application wants to use a particular device, but if the name is omitted, the documentation said earlier that the default sink or source is used. I changed it to make clear that omitting the device name lets the server choose the device. The old wording caused some confusion, because if the server chooses the device, it doesn’t always pick the default sink or source. For example, module-stream-restore may pick a device that has been saved for the application, which often isn’t the global default device.
The preparations for the 14.0 release have started. If everything goes smoothly, we might be able to release it in January.
I continued updating the ALSA recipes to 1.2.1. Updating alsa-lib needed some extra work due to a change in the configure script that didn’t work on OpenEmbedded, and figuring out the reason for the failure took some time. Also, the UCM and topology configuration files were moved to separate repositories which required me to add new recipes for those files. I will still need to update the alsa-utils and alsa-plugins recipes, and then I’ll need to do some additional testing for the updates.
This post was originally written on 2020-01-02, 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 (or Liberapay).