PulseAudio 4.0 Release Notes
Changes at a glance
- Better handling of low latency requests
- Optimisations while mixing (generic, ARM NEON)
- Default resampler is now speex-float-1 (lower CPU usage)
- Major Bluetooth refactoring for better reliability and easier maintenance
- Fixes for graceful hand-off to/from JACK
- New module to apply ducking based on stream roles
- Echo canceller infrastructure fixes
- Bash and zsh completion for command line tools
- Solaris and OS X fixes
- Lots of other enhancements, bug fixes, and documenation and i18n updates
Notes for Application Developers
So far card profiles have been static, that is, the set of profiles on a card has never changed after the creation of the card object. While that has never been promised in the API documentation, it may be that some applications have the assumption that the profiles are static. Due to the nature of the Bluetooth protocol, it has turned out to be necessary to be able to add profiles to a card after it has been created. So, make sure your application doesn't crash or otherwise behave badly if new profiles suddenly appear on a card. It's best to prepare for profiles disappearing too.
It is now possible to track operation state via a callback using the newly added pa_operation_set_state_callback().