| 39 | |
| 40 | [http://www.freedesktop.org/wiki/Software/PulseAudio/Notes/8.0/] |
| 41 | |
| 42 | {{{ |
| 43 | PulseAudio 8.0 release notes |
| 44 | Changes at a glance |
| 45 | |
| 46 | [see above] |
| 47 | |
| 48 | Notes for end users |
| 49 | |
| 50 | Automatic routing more likely to change profile |
| 51 | |
| 52 | In case a sound card contains more than one profile (e g analog and HDMI |
| 53 | profiles), module-switch-on-port-available will now switch away from the |
| 54 | profile when no ports are available. E g, on a HTPC with headphones and |
| 55 | HDMI outputs only, unplugging headphones will reroute the sound to HDMI, |
| 56 | which did not work before. In addition, we also remember the last used |
| 57 | profile for a port, so the expected HDMI profile is chosen (instead of |
| 58 | just falling back to stereo). |
| 59 | |
| 60 | Note that many systems have HDMI and analog output on separate sound |
| 61 | cards, so this might not improve the situation for all systems. |
| 62 | |
| 63 | OS X support improvements |
| 64 | |
| 65 | Some improvements were made to PulseAudio's OS X support. The most |
| 66 | notable change is that the default configuration should now work |
| 67 | out-of-the-box, thanks to adding module-coreaudio-detect to the default |
| 68 | configuration. |
| 69 | |
| 70 | NetBSD support improvements |
| 71 | |
| 72 | PulseAudio is available to NetBSD users through the pkgsrc framework. |
| 73 | The pkgsrc version of PulseAudio has carried many patches, most of which |
| 74 | have now been applied upstream, so the difference between the upstream |
| 75 | and pkgsrc versions is now much smaller. |
| 76 | |
| 77 | PULSE_LOG_JOURNAL environment variable |
| 78 | |
| 79 | If the PULSE_LOG_JOURNAL environment variable is defined, all client |
| 80 | libraries will log their output to the systemd journal. (If both |
| 81 | PULSE_LOG_JOURNAL and PULSE_LOG_SYSLOG are defined, logging to the |
| 82 | systemd journal takes a higher precedence.) |
| 83 | |
| 84 | New script for measuring memory consumption |
| 85 | |
| 86 | A new script was created for measuring the server memory consumption |
| 87 | growth when the number of clients increases. The script's location is |
| 88 | scripts/benchmark_memory_usage.sh in the source code tree, and it's |
| 89 | meant to only be run from the source code tree. |
| 90 | |
| 91 | Notes for application developers |
| 92 | |
| 93 | New LFE balance programming interface |
| 94 | |
| 95 | There's a new API for controlling the LFE (a.k.a. subwoofer) channel |
| 96 | volume relative to all other (except mono and aux) channels. |
| 97 | |
| 98 | Some background: the "native" volume representation in PulseAudio is to |
| 99 | have independent volume for each channel, but some UIs may prefer to |
| 100 | have one "overall volume" slider and two sliders for controlling the |
| 101 | left-right and rear-front balances. There have always been helper |
| 102 | functions for mapping the left-right and rear-front balances to |
| 103 | per-channel volumes and vice versa. The LFE channel is not included in |
| 104 | any of the conversions, however. To allow users to also control the LFE |
| 105 | channel volume some UIs (at least the Gnome sound configuration tool) |
| 106 | have added the LFE channel control as a separate slider, but in practice |
| 107 | that had weird interactions with the overall volume slider. |
| 108 | |
| 109 | To resolve this problem, we now have helper functions for controlling |
| 110 | the balance between LFE and non-LFE channels, which allow changing the |
| 111 | balance without affecting the overall volume. All applications that |
| 112 | present the left-right and rear-front balances to the user are advised |
| 113 | to start using the new API for dealing with the LFE volume. |
| 114 | |
| 115 | The new functions are pa_cvolume_get_lfe_balance, |
| 116 | pa_cvolume_set_lfe_balance and pa_channel_map_can_lfe_balance. |
| 117 | |
| 118 | Module-dbus-protocol improvements |
| 119 | |
| 120 | Port and card profile availability is now visible through the D-Bus API. |
| 121 | |
| 122 | Notes for packagers |
| 123 | |
| 124 | More flexible configuration file handling |
| 125 | |
| 126 | The configuration files /etc/pulse/client.conf and |
| 127 | /etc/pulse/daemon.conf can now be amended by creating files under |
| 128 | /etc/pulse/client.conf.d and /etc/pulse/deamon.conf.d. This makes it |
| 129 | easier for distributions to handle a situation where some configuration |
| 130 | option should be set differently if a particular package is installed. |
| 131 | Options set in the files installed in the .d directories override the |
| 132 | options set in the main files. |
| 133 | |
| 134 | pulsecore-8.0.so moved to a private directory |
| 135 | |
| 136 | pulsecore-X.Y.so used to be installed in the top level /usr/lib |
| 137 | directory, but that was not a good place for it, since it's an internal |
| 138 | library not meant for applications. The library is now installed under |
| 139 | /usr/lib/pulseaudio. |
| 140 | |
| 141 | git shortlog |
| 142 | |
| 143 | Ahmed S. Darwish (5): |
| 144 | • log: Introduce PULSE_LOG_JOURNAL environment variable |
| 145 | • log: Fix compilation error on non-systemd systems |
| 146 | • build-sys: bootstrap.sh: Do a make only if configure has succeeded |
| 147 | • scripts: Introduce benchmark_memory_usage.sh |
| 148 | • scripts: Plot memory benchmarks using gnuplot |
| 149 | |
| 150 | Alexander E. Patrakov (1): |
| 151 | • alsa-sink: Don't pretend to support passthrough on HDMI surround |
| 152 | sinks |
| 153 | |
| 154 | Andrey Semashev (1): |
| 155 | • soxr: Use soxr_clear() if libsoxr version is 0.1.2 or later. |
| 156 | |
| 157 | Arun Raghavan (15): |
| 158 | • resampler: Don't expose soxr methods if they are not supported |
| 159 | • tests: Set appropriate timeouts for a couple of tests |
| 160 | • build: Add IRC notifications to Travis |
| 161 | • sink: Make early drain reporting propagate down to filters |
| 162 | • source: Deal with filter having more channels than the master |
| 163 | • alsa: Use helper function for byte conversion across sample specs |
| 164 | • tests: Make echo-cancel-test not crash |
| 165 | • echo-cancel: Don't skip canceller when sink is inactive |
| 166 | • build: Move to using Travis trusty images |
| 167 | • daemon: Sanitise message about unsupported high res timers |
| 168 | • alsa: Don't disable timer-based scheduling on USB devices |
| 169 | • sink-input, source-output: Add some debug output on start_move() |
| 170 | • stream: Clarify pa_stream_writable_size() documentation |
| 171 | • build-sys: Use #ifdef with HAVE_FAST_64BIT_OPERATIONS |
| 172 | • Update NEWS for 8.0 |
| 173 | |
| 174 | David Henningsson (23): |
| 175 | • alsa-mixer: Add "Mic Boost" and "Line Boost" to analog-input.conf |
| 176 | • client: Use pa_xnew0 when creating a client |
| 177 | • card: Use pa_xnew0 when creating a card |
| 178 | • shm: Warn on not being able to open shm files |
| 179 | • card: Use pa_xmalloc0 when creating card profiles |
| 180 | • module-alsa-card: Report available ports before unavailable ones |
| 181 | • pstream: Fix use-after-free in srb_callback |
| 182 | • alsa-mixer: Ignore volume with unexpected number of channels |
| 183 | • volume: Refactor get/set balance/fade |
| 184 | • volume: Add LFE balance API |
| 185 | • alsa-mixer: Add "Front Headphone" to headset mic path |
| 186 | • alsa-mixer: Return early in case of no mixer poll descriptors |
| 187 | • card: Add variables for splitting up a profile |
| 188 | • alsa-mixer: Fill in input and output names |
| 189 | • device-port: Add preferred_profile field to pa_device_port |
| 190 | • card: Update preferred_profile for ports when profile changes |
| 191 | • card-restore: Save and restore "preferred profile" of port |
| 192 | • module-switch-on-port-available: Use input and output names |
| 193 | • module-switch-on-port-available: Route to preferred profile |
| 194 | • module-card-restore: Remove "version" from internal entry struct |
| 195 | • card: Only update port's preferred profile if profile is saved |
| 196 | • typedefs.h: Move some typedefs to a separate file |
| 197 | • gitignore: Add .orig and .rej to gitignore |
| 198 | |
| 199 | Deepak Srivastava (1): |
| 200 | • Rename functions with "tostring" in the name to one with |
| 201 | "to_string" to conform with the convention. |
| 202 | |
| 203 | Felipe Sateler (5): |
| 204 | • daemon: Use Type=notify for systemd service |
| 205 | • pulseaudio.1: document that systemd notification only works |
| 206 | without daemonization |
| 207 | • build-sys: Make pulsecore a private library |
| 208 | • travis: Run make install in travis. |
| 209 | • build-sys: Fix install order of libpulsecore |
| 210 | |
| 211 | Georg Chini (2): |
| 212 | • null-sink: correct update of timestamp when state changes to |
| 213 | RUNNING or IDLE |
| 214 | • loopback: Validate the rate parameter |
| 215 | |
| 216 | Jason Gerecke (1): |
| 217 | • bluetooth: Prevent aborts caused by invalid module arguments |
| 218 | |
| 219 | John Horan (1): |
| 220 | • make availability of ports visible over dbus |
| 221 | |
| 222 | Juho Hämäläinen (2): |
| 223 | • dbus: Add card profile availability info to API |
| 224 | • alsa-mixer: Have valid proplist for synthesized path as well. |
| 225 | |
| 226 | Julien Isorce (2): |
| 227 | • core-util: avoid calling fchmod if already right mode |
| 228 | • thread-mainloop: keep SIGSYS unblocked if currently trapped |
| 229 | |
| 230 | Kamil Rytarowski (7): |
| 231 | • netbsd: NetBSD ships with paccept(2) a superset of Linux-specific |
| 232 | accept4() |
| 233 | • netbsd: Improve handling of and headers |
| 234 | • netbsd: Fix unportable test(1) construct |
| 235 | • core-rtclock: Add missing declaration of struct timespec |
| 236 | • core, pulse, modules: Fix undefined behavior with array subscript |
| 237 | of invalid type |
| 238 | • netbsd: Revamp NetBSD platform checks |
| 239 | • NetBSD: Stop depending upon nonstandard __WORDSIZE |
| 240 | |
| 241 | KimJeongYeon (1): |
| 242 | • module-tunnel: Fix double free |
| 243 | |
| 244 | Kiran Krishnappa (1): |
| 245 | • module: Remove redundant core argument from pa_module_unload() |
| 246 | |
| 247 | Lev Melnikovsky (1): |
| 248 | • rtp: fix non null terminated string / non portable sscanf |
| 249 | |
| 250 | Manish Sogi (1): |
| 251 | • bluetooth: bluez4: Remove the unused "auto_connect" parameter as |
| 252 | it is not used in bluez4 |
| 253 | |
| 254 | Mihai Moldovan (4): |
| 255 | • configure.ac: add HAVE_COREAUDIO to automake and code. |
| 256 | • default.pa.in: load module-coreaudio-detect if HAVE_COREAUDIO. |
| 257 | • system.pa.in: load module-coreaudio-detect if HAVE_COREAUDIO. |
| 258 | • module-coreaudio-device: get channel name as CFString and convert |
| 259 | to plain C string. |
| 260 | |
| 261 | Mingye Wang (Arthur2e5) (1): |
| 262 | • i18n: Updated zh_CN translation |
| 263 | |
| 264 | Nazar Mokrynskyi (1): |
| 265 | • alsa-mixer: sb-omni-surround-5.1.conf: remove analog-surround-21, |
| 266 | add Linux 4.3+ support |
| 267 | |
| 268 | Peter Mattern (1): |
| 269 | • pacmd: Fix typo in set-default-* help |
| 270 | |
| 271 | Peter Meerwald (1): |
| 272 | • core: Fallbacks for machine-id in filesystem |
| 273 | |
| 274 | Pierre Ossman (1): |
| 275 | • context: continue without srbchannel if it fails |
| 276 | |
| 277 | Ross Burton (1): |
| 278 | • git-version-gen: Avoid further processing when tarball-version is |
| 279 | present |
| 280 | |
| 281 | Shawn Walker (1): |
| 282 | • build-sys: don't use the nodelete linker flag on executables |
| 283 | |
| 284 | Takashi Iwai (1): |
| 285 | • alsa-mixer: Recognize "Dock Line Out" jack |
| 286 | |
| 287 | Tanu Kaskinen (12): |
| 288 | • alsa-mixer: Add "Dock Line Out" jack handling to |
| 289 | analog-output-speaker-always |
| 290 | • build-sys: fix the default bash completion directory |
| 291 | • alsa-ucm: fix pa_device_port.profiles leak |
| 292 | • man: document when system.pa is used instead of default.pa |
| 293 | • man: remove a reference to pacmd from default.pa.5 |
| 294 | • core-util: improve comments in pa_machine_id() |
| 295 | • build-sys: fix PULSE_LOCALEDIR definition |
| 296 | • conf-parser: add support for .d directories |
| 297 | • client-conf, daemon-conf: enable .d directories |
| 298 | • always-sink: simplify hook management with |
| 299 | pa_module_hook_connect() |
| 300 | • build-sys: bump sonames |
| 301 | • build-sys: add typedefs.h to libpulsecore SOURCES |
| 302 | |
| 303 | Thomas Petazzoni (1): |
| 304 | • pulsecore/packet: avoid redefinition of pa_packet structure |
| 305 | |
| 306 | Yuri Chornoivan (1): |
| 307 | • i18n: Update Ukrainian translation |
| 308 | |
| 309 | Zbigniew Kempczyński (1): |
| 310 | • alsa-sink: Avoid unloading alsa-sink module before calling |
| 311 | try_recover() |
| 312 | |
| 313 | jungsup lee (1): |
| 314 | • rtpoll: Fix build error when building with DEBUG_TIMING |
| 315 | }}} |