| 2 | |
| 3 | |
| 4 | {{{ |
| 5 | Ahmed S. Darwish (7): |
| 6 | pstream: Add rationale for pa_cmsg_ancil_data_close_fds() |
| 7 | protocol-native: DRY: Remove pdispatch callbacks declarations |
| 8 | iochannel: Strictly specify PF_UNIX ancillary data boundaries |
| 9 | protocol-native: Don't signal memfd support for 9.0 clients |
| 10 | pacat: Synchronize STDIN and "write stream ready" events |
| 11 | stream: Frame-align divided audio segments |
| 12 | pacat: Write to stream only in frame-sized chunks |
| 13 | |
| 14 | Aidan Gauland (1): |
| 15 | qpaeq: Don't set font-size on widgets |
| 16 | |
| 17 | Alexander E. Patrakov (1): |
| 18 | alsa: reread configuration when opening new devices |
| 19 | |
| 20 | Anton Lundin (1): |
| 21 | raop: Correct spelling of KTH |
| 22 | |
| 23 | Arun Raghavan (21): |
| 24 | client, protocol-native: Use macros for protocol version/flag access |
| 25 | allow-passthrough: Use pa_module_hook_connect() |
| 26 | i18n: Add module-allow-passthrough to POTFILES.in |
| 27 | pulse: Add a JSON-parsing library |
| 28 | format: Drop dependency on json-c |
| 29 | json: Correctly handle bad strings with missing closing quotes |
| 30 | json: Add overflow checks for integer and float parsing |
| 31 | json: Handle error cases while parsing numbers |
| 32 | json: Error out for objects and arrays that are nested too deep |
| 33 | json: Add a positive test for nested objects |
| 34 | json: Add some more negative test cases |
| 35 | json: Drop refcounting of json objects |
| 36 | device-port: Add mechanism to free implementation data |
| 37 | alsa: Use pa_device_port->impl_free() for freeing port data |
| 38 | modargs: Add a mechanism to append modargs |
| 39 | daemon: Tone down system mode snarkiness |
| 40 | memblockq-test: Rename test to something more relevant |
| 41 | sink-input,source-output: Fix a leak during property change logging |
| 42 | source-output: Fix copy-pasto |
| 43 | shm: Wrap memfd-specific code in relevant ifdef |
| 44 | stream-interaction: Fix a memory leak |
| 45 | |
| 46 | Balázs Úr (1): |
| 47 | i18n: update Hungarian translation |
| 48 | |
| 49 | Chris Billington (2): |
| 50 | source: Fixed bug: pa_source_set_port() did not update the latency_offset. |
| 51 | sink, source, device-port: renames to distinguish latency offsets |
| 52 | |
| 53 | Cédric Valmary (1): |
| 54 | i18n: update Occitan translation |
| 55 | |
| 56 | Deepak Srivastava (1): |
| 57 | xen: Fixed possible memory leak. |
| 58 | |
| 59 | Dušan Kazik Kazik (1): |
| 60 | i18n: Update Polish translation |
| 61 | |
| 62 | Felipe Sateler (1): |
| 63 | launch: make pulseaudio.service properly order and require the socket |
| 64 | |
| 65 | Fran Dieguez (1): |
| 66 | i18n: add Galician translation |
| 67 | |
| 68 | Georg Chini (8): |
| 69 | loopback: Save time stamps during latency snapshots |
| 70 | loopback: Improve latency estimation in snapshots |
| 71 | loopback: Improve latency estimation |
| 72 | loopback: Change memblockq length |
| 73 | loopback: Move timer restart and snapshots to timer callback |
| 74 | loopback: Restart timer after 1/3 second |
| 75 | loopback: Adjust rate based on latency difference |
| 76 | loopback: Stop tracking max_request and min_memblockq_length |
| 77 | |
| 78 | Guillaume Desmottes (1): |
| 79 | allow-passthrough: Add module to allow passthrough streams always go through |
| 80 | |
| 81 | Jan Alexander Steffens (heftig) (1): |
| 82 | launch: Remove the already implicit After=pulseaudio.socket |
| 83 | |
| 84 | John Paul Adrian Glaubitz (2): |
| 85 | pulsecore: Fix incorrect architecture mapping on sparc64. |
| 86 | core-util: Use _SC_NPROCESSORS_ONLN instead of _SC_NPROCESSORS_CONF |
| 87 | |
| 88 | Juha Kuikka (1): |
| 89 | bluetooth: fix race condition in BlueZ5 device disconnection |
| 90 | |
| 91 | Juho Hämäläinen (1): |
| 92 | pulsecore: Don't allow unreferencing linked object. |
| 93 | |
| 94 | KimJeongYeon (1): |
| 95 | ladspa-sink: avoid to configure invalid format |
| 96 | |
| 97 | Marcin Lewandowski (1): |
| 98 | core-util: log error if we hit file descriptors limit |
| 99 | |
| 100 | Mario Blättermann (1): |
| 101 | i18n: update German translation |
| 102 | |
| 103 | Moo (1): |
| 104 | i18n: add Lithuanian translation |
| 105 | |
| 106 | Nils Schneider (1): |
| 107 | pipe-sink: align buffer |
| 108 | |
| 109 | Pali Rohár (3): |
| 110 | bluetooth: Add support for automatic switch between hsp and a2dp profiles |
| 111 | bluetooth: bluez5: Add profile name to sinks and sources |
| 112 | bluetooth: Add support for automatic switch between hsp and a2dp profiles also for bluez5 |
| 113 | |
| 114 | Peter Meerwald (2): |
| 115 | tests: Include signal.h in core-util-test.c |
| 116 | build: Check version of check library, require >= 0.9.10 |
| 117 | |
| 118 | Peter Meerwald-Stadler (16): |
| 119 | sink-input,source-output: Fix logging, don't overwrite old_value when value == 0 |
| 120 | alsa: Check pa_modargs_get_value_boolean() retval for use_ucm |
| 121 | tests: Assert fillrate > 0 in alsa-time-test |
| 122 | stream: Check pa_tagstruct_get_format_info() retval in pa_create_stream_callback() |
| 123 | modules: Check pa_threaded_mainloop_start() return value |
| 124 | tests: Check pa_rtpoll_run() return value |
| 125 | modules: Use pa_assert_se() to check return value of dbus_message_iter_close_container() |
| 126 | Remove newline at end of log messages |
| 127 | bluetooth: Don't free modargs twice |
| 128 | bluetooth: Fix dead code |
| 129 | bluetooth: Reorganize code to avoid Coverity NULL dereference warning |
| 130 | bluetooth: Fix negative array index write |
| 131 | padsp: Fix flush and improve error handling |
| 132 | core: Replace PA_PAGE_SIZE with pa_page_size() |
| 133 | tests: Assert granularity range in stripnul.c |
| 134 | sample: Assert validity of sample_spec |
| 135 | |
| 136 | Philip Withnall (1): |
| 137 | zeroconf-discover: fix a memory leak |
| 138 | |
| 139 | Pierre Ossman (3): |
| 140 | memblockq: move minreq handling in to memblockq |
| 141 | tests: add test to verify correct minreq behaviour |
| 142 | memblockq: remove internal "missing" state variable |
| 143 | |
| 144 | Piotr Drąg (2): |
| 145 | i18n: fix errors and warnings in Belarusian and Korean translations |
| 146 | i18n: update Polish translation |
| 147 | |
| 148 | Rikard Söderström (1): |
| 149 | daemon-conf: changed 'not' to 'note' |
| 150 | |
| 151 | Romain Naour (1): |
| 152 | build-sys: C++11 is only required for WebRTC support |
| 153 | |
| 154 | Sylvain Baubeau (1): |
| 155 | zeroconf: use local icon for shared devices |
| 156 | |
| 157 | Tanu Kaskinen (41): |
| 158 | pstream: fix revoke callback setting |
| 159 | webrtc: improve comment about mic geometry |
| 160 | alsa, bluetooth: fail if user-requested profile doesn't exist |
| 161 | card: don't allow the CARD_NEW hook to fail |
| 162 | card: move profile selection after pa_card_new() |
| 163 | card: remove pa_card_new_data.active_profile |
| 164 | alsa: set availability for (some) unavailable profiles |
| 165 | launch: explain why .service depends on .socket |
| 166 | bluetooth: wait for all profiles to connect before creating card |
| 167 | card-restore: don't switch profiles when availability changes |
| 168 | bluetooth: remove a redundant assignment |
| 169 | bluetooth: update device's valid flag after parsing properties |
| 170 | bluetooth: unify BlueZ 4 and BlueZ 5 UUID handling |
| 171 | bluetooth: unify BlueZ 4 and BlueZ 5 profile constant names |
| 172 | bluetooth: refactor BlueZ 4 transport state setting |
| 173 | bluetooth: don't create the HSP/HFP profile twice |
| 174 | zeroconf-publish: fix uninitialized variable |
| 175 | zeroconf-publish: unref D-Bus connection |
| 176 | daemon-conf: enable memfd by default |
| 177 | raop: add compatibility with openssl 1.1.0 |
| 178 | remove module-xenpv-sink |
| 179 | module: postpone lt_dlclose() until a safe time |
| 180 | rtp: don't use memblocks for non-audio data |
| 181 | don't assume that pa_asyncq_new() always succeeds |
| 182 | bluetooth-policy: do A2DP profile restoring a bit later |
| 183 | suspend-on-idle: use earlier (safer) hooks for stream unlink notifications |
| 184 | sink-input, source-output: set sink/source to NULL before the "unlink post" hook |
| 185 | sink, source: unify stream "attached" flag checking |
| 186 | sink, source: add missing stream "attached" flag handling |
| 187 | sink, source: remove some assumptions about stream "attached" state |
| 188 | refactor stream attaching/detaching |
| 189 | build-sys: add LICENSE.WEBKIT to EXTRA_DIST |
| 190 | Revert "memblockq: remove internal "missing" state variable" |
| 191 | LICENSE: add a clarification |
| 192 | LICENSE: add a note about qpaeq being licensed under AGPL |
| 193 | memblockq: remove pa_memblockq_missing() |
| 194 | memblockq-test: fix incorrect assumption of pa_memblockq_pop_missing() behaviour |
| 195 | build-sys: bump sonames |
| 196 | zeroconf-publish: fix unitialized DBusError |
| 197 | update NEWS |
| 198 | build-sys: add the AGPL license file to tarballs |
| 199 | |
| 200 | Ulrich Eckhardt (10): |
| 201 | core-util-test: Add boilerplate |
| 202 | core-util-test: Add tests |
| 203 | core-util: Improve pa_replace() behaviour |
| 204 | modargs: Document behaviour on missing arguments |
| 205 | memblockq-test: Utility function to alloc chunks |
| 206 | memblockq-test: Utility function to validate queue invariants |
| 207 | memblockq-test: Some refactoring |
| 208 | memblockq-test: Add a test that checks initial properties |
| 209 | memblockq-test: Add test changing the parameters of a queue |
| 210 | memblockq-test: Add a test for missing data behaviour |
| 211 | |
| 212 | Viktar Vaŭčkievič (1): |
| 213 | i18n: add Belarusian translation |
| 214 | }}} |
| 215 | |
| 216 | |
| 217 | {{{ |
| 218 | PulseAudio 10.0 release notes |
| 219 | Changes at a glance |
| 220 | |
| 221 | Automatically switch Bluetooth profile when using VoIP applications |
| 222 | New module for prioritizing passthrough streams (module-allow-passthrough) |
| 223 | Fixed hotplugging support for USB surround sound cards |
| 224 | Separate volumes for Bluetooth A2DP and HSP profiles |
| 225 | memfd-based shared memory mechanism enabled by default |
| 226 | Removed module-xenpv-sink |
| 227 | Dropped dependency to json-c |
| 228 | When using systemd to start PulseAudio, pulseaudio.socket is always started first |
| 229 | Compatibility with OpenSSL 1.1.0 |
| 230 | Clarified qpaeq license |
| 231 | |
| 232 | Notes for end users |
| 233 | Automatically switch Bluetooth profile when using VoIP applications |
| 234 | |
| 235 | Bluetooth headsets typically support both the A2DP profile, which is suitable for music, and the HSP profile, which is suitable for telephony use cases. module-bluetooth-policy will now automatically switch the profile of a Bluetooth headset from A2DP to HSP/HFP when an application creates a recording stream with property media.role=phone (telephony applications should set that property for their streams). When the stream goes away, the profile gets restored back to A2DP. This way the user doesn't have to manually switch the profiles when starting and stopping a call. This behaviour can be disabled by giving argument auto_switch=false to module-bluetooth-policy. |
| 236 | New module for prioritizing passthrough streams (module-allow-passthrough) |
| 237 | |
| 238 | Passthrough streams are streams whose content must go completely unaltered from the application to the sound card, and they are mainly used for playing back compressed audio through an S/PDIF connection. When a passthrough stream is playing to a device, no other streams can play at the same time to the same device, and if there's already something playing when a passthrough stream is created, the passthrough stream creation will normally fail. Now we have a new module, called module-allow-passthrough, which will give higher priority to passthrough streams, so that if there are other streams playing when a passthrough stream is created, those other streams will be moved out of the way to a dummy device. |
| 239 | Fixed hotplugging support for USB surround sound cards |
| 240 | |
| 241 | A long-standing bug that prevented PulseAudio from using any hotplugged USB surround sound cards has been fixed. |
| 242 | Separate volumes for Bluetooth A2DP and HSP profiles |
| 243 | |
| 244 | The Bluetooth sink and source names are now different depending on whether the active profile is A2DP or HSP. This allows PulseAudio to store different volumes for A2DP and HSP. Due to different mechanisms for implementing volume control between the profiles, trying to use the same volume value in PulseAudio doesn't actually result in the same perceived volume, so it's better not to try to use the same volume. |
| 245 | |
| 246 | As an unfortunate transition effect, volumes saved earlier with an older PulseAudio version won't have effect in the new PulseAudio version, so all Bluetooth devices will have their volume reset to the default value when running the new PulseAudio version for the first time. |
| 247 | |
| 248 | This only affects BlueZ 5 users. The same change was done already earlier for PulseAudio's BlueZ 4 code. |
| 249 | memfd-based shared memory mechanism enabled by default |
| 250 | |
| 251 | The memfd-based shared memory mechanism that was implemented in 9.0 is now enabled by default. This shouldn't cause any user-visible changes in behaviour, except if you're using the Firejail sandboxing software, which doesn't work with PulseAudio's old shared memory mechanism. |
| 252 | |
| 253 | If desired, the feature can still be disabled by setting "enable-memfd = no" either in daemon.conf (for disabling it at the server side) or in client.conf (for disabling it at the client side). |
| 254 | Removed module-xenpv-sink |
| 255 | |
| 256 | module-xenpv-sink was removed, because it's probably not used by anyone. If you use it, please let us know. |
| 257 | Notes for packagers |
| 258 | Dropped dependency to json-c |
| 259 | |
| 260 | libpulse previously used json-c internally, which forced applications to link to json-c too. That caused crashing in some GLib applications, because json-c and json-glib both use the same name for some functions. To solve this, we implemented the necessary JSON functionality directly in libpulse, so we don't depend on json-c any more. |
| 261 | When using systemd to start PulseAudio, pulseaudio.socket is always started first |
| 262 | |
| 263 | The pulseaudio.service unit now depends on pulseaudio.socket, meaning that before systemd starts PulseAudio, it will always first set up the socket. This is done to avoid confusing behaviour in certain corner cases (see the comments in pulseaudio.service for a more detailed explanation). |
| 264 | Compatibility with OpenSSL 1.1.0 |
| 265 | |
| 266 | OpenSSL, which is used by module-raop-sink, broke backwards compatibility in the 1.1.0 release. PulseAudio now supports both 1.1.0 and older versions. |
| 267 | Clarified qpaeq license |
| 268 | |
| 269 | Most of PulseAudio is licensed under LGPL, but the "qpaeq" equalizer GUI is licensed under AGPL. That hasn't previously been mentioned anywhere else than in the qpaeq source code itself. Therefore, distributions that tag their packages with license information have likely used incorrect information. The license of qpaeq hasn't changed, but the use of AGPL is now correctly noted in the top-level LICENSE file. |
| 270 | }}} |