summaryrefslogtreecommitdiff
path: root/Software/PulseAudio/PatchStatus.mdwn
blob: 95404e41c84dc6d1ceb941733f6907ffaf549932 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
# Patch status

This page tracks the status of submitted patches that haven't been merged yet. The contents are updated at least once every two weeks, so very recently submitted patches may be missing. If something older is missing, please contact the maintainers (via the [mailing list](https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss) or IRC). This list is new and still not finished, Patchwork still has many patches that are not tracked here.

The patches have been ordered by priority, with the highest priority patches at the top. If your patch is low in the list, there's a real risk that it won't be reviewed at all, because patches are currently submitted at a higher rate than they are reviewed. This is a sad situation, and if you don't like it, please volunteer to become a reviewer!


* module-switch-on-port-available: Also blacklist HDMI devices by default
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/420]]
  * Avoids automatically switching to HDMI when monitor is turned on.
  * Medium sized change.
  * The initial version is probably too aggressive: if HDMI is configured as the default sink, we should automatically switch to it when it becomes available.
  * Milestone set to 14.3.

* pactl: add `get-default-sink` command
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/430]]

* alsa-ucm: Avoid unnecessary duplication in mapping descriptions
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/366]]
  * Improves sink naming with UCM. Very small change, but it would be good to understand why the duplication happens in the first place, so reviewing isn't that trivial (it may be still be easy once someone spends more than a few seconds looking at the code).
  * Milestone set to 14.3.

* module-switch-on-port-available: check default sink/source before switch
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/370]]
  * Attempts to fix a UCM related bug: when there are multiple sinks or sources on one profile, module-switch-on-port-available does sometimes nonsensical port switches.
  * Tanu reviewed the first version and suggested a different fix. As of 2020-09-28, discussion is ongoing about the correct fix.
  * Milestone set to 14.3.

* Draft: card: implement bluetooth profile codec selection
  * [[https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/54]]

* alsa-ucm: Make sure UCM uses DisableSequence
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/357]]

* clear compiling warning
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/330]]
  * Simple patches, Tanu reviewed them but they need some polishing.

* WIP: Disable UCM devices on suspend
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/307]]
  * Various UCM cleanups, in addition to the main patch that implements a possible power consumption improvement with UCM.
  * There's a bug that needs to be fixed before this can be merged.
  * Arun reviewed the first version, and we agreed to have this in 14.0 once the bug is fixed.

* combine-sink: Set origin_sink for each output stream
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/399]]
  * One-liner, looks good if the current usage of origin_sink can handle module-combine-sink.
  * Milestone set to 15.0.

* alsa-mixer: Respect XDG base directory spec when loading profile sets
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/311]]
  * Completes the work started in MR 293 (which is reviewed and waiting for the freeze to end).
  * Milestone set to 15.0.

* alsa-mixer: add environment variables for profiles and paths
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/404]]
  * Fixes the same problem as !293 (for paths, reviewed but not merged) and !311 (for profiles, waiting for review).
  * Arun prefers to merge this anyway to provide support for more targeted environment variables, and Tanu is fine with that.

* Add signal sending capability
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/453]]

* Draft: bluetooth: Switch codecs without tearing down sink/source/thread
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/489]]
  * Prevents audio from moving to a different sink during codec switch.

* use bluetooth HFP in pulseaudio native backend when available
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/491]]

* WIP: bluetooth/a2dp: Only list codecs with matching capabilities in list_codecs
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/478]]
  * Two smallish patches.
  * This avoids sending clients a list of codecs that includes entries that aren't really supported.

* Draft: bluetooth: Add AAC support via GStreamer
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/473]]

* bluetooth: Hook up HSP/HFP battery reporting to proplist and BlueZ experimental battery provider
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/482]]

* WIP: bluetooth: Enable swapping A2DP source and sink role
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/480]]
  * Enable switching from A2DP source to A2DP sink profile and vice-versa, when two devices capable of supporting both (ie. two machines running PulseAudio) are connected.

* Add message commands to enable/disable jack detection per port
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/452]]
  * This is WIP until Georg gets around to adding persistence support.
  * Tanu suggested also adding notifications using signals in the message API, but that may happen in a separate MR.

* Don't assume that version_split have at least 2 elements
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/289]]
  * Small patch, but it doesn't really make sense. The version should always have at least 2 elements. The problem that this patch fixes needs to be investigated further.

* alsa-ucm: create profiles per conflicting device group
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/290]]
  * Important improvement to the UCM profile generation logic (currently we may generate profiles that have two conflicting devices active at the same time).
  * Milestone set to 14.3.

* Add udev rules and a profile for Sennheiser GSX devices.
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/286]]
  * This is probably pretty much the same as another MR, !257, which has been merged.

* alsa-mixer: Add an profile for EVO4 interface
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/397]]

* WIP: module-switch-on-port-available: stick to user profile choice
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/438]]
  * Attempts to fix the problem with HDMI getting automatically selected after turning on the monitor, even if the user has chosen the off profile.

* Draft: cardwidget: add flag to lock profile from switching automatically
  * [[https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/52]]
  * Implements pavucontrol support for the PulseAudio feature added in MR 438.

* module-role-cork: corking groups
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/427]]
  * Implements more flexible corking rules. The same as what is already supported for ducking rules? It's a bit difficult to fully understand the feature just from the commit message.
  * Medium sized change.

* Draft: Update for recent webrtc AEC
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/395]]
  * The "big" changes are already mostly reviewed by Arun (those changes were made by Eero Nurkkala).

* Update module directory logic
  * [[https://gitlab.freedesktop.org/pulseaudio/paprefs/merge_requests/7]]
  * The plan is to remove the version number from the module directory in PulseAudio 15.0. paprefs needs to adapt to that, preferably before the change happens so that the transition to the new directory goes without glitches. High priority, because Tanu wants to release a new paprefs version ASAP, and this is the only thing blocking the release.

* Improvements to reconfiguration
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/24]]
  * Using the Dolby TrueHD and DTS-HD Master Audio formats requires using 8 channels, and these patches implement the necessary reconfiguration logic. This was supposed to work already in 13.0 (the release notes promised that), so these patches should probably have a very high priority.

* alsa-ucm: allow binding same mic to multiple profiles
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/271]]

* Rewind and resampler fixes
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/120]]
  * Fixes crackling during volume changes caused by resampler resets. Big change.
  * Comment from Tanu: I started to review it, and I disagreed with Georg how the new history queue should be managed. I got demotivated due to the complexity of the code and Georg's unwillingness to accept my proposal that would make it easier for me to understand the system (according to Georg, my proposal is even more complex than his).
  * Milestone set to 15.0.

* Draft: log: add async logging
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/459]]

* FreeBSD support: meson build, import downstream patches, more improvements
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/277]]
  * 19 small patches. Includes a simple module for handling hotplugged devices on FreeBSD.

* build-sys: Remove version number from installed files
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/230]]
  * Causes less file name changes during updates, which can make life easier for packagers.

* Restore ability to quit with the escape key
  * [[https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/37]]

* pavuapplication: allow one window per server
  * [[https://gitlab.freedesktop.org/pulseaudio/pavucontrol/merge_requests/11]]
  * Fixes a regression when using pavucontrol with multiple servers. The patch probably needs to be completely rewritten, however, because mangling the bus name is an ugly hack.

* qpaeq: fix: resizing on HiDPI (!41)
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/41]]
  * Fixes infinite recalculations when resizing the qpaeq window on a HiDPI system. Pretty small change, but not trivial.

* WIP: #303: unload bt modules
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/10]]
  * Disables bluetooth whenever the user is not active. This is an important fix - currently distributions need to apply workarounds for gdm to ensure that gdm doesn't interfere with the real user's bluetooth use, and probably not all distributions do that, meaning that we can never be sure if the reason behind broken bluetooth is that gdm is interfering with it. Medium sized change.

* bluetooth: add support of mSBC codec to HFP profile
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/254]]
  * Should improve audio quality with HFP. Pali has done some review. Big change.

* bluetooth: Unify A2DP sink/source volumes with AVRCP Absolute Volume.
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/239]]
  * New feature. Very useful. Somewhat large change.
  * Milestone set to 15.0.

* raop: Improve volume management
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/129]]
  * Fixes unsynchronized volume updates (hw volume is updated immediately, soft volume takes 2 seconds to take effect). Very small code change.
  * Comment from Tanu: I suspect it's too simple. I think there should be two modes: either hardware volume, which is fast but doesn't allow different volumes for different channels, or soft volume, which is very slow but supports per-channel volumes. Then there's the question whether the hardware volume mode should support decibel volumes or not. Not supporting decibel volumes would have the benefit that UIs would show a continuous volume scale, whereas with decibel volumes the volume couldn't be set below 32% (which is -30dB, the minimum volume allowed by the protocol).

* core-util: Set nice value for the task group
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/234]]
  * Apparently the "high-priority" option doesn't currently have any effect on many systems, because the nice value is set relative to other processes in the same task group, and PulseAudio is the only process in its task group. This change is supposed to apply the nice value to the task group instead of the process, which should restore the intended behaviour.

* Introduce meson-based build
  * [[https://gitlab.freedesktop.org/pulseaudio/pavucontrol/merge_requests/17]]
  * New feature. Medium sized change.

* WIP: Support of Airplay2 devices
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/194]]
  * Improves hardware support. 2 commits. Unfinished work. Not a small change, but not huge either.

* Tunnel and combine-sink latency fixes
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/53]]
  * Fixes latency calculations. Adds a latency configuration modarg to module-tunnel. A somewhat large change, but it's split into 6 patches so the individual patches should be pretty manageable.

* bluetooth: HFP profile implementation
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/94]]
  * Improves hardware support. HFP-only headsets can't currently be used without oFono, and using them with oFono is difficult. Apparently this patch was developed independently from James Bottomley's earlier implementation - what are the differences between the two implementations? Medium sized change.
  * The newest version (as of 2019-11-27) of James's patches are at [[https://git.kernel.org/pub/scm/linux/kernel/git/jejb/pulseaudio.git/log/?h=jejb-v13]]
  * There's also this version that has some improvements on top of James's patches: [[https://github.com/paravoid/pulseaudio/commits/hfp-v7]]
  * See also the previous MR, !288.

* Unload bluez5 devices when bluez5-discover is unloaded
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/42]]
  * Fixes a minor bug: when unloading module-bluez5-discover, the module-bluez5-device modules currently are left loaded. Pretty simple change.

* Added 3 columns (`mute-state`, `volume` and `default sink`) to output of `pactl list short sinks`.
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/159]]
  * New feature. Adds more information to "pactl list sinks short" (corresponding change for sources is missing). Pretty simple change.
  * Comment from Tanu: I'm not sure we want this - to make scripting easier, we could also add separate commands for getting the individual attributes.

* WIP: Virtual sink consolidation
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/88]]
  * Reduces code duplication in virtual sinks. The resampler rewind patches (!120) should be reviewed first, after which Georg will rebase these patches. Big change.

* WIP: Don't create card profile for unsupported Bluetooth profiles
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/50]]
  * Apparently fixes an issue of creating card profiles that aren't supported by the local bluetooth adapter. Marked as WIP, because the patches expose some bug in the kernel.
  * Comment from Tanu: I don't know what would be a concrete example of the problem, so it's hard to say how important this fix is.

* Add alternative time smoother implementation
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/55]]
  * Improves at least module-loopback's latency stability. Pretty large change, and probably math-heavy.
  * Comment from Tanu: Based on a quick glance at [[https://www.freedesktop.org/software/pulseaudio/misc/rate_estimator.odt]], the improvement is big in relative terms, but small in absolute terms (less than one millisecond).
  * When asked for more concrete description of what problems the patches solve, Georg said this: "I never systematically compared absolute values of the latencies, I just verified that they are in the same range. What rate_estimator.odt shows is just the stability of the reported value. The stability has a big impact on loopback and combine sink because they amplify those small fluctuations. Otherwise I cannot put a finger on specific problems but still I have the impression that overall I am getting less glitches."
  * Comment from Georg: Since it is providing an alternative implementation and not a replacement I think it would be more or less sufficient to review patches 2 - 10 and "believe" patch 1. (which is what we currently do with the old smoother code or do you understand that?)

* Loopback patches
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/56]]
  * Various improvements to module-loopback. How big improvements? Hard to say from a quick glance. As a whole it's a somewhat big change, but it's split into 10 patches, so individual patches aren't that big (but the math-heavy topic can make reviewing more difficult).
  * The first patch should be included soon as it fixes a bug. Patches 2 - 4 significantly improve the stability of the latency while patch 5 improves the readability of the debug output. Patches 6 - 10 add new parameters and small enhancements that aim to get the last possible bit of precision out of the module. Therefore it should be evaluated if any of patches 6 - 10 should be included at all.  

* FreeBSD support
  * [[https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/merge_requests/6]]

* Use WAVEFORMATEXTENSIBLE for multi-channel audio output on Windows.
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/359]]

* Check for pulseaudio daemon by socket instead of by pid
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/296]]
  * Simple change, but might not be what we want. The proposed implementation will start the daemon if socket activation or autospawning is enabled.

* codecs/isac: Use lrint for mingw toolchain.
  * [[https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/15]]
  * One-liner fixing MinGW compilation. It needs to be decided whether to accept this or try to get the fix upstream.
  * In the 2020-12-21 meeting Arun suggested creating a "patches" subdirectory for patches that aren't upstreamable, that sounds like a good plan for this patch.

### Patches that have been reviewed and can be merged after the freeze ends

* module-zeroconf-discovery: Add parameter for switching to new tunnel modules
  * [[https://patchwork.freedesktop.org/patch/304205/]]

* added hidden args to set pkgconfig and cmake template path
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/244]]

* pulsecore: thread-posix.c: remove unnecessary assignment
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/335]]


### Patches that need to be prioritized

* Translations update from Weblate
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/490]]
  * 2021-02-01: Merging is blocked, because the weblate user doesn't have CI enabled, and merging is allowed only after a successful CI run.

* Draft: [simplify] Make GStreamer encoder/decoder synchronous
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/494]]
  * Run GStreamer in PA's IO thread, without extra threads, semaphores and buffer copies.

* alsa-mixer: increase the max number of HDMI/DP output device to 11
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/495]]
  * The patch looks good, but the driver may be changed to not need these extra ports. We should merge this only if alsa decides to go forward with this pin allocation scheme.

* pactl: add format flag for JSON output
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/497]]

* module-stream-restore: respect preferred_sink/source on multiple stream
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/503]]
  * Fixes a regression in 14.0. Small change, but it's probably not good, because routing decisions that are done outside module-stream-restore end up in the stream-restore database.
  * Milestone set to 15.0.