You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2144 lines
80 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
1 year ago
3 years ago
1 year ago
3 years ago
5 years ago
  1. # PipeWire 0.3.31 (2021-06-28)
  2. This is a bugfix release that is API and ABI compatible
  3. with previous 0.3.x releases.
  4. ## Highlights
  5. - Fixes for alsa-lib 1.2.5
  6. - New pulseaudio modules: module-avahi-zeroconf,
  7. module-pipe-source, module-roc-sink, module-roc-source.
  8. - JACK has seen massive stability improvements. Locking
  9. and correctness wrt to callbacks has been reworked. Also
  10. thread priorities have improved.
  11. - Handle various crashes and lockups when running out of file
  12. descriptors.
  13. - Bluetooth now uses a hardware database to disable
  14. non-working features on listed devices.
  15. - Scheduling quantum and rate can now be changed dynamically
  16. with pw-metadata.
  17. - Many bugfixes and improvements.
  18. ## PipeWire
  19. - Improve cleanup of context in error cases.
  20. - There is now a pw-test framework for improved unit tests.
  21. - Improve property serialization to valid JSON.
  22. - Fix some macros to work with better with coverity.
  23. - Metadata permissions are checked now. Clients need the
  24. M permission on an object to be able to set metadata for
  25. it.
  26. - The core metadata object will now remove metadata for
  27. removed objects, the implementor does not need to worry
  28. about that anymore.
  29. - Audioadapter will now follow the rate of the graph with
  30. the resampler adjusting itself dynamically.
  31. - Core now has a metadata implementation helper. A context
  32. will expose a metadata with settings that can be changed
  33. at runtime. This can be used to change the loglevel or
  34. graph quantum and samplerate on the fly.
  35. - An infinite loop was fixed in the audio converter.
  36. - Handle out-of-fds more gracefully. Handle truncated
  37. control data by dropping the client connection.
  38. - Fix profiler crash with many streams.
  39. - Improve latency handling in pw-filter. There is now a
  40. default handler and a ProcessLatency parameter to simplify
  41. latency reporting.
  42. - Latency reporting was improved in devices and streams.
  43. - And example sink/source was added.
  44. ## ALSA
  45. - hardware mute and volume are now properties on the
  46. Route param to make things easier.
  47. - More fixes for alsa-ucm 1.2.5.
  48. ## Tools
  49. - spa-json-dump now properly encodes string and keys.
  50. - pw-dump now shows the correct subject of the metadata.
  51. ## PulseAudio server
  52. - Ensure the node.description is set, some applications
  53. crash otherwise (TeamSpeak).
  54. - Module loading and unloading was improved.
  55. - module-avahi-zeroconf was implemented.
  56. - module-pipe-source was implemented
  57. - module-roc-sink and module-roc-source was implemented.
  58. - The maximum amount of connections has been limited to 64,
  59. like pulseaudio.
  60. - Handle out-of-fds more gracefully.
  61. - Fix overflow of read/write pointers.
  62. - Source and sink state are now decoupled from the monitor
  63. state and will report IDLE when not playing anything.
  64. ## media-session
  65. - Port switching should now happen to/from the port that
  66. actually changed.
  67. ## JACK
  68. - The locking was reviewed. All callbacks are now emited
  69. from the PipeWire thread with the lock released and
  70. the process function will be disabled for the duration
  71. of the callback. This ensures that no two callbacks are
  72. called at the same time.
  73. - Improve internal consistency and try to never call callbacks
  74. with invalid objects.
  75. - Monitor port can now be accessed with system:monitor_%d
  76. - client threads are now created with SCHED_FIFO and module-rt
  77. is used to create the other RT threads. This should avoid
  78. SIGKILL from RTKit in some cases.
  79. ## Bluetooth
  80. - Various bugfixes to improve connections to devices.
  81. - Handle delayed UUID connection.
  82. - There is now a hardware database that can disable features
  83. in listed devices.
  84. - Use libusb to detect availability of mSBC.
  85. ## ALSA
  86. - The virtual device name can now also contain a media role.
  87. Older versions:
  88. # PipeWire 0.3.30
  89. This is a bugfix release that is API and ABI compatible
  90. with previous 0.3.x releases.
  91. This is a quick emergency release to fix some severe
  92. problems with the previous release.
  93. ## Highlights
  94. - Recording from a monitor port should work again.
  95. - JACK applications should now be more stable again.
  96. - Freewheeling should not lock up anymore.
  97. - Fix lockups in many pulseaudio apps.
  98. - module-echo-cancel was implemented in pipewire-pulse
  99. - Many other stability fixes.
  100. ## PipeWire
  101. - Improve module path logic.
  102. - Improve logger formatting
  103. ## PulseAudio server
  104. - Make sure to pass 64 bits values for time on ARM 32 bits to
  105. avoid protocol errors.
  106. - Avoid a crash when unloading module-combine-sink.
  107. - Avoid overflow in requested bytes, resulting in stalled
  108. audio.
  109. - Implement module-echo-cancel.
  110. ## Bluetooth
  111. - Handle latency parameters instead of failing.
  112. ## JACK
  113. - Fix locking in many places to avoid deadlocks and crashes.
  114. - Fix port rename.
  115. - Stop freewheeling correctly instead of deadlocking.
  116. # PipeWire 0.3.29
  117. This is a bugfix release that is API and ABI compatible
  118. with previous 0.3.x releases.
  119. ## Highlights
  120. - Latency reporting is now implemented.
  121. - Many documentation updates and cleanups.
  122. - module-combine-sink was added to PulseAudio server.
  123. - Better handling of multichannel input profiles.
  124. - Fix 100% volume issue when monitor suspends or profile
  125. changes in some cases.
  126. - Bugfixes and crashes
  127. ## PipeWire
  128. - A new module-rt was added to acquire real-time scheduling
  129. priviledges without using RTKit.
  130. - Documentation fixes and updates. Docs are now using a
  131. custom theme.
  132. - There is now a MANDATORY flag on properties that influence
  133. how properties are filtered.
  134. - Filter-chain now parses the LADSPA_PATH correctly when it
  135. contains a colon separated list.
  136. - Move `#pipewire` IRC channel to oftc.net.
  137. - Fix an error where param changes were not emited in all
  138. cases.
  139. - Implement Latency reporting. Latency values are propagated
  140. through the graph so that each node knows the latency to
  141. the output/input device. Synchronization in pw-stream has
  142. been updated to use this.
  143. - Some more upmix cases are added so that LFE, SIDE and REAR
  144. can be generated from a mono channel as well.
  145. - pw-stream and pw-filter will now emit the process event from
  146. the real-time thread in a safe way, potentially avoiding some
  147. of the harder to debug crashes.
  148. - Fix potential stack overflow with serialize_dict.
  149. - Add PIPEWIRE_NO_CONFIG to run without custom config files.
  150. - The WebRTC echo canceler was added. Next versions will
  151. integrate this better.
  152. ## PulseAudio server
  153. - module-combine-sink was implemented.
  154. - Fix some segfaults when DBus connections fail.
  155. - Support for listening on IPv6 was added.
  156. - Fix a bug where many flushes could result in requests for too
  157. much data from the client, causing sync, latency and garbled
  158. sound problems after many seeks.
  159. ## ALSA
  160. - Also probe input paths for multichannel mappings. This makes
  161. multichannel input ports show up in more cases.
  162. - Fix headphones/front volume issue on some cards.
  163. - Fix max volume issue when profile changes.
  164. - Fix issue with UCM local config that was not available when the
  165. device was opened in the server but the UCM was opened by the
  166. session manager. Fixes alsa 1.2.5 compatibility.
  167. ## JACK
  168. - Implement latency reporting with the new Latency params.
  169. # PipeWire 0.3.28
  170. This is a bugfix release that is API and ABI compatible
  171. with previous 0.3.x releases.
  172. ## Highlights
  173. - Freewheeling was implemented. This makes it possible to
  174. export projects in ardour.
  175. - A new powerful filter-chain module was added that can
  176. be used to created all kinds of filter-chains from ladspa
  177. and builtin plugins.
  178. - Many more pulseaudio modules are now implemented:
  179. module-ladspa-sink, module-ladspa-source, module-pipe-sink,
  180. module-tunnel-sink, module-tunnel-source,
  181. module-zeroconf-discover
  182. - Fix a bug where devices would not appear after logout/login.
  183. - Fix a bug where the volume was reset to 0 and devices would
  184. have no audio.
  185. - Config files are now installed in the data dir, system
  186. overrides in /etc/pipewire and $HOME are checked first.
  187. ## PipeWire
  188. - Implement freewheeling for JACK clients
  189. - Add filter-chain module that can be used to construct
  190. arbitrary graphs from ladspa and builtin plugins.
  191. - Add new property to easily set algorithm params
  192. - Add module-pulse-tunnel to tunnel audio to and from
  193. a PulseAudio compatible server.
  194. - Add a avahi zeroconf discover module, create pulse-tunnel
  195. when PulseAudio devices are announced.
  196. - Config files are now installed in the data dir, system
  197. overrides in /etc/pipewire and $HOME are checked first.
  198. - Applications now have their monitor ports named with the
  199. "monitor" prefix to avoid confusion with the output ports.
  200. - LICENSE clarifications.
  201. ## GStreamer
  202. - fixes to the pipewiresink plugin.
  203. ## SPA plugins
  204. - Fix a bug where the volume was reset to 0
  205. - Add events to dbus plugin. This can be used to detect dbus
  206. disconnects.
  207. ## Media-session
  208. - Handle dbus disconnect.
  209. - Handle device reservation errors.
  210. ## PulseAudio server
  211. - Implement module-ladspa-sink and a new PipeWire-only
  212. module-ladspa-source
  213. - Implement module-pipe-sink
  214. - Implement module-tunnel-sink and module-tunnel-source
  215. - Fix a bug with module argument parsing
  216. - Implement module-zeroconf-discover
  217. ## ALSA plugin
  218. - improve error handling
  219. PipeWire 0.3.27
  220. This is a bugfix release that is API and ABI compatible
  221. with previous 0.3.x releases.
  222. - Highlights
  223. - Fix bug that caused bluetooth devices to stop working.
  224. - Fix session-manager crash when switching users caused by
  225. the DBus plugin cleanup errors.
  226. - Improve volume handling of monitor ports.
  227. - Fix GStreamer v4l2 support.
  228. - Implement module-remap-sink and module-remap-source in
  229. pipewire-pulse.
  230. - More fixes and improvements.
  231. - PipeWire
  232. - Move the loopback code into a module. Use this in pw-loopback
  233. and pipewire-pulse. Fix some cleanup crashes.
  234. - A dummy echo-cancel module was added. Later versions will
  235. include the webrtc echo-canceler.
  236. - State files don't have the X permission anymore.
  237. - Move i18n core into a private header file.
  238. - Stream can now advertize properties and receive property
  239. updates.
  240. - Fix an issue where the wrong index was used to address a port.
  241. It caused Bluetooth devices to stop working.
  242. - SPA plugins
  243. - Only do LFE filtering on channels we created.
  244. - Improve name and description of devices.
  245. - Improve cleanup in DBus connections and sources to avoid crash
  246. when destroying.
  247. - Improved volume handling. Hardware, Software and Monitor
  248. volumes are now properly separated and handled.
  249. - Support for S8 and S8P formats was added.
  250. - Tools
  251. - pw-cli can now also create Struct from JSON arrays.
  252. - Session-manager
  253. - The session manager can now also create passive links. This
  254. makes is possible to suspend effect chains together with the
  255. sinks when not in use.
  256. - Match rules now check the complete property value instead of
  257. only the start.
  258. - Handle multiple pending param enumerations, take only last
  259. result. This fixes some volume update issues.
  260. - GStreamer plugins
  261. - GStreamer plugins now advertize handling DMABUF explicitly. This
  262. is currently the only way to avoid a memcpy for v4l2 devices.
  263. - Device support
  264. - sync ACP with pulseaudio, merge upstream patch instead of our
  265. hack to workaround missing duplex devices.
  266. - V4l2 devices don't expose their fd anymore. Previously the fd
  267. and mmap offsets were passed to the client to access the buffer
  268. memory but that could create security issues.
  269. - Bluetooth
  270. - Don't unregister the profiles on shutdown because this can cause
  271. delay, just close the dbus connection.
  272. - Bluetooth devices now try to use the global samplerate from the
  273. graph.
  274. - PulseAudio server
  275. - Implement remap-sink and remap-source modules using the
  276. new loopback module.
  277. PipeWire 0.3.26
  278. This is a bugfix release that is API and ABI compatible
  279. with previous 0.3.x releases.
  280. - Highlights
  281. - I18n support, with translations merged from PulseAudio.
  282. - New pw-link tool.
  283. - Many Bluetooth improvements, support for hardware volumes.
  284. - Support for 64 channel devices.
  285. - Stability fixes and improvements.
  286. - PipeWire improvements
  287. - The link factory can now also make links between nodes and
  288. ports by name so that it can be used in scripts.
  289. - Add module-protocol-simple that can stream raw audio on a
  290. socket.
  291. - Added i18n support. Merge PulseAudio translations for the ACP
  292. library so that we don't cause regressions.
  293. - Support more than 19 channels in the channel mixer.
  294. This makes all channels usable on 32 and 64 channel cards.
  295. - Detect if we're running in a VM and allow for tweaking some
  296. settings such as the max-quantum to make things work better in
  297. VMs.
  298. - Fix a potential crash when connecting a client and updating
  299. permissions.
  300. - Fix a potential crash when trying to link incompatible ports.
  301. - Lingering links in error will now be destroyed automatically.
  302. - Tools
  303. - Added new pw-link tool to list and monitor ports and to
  304. list, monitor, create and destroy links between them.
  305. - pw-cli can now also list params by name.
  306. - pw-dump now outputs Spa:String:JSON types in metadata as properly
  307. parsed and formatted JSON so that tools can parse the
  308. metadata values using a JSON parser.
  309. - Session-manager
  310. - Add logind support. The bluetooth monitor can only be started
  311. for one user at the time, so use logind detect active seats.
  312. - ALSA icon names were improved to match what PulseAudio does.
  313. - Improve the bluetooth icon name. Also use the device alias
  314. as the device description, like PulseAudio.
  315. - Device support
  316. - When devices become inaccessible, they are now removed from
  317. the PipeWire graph.
  318. - Fix datatype selection for buffers in v4l2 and libcamera.
  319. - Bluetooth
  320. - Various memory leaks and crashes are fixed.
  321. - Added support for AVRCP hardware volume.
  322. - Added support for HSP/HFP hardware volume.
  323. - PulseAudio server
  324. - Fix module-loopback connections to monitor ports.
  325. - Implement module-native-protocol-tcp.
  326. - Handle nodes and streams with > 32 channels. The PulseAudio
  327. API only supports up to 32 channels so only make those 32
  328. first channels available with the PA API.
  329. - Implement module-simple-protocol-tcp.
  330. - Improve events emitted by the server.
  331. - Improvements to channels and channel_map properties on
  332. modules. one can imply the other and they should match when
  333. both given.
  334. - null-sink will now have their volume work correctly by
  335. default.
  336. - JACK
  337. - JACK development files can now optionally be installed.
  338. PipeWire 0.3.25
  339. This is a bugfix release that is API and ABI compatible
  340. with previous 0.3.x releases.
  341. - Highlights
  342. - Many stability improvements.
  343. - Plug fd leak in flatpak detection
  344. - add pw-loopback tool and support module-loopback
  345. - volume restore for virtual sinks/sources or other sink/sources
  346. without hardware volume.
  347. - Fix cracks and pops in audio capture.
  348. - Many bluetooth improvements and compatibility fixes.
  349. - PipeWire improvements
  350. - Hex encode invalid SEC_LABEL properties to avoid generating
  351. invalid json.
  352. - Small fixes to how nodes are started to avoid crashes.
  353. - Make sure ports are only scheduled after being fully
  354. negotiated to avoid crashes.
  355. - Implement coverity into CI, fix some bugs detected by
  356. coverity.
  357. - Plug leak in flatpak detection.
  358. - Fix crash when removing globals in some cases.
  359. - Fix crash because the mixer info was not removed from a
  360. port in all cases.
  361. - Add PIPEWIRE_AUTOCONNECT environment variable to disable
  362. stream autoconnect. Also add a config option to disable
  363. autoconnect.
  364. - Improve wildcard in format helpers.
  365. - Add env variable to disable journald logging.
  366. - Tools
  367. - Add a new pw-loopback tool to loop a capture device to a
  368. playback device.
  369. - Display localized strings correctly in pw-top
  370. - Add some more options to pw-dot
  371. - Session-manager
  372. - When a new node is configured and some stream have this
  373. as the default target, move them to it.
  374. - Fix some crashes.
  375. - Implement volume restore on nodes without routes. This makes
  376. it possible to restore volume on purely software nodes like
  377. null-sinks.
  378. - Also try to suspend errored nodes so that they may leave the
  379. error state and be reused again.
  380. - Break endless link loops when something went wrong.
  381. - Device support
  382. - Fix monitor volumes, they are now separate from the hardware
  383. volume.
  384. - Fix cracks and pops in alsa capture caused by mismatch between
  385. resampler and capture source.
  386. - Add start-delay config option to alsa sink.
  387. - Ensure the PipeWire midi ports start from a higher number so
  388. that the lower port numbers are available to apps as before.
  389. - Bluetooth
  390. - source devices are now removed when idle
  391. - Support using pipewire as Audio Gateway.
  392. - LDAC encoding quality can be configured now
  393. - Implement codec switching for HFP
  394. - Implement codec switching with new device property.
  395. - Improved stability and compatibility
  396. - Autoconnect device profiles at startup
  397. - Add AAC bitrate mode configuration
  398. - Make it possible to use an A2DP source as an input device. You
  399. can then use your phone as an A2DP microphone, for example.
  400. - Remove battery reporting when RFCOMM connections is closed.
  401. - PulseAudio server
  402. - Add some workarounds for Blueman
  403. - Set correct errno values, fixes a hang in load-module of a
  404. non-existing module
  405. - Try to not send inconsistent information to clients.
  406. - Fix some crashes.
  407. - Add support for the new send-message API, use this to
  408. switch bluetooth codecs.
  409. - Fix draining by making sure we are started.
  410. - Handle 0 sink and source as the default sink/source.
  411. - Implement module-loopback
  412. - JACK
  413. - Fix some memory leaks when closing a client
  414. - Add self-connect config option to limit where clients
  415. can connect themselves.
  416. - Don't crash when apps call _port_get_buffer() on a
  417. port that is not their own but simply return NULL.
  418. This fixes a crash in Ardour6.
  419. - Improve client added/removed callbacks. Sometimes it would
  420. emit a client remove when there were still ports for the
  421. client.
  422. - make sure midi port names are stable across reboots.
  423. PipeWire 0.3.24
  424. This is a bugfix release that is API and ABI compatible
  425. with previous 0.3.x releases.
  426. - Highlights
  427. - Many JACK midi improvements and device support.
  428. - Fixes in gnome-control-center default sink/source handling.
  429. - Many small performance improvements in alsa device handling
  430. and latency. There should also be less cracks/pops and xruns
  431. now.
  432. - Fixes for gnome-control-center default sink/source handling.
  433. - More bluetooth compatibility improvements.
  434. - PipeWire improvements
  435. - Implement simple upmixing.
  436. - Disable the resampler when not used. This improves latency
  437. and CPU usage.
  438. - Handle max-quantum on devices and try to not make the quantum
  439. larger than the device buffer size.
  440. - Improvements to how nodes and links are activated. It should
  441. now result in less xruns and cracks/pops.
  442. - meson uses the feature options everywhere now.
  443. - Handle volume remap in the channelmixer. This fixes the channels
  444. on multichannel devices.
  445. - Try to escape invalid JSON string characters.
  446. - Keep better track of changed parameters in audioconvert.
  447. - Improve config files, make arrays where needed.
  448. - Respect NO_COLOR where possible
  449. - Support in-place config file parsing to avoid allocations and
  450. improve startup performance.
  451. - There is now a config option to enable non-power-of-two quantums.
  452. - Preliminary support for upmixing and generating LFE channels.
  453. - Session-manager
  454. - Default nodes are not stored as JSON in the metadata. This
  455. is more readable and introspectable.
  456. - More default-nodes and default-routes improvements. Port
  457. switching should work better now.
  458. - Wait until all devices are scanned before linking clients.
  459. - Fixes some crashes.
  460. - Sinks (monitors) can now be set as default sources.
  461. - Device support
  462. - Fix startup timers for alsa devices.
  463. - Improve timers in alsa when quantum changes. It should cause
  464. less xruns and cracks.
  465. - Fix UCM setup of capture devices.
  466. - Only disable IRQ in alsa when not batch. For batch devices the
  467. hw pointers are updated each IRQ so we need to keep them enabled.
  468. This massively improves latency on USB batch devices to the same
  469. level as JACK (with small enough period size).
  470. - Bluetooth
  471. - Improvements to profile switches.
  472. - Improvements to volume handling.
  473. - Fixes for A2DP sources
  474. - Add support for battery status when available.
  475. - Many other small improvements.
  476. - PulseAudio server
  477. - Handle NULL in set_default_sink/source to clear the default.
  478. - Implement a workaround for gnome-control-center when setting
  479. the default sink/source. It also sets the target in
  480. stream-restore to the new default. This fixes moving streams
  481. in gnome-control-center.
  482. - Fix some races by replying to some requests after the operation
  483. completed.
  484. - Prefer formats of the extended format API.
  485. - Create a pid file on startup to improve compatibility with apps
  486. that look for it.
  487. - Capture streams can now be moved to monitors with pavucontrol.
  488. - Fixes for crashes.
  489. - JACK
  490. - jack clients can now connect to the 'default' server.
  491. - Move midi ports back to the midi client.
  492. - Only mark midi hardware ports as terminal/physical.
  493. - Use the same midi names as a2jmidid.
  494. - match system ports in get_ports.
  495. - Improve compatibility with some apps that require a
  496. fixed latency.
  497. - Beginnings of the libjackserver implementation.
  498. PipeWire 0.3.23
  499. This is a bugfix release that is API and ABI compatible
  500. with previous 0.3.x releases.
  501. - Highlights
  502. - Fixes for some critical bugs in last release.
  503. - Fix bug where audio was not drained properly at the end of
  504. playback, causing repeating sound.
  505. - Profile and route switching was improved and should mimic
  506. more what pulseaudio did.
  507. - Various fixes for xruns in capture and playback.
  508. - Bluetooth now supports delay adjustment and various other
  509. improvements.
  510. - The pulseaudio server now correctly identifies AC3 and DTS
  511. streams and returns a not supported error instead of playing
  512. static.
  513. - Multichannel support was improved in the alsa plugin and
  514. the channel mixer. Channels should now play on the right
  515. speakers in all cases.
  516. - PipeWire improvements
  517. - Small fixes and improvements in JSON parsing and encoding.
  518. - Improvements to param handling in audioconverter. It would
  519. previously not always notify of changes.
  520. - Avoid updating some properties that we use internally such
  521. as the object id and the node.id.
  522. - log.level in the config files is now actually used.
  523. - the PIPEWIRE_LATENCY env variable should always override
  524. any application settings in filter/stream/jack.
  525. - The config file can now contain filer and stream properties
  526. to, for example, control the resampler, mixer and latency.
  527. - Add sandboxing to the systemd services
  528. - Various FreeBSD fixes.
  529. - Improve draining and a way to exit the drain state as well.
  530. - Many multichannel fixes. Channel remapping should now be
  531. correct.
  532. - Fix bug with repeating audio at the end of playback because
  533. the drain in the resampler was not draining all channels.
  534. - RTKit default rt.prio has been increased to 88. This will
  535. likely still be clamped to 20 until distros increase the
  536. max priority.
  537. - Session-manager
  538. - Don't try to switch to Pro Audio profile, this should be
  539. a user choice only.
  540. - Don't crash when metadata was disabled such as when not
  541. using the audio features of pipewire.
  542. - Rework the profile and route handling.
  543. - Add systemd unit files for the media-session
  544. - Device names should now also have sane names so that tab
  545. pactl completion works on them.
  546. - Device support
  547. - Fix ALSA format enumeration in more cases. Use the channels
  548. and rate as a filter.
  549. - Make sure the graph doesn't ever use buffers larger than
  550. the alsa device buffer size or we get xruns.
  551. - Tuning of the alsa device timeout handling and dynamic
  552. resampler. There should now not be any xruns when streams
  553. appear and disappear or when the quantum changes.
  554. - Fix bug in alsa device when reassigning to a new driver,
  555. in some cases the dynamic resampler was not activated and
  556. things would drift out of sync and fail.
  557. - Fixes in quantum changes for ALSA capture and how the
  558. resampler is drained and fed with the new samples.
  559. - Bluetooth
  560. - Delay adjustment has been implemented now. Bluetooth
  561. devices should now be more synchronized with video due
  562. to proper delay reporting. Because BT delays can be
  563. large, it can cause hickups in some players.
  564. - Fix volume in bluetooth devices.
  565. - Codec switch improvements.
  566. - PulseAudio server
  567. - Latency offset adjustment is now implemented and functional
  568. for bluetooth devices. It is not working for alsa devices
  569. yet.
  570. - Handle unsupported formats. Previously we would accept encoded
  571. formats and play noise. This fixes AC3 playback in vlc.
  572. - Move some of the configurable parameters to the config file.
  573. - Fix a fatal use after free when playing samples
  574. - Improve module handling. loaded modules now show up in the
  575. list of modules and can be unloaded. This also prepares the
  576. core for more module implementations later.
  577. - ALSA plugin
  578. - Fix drain with very large buffers, we need to manually start
  579. the stream before draining.
  580. - Fix the channel layout handling.
  581. - Improve compatibility with apps that expect the poll to only
  582. return when there is activity.
  583. - Fix drain for capture
  584. - JACK
  585. - Add a config option to shorten and filter client names
  586. - Increase the length of the client name size and make sure
  587. we don't exceed the allocated size.
  588. - We now include our own jack header files so we can build
  589. without depending on another jack-devel package. We don't
  590. yet install the headers or provide pkgconfig files.
  591. PipeWire 0.3.22
  592. This is a bugfix release that is API and ABI compatible
  593. with previous 0.3.x releases.
  594. - Highlights
  595. - Per client config files replace the module-profiles. It's
  596. now possible to tweak settings and load custom modules.
  597. - Pro Audio card profile support. You can now select the
  598. Pro Audio profile and have raw device access with the
  599. maximum number of channels and no mixer controls. This is
  600. the usual setup for managing high end Pro Audio cards.
  601. - Many fixes and improvements in the JACK library to make
  602. devices look and integrate better.
  603. - Many bluetooth improvements. Playback should be more
  604. reliable and better synchronized. Support for the HFP HF
  605. profile.
  606. - Small fixes and improvements all over the map.
  607. - PipeWire improvements
  608. - Add support for restrictions requested by a client. This
  609. makes it possible to implement Flatpak policy for emulated
  610. PulseAudio clients as well.
  611. - Fix removal of params in objects. Previously they would not
  612. be removed from the cache.
  613. - Remove mlock warnings by default. There is an option to enable
  614. them again if you want to check if your system is optimized.
  615. - Remove LimitMEMLOCK lines from the service files. They can
  616. only lower the system settings and are thus not useful.
  617. - Implement per-client config files. Each pipewire client will
  618. now read a config file that you can use to configure the
  619. context of the client.
  620. - Implement state and config load/save in pipewire. This is used
  621. by the session manager or other apps.
  622. - Make an option to disable dbus support.
  623. - Add tool to convert pipewire config to JSON.
  624. - Session-manager
  625. - Give all permissions to Manager flatpak apps. In the future
  626. we will use the Permission store to remember user settings.
  627. - Improvements to default audio/sink handling.
  628. - Add option to configure device suspend time.
  629. - Small fixes in route handling.
  630. - Device support
  631. - Complain when ACP profile files are not found and use
  632. a fallback in order to get something working.
  633. - Add volume support to monitor ports.
  634. - Fix resume from suspend for ALSA in more cases.
  635. - ALSA ACP cards now have a Pro Audio profile that exposes
  636. the raw card devices.
  637. - Bluetooth
  638. - Enable A2DP delay reporting. This improves audio/video sync
  639. when playing audio over bluetooth.
  640. - Fix stuttering in A2DP source
  641. - Tweak buffer size and latency settings to avoid stuttering
  642. - More work on HSP and HFP support
  643. - Fix initial profile configuration
  644. - Add HFP HF support
  645. - PulseAudio server
  646. - Small tweaks in capture packet size to avoid crashes in some
  647. apps.
  648. - Detect Flatpak apps and requests the flatpak permissions from
  649. the session manager. This means that Flatpak pulseaudio apps
  650. will now run with reduced permissions.
  651. - ALSA plugin
  652. - Reduce min buffer size in the plugin for lower possible
  653. latency.
  654. - JACK
  655. - implement some missing methods to make qjackctl work again.
  656. - Use the context data thread instead of making our own. This
  657. fixes the issue where the data thread was not given RT
  658. priority correctly.
  659. - Pass extra jack flags around in port properties. This makes
  660. CV ports in carla work.
  661. - Many tweaks to the port names and aliases. Unwanted characters
  662. are filtered out, giving better names to jack apps. Default
  663. device names are now equal to those seen in pulseaudio apps.
  664. - Add an option to make a separate client for the monitor ports
  665. of a device. This makes it more usable in apps.
  666. - add support for system:playback_N and system:capture_N port
  667. names for apps that hardcode these port names.
  668. PipeWire 0.3.21
  669. This is a bugfix release that is API and ABI compatible
  670. with previous 0.3.x releases.
  671. - Highlights
  672. - Many PulseAudio compatibility fixes. Handling of corked
  673. streams, the prebuf setting, seek modes and stream flags
  674. are now implemented correctly.
  675. - Ports and Profiles are now managed by the session manager
  676. and can save and restore previous settings.
  677. - ALSA device handling has been tweaked for maximum
  678. compatibility at the expense of latency. There are tuning
  679. options in the config file.
  680. - Improved Bluetooth support. HSP is disabled by default
  681. because it is old and deprecated and in some cases causes
  682. conflicts with the newer HFP profile. Codec switching is
  683. now implemented as well.
  684. - PipeWire accepts donations with liberapay now.
  685. - PipeWire improvements
  686. - Improve draining in pw-stream.
  687. - pw-stream now uses busy metadata by default. This makes sure
  688. that no writer can write to buffers when readers are still
  689. busy.
  690. - Fix handling of empty array/choice instead of failing.
  691. - Fix crashes when creating properties from empty strings.
  692. - Make it possible to pass an array to module-access
  693. access.allowed variables
  694. - Fix small bug in argument parsing in pw-cat
  695. - Session-manager
  696. - Restore route volumes in all cases, also when switching
  697. routes.
  698. - Use a default route volume for unknown routes instead of
  699. letting the system decide on a default.
  700. - Improve profile handling. Don't try to restore unavailable
  701. profiles. Implement the profile switching in the session
  702. manager now.
  703. - Fix handling of Virtual sources as defaults.
  704. - Handle port switching in the session manager. Implement
  705. save and restore of default ports per profile.
  706. - GStreamer
  707. - Fix a crash with zero SPA_PARAM_BUFFERS_size
  708. - Device support
  709. - v4l2-source will now respect the requested memory types.
  710. - ALSA buffering has been tweaked. USB devices should have
  711. less XRuns by default. Parameters can be tweaked to
  712. decrease the latency on capable devices. Also fix a case
  713. where a quantum change would cause an xrun.
  714. - Fix mute in bluetooth devices
  715. - bluetooth devices are not paused in idle anymore for
  716. improved compatibility.
  717. - Codec switching for bluetooth is implemented along with
  718. config options to select the codecs manually.
  719. - HSP for bluetooth is now disabled by default. Most devices
  720. support the newer HFP profile and some devices fail when
  721. both are available.
  722. - Reduce the amount of events the ALSA plugins emit by bundling
  723. them.
  724. - PulseAudio server
  725. - Implement the suspend command
  726. - Fixes volume in sample info
  727. - Fix playback of samples, sometimes samples would be clipped
  728. short. Also implement the target sink for the sample.
  729. - Use rate match to feed samples. This way the latency can
  730. be kept to a minimum.
  731. - Latency has been tuned some more, more closely emulating
  732. pulseaudio behaviour.
  733. - Improve default sink/source handling. Make sure all events
  734. are sent correctly when defaults change.
  735. - Handle underrun better without causing sync issues. Make sure
  736. to pause in corked state.
  737. - Implement rewind due to seeks, fixes GStreamer seeking.
  738. PipeWire 0.3.20
  739. This is a bugfix release that is API and ABI compatible
  740. with previous 0.3.x releases.
  741. - Highlights
  742. - Latency was reduced in ALSA and PulseAudio and time
  743. reporting has improved a lot.
  744. - Bluetooth now has a native HFP backed, SBC XQ and
  745. mSBC support.
  746. - Many bugfixes and improvements, improved device
  747. support.
  748. - PipeWire improvements
  749. - pw-dump can now dump all objects such as Endpoints
  750. - pw-dump has a -m option to monitor changes
  751. - pw-dump can now dump metadata
  752. - pw-stream can now use the rate-match io to exactly
  753. produce the required number of samples for the
  754. current cycle. When using this feature, a stream can
  755. achieve the same low-latency as pw-filter.
  756. - spa-acp-tool can now load a custom profile-set and
  757. correctly parses the volume updates
  758. - There is now a nofail option when loading modules
  759. - The connection has been made reentrant to fix some
  760. strange random problems with metadata.
  761. - Turn some errors into warnings or simply info.
  762. - Executables are now built with PIE
  763. - S24OE formats should work now (MAudio FastTrack Pro)
  764. - Remove mlock warnings. Add support for mlockall with
  765. a config option.
  766. - Session-manager
  767. - There are now config files for bluez and v4l2 modules
  768. - Improve ALSA device and node properties
  769. - Bluetooth devices have better properties now.
  770. - The default device routing has been improved.
  771. - Device support
  772. - Port priorities are updated for UCM devices
  773. - ACP devices notify change in routes in all cases
  774. - There is now RW support in ALSA devices to increase
  775. compatibility.
  776. - Many improvements to Bluetooth. SBC XQ support can now
  777. be enabled with a config option. mSBC can be enabled
  778. with an option.
  779. - Bluetooth devices not expose Routes so that they look
  780. more like how PulseAudio handles them
  781. - Gracefully handle missing profile-sets
  782. - There is now a native HFP backend
  783. - Improve card names in some cases.
  784. - pause-on-idle is now disabled for ALSA devices. This can
  785. reduce pops and clicks when the device is stopped.
  786. - ALSA plugin
  787. - Use rate-match to reduce the latency
  788. - Implement a _delay() function to get smoother timestamps.
  789. - Fix property parsing. Fixes volume changes in alsamixer.
  790. - PulseAudio server
  791. - Use rate-match to reduce the latency. This also reduces
  792. the buffering in audioconvert and improves timestamp
  793. reporting.
  794. - Implement rate changes now that we have rate-match
  795. support.
  796. - pactl stats will now work
  797. - Fix excessive memory usage when a capture client doesn't
  798. read fast enough.
  799. PipeWire 0.3.19
  800. This is a bugfix release that is API and ABI compatible
  801. with previous 0.3.x releases.
  802. - Highlights
  803. - Startup after login should be fixed now with inotify
  804. used to wait for permissions.
  805. - Channels should be mapped correctly now.
  806. - Many bluetooth improvements in LDAC, AptX-HD. AAC was
  807. also added. Headsets should work better now.
  808. - pipewire-libpulse was removed. It is now completely
  809. replaced by pipewire-pulse.
  810. - Fix a crasher bug in pipewire-pulse and some memory leaks.
  811. - Fix a bug with feedback loop that would cause 100% CPU.
  812. - A new pw-top tool to display real-time graph performance.
  813. - The example session manager now has config files.
  814. - The config file format was changed to use the SPA JSON
  815. tokenizer. This makes it more flexible and extensible.
  816. - PipeWire improvements
  817. - Fix debug of id in format channels
  818. - Audioconvert should now remap channels correctly in all
  819. cases.
  820. - Feedback loops were not scheduled correctly and would
  821. cause 100% CPU usage.
  822. - Small improvements to the profiler to also log incomplete
  823. graph status.
  824. - a new tool pw-top was added that prints real-time performance
  825. stats of the graph.
  826. - the rtkit module now sets the nice level to -11
  827. - Session-manager
  828. - The session manager would sometimes link dont-reconnect
  829. nodes to another node, which would leak monitor streams in
  830. pipewire-pulse.
  831. - The session manager now has configuration files. Config files
  832. can also be placed in the user home directory to make custom
  833. configurations.
  834. - The session managers now creates unique device and node
  835. names for alsa and v4l2 devices.
  836. - Device support
  837. - Many improvements in Bluetooth codecs, LDAC stuttering,
  838. AptX-HD negotiation, LDAC ABR support
  839. - Bluetooth supports AAC audio now.
  840. - Many fixes to Bluetooth SCO transport used in headsets.
  841. - inotify support in device monitors
  842. - ACP was synced with the latest pulseaudio code
  843. - Fix a bug in enumeration of device ports.
  844. - PulseAudio server
  845. - seek flags and offset are now supported, making gstreamer
  846. pulse elements work better.
  847. - Fix a crasher bug in pipewire-pulse, we sometimes would
  848. write too much to the ringbuffer
  849. - Fix some memory leaks in error cases.
  850. - Fix handling of NULL string to locate default sink/source
  851. - JACK layer
  852. - Ports can also be found with the aliases now, making
  853. qjackctl work in more cases.
  854. PipeWire 0.3.18
  855. This is a bugfix release that is API and ABI compatible
  856. with previous 0.3.x releases.
  857. - Highlights
  858. - More work in the PulseAudio server. It should be compatible
  859. with more applications.
  860. - Bluetooth now support extra codecs such as AptX/HD and LDAC.
  861. - Support for virtual sources and sink was improved a lot.
  862. - Added a new pw-dump tool to dump the objects in JSON formats
  863. and for filtering them with tools like jq.
  864. - Many more stability fixes and improvements.
  865. - PipeWire improvements
  866. - Silence some harmless warnings
  867. - pw-cli can now be used to set parameters.
  868. - Streams now perform the correct channel mapping when linked
  869. to non-standard multichannel devices. Previously channels
  870. would get swapped.
  871. - port, node and device params are now cached in the server.
  872. This avoids opening and closing devices whenever some client
  873. enumerates formats, which improves performance a lot,
  874. especially in cases where opening a device is slow.
  875. - Add a command to keep a device open during negotiation. This
  876. is used to enumerate and set a format while opening the
  877. device just once, improving performance.
  878. - The null-sink scheduling was fixed.
  879. - A memory corruption bug was fixed in format conversion, this
  880. could cause crashes, silent channels or other undefined
  881. behaviour.
  882. - There is now a simple JSON parser.
  883. - Session-manager
  884. - Settings files are now stored in JSON. With the json parser
  885. this is easier to parse and extend
  886. - Device support
  887. - Bluetooth now supports additional codecs: LDAC, AptX and
  888. AptX HD. LDAC is known to not work very well yet.
  889. - ALSA devices will now default to the max supported channels
  890. if nothing else is specified. This makes it possible to use
  891. 8+ channel cards with the alsa-pcm module, which is not
  892. supported with the default alsa-acp module.
  893. - Enable mSBC support in oFono.
  894. - Add an option to disable hardware mixers
  895. - ALSA now improves support for batch devices.
  896. - The udev rules had references to Pulseaudio removed in order
  897. to not create conflicts.
  898. - Fix a potential crash in bluetooth devices when
  899. disconnecting.
  900. - UCM cards now use HW volume when possible.
  901. - PulseAudio server
  902. - The id can now be used as the name to locate cards and
  903. devices
  904. - Report streams with planar formats as well
  905. - Better error reporting when stream create fails
  906. - module-null-sink can now handle channels, rate and
  907. channel_map properties
  908. - Add support for 3 types of virtual devices: source,
  909. sink and duplex.
  910. - set-port was fixed
  911. - Some buffer parameters were tweaked to improve
  912. performance, compatibility and stuttering with lower
  913. latency.
  914. - NULL can be used as a name for the device sink/source
  915. - Support lookup of monitor names
  916. - Set properties more like pulseaudio so that some
  917. clients (Teamspeak) don't crash anymore
  918. PipeWire 0.3.17
  919. This is a bugfix release that is API and ABI compatible
  920. with previous 0.3.x releases.
  921. - Highlights
  922. - Fix crasher bug for kwin when screensharing stopped.
  923. - Massive improvements and compatibility fixes in the
  924. PulseAudio server.
  925. - The session manager now has a config directory in
  926. /etc/pipewire/media-session.d/ It will look for files there
  927. to activate session manager modules. Packagers can use
  928. this to only activate the audio modules when the PulseAudio
  929. server, libjack.so or the alsa modules are installed.
  930. - PipeWire improvements
  931. - We now clear hooks before adding them. Some application
  932. did not clear them and had random data for the destroy
  933. callback.
  934. - Return -ENOENT from unknown resources so apps can handle
  935. this better. It's a common problem when an app tries to
  936. introspect and object but it disappeared before the message
  937. reached the server. Apps should ignore this.
  938. - channelmap information is now passed with the volume
  939. settings.
  940. - DMABuf is not mmapp()ed anymore with the FLAG_MAP_BUFFERS in
  941. the stream or filter. This is because DMABuf usually
  942. requires more that just a simple mmap and is better left
  943. for the application.
  944. - increase the maximum number of ports for a client-node.
  945. - adapter and node-factory now support the linger option to
  946. keep the objects alive after the creating client disconnected.
  947. - Device support
  948. - ALSA now handles error in close(), like when unplugging a
  949. USB device.
  950. - Session-manager
  951. - The session manager is now handling DONT_RECONNECT streams
  952. without a target node. They get connected to a default node
  953. once and then fail to reconnect.
  954. - The session manager now exposes the stream setting as
  955. metadata. This makes it possible for other components, such
  956. as pulse-server to use this information. Information is stored
  957. as a json object for easier consumption.
  958. - The session manager now has a config directory in
  959. /etc/pipewire/media-session.d/ packagers can use this
  960. - PulseAudio server
  961. - Pulse server now acquire the dbus name.
  962. - Improvements in timing and compatibility with many apps.
  963. - The stream-restore extension is now implemented so that
  964. the event volume can be configured.
  965. - Many stability fixes and improvements.
  966. - Fix some issues with module-load/unload
  967. PipeWire 0.3.16
  968. This is a bugfix release that is API and ABI compatible
  969. with previous 0.3.x releases.
  970. - Highlights
  971. - Fix screensharing for old 0.2 clients
  972. - Many pulse-server improvements. There is now a
  973. pipewire-pulse binary that is the preferred solution for
  974. PulseAudio compatibility. The replacement libpulse
  975. libraries are now deprecated. This also makes audio in
  976. Flatpak work.
  977. - PipeWire improvements
  978. - Fix cleanup of listeners everywhere. Force remove of
  979. listeners in _destroy to avoid crashes.
  980. - Add support for a journald logger module.
  981. - Various memory leak fixes
  982. - Silence some warnings that spammed the logs.
  983. - Fix flush in pw_stream. This fixes small glitches when
  984. switching streams in music players.
  985. - Various FreeBSD fixes and improvements.
  986. - Fix some crashes when destroying objects.
  987. - Device support
  988. - Reload the ALSA configuration when creating a node so that
  989. hotplugged devices work in all cases.
  990. - Fix memory leaks in ACP library. This also fixes issues
  991. where the mixer device was not closed.
  992. - Bluetooth now has support for the mSBC codec for SCO
  993. source and sink.
  994. - pulse-server
  995. - Many introspection and compatibility improvements. It should
  996. now be as good or better than the replacement library.
  997. - Implement sample cache to make notification events work.
  998. - JACK layer
  999. - handle errors when linking, fixes jack_connect hang when
  1000. the ports were already linked.
  1001. PipeWire 0.3.15
  1002. This is a bugfix release that is API and ABI compatible
  1003. with previous 0.3.x releases.
  1004. - Highlights
  1005. - This is a quick update to fix critical issues with the
  1006. 0.3.14 update, which broke screen sharing and accidentally
  1007. enabled the experimental pulse-server.
  1008. - Fix some compatibility issues in pulse-server with
  1009. pavucontrol and fix an issue that would block the complete
  1010. server.
  1011. - PipeWire improvements
  1012. - Permission checks for new clients are now done from a
  1013. global context, which makes it possible to assign initial
  1014. permissions to objects.
  1015. - Handle EINTR everywhere
  1016. - Fix an issue with the node state changes where a quick
  1017. pause/play would hang a client.
  1018. - Session manager improvements
  1019. - Disable the bluez5 and pulse-bridge modules by default because
  1020. they interfere with pulseaudio. These options should only be
  1021. enabled if pulseaudio is removed or disabled in the system.
  1022. - Fix an issue where the session manager could end up in
  1023. infinite recursion while scanning for things to do.
  1024. - The session manager will now always configure nodes to remix
  1025. to the channel configuration of the device. This fixes the case
  1026. where mono streams would only end up on one channel of a stereo
  1027. device.
  1028. - Device support
  1029. - Initial merge of A2DP extra codec support using the new bluez5
  1030. API.
  1031. - pulse-server
  1032. - Create the runtime directory when it doesn't exist.
  1033. - Don't ever block the server, use non-blocking IO everywhere.
  1034. - Fill description of profiles with the name if not otherwise set,
  1035. this fixes a crash in pavucontrol.
  1036. - the connection debug category will now also debug pulse
  1037. messages.
  1038. - Respect the no_remix flag to make the control panel channel
  1039. check work.
  1040. - ALSA plugin
  1041. - implement pause
  1042. PipeWire 0.3.14
  1043. This is a bugfix release that is API and ABI compatible
  1044. with previous 0.3.x releases.
  1045. - Highlights
  1046. - This release focuses on bugfixes and stability
  1047. improvements.
  1048. - A new experimental pulse-server module was added. This
  1049. module implements the pulseaudio protocol on top of
  1050. PipeWire and can be used to make flatpaks work with
  1051. PipeWire. It looks like this might be a better way
  1052. forward compared to the libpulse.so replacement library.
  1053. - A2DP bluetooth was reworked. Playback should work a lot
  1054. better now. Support was also added to automatically link
  1055. an A2DP source to a playback device, which makes it possible
  1056. to use PipeWire as a bluetooth receiver as well.
  1057. - Improvements to the routing and volume restore features
  1058. of the session manager.
  1059. - PipeWire improvements
  1060. - The channelmixer does not normalize volumes anymore. Volumes
  1061. are only normalized for monitoring streams now.
  1062. - Streams can actually start in the inactive state now.
  1063. - The channelmixer can now also convert volume updates from one
  1064. channel layout to another. This makes saved volumes work
  1065. even when streams have different channel layouts.
  1066. - Clients are only registered after the properties have been
  1067. updated.
  1068. - Links now have a new active state.
  1069. - Drivers can now also specify a minimum quantum. This makes it
  1070. possible for bluetooth devices to specify an optimum quantum
  1071. for the given codec settings and MTU.
  1072. - The amount of data sent over the socket was reduced by only
  1073. sending the data that changed.
  1074. - Client objects are now exposed after they uploaded their
  1075. properties, which makes the new object more useful.
  1076. - Tools improvements
  1077. - pw-cat will now add metadata to the PipeWire streams.
  1078. - Session manager improvements
  1079. - Fix crashes when reading bad data in stored settings.
  1080. - volume and routing is improved. Settings are now remembered
  1081. per application or media-role.
  1082. - The session manager remembers the last device used per stream
  1083. - Fix a bug when moving streams where it could sometimes end
  1084. up with linking a stream to multiple devices.
  1085. - Use RTKit to set realtime priority on the data thread in the
  1086. session manager. This improves performance of the pulse-server
  1087. and bluetooth devices.
  1088. - Add a new property to mark streams that want to capture from
  1089. the monitor of the default sink.
  1090. - NODE_TARGET can now also contain the node name. This avoids
  1091. some lookups in the pulseaudio layer when selecting target
  1092. nodes by name.
  1093. - the -e and -d options are more usable now and can be used to
  1094. add and remove modules from the default list of modules.
  1095. - Device support
  1096. - v4l2: add some workarounds for buggy drivers. Add Limited
  1097. support for droidcam.
  1098. - ACP: improve selection of default port and profiles.
  1099. - ACP: add support for using the hardware mixer for more than
  1100. 8 channel streams.
  1101. - ACP: support the new port type and availability group found
  1102. in PulseAudio.
  1103. - A2DP bluetooth timings were reworked. Automatic linking of
  1104. A2DP sources was added to make it possible for PipeWire to
  1105. act as a bluetooth receiver. The code was reworked to allow
  1106. other codecs such as APTX and LDAC in the future.
  1107. - Try harder to recover from ALSA errors.
  1108. - GStreamer improvements
  1109. - Fix some crashes in the monitor that cause
  1110. gnome-initial-setup to crash.
  1111. - PulseAudio layer improvements
  1112. - Many compatibility improvements. Improved playback in
  1113. chrome. Fix a crash in firefox when the daemon is stopped.
  1114. - Fix a leak in the formats.
  1115. - Fix !ADJUST_LATENCY streams like paplay.
  1116. - Make the device option in paplay work.
  1117. - Fix volume/mute notifications, this makes plasma volume updates
  1118. work again.
  1119. - Do the conversion between PulseAudio cubic volumes and PipeWire
  1120. linear volumes. Volume levels should behave now like they did
  1121. with PulseAudio.
  1122. - JACK layer improvements
  1123. - Return an error when we run out of midi events. Some application
  1124. rely on this behaviour.
  1125. - ALSA plugin improvements
  1126. - The ALSA plugin now also supports the node name in the
  1127. playback_node and capture_node properties.
  1128. PipeWire 0.3.13
  1129. This is a bugfix release that is API and ABI compatible
  1130. with previous 0.3.x releases.
  1131. - PipeWire improvements
  1132. - Add pw-reserve tool to reserve or monitor a device on DBus.
  1133. - Install spa-resample, a tool to resample a file.
  1134. - Install spa-acp-tool, a tool to inspect the card profile.
  1135. - Various fixes and improvements
  1136. - Fix a bug in pw-stream where a capture stream could run out
  1137. of buffers and become silent.
  1138. - Rework the processing loops in the adapter and stream. There
  1139. is now less latency in PulseAudio and ALSA layers.
  1140. - Session manager improvements
  1141. - Improve the device reservation code. We now try to acquire
  1142. the device using the dbus device reservation API before we
  1143. probe the device. This avoids conflicts with a running
  1144. PulseAudio where devices would disappear (because they were
  1145. locked by the other process).
  1146. - Don't fail on invalid input from the config files.
  1147. - Audio devices now have the same name as what PulseAudio
  1148. would assign.
  1149. - Device support
  1150. - v4l2: try to use the format before enumerating the size and
  1151. framerate. Some drivers don't check the format and might now
  1152. work better.
  1153. - v4l2: Fall back to MMAP when EXPBUF fails. Fix MMAP access,
  1154. just export the fd and the mapoffset. This should make more
  1155. devices work.
  1156. - Fix crash in ALSA Card Profile (ACP) code.
  1157. - ACP: fix selection of default profile. Prefer any possibly
  1158. available profile over 'Off'. This makes some card at least
  1159. start with something.
  1160. - Fix soft volume. After setting the volume to 0, it would stay
  1161. at 0 until pushed over the max volume. This should fix
  1162. various volume related issues.
  1163. - PulseAudio layer improvements
  1164. - Rework the buffering and latency measurements and tweak the
  1165. buffer attributes. This should make browsers and media
  1166. players work better. This should also improve speechd
  1167. performance.
  1168. - JACK layer improvements
  1169. - Fix compilation against newer JACK.
  1170. PipeWire 0.3.12
  1171. This is a bugfix release that is API and ABI compatible
  1172. with previous 0.3.x releases.
  1173. - PipeWire improvements
  1174. * the channelmap converter now handles unknown and strange
  1175. channellayouts much better.
  1176. * the resampler is now cleared correctly, avoiding clicks and
  1177. pops at the start of sound.
  1178. * Fixes for various crasher bugs. (paplay drain, vlc shutdown,
  1179. pactl info, ...)
  1180. * Fix a race condition in the node state changes that caused
  1181. all kinds of sync and other issues (vlc, mpv, ...)
  1182. * Improve the binary name property of applications
  1183. * Fix the scheduling again of nodes that always need a driver
  1184. such as the jack clients.
  1185. - Session manager improvements
  1186. * fix routing to default nodes. Sometimes nodes were not routed to
  1187. the default node (bluetooth)
  1188. - Device support
  1189. * disable channelmap from ALSA by default. This is what PulseAudio
  1190. does and thus provides better compatibility.
  1191. * fix a bug in how the resampler was used in the ALSA source,
  1192. causing distortion and errors when using low latency capture
  1193. clients. (Discord, webrtc, ...)
  1194. * Small bluetooth improvements. More work is needed for reliable
  1195. bluetooth playback.
  1196. - GStreamer plugins
  1197. * the device provider now stops the processing loop before shutting
  1198. down, which avoids crashes (gnome-initial-setup).
  1199. - PulseAudio layer improvements
  1200. * the buffer attributes were reworked to ensure compatibility with
  1201. many more applications such as mpv and audacious.
  1202. * the pulseaudio layer will now try hard to not hand out invalid
  1203. channel maps to the application. (avoids crashes in
  1204. gnome-volume-control). The channel map will now also look more
  1205. like what PulseAudio does.
  1206. * the @DEFAULT_SINK/SOURCE/MONITOR@ wildcards now work. This
  1207. fixes the problem with volume keys when they are bound to
  1208. scripts using pactl and the default sink/source wildcards.
  1209. * the PIPEWIRE_LATENCY environment variable now works again
  1210. * Fix some leaks of ports and port info. Also fix the leak of the
  1211. context when the mainloop is stopped.
  1212. * The sink/source format_info array is now filled up completely,
  1213. this is actually not implemented yet in the real PulseAudio.
  1214. - JACK layer improvements
  1215. * jack now returns version 3.0.0 and has PipeWire in the version
  1216. string so that apps can report this.
  1217. PipeWire 0.3.11
  1218. This is a bugfix release that is API and ABI compatible
  1219. with previous 0.3.x releases.
  1220. - PipeWire improvements
  1221. * Properly cleanup the mixer structures when a port is removed,
  1222. this should fix client crashes related to port config changes
  1223. and other random crashes.
  1224. * Optimize the preferred formats in the audio converter. Higher
  1225. quality formats with higher performance are chosen first.
  1226. * Make sure the time reported by pw_stream is always increasing,
  1227. even when the driver and clock changes.
  1228. * There is now also a system service and socket that can be used
  1229. to enable PipeWire systemwide. This is however not recommended
  1230. and disabled by default.
  1231. * Fix channelmixer 5.1 to stereo mix matrix. It was not reading
  1232. the conversion matrix correctly and cause channels to be
  1233. dropped. The channelmixer will now also normalize the volume,
  1234. like what pulseaudio does.
  1235. * The channelmixer will now just copy channels when no layout
  1236. has been given. It has also optimized paths for this. This
  1237. makes it possible for apps to request > 8 channels from the
  1238. alsa plugin (ardour).
  1239. * Port, Node and Link will now also emit an error on the
  1240. resources in addition to updating the error in the info. This
  1241. would make it easier to track negotiation errors in the session
  1242. manager later.
  1243. * many small fixes and cleanups.
  1244. * Fix compatibility:
  1245. + DOSBox: fix crash because of double free in pw_stream
  1246. - Session manager improvements
  1247. * The session manager will now try to configure the client to
  1248. the channel configuration of the sink/source. It will only
  1249. do this for downmixing, never for upmixing and also never
  1250. when the client has the dont-remix property set. It will
  1251. also renegotiate the channel layout when moving a stream to
  1252. a new sink/source.
  1253. * Configuration state is now saved in XDG_CONFIG_HOME.
  1254. Previously it was saved in $HOME/.pipewire-media-session/
  1255. You can migrate the state by moving the files to
  1256. $XDG_CONFIG_HOME/pipewire-media-session (or
  1257. $HOME/.config/pipewire-media-session as a fallback when
  1258. XDG_CONFIG_HOME is not set).
  1259. - Device support
  1260. * Bluetooth sources and sinks should work better now.
  1261. * There is now also a new bluetooth backend using hsphfpd.
  1262. * fix the ALSA UCM Off profile for alsa pcm devices
  1263. * improve ALSA port and profile switching. The ACP device will
  1264. now switch to the best port and profile when availability
  1265. changes.
  1266. - PulseAudio layer improvements
  1267. * Implement some more callbacks. The pulse layer will now also
  1268. notify applications of stream moved, started and latency
  1269. changes.
  1270. * Fix error code when an object was not found. We now return
  1271. PA_ERR_NOENTITY instead of PA_ERR_INVALID.
  1272. * Add some support for loading new null sinks. Applications such
  1273. as pulseeffects use this. Note that pulseeffects does not yet
  1274. work reliably but can start now.
  1275. * Improve handling of profile and port updates, it should work
  1276. much more reliable now. Apps should now also again receive
  1277. volume updates from sinks/sources.
  1278. * Fix compatibility:
  1279. + openal-soft 1.20
  1280. + pavucontrol (checks PA_ERR_NOENTITY)
  1281. - JACK layer improvements
  1282. * improve default source and sink handling. It was not updated
  1283. correctly in all cases.
  1284. * add samplerate and period to the pw-jack wrapper to easily
  1285. configure the desired samplerate and period for the app.
  1286. - ALSA plugin improvements
  1287. * Add a mixer entry in the alsa config file.
  1288. * Implement support for planar types, rework the processing
  1289. function to make it more robust.
  1290. * refuse to load the alsa plugin when linked against 0.2. This
  1291. catches some old apps linked against 0.2 that want to use the
  1292. alsa plugin.
  1293. * Fix compatibility:
  1294. + linphone (ALSA SIGFPE when _status() is called
  1295. before _prepare()).
  1296. PipeWire 0.3.10
  1297. This is a bugfix release that is API and ABI compatible
  1298. with previous 0.3.x releases.
  1299. - Many improvements to the pulse layer.
  1300. * GStreamer pulsesink element now works.
  1301. * Fixes some segfaults.
  1302. * Enable rtkit for client threads.
  1303. * fixes capture of monitor stream by name
  1304. * implement some more extensions, this makes paman
  1305. work and removes some warnings.
  1306. - Many improvements to the GStreamer elements
  1307. * negotiation rework, avoid calling GStreamer methods from
  1308. the PipeWire callbacks because they might block and cause
  1309. deadlocks.
  1310. * Add support for non-string property values.
  1311. * improve stability after buffer and format
  1312. renegotiation.
  1313. * Rework the device provider.
  1314. * pipewiresink can now provide a stream that can
  1315. be consumed by apps like cheese.
  1316. - Many improvements to the JACK layer:
  1317. * Rework the buffer_size callbacks. Make sure we call
  1318. the callback from a 'safe' thread and that we don't
  1319. call the process callback while the application is
  1320. handling the callback. This improves stability in
  1321. apps like Carla when PipeWire dynamically changes
  1322. the buffer size.
  1323. * Improve compatibility with apps that call
  1324. get_buffer_frames() with a 0 size (calfjackrack)
  1325. * JACK can now create nodes that can be set as a
  1326. sink/source in PulseAudio/ALSA apps (you can make an
  1327. effects rack and set that as default sink for
  1328. apps).
  1329. - Added a group id property for nodes. This makes it
  1330. possible to schedule nodes with the same driver even
  1331. when they are otherwise not linked together. To make
  1332. this work well a new flag needed to be added to nodes
  1333. to signal when they are ready for processing.
  1334. Together with the GStreamer fixes, this makes things
  1335. like:
  1336. gst-launch-1.0 -v pipewiresrc path=51 stream-properties="props,node.group=1" !
  1337. audio/x-raw ! pipewiresink stream-properties="props,node.group=1"
  1338. work as expected with PipeWire managing the resampling
  1339. to keep the clocks of the devices in sync.
  1340. This can later also be used to force devices to be grouped
  1341. together to create a JACK-like scheduling group.
  1342. - Streams and filter now use PIPEWIRE_NODE and
  1343. PIPEWIRE_LATENCY env variables as fallback.
  1344. - ACP add per device port list. This makes UCM devices
  1345. expose the right ports.
  1346. - Fix some segfaults in ACP and UCM.
  1347. - make pw-cat use the metadata to find default devices.
  1348. - The media session can now save and load audio device
  1349. Profiles and Routes (volumes), stream volumes and
  1350. the default sink and sources.
  1351. PipeWire 0.3.9
  1352. This is a bugfix release that is API and ABI compatible
  1353. with previous 0.3.x releases.
  1354. - Fix bad audio in chrome
  1355. - Remove some errors that are not real errors.
  1356. - Fix 100% cpu when disconnecting devices.
  1357. - Improve pulseaudio introspection of formats
  1358. - Fix JACK metadata handling, carla can now monitor the
  1359. port it creates and insert midi.
  1360. - Add a new permission bit (M) that is needed to be able
  1361. to configure metadata on an object. Improve security of
  1362. metadata some more, only allow metadata on objects that
  1363. are visible to the client setting the metadata.
  1364. - Add support for videocrop in the GStreamer elements.
  1365. - Improve handling of the runtime directory for the
  1366. server sockets. Add some reasonable fallback when
  1367. XDG_RUNTIME_DIR is not set, as suggested in the spec.
  1368. - Improve ALSA device names from ACP.
  1369. - Fix various crasher bugs. One in the pulse layer, one in
  1370. the session manager.
  1371. - Make alsa plugin respect the PIPEWIRE_REMOTE env variable.
  1372. - Various compile fixes.
  1373. PipeWire 0.3.8
  1374. This is a bugfix release that is API and ABI compatible
  1375. with previous 0.3.x releases.
  1376. - Fix an embarrassing crasher in the JACK layer when
  1377. metadata keys were removed.
  1378. - Make it possible to add properties to jack clients with
  1379. a PIPEWIRE_PROPS env variable. This can be used to make
  1380. JACK nodes look like a device (like an effects rack).
  1381. - Improvements in the session manager in how it links
  1382. ports. Now it will try to link matching channels first
  1383. and be more intelligent otherwise. The session manager
  1384. will also configure the stream to the device port
  1385. configuration when needed.
  1386. - Add ofono backend for Bluetooth HeadSet support.
  1387. - Improve default source and sink handling. They are now
  1388. stored with their id, instead of name, in the metadata.
  1389. This makes it work better with JACK because of JACK's
  1390. limited name length.
  1391. - Improve environment variables to make it possible to
  1392. create and connect to servers other than "pipewire-0".
  1393. Implement this in pulseaudio, JACK and alsa layers.
  1394. - Add an alsa mixer plugin so that alsamixer works with
  1395. PipeWire. It will configure the default source/sink
  1396. volumes.
  1397. - Fix capture devices. There was something wrong with how
  1398. the resampler was used that caused corruption in the
  1399. signal when the resampler was active.
  1400. - We now ship alsa card paths, profile-sets configuration
  1401. files and udev rules so that we don't have to rely on
  1402. the pulseaudio ones.
  1403. - Many build and stability fixes.
  1404. PipeWire 0.3.7
  1405. This is a bugfix release that is API and ABI compatible
  1406. with previous 0.3.x releases.
  1407. - Improved PulseAudio compatibility. The alsa card profile
  1408. code was reused from PulseAudio. Devices now support
  1409. all profiles, ports, jack detection, UCM and hardware
  1410. mixers that PulseAudio implements. There should not
  1411. be (almost) any difference between PipeWire and PulseAudio
  1412. in how it presents and manages devices.
  1413. Other missing API pieces such as the default sink/source
  1414. and move_stream are implemented now. At this point
  1415. it should be possible to replace PulseAudio with the
  1416. compatibility layer for those who want to try.
  1417. - Many fixes and improvements to the GStreamer elements.
  1418. pipewiresrc now has the ability to periodically resend
  1419. the last frame. This makes it possible for use-cases like
  1420. screensharing to only update the screen on changes while
  1421. still keeping the client side encoder busy. PipeWire
  1422. elements can now also share a connection between them.
  1423. - Improvements to the bluetooth nodes. Dynamically adding
  1424. and removing devices should work much smoother now. Many
  1425. fixes and improvements to a2dp and sco nodes.
  1426. - Reduced memory usage by using less pre-allocated memory
  1427. where possible. JACK clients are especially using less
  1428. memory.
  1429. - Support for passive links is added again. These are links
  1430. that don't cause the associated driver to become active.
  1431. This makes it possible to have blocks of effects+sinks go
  1432. to suspend as a group when not in use.
  1433. - Both consumers and producers can now ask to renegotiate
  1434. the format. This required some cleanups and improvements
  1435. to how links and node states were handled. More work is
  1436. needed to implement more use cases.
  1437. - Important fixes to how memory is shared with clients. Memory
  1438. was not correctly freed in all cases, which would result
  1439. in reuse of the wrong memory.
  1440. - Support for planar formats for audio and video was added.
  1441. - Improved error handling in the session manager.
  1442. - Metadata is now used to manage default audio source and
  1443. sink devices. The session manager will try to link streams
  1444. to the default device. Changing the default device will
  1445. move streams to the new device. PulseAudio and JACK layers
  1446. respect the default source/sinks.
  1447. - Metadata is used to tag the desired output device for
  1448. a stream and the session manager will move streams when
  1449. the metadata changes. The PulseAudio layer uses this to
  1450. implement the move_stream feature.
  1451. - Many fixes to the security modules. The session manager now
  1452. has a flatpak module that grants permissions to flatpak
  1453. apps. The PulseAudio layer now respects the permissions of
  1454. objects. Security related properties are made read-only
  1455. now. Different access modules can now coexist.
  1456. - The portal module has been split up in 2 parts:
  1457. 1) a part living in the daemon that monitors the portal
  1458. dbus owner and tags all clients from this PID. This
  1459. part has to run in the daemon in order to securely
  1460. tag the clients.
  1461. 2) a part in the session manager that uses the permission
  1462. store to manage the permissions of portal managed
  1463. clients.
  1464. PipeWire 0.3.6
  1465. This is a bugfix release that is API and ABI compatible
  1466. with previous 0.3.x releases.
  1467. - Extensive memory leak fixing and stress testing was done.
  1468. A big leak in screen sharing with DMA-BUF was fixed.
  1469. - Compile fixes
  1470. - Stability improvements in jack and pulseaudio layers.
  1471. - Added the old portal module to make the Camera portal
  1472. work again. This will be moved to the session manager in
  1473. future versions.
  1474. - Improvements to the GStreamer source and sink shutdown.
  1475. - Fix compatibility with v2 clients again when negotiating
  1476. buffers.
  1477. PipeWire 0.3.5
  1478. This is a bugfix release that is API and ABI compatible
  1479. with previous 0.3.x releases.
  1480. - Compiler fixes
  1481. - Add pw-midiplay and pw-midirecord aliases
  1482. - Add pw-mididump tool
  1483. - Add pw-metadata tool to inspect, add and remove metadata
  1484. for objects.
  1485. - Docs updates, man pages
  1486. - install alsa config files
  1487. - Fix linked sink/source in pulseaudio
  1488. - ratelimit graph processing warnings
  1489. - improve buffer handling in GStreamer elements
  1490. - Fix power usage by removing the queue for the alsa
  1491. sequencer system announce messages.
  1492. - Fix metadata clear() method dispatch.
  1493. - Improve parameter enumeration, make it possible to detect
  1494. missing parameters vs no-compatible parameters so that we
  1495. can use defaults in the first case and error in the second
  1496. case.
  1497. - Fix cleanup of proxy objects. Stability improvements on
  1498. plug/unplug in session manager.
  1499. - Make it possible to set log level from config file
  1500. - improve debug of param negotiation errors. Log the
  1501. parameters to stderr/journal.
  1502. - Make it possible to configure global logger
  1503. implementation.
  1504. - Fix NEON detection
  1505. - JACK and PulseAudio compatibility improvements
  1506. PipeWire 0.3.4
  1507. This is a bugfix release that is API and ABI compatible
  1508. with previous 0.3.x releases.
  1509. - A quick update with some important stability fixes.
  1510. PipeWire 0.3.3
  1511. This is a bugfix release that is API and ABI compatible
  1512. with previous 0.3.x releases.
  1513. - NEON optimizations for audio conversion (32 and 64 bits)
  1514. - rework of session manager implementation
  1515. - Add option to disable modules in the session manager
  1516. - Release midi hardware devices when suspended
  1517. - various build fixes
  1518. - Clean up options of various utils
  1519. - Stability improvements
  1520. - Mayor improvements in pulseaudio emulation. Improved
  1521. timings and compatibility.
  1522. - Implementation of drain and flush in pulse and alsa
  1523. emulation.
  1524. - Implement poll on file descriptors.
  1525. - Improvement of metadata for jack emulation.
  1526. - Fix memory and thread problems in jack emulation.
  1527. - Simplification of state changes. Should make more use
  1528. cases work in the jack emulation.
  1529. - Improvements in the gstreamer elements. Removal of
  1530. extra internal queue. pipewiresink can now be used to
  1531. play audio.
  1532. - Add pw-jack and pw-pulse scripts to run pulseaudio and
  1533. jack applications with the right library path.
  1534. PipeWire 0.3.2
  1535. This is a bugfix release that is API and ABI compatible
  1536. with previous 0.3.x releases.
  1537. - build fixes
  1538. - Added support for data type negotiation. This makes it
  1539. possible for a client to say that it can handle DMABuf
  1540. and MemFd and then let the server select a compatible
  1541. format.
  1542. - Handle errors when enumerating parameters better.
  1543. - Add support for rate, format, channels and period_bytes
  1544. to the alsa config file to restrict what alsa apps can
  1545. negotiate.
  1546. - Fix JACK midi output.
  1547. - Optimizations in common audio format conversions using
  1548. AVX2. Small optimizations to plugins.
  1549. - Change the vulkan compute example to an MIT licensed
  1550. shader.
  1551. - Remove some hardcoded defaults in the audio and video
  1552. processing and use the values from the processing
  1553. context. This also fixes the vulkan example.
  1554. - Correct the documentation and defaults in the daemon
  1555. config file.
  1556. - Fix alsa and v4l2 buffer recycle. A paused client could
  1557. cause the server to leak all buffers.
  1558. - Remove some warnings that should be ignored.
  1559. - Fix a crash in the bluez5 plugins.
  1560. - Try to select higher quality formats first when
  1561. negotiating a format with an audio device.
  1562. - Fix an infinite loop in udev detection in some cases.
  1563. - Add non-interactive mode to pw-cli. You can now just
  1564. do "pw-cli ls Port" to get a listing of all ports.
  1565. pw-cli will now also connect to the default server by
  1566. default and has options to select a different server.
  1567. - Allow the server to go up to the maximum quantum (8192
  1568. samples or ~=180ms) if a client explicitly wants this.
  1569. PipeWire 0.3.1
  1570. This is a bugfix release that is API and ABI compatible
  1571. with previous 0.3.x releases.
  1572. - Don't load the rtkit module by default. It can cause a
  1573. sigkill, which is not desirable for mutter, for example.
  1574. Only enable this for the jack library for now.
  1575. - Don't use pthread cancel by default because it uses a
  1576. signal that might crash some apps. Only use it for
  1577. the jack library because jack clients really expect this.
  1578. - Build fixes for -Werror=suggest-attribute=format
  1579. - improve error messages, don't report harmless errors and
  1580. warnings. Try to send error messages to the proxy that
  1581. started the operation or is the owner of the object.
  1582. - pw-cat: midi improvement, add midi recording and dump
  1583. in verbose mode
  1584. - fix properties when loading spa-nodes from the config
  1585. - Fix and update some examples
  1586. - jack: check arguments and don't crash when invalid
  1587. - Fix buffer memory upload.
  1588. - jack: fix compatibility with zrythm. Fix timemaster
  1589. install, improve sample_rate callback. Fix reposition
  1590. handling.
  1591. - fix crash in port after buffer negotiation error.
  1592. - add support for control ports in pw_filter
  1593. - fix cleanup of the metadata module
  1594. - improve param enumeration.
  1595. - Clear stream buffers when the format is cleared.
  1596. - Add create-object command in the config file to create
  1597. object from a factory.
  1598. - Fix crash after the driver was not removed from unassigned
  1599. nodes. Also properly pause inactive nodes.
  1600. - Use "true" and "false" in properties when we are talking
  1601. about a boolean.
  1602. - pulseaudio: improve compatibility
  1603. PipeWire 0.3.0
  1604. The 0.3 release is a major milestone in the development of
  1605. PipeWire. It features a complete redesign of the scheduling
  1606. mechanisms that make it possible to run a JACK compatibility
  1607. layer with comparable performance to JACK2.
  1608. The API has been reworked and is declared stable now. All
  1609. development files and runtime paths are versioned so that
  1610. future incompatible changes can be done without breaking
  1611. existing applications.
  1612. PipeWire 0.3 also includes a (now mandatory) session manager
  1613. that populates and controls the PipeWire graph. This example
  1614. session manager is very simple and not configurable. It is
  1615. expected that future version will either switch to a more
  1616. flexible session manager (like WirePlumber) or improve the
  1617. configuration options of the example session manager.
  1618. PipeWire 0.3 includes both PulseAudio, JACK and ALSA
  1619. compatibility libraries that are known to support a wide range
  1620. of applications. The ALSA library is pretty complete at this
  1621. point. The JACK and mostly the PulseAudio compatibility
  1622. libraries need more work. See the Wiki pages for the current
  1623. compatibility problems. We do not yet encourage people to
  1624. switch away from their existing audio solutions (PulseAudio
  1625. or JACK) but we would love to hear from people who try it
  1626. anyways. Future versions will mostly focus on improving
  1627. compatibility further to make PipeWire a drop-in replacement.
  1628. PipeWire comes with some GStreamer plugins to consume and
  1629. produce data for PipeWire. The consumer (pipewiresrc) is
  1630. working well in most cases. The sink (pipewiresink) is known
  1631. to be somewhat problematic for now.
  1632. PipeWire 0.2.97
  1633. Eighth pre-release for upcoming 0.3:
  1634. - Build fixes
  1635. - pw-cat improvement: Fix remote name, add midi support
  1636. - add device subscribe params for completeness
  1637. - jack and pulseaudio compatibility fixes
  1638. - Fix a bug in resampler, add quality option, tweaked quality
  1639. settings, tested now against https://src.infinitewave.ca/
  1640. testsignals and submitted results for publication.
  1641. - Fix awkwardness in buffer negotiations, the default number of
  1642. buffers was 4 and jack could only handle 2, causing
  1643. corruption. Also implement negotiation of Step ranges.
  1644. - Fix device reservation to work together with pulseaudio,
  1645. previously we would block pulseaudio.
  1646. PipeWire 0.2.96
  1647. Seventh pre-release for upcoming 0.3:
  1648. - jack: improve compatibility
  1649. - Fix unit test
  1650. - Fix license of jack and alsa libs
  1651. - Make start/stop more threadsafe
  1652. - Fix rt-kit again, add params to configure things, increase default
  1653. soft/hard limits to avoid being killed.
  1654. - version 0 compatibility improvements, tested with firefox, cheese,
  1655. GStreamer and chrome using compat layers.
  1656. - Fix timing for gstreamer source
  1657. - Require libspa in pkg-config file
  1658. - Limit buffers to 16 to support old clients
  1659. PipeWire 0.2.95
  1660. Sixth pre-release for upcoming 0.3:
  1661. - Fix tests for big endian some more
  1662. - Improve v2 compatibility mode: improve type negotiation and
  1663. update_permissions
  1664. - Workaround for firefox screen sharing
  1665. PipeWire 0.2.94
  1666. Fifth pre-release for upcoming 0.3:
  1667. - Fix man page names
  1668. - Fix jack set_sync_timeout
  1669. - Improve JACK compatibility with apps that cache buffer pointers.
  1670. - Improve mlock failure warning message, add property to configure
  1671. if mlock should be used.
  1672. - Improve OBJECT_PATH in alsa objects
  1673. - Install in versioned directory
  1674. - Add pw-profiler tool
  1675. - Improve pulseaudio compatibility wrt pa_operations
  1676. - Thread safety fixes in remote nodes when activating/deactivating
  1677. - Improve JACK names on duplicates
  1678. - Add option to ignore failure when loading modules
  1679. PipeWire 0.2.93
  1680. Fourth pre-release for upcoming 0.3:
  1681. - Fix unit tests on 32 bits
  1682. - Append -pw version to pulse and jack libs. This way we can install
  1683. it next to the real libraries and use a symlink to enable it.
  1684. - Improve jack support by killing threads with pthread_cancel. This
  1685. then also remove the eventfd from the data-loop, making it
  1686. maybe a little faster.
  1687. - Fix jack_client_close() compatibility
  1688. - Fix some segfaults in the session manager
  1689. - Improve debug of protocol messages
  1690. - Add examples options
  1691. - Don't fail when alsa is not found
  1692. - Fix some compiler warnings with a new spa_aprintf() helper.
  1693. - Add pw-cat, the simple audio playback/record tool
  1694. - Rename pipewire tools to pw- prefix
  1695. - Add improve pw-cli object dump feature
  1696. PipeWire 0.2.92
  1697. Third pre-release for upcoming 0.3:
  1698. - Improve old version check some more
  1699. - Fix unit tests on little/big endian
  1700. - Fix compilation when CPU has no optimisations
  1701. - Install jack and pulse libraries
  1702. - Handle -EACCESS in flatpack access module
  1703. PipeWire 0.2.91
  1704. It is mostly a bugfix release to make the new version install and
  1705. run correctly in distros.
  1706. - Install session manager, fix path to find the session manager
  1707. - Fix alsa buffer reuse
  1708. - Small fixes for crasher bugs
  1709. - Implement pw_core_set_paused() to suspend/resume even
  1710. processing. This can be used when using multiple connections
  1711. to a daemon and one needs to pause one connection until the
  1712. other one completes an action. Used by session managers.
  1713. - Improve old version check
  1714. PipeWire 0.2.90
  1715. This is the first pre-release of the 0.3 version. It consists of a
  1716. major rewrite and is not API or ABI compatible with the 0.2
  1717. branch.
  1718. PipeWire 0.2.7
  1719. This is mostly a bugfix release and is API/ABI compatible with
  1720. previous 0.2 versions.
  1721. Work is ongoing in the work branch that features a completely new
  1722. scheduling method that will enable audio support. Some of these
  1723. API changes are backported in this branch.
  1724. - Add support for alsa-lib 1.1.9 which changed the include path
  1725. - Improve error checking and reporting in the protocol
  1726. - deviceprovider: fix probing without starting
  1727. - add sentinel to some functions
  1728. - compiler fixes for musl
  1729. - Revert object tree permission checks that broke things, this is
  1730. probably not a good idea (and the tree of objects is going to
  1731. be removed later)
  1732. PipeWire 0.2.6
  1733. - Improve error checking for threads
  1734. - Fix some memory and fd leaks
  1735. - Fix compilation with C++ compilers and clang
  1736. - DISABLE_RTKIT should now not try to use dbus at all
  1737. - Camera Portal fixes:
  1738. - add Camera media.role
  1739. - Rename module-flatpak to module-portal
  1740. - Use the portal permissions store for camera checks
  1741. - Actually use the passed fd in pipewiresrc
  1742. - Make properties with "pipewire." prefix read-only
  1743. - Add security label to client object
  1744. - Enforce link permissions
  1745. - Permissions of objects are now combined with parent permissions
  1746. - Remove libv4l2 dependency, it is not used
  1747. - Improve format negotiation in autolink #146
  1748. - Try to avoid list corruption with event emission #143
  1749. - Fix destroy of client-node memory corruption
  1750. - Various small improvements
  1751. PipeWire 0.2.5
  1752. - build fixes for systemd
  1753. - Add cursor and bitmap metadata. This can be used to send a cursor
  1754. sprite with the video stream.
  1755. - permissions were set too strict for non-flatpak clients
  1756. - Fix crash in loop caused by thread unsafe hook emission
  1757. - Add more error checking for thread-loop
  1758. - Small cleanups and bugfixes
  1759. PipeWire 0.2.4
  1760. - Install man pages in right directory
  1761. - Add systemd socket activation
  1762. - Various memory leak and corruption fixes in properties, dbus and
  1763. buffer mmapped memory.
  1764. - Fix v4l2 crash on unplug
  1765. - improve stream cleanup
  1766. PipeWire 0.2.3
  1767. - Fix deviceprovider caps introspection
  1768. - Refcounting fixes in pipewiresrc
  1769. - Remove clock interpolation from stream
  1770. - Improve clock in gstreamer elements
  1771. - Remove spalib
  1772. - Fix crash with pw_map
  1773. - Add version number to hook list
  1774. - Improve driver mode in gstreamer elements
  1775. - add daemon options
  1776. - add man pages
  1777. PipeWire 0.2.2
  1778. - Increment API version and .so version
  1779. PipeWire 0.2.1
  1780. - Various fixes to memory handling
  1781. - Fixes for shutdown
  1782. - v4l2 fix enumeration of frame intervals
  1783. - Make the daemon stop when the setup commands fail
  1784. - Improve safety of hooks
  1785. - Update stream API to more future proof version
  1786. - Add more options to stream API such as scheduling in the
  1787. main thread and automatic mapping of buffers
  1788. - Add version file and macros to check compile time and
  1789. runtime versions of pipewire
  1790. - Future proof some structs
  1791. PipeWire 0.1.9
  1792. - Various build fixes
  1793. - Do more permission checks
  1794. - Add support for doing async connections. This can be used to
  1795. make connections through the portal later.
  1796. - Fix device creation from the GStreamer device monitor
  1797. - v4l2 experiment with controls
  1798. - move rtkit to a module to avoid dbus dependency
  1799. - use dmabuf allocator in gstreamer elements
  1800. - Add DSP module for pro audio cases, remove jack module. The
  1801. idea is to make a replacement jack client library that talks
  1802. pipewire directly instead of trying to emulate a jack server.
  1803. - Various memory handling improvements