7 | | - Flatpak apps such as Ardour can now remove links again. |
8 | | - Many fixes to pulse-server. Memory usage should be improved. Some |
9 | | crashes are fixed. Underrun handling should work better. Better |
10 | | compatibility with GStreamer based applications after seeking. |
11 | | - Many of the samplerate and quantum changes bugs in previous releases |
12 | | were fixed. This fixes some issues where the microphone would fail |
13 | | to work. |
14 | | - Many more small fixes and improvements all over the place. |
| 7 | - It is now possible to run a minimal PipeWire server without a session |
| 8 | manager, enough to run JACK clients. |
| 9 | - The maximum buffer size is now configurable and can be larger than |
| 10 | the previously hardcoded limit of 8192 samples. When using high sample |
| 11 | rates, the larger buffer size can avoid xruns. |
| 12 | - The default maximum latency was reduced from 170ms to 42ms. This should |
| 13 | improve overall latency for application that ask for a large latency, |
| 14 | such as notifications. |
| 15 | - Better JACK compatibility. Patchbays should now get less confused about |
| 16 | ports appearing and disappearing. |
| 17 | - Fix some bluetooth crashes. |
| 18 | - Fix some races in ALSA device detection. |
| 19 | - Many bug fixes and improvements all over the place. |
17 | | - Quantum and rate changes are now applied immediately when the driver |
18 | | is idle. This avoids setting the driver in the previous samplerate. |
19 | | - Object destruction now does not need write permissions anymore. This |
20 | | restriction needs some more work. |
21 | | - When we reposition, start a sync operation. This fixes a problem |
22 | | in Ardour when seeking. |
23 | | - Require meson 0.56.0 |
24 | | - Make the align property in BUFFER_PARAM optional. We now only set this |
25 | | if the plugin has specific requirements and we default to the CPU |
26 | | largest alignment requirement. |
27 | | - pw-record will now also list monitors and streams as possible targets. |
| 22 | - Bump the meson requirement to 0.59.0. |
| 23 | - pw-top now reports correct times for filter-chain and loopback. |
| 24 | - max-quantum is now also scaled with the rate. A new quantum-limit |
| 25 | property was added as a hard limit for the quantum. This makes it |
| 26 | possible to configure for larger than 8192 buffer sizes. Note |
| 27 | than many JACK applications have a hardcoded 8192 limit. |
| 28 | - The max-quantum was reduced to 2048, This gives a 42ms default |
| 29 | latency. |
| 30 | - pw-filter can now return a NULL buffer from _get_dsp_buffer(). |
| 31 | - Add a PIPEWIRE_RATE and PIPEWIRE_QUANTUM env variable to set the |
| 32 | graph rate and the graph quantum and rate respectively. |
| 33 | - Fix a potential file descriptor leak in the connection. |
| 34 | - A new minimal.conf file was added to demonstrate a static setup |
| 35 | of a daemon that doesn't require a session manager and is able to |
| 36 | run JACK applicaions. |
| 37 | - Nice levels are now only changed on the servers, not the clients. |
| 38 | - Add an option to suspend nodes when idle. |
| 39 | - Make it possible to avoid quantum and rate changes with |
| 40 | pw-metadata. This is essential in a locked down system. |
| 41 | - Handle mixer port errors better and fail to create the link instead |
| 42 | of silently not working. |
| 43 | - Nodes that are moved to a driver now have all the linked nodes moved |
| 44 | as well. This makes it possible to run some graphs without a |
| 45 | driver, such as paplay -> zita-j2n. |
| 46 | - pw-cli and pw-dump can now also list objects by name, serial and |
| 47 | object.path using glob style pattern matching. |
30 | | - Improve LV2 plugin support in filter-chain. Add support for Worker and |
31 | | Options. |
32 | | - The loopback module now has a unique media.name to make it possible |
33 | | for the session manager to restore unique volume settings. |
| 50 | - filter-chain can now also configure parameters by index. |
| 51 | - Fix the client name of module-protocol-simple. |
| 52 | - module-rtkit was merged into module-rt. This makes it easier to |
| 53 | ship a default config that works on more systems by default. |
| 54 | - module-adapter can now configure the adapter node from the config. |
| 55 | Previously, this was a task only performed by the session manager. |
| 56 | - module-metadata can now also create metadata object from the |
| 57 | config file. |
| 58 | - The ROC module should now work again. |
| 59 | - An X11-bell module was added to handle X11 bell events. |
| 60 | - filter-chain and loopback modules now have better unique default |
| 61 | names for the streams, which makes it possible to save and restore |
| 62 | their volumes independently. |
| 63 | - module-echo-cancel now has properties to control the delay and |
| 64 | buffer size. |
| 65 | |
| 66 | ## ALSA |
| 67 | - The monitor names are now correctly parsed. |
| 68 | - The default period size for batch devices is limited now to avoid |
| 69 | large latency. |
| 70 | - The unused min/max-latency properties were removed. |
| 71 | - Internal latency is now also configurable with params at runtime. |
| 72 | - The udev rule for TI2902 was removed because it causes problems. |
| 73 | - Fix a race where some devices would sometimes be missing. |
| 74 | - Add some more timeouts to work around a race in udev device |
| 75 | permission changes when switching VTs. |
36 | | - Improve sample rate for EAC3 streams, some clients scale it while |
37 | | others don't so use some heuristics to make things work better. |
38 | | - Allocate ports dynamically in audioconvert. This avoids using larger |
39 | | memory blocks of preallocated memory that confuses the allocator. |
| 78 | - Fix potential infinite loop in audioconvert. |
| 79 | - The spa-resample tools can now also use optimized implementations. |
| 80 | - Fix a potential crash in resampler. |
| 81 | - audioconvert can now also handle F64 formats. |
| 82 | - The channelmixer now does normalization by default to avoid clipping |
| 83 | when downmixing is active. |
| 84 | - The channelmixer will now generate LFE channels when the lfe_cutoff |
| 85 | frequency is set, even when upmix is disabled. |
| 86 | - The channelmixer will now always generate FC when the target has it. |
| 87 | - Adapter now reports latency correctly, even after linking the monitor |
| 88 | ports. |
| 89 | - Reduce memory usage and preallocated memory in some of the |
| 90 | audioconvert nodes. |
| 91 | - Many properties are now exposed in adapter, such as the resample |
| 92 | quality. |
| 93 | - The resampler and channelmixer can now be disabled. |
41 | | ## ALSA |
42 | | - Merge the latest pulseaudio UCM improvements. |
43 | | - Fixes for selecting the sample rate. |
44 | | - Improve latency on USB devices by scaling the period size based on |
45 | | the desired quantum when the device is opened. |
46 | | - Add api.alsa.period-num to configure the amount of periods to use |
47 | | in the device. Some devices have lower latency when a small value |
48 | | is forced. |
49 | | - Allow multi-rate by default. In previous versions cards could only |
50 | | be opened in one samplerate to avoid bugs in pre 5.16 kernels. This |
51 | | however caused other problems so the default was removed. |
52 | | - Fix a bug where a card was not freed correctly. |
53 | | - Fix a bug in the alsa boundary check that could hang the alsa-plugin |
54 | | for a long time. |
55 | | - The ALSA plugin now has a parameter to configure the allowed |
56 | | samplerates. |
| 95 | ## V4L2 |
| 96 | - pw-v4l2 now also works for ffplay. |
| 97 | - Take product names from udev now that the kernel returns a generic |
| 98 | name. |
59 | | - Improve handling of monitor nodes. |
| 101 | - The jack pkgconfig file now has the `jack_implementation=pipewire` |
| 102 | variable to be able to distinguish jack implementations. |
| 103 | - jconvolver now starts correctly again. |
| 104 | - The object.serial is now used for the port_id. This makes it easier |
| 105 | to track old objects in the cache. |
| 106 | - Add a dummy jacknet implementation. |
| 107 | - A bug in the port allocation was fixed that would make it impossible |
| 108 | to allocate ports at some point. |
65 | | - The stream FIX_ flags are now implemented. |
66 | | - Improve flushing and draining behaviour. Short samples will now |
67 | | play correctly. |
68 | | - Fix a crash when enumerating the formats. |
69 | | - Track quantum changes and update the amount of required buffering |
70 | | accordingly. This improves forced quantum handling. |
71 | | - Improve handling of channels > 32. |
72 | | - Handle the case where a module is destroyed before it could be |
73 | | completely loaded. |
74 | | - Fixes some issues when samples were removed while they were playing. |
75 | | - Fix some issues in module-zeroconf-publish. |
76 | | - Fix some memory leaks in module-roc. |
77 | | - Add command access control. This avoids execution of commands without |
78 | | proper authentication. |
| 119 | - Monitor sources now have the device.class=monitor for better |
| 120 | compatibility. |
| 121 | - Behaviour after seeking is improved. The algorithm for requesting |
| 122 | bytes from the client was simplified and improved. |
| 123 | - module-ladspa-sink implements the control argument now. |
| 124 | - A potential memory leak in the message queue was fixed. |
| 125 | - Use the object.serial for the pulseaudio object index. The index is |
| 126 | not supposed to be reused and this would cause problems with some |
| 127 | clients. |
| 128 | - Servers should now again be able to listen in IPv4. |
| 129 | - module-x11-bell was added. |
| 130 | - There is now support for per-application quirks and properties in |
| 131 | the pipewire-pulse.conf file. Per-application latency and buffering |
| 132 | properties can also be configured. |
| 133 | - Fix a regression in telegram sounds not playing. |