Opened 7 years ago

Closed 7 years ago

#7302 closed enhancement (fixed)


Reported by: Fernando de Oliveira Owned by: Fernando de Oliveira
Priority: normal Milestone: 7.9
Component: BOOK Version: SVN
Severity: normal Keywords:

Description (last modified by Fernando de Oliveira)

8678442ba0bb4b4c33ac6f62542962df pulseaudio-8.0.tar.xz

[pulseaudio-discuss] [ANNOUNCE] PulseAudio 8.0 is out!
Arun Raghavan arun at
Thu Jan 21 23:51:25 PST 2016


I'm pleased to announce the availability of PulseAudio 8.0. A short
summary of the changes in this release:

 * Automatic routing more likely to change profile
 * OS X and NetBSD support improvements
 * Systemd journal logging for clients
 * New LFE balance programming interface
 * Module-dbus-protocol improvements
 * More flexible configuration file handling
 * moved to a private directory
 * New script for measuring memory consumption
 * Various bug fixes and small improvements

Of note to packages is the availability of a more flexible
configuration for distribution-specific config, and the change in
installation path of the libpulsecore.


Cheers and a good weekend,

PulseAudio 8.0 release notes
Changes at a glance

[see above]

Notes for end users

Automatic routing more likely to change profile

In case a sound card contains more than one profile (e g analog and HDMI
profiles), module-switch-on-port-available will now switch away from the
profile when no ports are available. E g, on a HTPC with headphones and
HDMI outputs only, unplugging headphones will reroute the sound to HDMI,
which did not work before. In addition, we also remember the last used
profile for a port, so the expected HDMI profile is chosen (instead of
just falling back to stereo).

Note that many systems have HDMI and analog output on separate sound
cards, so this might not improve the situation for all systems.

OS X support improvements

Some improvements were made to PulseAudio's OS X support. The most
notable change is that the default configuration should now work
out-of-the-box, thanks to adding module-coreaudio-detect to the default

NetBSD support improvements

PulseAudio is available to NetBSD users through the pkgsrc framework.
The pkgsrc version of PulseAudio has carried many patches, most of which
have now been applied upstream, so the difference between the upstream
and pkgsrc versions is now much smaller.

PULSE_LOG_JOURNAL environment variable

If the PULSE_LOG_JOURNAL environment variable is defined, all client
libraries will log their output to the systemd journal. (If both
PULSE_LOG_JOURNAL and PULSE_LOG_SYSLOG are defined, logging to the
systemd journal takes a higher precedence.)

New script for measuring memory consumption

A new script was created for measuring the server memory consumption
growth when the number of clients increases. The script's location is
scripts/ in the source code tree, and it's
meant to only be run from the source code tree.

Notes for application developers

New LFE balance programming interface

There's a new API for controlling the LFE (a.k.a. subwoofer) channel
volume relative to all other (except mono and aux) channels.

Some background: the "native" volume representation in PulseAudio is to
have independent volume for each channel, but some UIs may prefer to
have one "overall volume" slider and two sliders for controlling the
left-right and rear-front balances. There have always been helper
functions for mapping the left-right and rear-front balances to
per-channel volumes and vice versa. The LFE channel is not included in
any of the conversions, however. To allow users to also control the LFE
channel volume some UIs (at least the Gnome sound configuration tool)
have added the LFE channel control as a separate slider, but in practice
that had weird interactions with the overall volume slider.

To resolve this problem, we now have helper functions for controlling
the balance between LFE and non-LFE channels, which allow changing the
balance without affecting the overall volume. All applications that
present the left-right and rear-front balances to the user are advised
to start using the new API for dealing with the LFE volume.

The new functions are pa_cvolume_get_lfe_balance,
pa_cvolume_set_lfe_balance and pa_channel_map_can_lfe_balance.

Module-dbus-protocol improvements

Port and card profile availability is now visible through the D-Bus API.

Notes for packagers

More flexible configuration file handling

The configuration files /etc/pulse/client.conf and
/etc/pulse/daemon.conf can now be amended by creating files under
/etc/pulse/client.conf.d and /etc/pulse/deamon.conf.d. This makes it
easier for distributions to handle a situation where some configuration
option should be set differently if a particular package is installed.
Options set in the files installed in the .d directories override the
options set in the main files. moved to a private directory used to be installed in the top level /usr/lib
directory, but that was not a good place for it, since it's an internal
library not meant for applications. The library is now installed under

git shortlog

Ahmed S. Darwish (5):
    • log: Introduce PULSE_LOG_JOURNAL environment variable
    • log: Fix compilation error on non-systemd systems
    • build-sys: Do a make only if configure has succeeded
    • scripts: Introduce
    • scripts: Plot memory benchmarks using gnuplot

Alexander E. Patrakov (1):
    • alsa-sink: Don't pretend to support passthrough on HDMI surround

Andrey Semashev (1):
    • soxr: Use soxr_clear() if libsoxr version is 0.1.2 or later.

Arun Raghavan (15):
    • resampler: Don't expose soxr methods if they are not supported
    • tests: Set appropriate timeouts for a couple of tests
    • build: Add IRC notifications to Travis
    • sink: Make early drain reporting propagate down to filters
    • source: Deal with filter having more channels than the master
    • alsa: Use helper function for byte conversion across sample specs
    • tests: Make echo-cancel-test not crash
    • echo-cancel: Don't skip canceller when sink is inactive
    • build: Move to using Travis trusty images
    • daemon: Sanitise message about unsupported high res timers
    • alsa: Don't disable timer-based scheduling on USB devices
    • sink-input, source-output: Add some debug output on start_move()
    • stream: Clarify pa_stream_writable_size() documentation
    • build-sys: Use #ifdef with HAVE_FAST_64BIT_OPERATIONS
    • Update NEWS for 8.0

David Henningsson (23):
    • alsa-mixer: Add "Mic Boost" and "Line Boost" to analog-input.conf
    • client: Use pa_xnew0 when creating a client
    • card: Use pa_xnew0 when creating a card
    • shm: Warn on not being able to open shm files
    • card: Use pa_xmalloc0 when creating card profiles
    • module-alsa-card: Report available ports before unavailable ones
    • pstream: Fix use-after-free in srb_callback
    • alsa-mixer: Ignore volume with unexpected number of channels
    • volume: Refactor get/set balance/fade
    • volume: Add LFE balance API
    • alsa-mixer: Add "Front Headphone" to headset mic path
    • alsa-mixer: Return early in case of no mixer poll descriptors
    • card: Add variables for splitting up a profile
    • alsa-mixer: Fill in input and output names
    • device-port: Add preferred_profile field to pa_device_port
    • card: Update preferred_profile for ports when profile changes
    • card-restore: Save and restore "preferred profile" of port
    • module-switch-on-port-available: Use input and output names
    • module-switch-on-port-available: Route to preferred profile
    • module-card-restore: Remove "version" from internal entry struct
    • card: Only update port's preferred profile if profile is saved
    • typedefs.h: Move some typedefs to a separate file
    • gitignore: Add .orig and .rej to gitignore

Deepak Srivastava (1):
    • Rename functions with "tostring" in the name to one with
      "to_string" to conform with the convention.

Felipe Sateler (5):
    • daemon: Use Type=notify for systemd service
    • pulseaudio.1: document that systemd notification only works
      without daemonization
    • build-sys: Make pulsecore a private library
    • travis: Run make install in travis.
    • build-sys: Fix install order of libpulsecore

Georg Chini (2):
    • null-sink: correct update of timestamp when state changes to
    • loopback: Validate the rate parameter

Jason Gerecke (1):
    • bluetooth: Prevent aborts caused by invalid module arguments

John Horan (1):
    • make availability of ports visible over dbus

Juho Hämäläinen (2):
    • dbus: Add card profile availability info to API
    • alsa-mixer: Have valid proplist for synthesized path as well.

Julien Isorce (2):
    • core-util: avoid calling fchmod if already right mode
    • thread-mainloop: keep SIGSYS unblocked if currently trapped

Kamil Rytarowski (7):
    • netbsd: NetBSD ships with paccept(2) a superset of Linux-specific
    • netbsd: Improve handling of  and  headers
    • netbsd: Fix unportable test(1) construct
    • core-rtclock: Add missing declaration of struct timespec
    • core, pulse, modules: Fix undefined behavior with array subscript
      of invalid type
    • netbsd: Revamp NetBSD platform checks
    • NetBSD: Stop depending upon nonstandard __WORDSIZE

KimJeongYeon (1):
    • module-tunnel: Fix double free

Kiran Krishnappa (1):
    • module: Remove redundant core argument from pa_module_unload()

Lev Melnikovsky (1):
    • rtp: fix non null terminated string / non portable sscanf

Manish Sogi (1):
    • bluetooth: bluez4: Remove the unused "auto_connect" parameter as
      it is not used in bluez4

Mihai Moldovan (4):
    • add HAVE_COREAUDIO to automake and code.
    • load module-coreaudio-detect if HAVE_COREAUDIO.
    • load module-coreaudio-detect if HAVE_COREAUDIO.
    • module-coreaudio-device: get channel name as CFString and convert
      to plain C string.

Mingye Wang (Arthur2e5) (1):
    • i18n: Updated zh_CN translation

Nazar Mokrynskyi (1):
    • alsa-mixer: sb-omni-surround-5.1.conf: remove analog-surround-21,
      add Linux 4.3+ support

Peter Mattern (1):
    • pacmd: Fix typo in set-default-* help

Peter Meerwald (1):
    • core: Fallbacks for machine-id in filesystem

Pierre Ossman (1):
    • context: continue without srbchannel if it fails

Ross Burton (1):
    • git-version-gen: Avoid further processing when tarball-version is

Shawn Walker (1):
    • build-sys: don't use the nodelete linker flag on executables

Takashi Iwai (1):
    • alsa-mixer: Recognize "Dock Line Out" jack

Tanu Kaskinen (12):
    • alsa-mixer: Add "Dock Line Out" jack handling to
    • build-sys: fix the default bash completion directory
    • alsa-ucm: fix pa_device_port.profiles leak
    • man: document when is used instead of
    • man: remove a reference to pacmd from
    • core-util: improve comments in pa_machine_id()
    • build-sys: fix PULSE_LOCALEDIR definition
    • conf-parser: add support for .d directories
    • client-conf, daemon-conf: enable .d directories
    • always-sink: simplify hook management with
    • build-sys: bump sonames
    • build-sys: add typedefs.h to libpulsecore SOURCES

Thomas Petazzoni (1):
    • pulsecore/packet: avoid redefinition of pa_packet structure

Yuri Chornoivan (1):
    • i18n: Update Ukrainian translation

Zbigniew Kempczyński (1):
    • alsa-sink: Avoid unloading alsa-sink module before calling

jungsup lee (1):
    • rtpoll: Fix build error when building with DEBUG_TIMING

Change History (4)

comment:1 by Fernando de Oliveira, 7 years ago

Description: modified (diff)
Milestone: hold

comment:2 by Fernando de Oliveira, 7 years ago

Milestone: 7.9
Summary: pulseaudio-7.99.1 - release candidate for 8.0 (placeholder)pulseaudio-8.0

comment:3 by Fernando de Oliveira, 7 years ago

Owner: changed from blfs-book@… to Fernando de Oliveira
Status: newassigned

comment:4 by Fernando de Oliveira, 7 years ago

Resolution: fixed
Status: assignedclosed

Fixed at r16830.

Note: See TracTickets for help on using tickets.