summaryrefslogtreecommitdiff
path: root/Software/PulseAudio/PatchStatus.mdwn
blob: e15556e525e95023b0709cc84db7f35101dcac63 (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
# 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!


* Configuration checkbox to hide unavailable profiles
  * [[https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/67]]
  * The profile drop-down list can get rather long, especially when the sound card has multiple HDMI devices (as is often the case).
  * Changed lines: +44, -1.
  * Tanu reviewed this and requested some renamings, no other issues found.

* alsa-mixer: add support for asus sonar se
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/629]]
  * Needs some tweaking, otherwise good.

* 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 15.0.

* 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 15.0.

* 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.

* 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 16.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.

* 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: [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.

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

* 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.

* bluetooth: Use software volume for >100%, balance and finer control
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/532]]

* Draft: bluetooth: Handle muting over A2DP Absolute Volume
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/533]]

* bluetooth: Check if transport returns an error -1
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/621]]
  * Judging from the existing comment, ignoring the error is intentional.

* bluetooth: Add FastStream codec
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/628]]

* bluetooth: report AG battery level
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/631]]
  * Reports the system battery level to the headset device, used in cars?
  * Somewhat large change.

* 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
  * 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 16.0.
  * There are two sets of changes doing the same thing, this is the original (itself superseding !290, though):
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/582]]
  * This is a newer attempt, split into multiple MRs:
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/586]]
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/587]]
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/588]]
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/589]]
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/590]]
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/591]]
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/595]]
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/596]]

* 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: Astro Mixamp TR gaming headset support
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/508]]
  * The submitted version simply uses usb-gaming-heaset.conf for this headset, which sort of works, but the submitter said he's going to do further work with this MR.

* alsa-mixer: add multichannel profile for Tascam Model12
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/529]]

* 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).

* 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]]

* 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.

* Airplay2
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/505]]
  * Resubmission of !129 and !194 by a different person, done because the original author doesn't seem to be responsive any more.
  * Earlier comments about !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).
  * Earlier comments about !194:
    * Improves hardware support. 2 commits. Not a small change, but not huge either.

* 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.

* 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.

* 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?)
  * Georg has later noticed that echo cancellation works much better with these patches.

* 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]]

* Added source's priority property to dbus interface
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/531]]

* 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.

* Draft: little-endian support
  * [[https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/17]]

### 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

* bluetooth: Reduce priority and do not automatically route audio to other computers
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/644]]
  * Changed lines: +32, -0
  * There is some discussion about avoiding automatic routing to phones too.
  * Tanu reviewed the MR and requested a small change.

* bluetooth: Fix device->adapter dependency while releasing discovery
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/646]]
  * Pretty simple fix, but there are opinions that there could be a "more correct" fix.

* WIP: daemon/cmdline: Invert log-level list to match numerical values
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/647]]
  * The .pot file doesn't need to be updated, otherwise looks good.

* bluetooth/backend-native: Fix inconsistent bracketing and tab-indents
  * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/649]]
  * The bracketing fixes are unnecessary, the tab fixes are good.

* Bunch of build fixes
  * [[https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/24]]