[neon/backports-focal/pipewire]: Summary of bulk changes made

KDE Git Services - Bulk Change null at kde.org
Mon Oct 4 10:20:42 BST 2021


Git repository change summary for neon/backports-focal/pipewire
Pushed by sitter into branch 'Neon/release'.
Changed from 9f27ba11579e9e6d1c42b152a2116d0866b6e19d to 15eaf65994295da3b4bbcbafd6e70079dba75b6a
Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository.

This change contains the following new commits:

Git commit 9160a127b5069ee1ca3bdf11857a04f75099041d by Érico Nogueira on 20/07/2021 at 15:01..
modules: fix typo in module-rtkit

Was using the gettid() function directly instead of the _gettid()
wrapper.
https://invent.kde.org/neon/backports-focal/pipewire/commit/9160a127b5069ee1ca3bdf11857a04f75099041d

Git commit a4b8bd6d5292c13c0e14db54d4b5819a2bbf066d by Wim Taymans on 20/07/2021 at 15:13..
rtkit: use _gettid() instead of getpid() in fallback
https://invent.kde.org/neon/backports-focal/pipewire/commit/a4b8bd6d5292c13c0e14db54d4b5819a2bbf066d

Git commit 4c166709d06571b889a89812c962a91ba4d0a071 by Wim Taymans (on behalf of Érico Nogueira) on 20/07/2021 at 15:51..
modules: improve _gettid wrapper

- use meson to check for gettid() function, always use if available
- use syscall fallback on linux, if not
- restrict thr_self() fallback to *only* FreeBSD
- error out if there isn't any gettid impl
https://invent.kde.org/neon/backports-focal/pipewire/commit/4c166709d06571b889a89812c962a91ba4d0a071

Git commit d03f29eb66a273f72c30314a906a44f8563c749e by Wim Taymans on 21/07/2021 at 09:12..
pulse-server: fix channel_map check

We store the spa channel ids in the channel_map so convert them to
pulseaudio ids before comparing them to the max pulseaudio id.
https://invent.kde.org/neon/backports-focal/pipewire/commit/d03f29eb66a273f72c30314a906a44f8563c749e

Git commit 1ad54e8a268c0648333600e87fe63b70abc662a7 by Wim Taymans on 21/07/2021 at 09:25..
spa: add 64 AUX channels

Make 64 AUX channels instead of using the CUSTOM range for them.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1ad54e8a268c0648333600e87fe63b70abc662a7

Git commit 08e34a99fd5eb07f75ee6cbdc06c45d40d255c93 by Wim Taymans on 21/07/2021 at 09:27..
acp: use AUX channels for PRO audio profile

That way we can actually use the channel names to make custom loopback
mappings.
https://invent.kde.org/neon/backports-focal/pipewire/commit/08e34a99fd5eb07f75ee6cbdc06c45d40d255c93

Git commit 3d372424ccb96fd2b705c9ed94e76a82ad44e113 by Wim Taymans on 21/07/2021 at 10:18..
alsa: don't free alsa global info for each node

Don't clear the global config or else we might lose the UCM state.

See #1437
https://invent.kde.org/neon/backports-focal/pipewire/commit/3d372424ccb96fd2b705c9ed94e76a82ad44e113

Git commit a33df863b4b08daaa5cc6b6626a62b69a7f690af by Wim Taymans on 21/07/2021 at 11:11..
acp: sync with pulseaudio
https://invent.kde.org/neon/backports-focal/pipewire/commit/a33df863b4b08daaa5cc6b6626a62b69a7f690af

Git commit f4b0cf2758f0ebbb61db86938f91b76138f8364c by Pauli Virtanen on 21/07/2021 at 14:20..
bluez5: blocklist kernel versions that broke mSBC on several adapters

These kernel versions contain a patch ("Bluetooth: btusb: Add support
USB ALT 3 for WBS") that breaks mSBC on several bluetooth adapters.

See https://lore.kernel.org/linux-bluetooth/ca3adcf5fd1e7afa923f445d391aaa00f335c470.camel@iki.fi/
https://invent.kde.org/neon/backports-focal/pipewire/commit/f4b0cf2758f0ebbb61db86938f91b76138f8364c

Git commit 707156233431b953fe7636adf0ecc15d22ce1eaa by Wim Taymans on 21/07/2021 at 15:06..
media-session: remove default node from properties

When we remove a default node, remove it from the properties and trigger
a save of the state so that the configured default is also actually
removed from the state file.
https://invent.kde.org/neon/backports-focal/pipewire/commit/707156233431b953fe7636adf0ecc15d22ce1eaa

Git commit 79233aee521d1d4dd564c8b059dbbd7e3b9f9704 by Wim Taymans on 22/07/2021 at 12:52..
doc: document access control

A first stab at the basics of access control documentation and the
use cases solved by the session manager.
https://invent.kde.org/neon/backports-focal/pipewire/commit/79233aee521d1d4dd564c8b059dbbd7e3b9f9704

Git commit 762e549027ab8d3d835d4ab7083e9a474c184bc6 by Wim Taymans on 23/07/2021 at 07:57..
doc: add portal document
https://invent.kde.org/neon/backports-focal/pipewire/commit/762e549027ab8d3d835d4ab7083e9a474c184bc6

Git commit cb10d87bb8b471a68766cb6305df462d2d45891a by Wim Taymans (on behalf of Pauli Virtanen) on 23/07/2021 at 07:58..
bluez5: handle no data written to sco socket

If socket write results to EAGAIN/EWOULDBLOCK or rx data starts late,
spa_bt_sco_io_write may return 0, and we should give up and skip ahead
(and not loop in RT thread with very small timeout).
https://invent.kde.org/neon/backports-focal/pipewire/commit/cb10d87bb8b471a68766cb6305df462d2d45891a

Git commit 5471a0018b0394327c0cd4f1f60bf326632b29f1 by Wim Taymans (on behalf of Javier Martinez Canillas) on 23/07/2021 at 07:59..
libcamera: fix no-longer existent <libcamera/buffer.h> header inclusion

The SPA plugin is including a <libcamera/buffer.h> header file, but this
got renamed to <libcamera/framebuffer.h> to match the defined class name:

../spa/plugins/libcamera/libcamera_wrapper.cpp:52:10: fatal error: libcamera/buffer.h: No such file or directory
   52 | #include <libcamera/buffer.h>
      |          ^~~~~~~~~~~~~~~~~~~~

Fixes #1435
https://invent.kde.org/neon/backports-focal/pipewire/commit/5471a0018b0394327c0cd4f1f60bf326632b29f1

Git commit 76cb5c1169b58b48a2921ccc3f61c713b297c07f by Wim Taymans (on behalf of Javier Martinez Canillas) on 23/07/2021 at 07:59..
libcamera: remove unused buffer variable in LibCamera::stop()

To fix build warning about a variable being unused in LibCamera::stop():

[1/2] Compiling C++ object spa/plugins/libcamera/libspa-libcamera.so.p/libcamera_wrapper.cpp.o
../spa/plugins/libcamera/libcamera_wrapper.cpp: In member function ‘void LibCamera::stop()’:
../spa/plugins/libcamera/libcamera_wrapper.cpp:531:58: warning: unused variable ‘buffer’ [-Wunused-variable]
  531 |                 for (const std::unique_ptr<FrameBuffer> &buffer : this->allocator_->buffers(stream)) {
      |                                                          ^~~~~~
https://invent.kde.org/neon/backports-focal/pipewire/commit/76cb5c1169b58b48a2921ccc3f61c713b297c07f

Git commit 0346c616e27cd0793ec98d273e1298ec24c12337 by Wim Taymans on 23/07/2021 at 09:05..
doc: add midi doc

Reorganize the docs a little. First a short intro, then list the use
cases, then the responsabilities of the various components, then
the implementation in various places.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0346c616e27cd0793ec98d273e1298ec24c12337

Git commit 606108f4093becae19dcef16b39beee0360ae9e8 by Pauli Virtanen on 24/07/2021 at 11:36..
spa: add spa_strstartswith
https://invent.kde.org/neon/backports-focal/pipewire/commit/606108f4093becae19dcef16b39beee0360ae9e8

Git commit 777bc89d020b8e9306d39770ee420d6ccf6ba7dd by Pauli Virtanen on 24/07/2021 at 15:51..
pipewire-pulse: add module-switch-on-connect

module-switch-on-connect sets the configured default sink/source
whenever suitable new sink/sources appear.

This should give the same behavior as Pulseaudio's module.

This module exists mainly to provide a workaround e.g. for desktop
environments such as XFCE, whose mixer applications try to manage the
default devices assuming fully PA-like behavior, breaking default
pipewire output switching.
https://invent.kde.org/neon/backports-focal/pipewire/commit/777bc89d020b8e9306d39770ee420d6ccf6ba7dd

Git commit 1f0934862a4508cf17fcb30069d67076670859eb by Wim Taymans (on behalf of Pauli Virtanen) on 25/07/2021 at 11:16..
bluez5: add device to blocklist
https://invent.kde.org/neon/backports-focal/pipewire/commit/1f0934862a4508cf17fcb30069d67076670859eb

Git commit 8b5601947c7bca527634a38421d83c069921d0f0 by Wim Taymans (on behalf of Philippe Normand) on 25/07/2021 at 11:17..
gst: Fix logging in buffer_recycle()

The first argument should be a GObject. GstMiniObjects are not GObject.
https://invent.kde.org/neon/backports-focal/pipewire/commit/8b5601947c7bca527634a38421d83c069921d0f0

Git commit 6af1388d662e9ddaedd920606e5676a553e27fe0 by Wim Taymans (on behalf of Peter Seiderer) on 25/07/2021 at 11:17..
meson: fix getrandom detection for uclibc

The getrandom() detection from meson.build fails with the following error
message:

  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:35: error: unknown type name 'size_t'
     27 | extern int getrandom(void *__buf, size_t count, unsigned int flags)
        |                                   ^~~~~~
  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:8:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?

Fix it by adding stddef.h include to the meson getrandom() detection.

Fixes:

  ../src/pipewire/impl-core.c:54:9: error: conflicting types for ‘getrandom’
     54 | ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) {
        |         ^~~~~~~~~
  In file included from ../src/pipewire/impl-core.c:34:
  .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:27:12: note: previous declaration of ‘getrandom’ was here
     27 | extern int getrandom(void *__buf, size_t count, unsigned int flags)
        |            ^~~~~~~~~

[Retrieved from:
https://git.buildroot.net/buildroot/tree/package/pipewire/0001-meson-fix-getrandom-detection-for-uclibc.patch]
https://invent.kde.org/neon/backports-focal/pipewire/commit/6af1388d662e9ddaedd920606e5676a553e27fe0

Git commit 67b422fa187d0049c62ac8e4b87899a5082fbcdd by Barnabás Pőcze on 25/07/2021 at 13:17..
pulse-server: fix potential use of dangling pointer

`getpwuid_r()` puts the strings pointed to from the returned
passwd struct into the specified buffer. Previously, that
buffer technically didn't live long enough to be usable
in the `snprintf()` call - although in practice this didn't
appear to be a problem. A particular version of GCC 11 generates
the same machine code for this function regardless whether
this patch is applied or not. Still, fix this by moving
the buffer to an outer scope.
https://invent.kde.org/neon/backports-focal/pipewire/commit/67b422fa187d0049c62ac8e4b87899a5082fbcdd

Git commit 30e3884a75a8f554f2c7bd96fdd23da569774546 by Barnabás Pőcze on 25/07/2021 at 13:17..
pulse-server: add another check for the return value of `snprintf()`

In addition to checking if the resulting string would
be too long, also check whether or not snprintf failed.
https://invent.kde.org/neon/backports-focal/pipewire/commit/30e3884a75a8f554f2c7bd96fdd23da569774546

Git commit e90a70fd49194888273011b1e20b13342c14bba2 by Barnabás Pőcze on 25/07/2021 at 13:17..
pulse-server: check if a runtime directory could be found

Print an error message and return an error code if all
options have been exhausted without success.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e90a70fd49194888273011b1e20b13342c14bba2

Git commit 2d27497045b10a629000c4d7170b1165ebd65e75 by Barnabás Pőcze on 25/07/2021 at 13:17..
pulse-server: use `S_ISDIR()`

Use the `S_ISDIR()` macro instead of `S_IFMT` and bitwise operations
to make the code simpler.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2d27497045b10a629000c4d7170b1165ebd65e75

Git commit 627ef37a775fed0bc67a4d79c26335990f6f09f5 by Barnabás Pőcze on 25/07/2021 at 13:17..
pulse-server: use `pid_t` where appropriate

Instead of `int`, use the `pid_t` type to represent
process identifiers.
https://invent.kde.org/neon/backports-focal/pipewire/commit/627ef37a775fed0bc67a4d79c26335990f6f09f5

Git commit b6405b761fa759b115998f314b3c1142243c1c2f by Barnabás Pőcze on 25/07/2021 at 13:17..
pulse-server: use `sizeof()` instead of hard-coding

Use `sizeof("/pid")` instead of hard-coding 5
in the condition.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b6405b761fa759b115998f314b3c1142243c1c2f

Git commit ab99f4d027e5aa3bceb689144408f6b1372769ee by Wim Taymans on 26/07/2021 at 07:35..
doc: add general audio configuration
https://invent.kde.org/neon/backports-focal/pipewire/commit/ab99f4d027e5aa3bceb689144408f6b1372769ee

Git commit 16faacec92da4480d370cfa96f6575e7349b98f2 by Wim Taymans on 26/07/2021 at 07:39..
pulse-server: don't compare string pointers

We always want to clear the provided blocklist from the properties. The
logic tries to only clear when there was a blocklist but it checks this
by comparing the string pointer to the fallback, which gives a compiler
warning.
https://invent.kde.org/neon/backports-focal/pipewire/commit/16faacec92da4480d370cfa96f6575e7349b98f2

Git commit 62fa0823ec992b802eaf7cb8c94881c9473852c9 by Wim Taymans on 26/07/2021 at 08:21..
modules: virtual sink/sources need driver

Virtual sinks and sources implemented with streams need to be grouped
with a driver node to be able to schedule. We don't have a way to let it
use a default driver so add it to the pipewire.dummy driver.

This fixes stalled pipe and other streams streams.

Fixes #1407
https://invent.kde.org/neon/backports-focal/pipewire/commit/62fa0823ec992b802eaf7cb8c94881c9473852c9

Git commit d1905716e442e1419a2266a1a4b527a9f896f285 by Wim Taymans on 26/07/2021 at 08:38..
impl-node: Split ALWAYS_PROCESS and WANT_DRIVER handling

Make a new PW_KEY_NODE_WANT_DRIVER to assign the node to a running
driver. (does not work yet)
Use a new variable to hold the ALWAYS_PROCESS setting and also
update want_driver.
This makes things it a bit more future proof.
https://invent.kde.org/neon/backports-focal/pipewire/commit/d1905716e442e1419a2266a1a4b527a9f896f285

Git commit 78f52a7073e8c9ca40811b2e9206e3ea023608c8 by Wim Taymans on 26/07/2021 at 09:39..
loop: avoid corruption of ringbuffer

The ringbuffer can't be written to from multiple threads.

When both the main loop and data thread do _invoke, they both write to
the ringbuffer and cause it to be corrupted because the ringbuffer is
not multi-writer safe.

Doing invoke from the thread itself is usually done to flush things out
so we really only need to flush the ringbuffer and call the callback.

See #1451
https://invent.kde.org/neon/backports-focal/pipewire/commit/78f52a7073e8c9ca40811b2e9206e3ea023608c8

Git commit 9f6890e10e1e9a121f5e58853fde96d81239bc6d by Wim Taymans on 26/07/2021 at 09:48..
pulse-server: improve stream cleanup

First disconnect the stream this ensures no more process events are
called. Then flush out the pending events, then destroy the stream.

Fixes #1451
https://invent.kde.org/neon/backports-focal/pipewire/commit/9f6890e10e1e9a121f5e58853fde96d81239bc6d

Git commit dd5b460daab10fee2a5075140807c5a0ccf63f30 by Wim Taymans on 26/07/2021 at 13:46..
client-node: remove custom target signal

The target signal is called when the peer nodes are ready and this
node needs to be scheduled. It is the in-process version of the
signal.

Remove our custom version that, just like the default version, schedules
the node implementation but doesn't do any accounting.

Makes pw-top report driver stats for bluetooth devices.

Fixes #1450
https://invent.kde.org/neon/backports-focal/pipewire/commit/dd5b460daab10fee2a5075140807c5a0ccf63f30

Git commit 40f1d2b8812fa18103d8ec7800a66cc651790dd9 by Wim Taymans on 26/07/2021 at 21:03..
jack: only call callbacks when active

JACK applications expect the callbacks only when activated.

Fixes #1461
https://invent.kde.org/neon/backports-focal/pipewire/commit/40f1d2b8812fa18103d8ec7800a66cc651790dd9

Git commit 63d833dabf6f3d4b40c37764ac9ed138d9736ba5 by Peter Hutterer on 27/07/2021 at 00:24..
spa: use spa_assert_se() for bugs in the util string functions

These are programming bugs that should never happen, so let's always
abort.
https://invent.kde.org/neon/backports-focal/pipewire/commit/63d833dabf6f3d4b40c37764ac9ed138d9736ba5

Git commit 49f3d5842e5806ac23111a0b3819f33a5d714eac by Peter Hutterer on 27/07/2021 at 00:24..
test: replace all spa_assert() macros with spa_assert_se()

These are tests, we never want those to be optimized away.
https://invent.kde.org/neon/backports-focal/pipewire/commit/49f3d5842e5806ac23111a0b3819f33a5d714eac

Git commit 5c78cbd3567d2b4876c4e6309cacf26f2f115211 by Peter Hutterer on 27/07/2021 at 00:24..
ci: add a build test for buildtype=release
https://invent.kde.org/neon/backports-focal/pipewire/commit/5c78cbd3567d2b4876c4e6309cacf26f2f115211

Git commit b70a3dca85bbcb6089c49f880a452be26130bb6d by Wim Taymans (on behalf of Peter Hutterer) on 27/07/2021 at 08:23..
protocol-native: don't initialize sockets in $HOME

Leaving sockets in the home directories is bad form, so let's not do
this.

This effectively requires XDG_RUNTIME_DIR to be set for pipewire to
work - it is set correctly on most setups anyway and on custom setups
this needs to be addressed with a custom environment.

Fixes #1443
https://invent.kde.org/neon/backports-focal/pipewire/commit/b70a3dca85bbcb6089c49f880a452be26130bb6d

Git commit 8e8cb34dc2d47cb8ef981cc09ec2f4c2e48d4e0d by Wim Taymans on 27/07/2021 at 08:57..
protocol: don't place sockets in $HOME

No server will put them there and no client will look for it there.
https://invent.kde.org/neon/backports-focal/pipewire/commit/8e8cb34dc2d47cb8ef981cc09ec2f4c2e48d4e0d

Git commit d2826a5dab194f1c594e2a4c4c77391e6cda17cc by Wim Taymans on 27/07/2021 at 10:07..
jack: emit client unregister event

Because we only remove the client from the list after doing the lookup,
we will always find the removed node and the unregister event is
never called.

Fix this by marking the object as removing so that the lookup function
can skip the nodes being removed.
https://invent.kde.org/neon/backports-focal/pipewire/commit/d2826a5dab194f1c594e2a4c4c77391e6cda17cc

Git commit 4e087caa2b911dec87cd6677959871cc31fb279e by Wim Taymans on 27/07/2021 at 15:57..
jack: add per client match rules

This makes it possible to configure per client settings such as
latency and later also to lock the quantum for certain clients.

See #1456
https://invent.kde.org/neon/backports-focal/pipewire/commit/4e087caa2b911dec87cd6677959871cc31fb279e

Git commit 44583367dbf10a6276a583910eb8865ab223b6af by Wim Taymans on 28/07/2021 at 09:03..
pod: add prop option to avoid fixation

Add a DONT_FIXATE flag to spa_pod_props. The flag avoids fixation
of the property by spa_pod_fixate().

When filtering properties, 'and' the flags together in the filtered
property. This mostly preserves the merged property flags. It also
merges the DONT_FIXATE flags so that when both sides can handle
the non-fixated result, it will be returned.

This can be used to let PipeWire filter out the common property
fields and leave the final selection of fields to the producer. This can
only work when the final selected field can be transported in some
other way than the format param, like on the buffer fields or in
metadata. One use case is negotiation of the DMABUF modifiers.

See #1084
https://invent.kde.org/neon/backports-focal/pipewire/commit/44583367dbf10a6276a583910eb8865ab223b6af

Git commit 4e90760155e8666bef5f20050a46137b1a910d70 by Peter Hutterer on 29/07/2021 at 04:03..
spa: silence a doxygen warning

  warning: documented symbol 'spa_log_error foo' was not declared or defined.
https://invent.kde.org/neon/backports-focal/pipewire/commit/4e90760155e8666bef5f20050a46137b1a910d70

Git commit f0152b6a0abc3b7c555cb8297f969b37e00d7cb0 by Peter Hutterer on 29/07/2021 at 04:25..
doc: add the new documentation pages to the docs

And make them a subpage of the Pipewire topic
https://invent.kde.org/neon/backports-focal/pipewire/commit/f0152b6a0abc3b7c555cb8297f969b37e00d7cb0

Git commit 7871f33da6d7a1db6e6749de8812d0fcfc0bf5c9 by Peter Hutterer on 29/07/2021 at 04:26..
doc: remove the Pipewire prefix from some of the doc pages
https://invent.kde.org/neon/backports-focal/pipewire/commit/7871f33da6d7a1db6e6749de8812d0fcfc0bf5c9

Git commit 85435cd525b5f1ea9aaba1f6dbac13304feff7f8 by Peter Hutterer on 29/07/2021 at 04:26..
doc: improve the pipewire-audio page for readability

Typos, some header changes, etc.
https://invent.kde.org/neon/backports-focal/pipewire/commit/85435cd525b5f1ea9aaba1f6dbac13304feff7f8

Git commit 6da0ee6cb5afcd392304c29fb70152bd8de4e252 by Peter Hutterer on 29/07/2021 at 04:33..
doc: move the overview page out to its own page

This is a good first (top) page to have in the docs, let's move it out
from the pipewire heading.

This doesn't change any of the links and the renaming isn't required
(subpage controls whether it's a top-level item and the meson.build
 order decides its spot in he list). Still, better to have the filenames
represent the layout.
https://invent.kde.org/neon/backports-focal/pipewire/commit/6da0ee6cb5afcd392304c29fb70152bd8de4e252

Git commit c03fedbac21a205a6c53824946d508a16ad71c87 by Peter Hutterer on 29/07/2021 at 04:43..
doc: reword the Design page
https://invent.kde.org/neon/backports-focal/pipewire/commit/c03fedbac21a205a6c53824946d508a16ad71c87

Git commit d1c80183d9baeba4578e44b13cd782ce3c0557ce by Peter Hutterer on 29/07/2021 at 06:06..
doc: add a media-session header file with the access-flatpak module

This adds a new top-level documentation entry for pipewire-media-session
with a list of modules (currently only one). Similar setup to the
pipewire modules, it allows us to document all modules in-place.
https://invent.kde.org/neon/backports-focal/pipewire/commit/d1c80183d9baeba4578e44b13cd782ce3c0557ce

Git commit 4496aed5a6166720a4fc881c7a0f892ae6354e8e by Peter Hutterer on 29/07/2021 at 06:06..
doc: revamp the pipewire-access page

Rewording, linking to the various things, etc.
https://invent.kde.org/neon/backports-focal/pipewire/commit/4496aed5a6166720a4fc881c7a0f892ae6354e8e

Git commit 2dabd337dcc2228648cde26144a999182b24a56b by Wim Taymans on 29/07/2021 at 11:35..
audioconvert: clear negotiated rate

When we clear the format on the non-dsp port, set the rate back to
0 so that we can negotiate a new rate if needed.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2dabd337dcc2228648cde26144a999182b24a56b

Git commit 158c23b2fd7704a660efbb625efa557912d7bec7 by Wim Taymans on 29/07/2021 at 14:33..
impl-link: prepare link only between active nodes

We only ever want to prepare a link between active nodes so add the
check in the _prepare() functions instead. This also makes it skip
the prepare step for inactive nodes when recalculating the graph.
https://invent.kde.org/neon/backports-focal/pipewire/commit/158c23b2fd7704a660efbb625efa557912d7bec7

Git commit 7092effaaba262f472bcd9a72c571b5b6bbe8203 by Wim Taymans on 29/07/2021 at 14:38..
media-session: add info when suspending a node
https://invent.kde.org/neon/backports-focal/pipewire/commit/7092effaaba262f472bcd9a72c571b5b6bbe8203

Git commit ebf4bf8d83d1177903cf0f243f21b56543eca130 by Wim Taymans on 29/07/2021 at 14:43..
context: don't follow links to inactive nodes

We don't need to follow nodes that we already visited or that are
inactive so skip them early.

Always try to prepare the link otherwise, not only for passive links
because non-passive links might also be paused because of a suspended
driver.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ebf4bf8d83d1177903cf0f243f21b56543eca130

Git commit 65e7402d017cd2f36148b53fef0197f142475a74 by Wim Taymans on 29/07/2021 at 14:50..
context: log rate changes

We don't need to check, rt.position of a node is never NULL.
Check if the rate changed and log an info message, just like we do
for the quantum.
https://invent.kde.org/neon/backports-focal/pipewire/commit/65e7402d017cd2f36148b53fef0197f142475a74

Git commit 08a1ca403f961c43c06cb5a2b47ff6456abf108c by Wim Taymans on 29/07/2021 at 15:13..
context: add option for soft/hard clock rate changes

Hard rate changes (the default now) makes the graph suspend so that the
driver reopens the device with the new sample rate if possible. This
causes a glitch.

Soft rate changes works as before and just changes the clock rate of
the position area, which makes everything resample things to the new
rate without a glitch.

Sample rate changes can currently still only be triggered by
configuring the settings metadata clock.force-rate
https://invent.kde.org/neon/backports-focal/pipewire/commit/08a1ca403f961c43c06cb5a2b47ff6456abf108c

Git commit 1216371f8c06f548f8ade6468b66612f43df1436 by Neal Gompa (ニール・ゴンパ) (on behalf of Neal Gompa) on 29/07/2021 at 15:22..
bluez5: Use libfreeaptx instead of libopenaptx

libfreeaptx is a fork of libopenaptx prior to the dubious licensing
situation was introduced to the library.

As it's fully API compatible, let's use that instead for those who
want to use aptX support.

The library source is available at https://github.com/iamthehorker/libfreeaptx
https://invent.kde.org/neon/backports-focal/pipewire/commit/1216371f8c06f548f8ade6468b66612f43df1436

Git commit 393f3e6d0538412502a031097285d64b494e660d by Wim Taymans on 29/07/2021 at 18:55..
pulse-server: align format to pulseaudio json message format

PulseAudio uses json now as the message format. Reformat our output
and parse our input accordingly.
https://invent.kde.org/neon/backports-focal/pipewire/commit/393f3e6d0538412502a031097285d64b494e660d

Git commit 6773ea7e5e2290629491172fac748a7ee3c42b34 by Wim Taymans (on behalf of Simon Ser) on 29/07/2021 at 19:18..
doc: add DMA-BUF docs
https://invent.kde.org/neon/backports-focal/pipewire/commit/6773ea7e5e2290629491172fac748a7ee3c42b34

Git commit 06b03aef57a510aeecbd66b1fb19d331d01da36d by Wim Taymans (on behalf of columbarius) on 30/07/2021 at 07:23..
example: check which endian sdl is using

enum spa_video_format uses explicit big endian, while sdl can be either.
We need to adapt the convertion table accordingly.
https://invent.kde.org/neon/backports-focal/pipewire/commit/06b03aef57a510aeecbd66b1fb19d331d01da36d

Git commit c753f455980716f3ba111905cf12c9ec24ba8636 by Wim Taymans (on behalf of Peter Hutterer) on 30/07/2021 at 07:24..
doc: remove the PipeWire prefix from the nested pages

They're structured below PipeWire in the doxygen output, so we don't
need this as part of the header.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c753f455980716f3ba111905cf12c9ec24ba8636

Git commit 0261b78870538a03925a1d115ea486c719f69f0b by Wim Taymans (on behalf of Peter Hutterer) on 30/07/2021 at 07:24..
doc: expand the module doc a bit

Makes it feel slightly more complete, even if the example modules are
currently undocumented.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0261b78870538a03925a1d115ea486c719f69f0b

Git commit 82e427745d44e60758743afa9615d6a9dd4f6df3 by Wim Taymans (on behalf of Peter Hutterer) on 30/07/2021 at 07:24..
doc: structure the portal documentation a bit better
https://invent.kde.org/neon/backports-focal/pipewire/commit/82e427745d44e60758743afa9615d6a9dd4f6df3

Git commit b6a8f677644994bab4401f461b34e8da00d7f86a by Wim Taymans (on behalf of Peter Hutterer) on 30/07/2021 at 07:24..
module-portal: use spa_atoi32 for safer PID parsing
https://invent.kde.org/neon/backports-focal/pipewire/commit/b6a8f677644994bab4401f461b34e8da00d7f86a

Git commit 6989b241486603a76b37ec2c62e69d4d1ab593eb by Wim Taymans (on behalf of Peter Hutterer) on 30/07/2021 at 07:29..
pulse-server: fix json comma handling

First was never set to false, so we kept skipping the commas.

Fixes 393f3e6d0538412502a031097285d64b494e660d
https://invent.kde.org/neon/backports-focal/pipewire/commit/6989b241486603a76b37ec2c62e69d4d1ab593eb

Git commit 73217818cc1367511ae4b07420e269c447c1d31a by Wim Taymans (on behalf of Simon Ser) on 30/07/2021 at 07:29..
spa: document enum spa_video_format

References: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1470
https://invent.kde.org/neon/backports-focal/pipewire/commit/73217818cc1367511ae4b07420e269c447c1d31a

Git commit 9f2d6d6d28cccc832f10d3d892a1372374ef921a by Wim Taymans (on behalf of Huang-Huang Bao) on 30/07/2021 at 08:46..
bluez5: fix rounding error on hardware volume conversion

Ensure the conversions between spa_bt_volume_linear_to_hw and spa_bt_volume_hw_to_linear are reversible when
operating on hardware volume.
https://invent.kde.org/neon/backports-focal/pipewire/commit/9f2d6d6d28cccc832f10d3d892a1372374ef921a

Git commit 7bec96640c7dc2dbd5d90ca45d8e4616d3e26b9e by Wim Taymans on 30/07/2021 at 09:42..
node: add node.lock-quantum property

The graph will not switch quantums when there is an active node
with the node.lock-quantum property set to true.

It can be used to stop certain jack clients from crashing when the
quantum changes.
https://invent.kde.org/neon/backports-focal/pipewire/commit/7bec96640c7dc2dbd5d90ca45d8e4616d3e26b9e

Git commit 6acf72dc302ea061e146bd6a086057c5c16e26b4 by Wim Taymans on 30/07/2021 at 09:42..
impl-node: rework quantum and max_quantum handling

Rework the quantum and max_quantum handling. Work directly with the
latency fractions and calculate the final quantum size until we know
the samplerate.
https://invent.kde.org/neon/backports-focal/pipewire/commit/6acf72dc302ea061e146bd6a086057c5c16e26b4

Git commit 8375d7b2d7faa2c39290f5088bc5a1419ce2c31a by Wim Taymans on 30/07/2021 at 09:57..
impl-node: remove unused function
https://invent.kde.org/neon/backports-focal/pipewire/commit/8375d7b2d7faa2c39290f5088bc5a1419ce2c31a

Git commit 1ff208875cfd18f35ae6821328c236e21d348c84 by Wim Taymans on 30/07/2021 at 14:15..
context: implement dynamic rate

Add a default.clock.allowed-rates property that lists the possible
rates for the graph.

Add node.rate and node.lock-rate properties to suggest a graph rate
and lock the rate.

Collect the largest clock rate from the nodes and if it is allowed,
try to configure it as the graph rate. Only switch rates when the
driver is IDLE or suspended or when we force a rate.

No alternative samplerates are specified because we first need to
work around a common driver bug (cards with 1 cristal need the same
rate for capture as playback) for this to work.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1ff208875cfd18f35ae6821328c236e21d348c84

Git commit 60c510d766746549fb374be203099567b7b1c572 by Rafael Fontenelle on 01/08/2021 at 20:07..
Update Brazilian Portuguese translation
https://invent.kde.org/neon/backports-focal/pipewire/commit/60c510d766746549fb374be203099567b7b1c572

Git commit 51a177eb6db6be08ef9390de677f11b7c440953b by Wim Taymans (on behalf of Peter Hutterer) on 02/08/2021 at 08:24..
tree-wide: replace strstr(a, b) == a with spa_strstartswith()

spa_strstartswith() is more immediately understandable.

Coccinelle spatch file:
	@@
	expression E1, E2;
	@@
	- strstr(E1, E2) != E1
	+ !spa_strstartswith(E1, E2)

	@@
	expression E1, E2;
	@@
	- strstr(E1, E2) == E1
	+ spa_strstartswith(E1, E2)

Applied to the tree except for alsa/acp/compat.h because it looks like
that header is still mostly as-is from PA.
https://invent.kde.org/neon/backports-focal/pipewire/commit/51a177eb6db6be08ef9390de677f11b7c440953b

Git commit 436eefc6254e1ded58a196baa4a7d317dc03b749 by Wim Taymans (on behalf of Peter Hutterer) on 02/08/2021 at 08:27..
alsa-endpoint: add a FIXME for some missing code

We call setup_alsa_ucm_endpoint() before the
setup_alsa_fallback_endpoint(), but this function always returns
-ENOTSUP. Add a FIXME comment to make this more obvious.
https://invent.kde.org/neon/backports-focal/pipewire/commit/436eefc6254e1ded58a196baa4a7d317dc03b749

Git commit 8d39940350d54041a72dc58f374b4522b09011ee by Wim Taymans (on behalf of Peter Hutterer) on 02/08/2021 at 08:27..
doc: some more polishing of the access docs
https://invent.kde.org/neon/backports-focal/pipewire/commit/8d39940350d54041a72dc58f374b4522b09011ee

Git commit 25d15765b7d13362b51f2a38161ce74c120cd0e6 by Wim Taymans (on behalf of Peter Hutterer) on 02/08/2021 at 08:27..
doc: better output formatting for the midi page
https://invent.kde.org/neon/backports-focal/pipewire/commit/25d15765b7d13362b51f2a38161ce74c120cd0e6

Git commit c2fef6caa2ef663f93fdd8c26fb137dc3a0e7c67 by Wim Taymans (on behalf of Peter Hutterer) on 02/08/2021 at 08:27..
doc: format the objects design page

Mostly replacing the lists so they actually render as lists
https://invent.kde.org/neon/backports-focal/pipewire/commit/c2fef6caa2ef663f93fdd8c26fb137dc3a0e7c67

Git commit 602bed7a98b6aebe2d72a693f7c3eebea43919dd by Wim Taymans (on behalf of Peter Hutterer) on 02/08/2021 at 08:27..
doc: add minimal documentation for the alsa endpoint SM module
https://invent.kde.org/neon/backports-focal/pipewire/commit/602bed7a98b6aebe2d72a693f7c3eebea43919dd

Git commit 6d7e90fca2e4e9e66a92693b722e9c9f0168dfcf by Wim Taymans (on behalf of Peter Hutterer) on 02/08/2021 at 08:27..
meson: add the media-session logind sources to the media-session sources

This way the media_session_sources variable contains all source files we
build (required by the documentation build).
https://invent.kde.org/neon/backports-focal/pipewire/commit/6d7e90fca2e4e9e66a92693b722e9c9f0168dfcf

Git commit 310b4611c856f647c6be63945ba412220e2a6237 by Wim Taymans (on behalf of Peter Hutterer) on 02/08/2021 at 08:27..
media-session: add stub docs for all media-session modules

Same basic approach as for the pipewire modules
https://invent.kde.org/neon/backports-focal/pipewire/commit/310b4611c856f647c6be63945ba412220e2a6237

Git commit c9506a85973a9544baa050062bc9782237096f24 by Wim Taymans (on behalf of Peter Hutterer) on 02/08/2021 at 08:27..
doc: basic documentation for the logind media-session module
https://invent.kde.org/neon/backports-focal/pipewire/commit/c9506a85973a9544baa050062bc9782237096f24

Git commit fc85b33e8066c4c2ec272a7a998e99187be66655 by Wim Taymans (on behalf of Peter Hutterer) on 02/08/2021 at 08:27..
doc: drop the header priority in media-session.dox

This way the two subheaders won't show up in the sidebar
https://invent.kde.org/neon/backports-focal/pipewire/commit/fc85b33e8066c4c2ec272a7a998e99187be66655

Git commit f71529cbaf989a8b0fdae5aabbd42efa670e081f by Wim Taymans on 02/08/2021 at 08:48..
context: add missing link prepare

It got removed accidentally in a previous commit, breaking some of the
loopback devices.

Fixes #1472
https://invent.kde.org/neon/backports-focal/pipewire/commit/f71529cbaf989a8b0fdae5aabbd42efa670e081f

Git commit 7d9dde0a1d3192608bcde8013352e823d847c92f by Wim Taymans on 02/08/2021 at 09:46..
loopback: pass all latency to the other stream

Latency configured on one streams needs to be passed directly to the
other stream.
https://invent.kde.org/neon/backports-focal/pipewire/commit/7d9dde0a1d3192608bcde8013352e823d847c92f

Git commit 57cbd2e9631d5de0fef46a9b4d0881b5ad0cfe1e by Wim Taymans on 02/08/2021 at 15:28..
impl-link: handle port states going backwards

When the port state goes backwards (like when suspended) update
the link state accordingly.
https://invent.kde.org/neon/backports-focal/pipewire/commit/57cbd2e9631d5de0fef46a9b4d0881b5ad0cfe1e

Git commit 48f7218d0378aff5a1dea458aa5f26712132e599 by Wim Taymans on 02/08/2021 at 15:30..
context: improve debug
https://invent.kde.org/neon/backports-focal/pipewire/commit/48f7218d0378aff5a1dea458aa5f26712132e599

Git commit da8f835de3ea45de44d5a974a7b239fd78e08ced by Wim Taymans on 02/08/2021 at 15:31..
context: after suspend, reevaluate the graph

Reevaluate the graph again after we potentially suspend because of a
rate change because links might become unprepared and need to be
prepared again before the node becomes active.
https://invent.kde.org/neon/backports-focal/pipewire/commit/da8f835de3ea45de44d5a974a7b239fd78e08ced

Git commit d25bb0e20f82413bf80f25f1eb4d5c16472eeacb by Wim Taymans on 02/08/2021 at 16:03..
impl-link: reset state in INIT

When the link state goes back to init, clear any pending operations and
reset our state.
https://invent.kde.org/neon/backports-focal/pipewire/commit/d25bb0e20f82413bf80f25f1eb4d5c16472eeacb

Git commit edfa210656ba702f26a17b96c13abaf1b193d5a2 by Wim Taymans on 03/08/2021 at 15:28..
protocol: also return marshal with higher version

The marshaller needs to be of the requested version or newer.
https://invent.kde.org/neon/backports-focal/pipewire/commit/edfa210656ba702f26a17b96c13abaf1b193d5a2

Git commit f4048ae663d7f93262673bdd407968da44e2ef48 by Wim Taymans on 03/08/2021 at 15:30..
protocol-native: fix marshal of add_port

We need to terminate the arguments with NULL.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f4048ae663d7f93262673bdd407968da44e2ef48

Git commit 62f8ffcfb2f84d74987bda83cee5b1ee70a6a561 by Wim Taymans on 03/08/2021 at 15:33..
impl-link: put the peer_id in the mix

Place the global id of the peer port in the mix so that we can track
the peer object that way.
https://invent.kde.org/neon/backports-focal/pipewire/commit/62f8ffcfb2f84d74987bda83cee5b1ee70a6a561

Git commit bba8c5daa361c18c789fa2b9348eb5067d65035c by Wim Taymans on 03/08/2021 at 15:36..
client-node: add port_set_mix_info

Add a new client-node port_set_mix_info event. bump the interface
version to 4 and the event version to 1.

The event is used to send information about the peer object to the
port mixer. This can be used to track what buffers belong to what
peer.
https://invent.kde.org/neon/backports-focal/pipewire/commit/bba8c5daa361c18c789fa2b9348eb5067d65035c

Git commit 99359c399826ea23d9204355871339fc5187a3d6 by Wim Taymans on 03/08/2021 at 15:39..
jack: use port_set_mix_info

Use the port_set_mix_info event to get the id of the peer port for the
mixer input.

When asked for the buffer of one of those peer ports, we can get it from
the mixer input buffers.

Fixes #1471
https://invent.kde.org/neon/backports-focal/pipewire/commit/99359c399826ea23d9204355871339fc5187a3d6

Git commit bf112940d0bf8f526dd6229a619c1283835b49c2 by George Kiagiadakis (on behalf of Daniel Stone) on 03/08/2021 at 15:43..
spa: Only test __cplusplus value when it's defined

In higher warning levels, clang complains about testing the value of
__cplusplus when it's not defined.
https://invent.kde.org/neon/backports-focal/pipewire/commit/bf112940d0bf8f526dd6229a619c1283835b49c2

Git commit c6dc7e98fdaae1d4304a8ae874bd05a7f059be63 by Wim Taymans on 03/08/2021 at 17:11..
dbus: protect against NULL data

Make sure we don't accidentally unref a NULL data.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c6dc7e98fdaae1d4304a8ae874bd05a7f059be63

Git commit 99a10c160658c46dce7e827f656dfbfc9fb54b90 by Peter Hutterer on 04/08/2021 at 05:43..
protocol: assert if the loop initialization fails on the connection test

This test needs an environment set up to load everything correctly,
running it directly results in a segfault. Let's make sure we assert on
a NULL loop to make this look slightly more planned.
https://invent.kde.org/neon/backports-focal/pipewire/commit/99a10c160658c46dce7e827f656dfbfc9fb54b90

Git commit d0060fbddd6ce93795321587c9bbe3970acaabde by Wim Taymans (on behalf of Peter Hutterer) on 04/08/2021 at 07:45..
test: move the client and utils tests over here
https://invent.kde.org/neon/backports-focal/pipewire/commit/d0060fbddd6ce93795321587c9bbe3970acaabde

Git commit 13ffc549c94dec51c9e4b5096971a82848bd6cad by Wim Taymans (on behalf of Peter Hutterer) on 04/08/2021 at 07:49..
doc: add basic docs for the session manager
https://invent.kde.org/neon/backports-focal/pipewire/commit/13ffc549c94dec51c9e4b5096971a82848bd6cad

Git commit 4c760e473d037bb7d9daac150c2a2247ad0dd521 by Wim Taymans (on behalf of Peter Hutterer) on 04/08/2021 at 07:49..
doc: add a nice graph to illustrate how the daemon a bit
https://invent.kde.org/neon/backports-focal/pipewire/commit/4c760e473d037bb7d9daac150c2a2247ad0dd521

Git commit 710caf9d75a9f7bd7d0f1bb8002983259f8e3932 by Wim Taymans (on behalf of Peter Hutterer) on 04/08/2021 at 07:49..
doc: fix a subsection name
https://invent.kde.org/neon/backports-focal/pipewire/commit/710caf9d75a9f7bd7d0f1bb8002983259f8e3932

Git commit 3370a56e3e9f924e2eb56628dca554497c2af6e6 by Wim Taymans (on behalf of Peter Hutterer) on 04/08/2021 at 07:49..
doc: move the error reporting blurb to the library page

Let's keep the daemon page higher-level and leave API behaviors
elsewhere.
https://invent.kde.org/neon/backports-focal/pipewire/commit/3370a56e3e9f924e2eb56628dca554497c2af6e6

Git commit 556153175186116dab5fd0c0830b7a77d953c2f3 by Wim Taymans (on behalf of Peter Hutterer) on 04/08/2021 at 07:49..
doc: document the core/implementation API split a bit better

Still missing a proper review of the linked objects, but at least this
now explains why those two are split.
https://invent.kde.org/neon/backports-focal/pipewire/commit/556153175186116dab5fd0c0830b7a77d953c2f3

Git commit 3ced15ad2274198b65f1fa0f3aec2a05f11a2f7e by Wim Taymans (on behalf of Peter Hutterer) on 04/08/2021 at 07:49..
doc: some extra docs for the core objects
https://invent.kde.org/neon/backports-focal/pipewire/commit/3ced15ad2274198b65f1fa0f3aec2a05f11a2f7e

Git commit f0baffbc84d3f9f92560926cf68b6f7d4411089e by Wim Taymans (on behalf of Peter Hutterer) on 04/08/2021 at 07:49..
doc: ignore SPA_EXPORT and SPA_PRINTF_FUNC

This caused doxygen to include a rather random assortment of variables
and link to them from various pages (e.g. "arg", "res", "buffer", NAME,
etc.)
https://invent.kde.org/neon/backports-focal/pipewire/commit/f0baffbc84d3f9f92560926cf68b6f7d4411089e

Git commit 02b4ccd782ba122d4add44c12d8d90c2694acf88 by Wim Taymans (on behalf of Torkel Niklasson) on 04/08/2021 at 09:37..
src/pipewire/impl-node.c: Change client err/warn logs to infos

xrun, client too slow and that the client missed wakeups is not a
critical issue for us, so we patch them to be infos instead of
warnings and errors.
https://invent.kde.org/neon/backports-focal/pipewire/commit/02b4ccd782ba122d4add44c12d8d90c2694acf88

Git commit 4841156b74e9a1210b9c430018dba9ed7b0100ec by Wim Taymans on 04/08/2021 at 09:47..
doc: clarify JSON usage

Mention that the config format can be pure JSON or with some
simplifications and additions.
https://invent.kde.org/neon/backports-focal/pipewire/commit/4841156b74e9a1210b9c430018dba9ed7b0100ec

Git commit 761fa6f59dea6e1dccd1da3b5eace5a8e38b2d65 by Nils Tonnätt on 04/08/2021 at 18:38..
meson: fix meson test without building pipewire before

This adds project internal dependencies to some tests to let all
tests succeed. It is not adding all dependencies those tests actually
need.
https://invent.kde.org/neon/backports-focal/pipewire/commit/761fa6f59dea6e1dccd1da3b5eace5a8e38b2d65

Git commit 1be939c672bdd30ba92a910a85dcc67833c63005 by Wim Taymans (on behalf of Peter Hutterer) on 05/08/2021 at 09:51..
doc: add a meson example to the tutorial

The vast majority of users will want to build with a build system, so
let's add a minimal example there to avoid guesswork.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1be939c672bdd30ba92a910a85dcc67833c63005

Git commit 56acf766a5f38dad01528f20c518db927d165f70 by Wim Taymans (on behalf of Peter Hutterer) on 05/08/2021 at 09:51..
doc: split the spa_interfaces out as separate group from the spa_hooks
https://invent.kde.org/neon/backports-focal/pipewire/commit/56acf766a5f38dad01528f20c518db927d165f70

Git commit d8f6033b9d24069b6b7a61b308ef4a4410845198 by Wim Taymans (on behalf of Peter Hutterer) on 05/08/2021 at 09:51..
spa: document the spa_interface and how it works
https://invent.kde.org/neon/backports-focal/pipewire/commit/d8f6033b9d24069b6b7a61b308ef4a4410845198

Git commit 1244229faf29f17928ef160196de001375057b7a by Wim Taymans (on behalf of Peter Hutterer) on 05/08/2021 at 09:51..
spa: document the spa_hook interface with an example
https://invent.kde.org/neon/backports-focal/pipewire/commit/1244229faf29f17928ef160196de001375057b7a

Git commit 5ae528c957110c6f0ecd3b3680cb0f7f47887021 by Wim Taymans (on behalf of Peter Hutterer) on 05/08/2021 at 09:51..
spa: move the log version define so it matches other implementations

Makes it match up with the comment now too
https://invent.kde.org/neon/backports-focal/pipewire/commit/5ae528c957110c6f0ecd3b3680cb0f7f47887021

Git commit 5e5bf5f3402f309eb0b9e20bc69d2c04e16a2a69 by Wim Taymans (on behalf of Peter Hutterer) on 05/08/2021 at 09:51..
doc: don't double up the pw_proxy_new() documentation
https://invent.kde.org/neon/backports-focal/pipewire/commit/5e5bf5f3402f309eb0b9e20bc69d2c04e16a2a69

Git commit 127781cfc85269c436bb8f67015c3140b1c70c54 by Wim Taymans (on behalf of Peter Hutterer) on 05/08/2021 at 09:51..
doc: ignore all function attributes in doxygen
https://invent.kde.org/neon/backports-focal/pipewire/commit/127781cfc85269c436bb8f67015c3140b1c70c54

Git commit 76bae0cac4d991616656dc98ad121e44cb2d7c59 by Wim Taymans (on behalf of Pauli Virtanen) on 05/08/2021 at 11:27..
media-session: add bluez-autoswitch module

Add module that switches bluez device profile to HFP/HSP if an input
stream (non-monitor, autoconnect) appears, and the current default
output device is bluez one that does not have input route.

When all input streams are gone, switch all changed profiles back.

Pending restore state is saved to session manager state files, in order
to restore it if e.g. devices get disconnected.  This usually is not
currently necessary since the bluez5 plugin prefers to connect to A2DP
over HFP, but might matter in future with backchannel-enabled A2DP
codecs.
https://invent.kde.org/neon/backports-focal/pipewire/commit/76bae0cac4d991616656dc98ad121e44cb2d7c59

Git commit dc6a81520db1aae2cd023d86eb54bf823551b722 by Wim Taymans on 05/08/2021 at 11:32..
media-session: always call va_end
https://invent.kde.org/neon/backports-focal/pipewire/commit/dc6a81520db1aae2cd023d86eb54bf823551b722

Git commit 83422ba62dd1319d353bf0afe553acf03190dfae by Wim Taymans on 05/08/2021 at 11:32..
pulse-server: bump version to 15.0.0
https://invent.kde.org/neon/backports-focal/pipewire/commit/83422ba62dd1319d353bf0afe553acf03190dfae

Git commit e3a643bffe7125357a6a535fed168e3d22c7467c by Wim Taymans on 05/08/2021 at 13:41..
bluez5: remove useless pod_frame() call
https://invent.kde.org/neon/backports-focal/pipewire/commit/e3a643bffe7125357a6a535fed168e3d22c7467c

Git commit a9fecd50ed27ee30d9d44745f3fd696daa4af5c5 by Wim Taymans on 05/08/2021 at 13:41..
bluez5: improve debug

Log the errno when something is wrong.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a9fecd50ed27ee30d9d44745f3fd696daa4af5c5

Git commit 874724877d6e9cbdf23461eaf807c4820d8776e0 by Wim Taymans on 05/08/2021 at 13:42..
filter: handle NULL latency param
https://invent.kde.org/neon/backports-focal/pipewire/commit/874724877d6e9cbdf23461eaf807c4820d8776e0

Git commit 4be14c24f55274bfc7a49ded904b7b82e21ea308 by Wim Taymans on 05/08/2021 at 13:42..
stream: improve latency param debug
https://invent.kde.org/neon/backports-focal/pipewire/commit/4be14c24f55274bfc7a49ded904b7b82e21ea308

Git commit 9229467f205ecf7dccea959c2b78bfc3f21796b6 by Wim Taymans on 05/08/2021 at 13:49..
module-zeroconf: only free impl when not NULL
https://invent.kde.org/neon/backports-focal/pipewire/commit/9229467f205ecf7dccea959c2b78bfc3f21796b6

Git commit 8119e5cdb4efc3325f5629cd1afe9957aa5c39dc by Wim Taymans on 05/08/2021 at 14:19..
0.3.33
https://invent.kde.org/neon/backports-focal/pipewire/commit/8119e5cdb4efc3325f5629cd1afe9957aa5c39dc

Git commit 8dc8fb55f2c11f0186629330843b45e9937e7551 by Wim Taymans (on behalf of Nils Tonnätt) on 06/08/2021 at 07:56..
[Meson] Unescape pkgconf variable
https://invent.kde.org/neon/backports-focal/pipewire/commit/8dc8fb55f2c11f0186629330843b45e9937e7551

Git commit a5e3d3f7a78b3305da9632cd96a1af22f02a5293 by Wim Taymans (on behalf of Nils Tonnätt) on 06/08/2021 at 07:56..
[Meson] Change jack-devel option to be boolean
https://invent.kde.org/neon/backports-focal/pipewire/commit/a5e3d3f7a78b3305da9632cd96a1af22f02a5293

Git commit f7e1175ef084cf74153b3e37cc92b1ee2f3e5e10 by Wim Taymans (on behalf of Nils Tonnätt) on 06/08/2021 at 07:56..
[Meson] Fix all deprecation warnings
https://invent.kde.org/neon/backports-focal/pipewire/commit/f7e1175ef084cf74153b3e37cc92b1ee2f3e5e10

Git commit 2488e87fde517b1a8b59ac9052fc6f324895ea3d by Wim Taymans (on behalf of Nils Tonnätt) on 06/08/2021 at 07:56..
[CI] Update Meson
https://invent.kde.org/neon/backports-focal/pipewire/commit/2488e87fde517b1a8b59ac9052fc6f324895ea3d

Git commit cec4699986b8734d86dc3102834da4760499f32d by Wim Taymans (on behalf of Peter Hutterer) on 06/08/2021 at 08:03..
default-profile: remove write-only field saved_profile
https://invent.kde.org/neon/backports-focal/pipewire/commit/cec4699986b8734d86dc3102834da4760499f32d

Git commit 43a560e25f039a18ae3ebd40b68ab82cf4849dc5 by Wim Taymans (on behalf of Peter Hutterer) on 06/08/2021 at 08:03..
default-profile: make the job to restore a saved profile easier to read

"restored" describes a state but the only case we actually set this
value if we want to restore our previously saved profile. Rename a
variable to indicate this, makes it easier to understand.
https://invent.kde.org/neon/backports-focal/pipewire/commit/43a560e25f039a18ae3ebd40b68ab82cf4849dc5

Git commit 5da2081a4b86c3b3af1118083a66bc490746093a by Wim Taymans (on behalf of Peter Hutterer) on 06/08/2021 at 08:03..
default-profile: document what this module does in more detail
https://invent.kde.org/neon/backports-focal/pipewire/commit/5da2081a4b86c3b3af1118083a66bc490746093a

Git commit 42e0b520aa21fb619695b0cbfca601ba47759e14 by Wim Taymans on 06/08/2021 at 11:09..
stream: Detect if we are driving or not

We need to check the position vs the clock to see if we are currently
driving the graph. We can only call the node ready callback when
we are actually driving the graph.
https://invent.kde.org/neon/backports-focal/pipewire/commit/42e0b520aa21fb619695b0cbfca601ba47759e14

Git commit 9831f62927f077ddbd68e0ebd6f193876ca94546 by Wim Taymans on 06/08/2021 at 11:36..
stream: add pw_stream_drive()

This method is meant for driver streams when they have data or need
data.

Previously only source (output) streams could drive the graph and
indirectly by doing pw_stream_queue_buffer(). This behaviour is now
deprecated (but will still work) in favour of calling
pw_stream_drive() explicitly.

pw_stream_drive() will call the process function immediately (if
driver) or later (when not a driver) so that the same code paths
can be used when running as a driver or not.

In a similar way, a consumer (input) driver stream can now be
written. It will call pw_stream_drive() when it wants data and the
process function will be called when the data is ready.

See #1484
https://invent.kde.org/neon/backports-focal/pipewire/commit/9831f62927f077ddbd68e0ebd6f193876ca94546

Git commit 23d3b10be455a6a230e0057e50bc5c26c921cb6b by Wim Taymans on 06/08/2021 at 11:55..
examples: update video-src examples

So that hey use pw_stream_drive() to start the graph.
https://invent.kde.org/neon/backports-focal/pipewire/commit/23d3b10be455a6a230e0057e50bc5c26c921cb6b

Git commit 47fe5b550d37b53ec270f7ded850e8c3dfc096a7 by Wim Taymans on 06/08/2021 at 12:49..
examples: add a pull based video player

It has the DRIVER flag set and sets a PW_KEY_PRIORITY_DRIVER value
to something higher than the source so that it becomes the driver.
Every timeout it does pw_stream_drive() to start the graph, which
will eventually call the process function with a pulled buffer to
display.

The framerate is set to something lower (80ms between frames) to
show the pull effect.

fixes #1484
https://invent.kde.org/neon/backports-focal/pipewire/commit/47fe5b550d37b53ec270f7ded850e8c3dfc096a7

Git commit 3c97090ba035a8dfc64cff4f6b728ec3cb3ffec7 by Wim Taymans on 06/08/2021 at 13:32..
stream: rename _drive() to _trigger_process()

Should be a bit more intuitive to understand what it will do.
https://invent.kde.org/neon/backports-focal/pipewire/commit/3c97090ba035a8dfc64cff4f6b728ec3cb3ffec7

Git commit b030a4e7da217ea567796c4a0e791f6e7d48fb99 by Wim Taymans on 06/08/2021 at 13:36..
stream: add a method to check if driving or not

When the node is driving, we need to call trigger_process()
otherwise we don't and we simply need to wait for the process() to
be called, triggered by the driver node.

See #1484
https://invent.kde.org/neon/backports-focal/pipewire/commit/b030a4e7da217ea567796c4a0e791f6e7d48fb99

Git commit 33d8f14e45dd44fbb9a7ace3eabe55c2804b8e2f by Wim Taymans on 06/08/2021 at 14:15..
stream: don't call process() in Start in some cases

We only want to call process() from Start when we are not a driver and
not realtime.

When we are a driver, the user will need to call _trigger_process()
to kick things of.

When we are asked to schedule process from the realtime thread, we
need to wait until the RT thread is scheduled.

In all other cases we can call _process() from the mainloop so that
the RT thread has something to collect when it gets scheduled.
https://invent.kde.org/neon/backports-focal/pipewire/commit/33d8f14e45dd44fbb9a7ace3eabe55c2804b8e2f

Git commit 4840fd3da8b7271f3f2a6bc0accd8bc71a273d65 by Pauli Virtanen on 08/08/2021 at 11:28..
media-session: don't remove default.configured when devices go away

There's no particular problem to have default.configured to point to a
non-existent device, it will be ignored.  This was left over when
default and configured default were made separate things.

default-nodes also doesn't need to track the id of the configured
default, so remove also other stuff that's no longer necessary.  It can
simply load the values to metadata on startup, and save them to a file
when they are changed, without needing to understand what the values
mean.

Also fixes commit 707156233431 causing defaults to be forgotten when
nodes are removed.
https://invent.kde.org/neon/backports-focal/pipewire/commit/4840fd3da8b7271f3f2a6bc0accd8bc71a273d65

Git commit 3724088c21b5101749a8d6010bb83abc4f72a6c5 by Barnabás Pőcze on 08/08/2021 at 16:46..
media-session: bluez-autoswitch: fix memory leak

`impl->default_sink` is dynamically allocated, but previously
it was not freed when the containing struct was being destroyed.
Fix that by freeing it in `session_destroy()`.
https://invent.kde.org/neon/backports-focal/pipewire/commit/3724088c21b5101749a8d6010bb83abc4f72a6c5

Git commit 090aaa4fb0fab5737f138edc42c9689280874a5c by Barnabás Pőcze on 08/08/2021 at 16:46..
media-session: bluez-autoswitch: simplify logic

When `val` was used, it was always a true-ish since the
address of an array on the stack was assigned to it.
Remove this variable altogether, and use `name` directly.
Only use `name` when it is valid - when `key && value`.
https://invent.kde.org/neon/backports-focal/pipewire/commit/090aaa4fb0fab5737f138edc42c9689280874a5c

Git commit dd12910769f85fbecfb9d97e15a1cc3bb0869776 by Wim Taymans (on behalf of Nils Tonnätt) on 08/08/2021 at 19:18..
Revert "[Meson] Fix all deprecation warnings"

This reverts commit f7e1175ef084cf74153b3e37cc92b1ee2f3e5e10.
https://invent.kde.org/neon/backports-focal/pipewire/commit/dd12910769f85fbecfb9d97e15a1cc3bb0869776

Git commit 8028f9dd6e88641f69ae961d640bff97a660c364 by Wim Taymans (on behalf of Nils Tonnätt) on 08/08/2021 at 19:18..
meson: decrease minimum required meson version to 0.54.0

To generate a correct jack pkg-config file unescape_variable
is required which was introduced with Meson 0.59.0.
When using an older version a warning is printed that no
jack.pc file is generated.
https://invent.kde.org/neon/backports-focal/pipewire/commit/8028f9dd6e88641f69ae961d640bff97a660c364

Git commit 83f72489ad43d25172804ab13b03e73ed00886fa by Wim Taymans (on behalf of Pauli Virtanen) on 08/08/2021 at 19:22..
media-session: if no node found on reconnect, unlink but no error

If a reconnecting node was linked at least once successfully, and a
re-link ends up not finding any node to link to, don't raise an error.
Instead, just unlink the node, and wait for a suitable sink to appear
later.

This fixes the issue that some Pulseaudio apps have to be restarted
if all devices go away, before they start working.

It also seems like the right thing to do, because if you remove links
manually, this does not cause errors to occur.
https://invent.kde.org/neon/backports-focal/pipewire/commit/83f72489ad43d25172804ab13b03e73ed00886fa

Git commit 956c83f1c8ccb39ee566c51b44aedc7d61de3f67 by Peter Hutterer on 09/08/2021 at 06:48..
conf: rework conf_load to take a path only

Refacturing to make it possible to read from different paths.
https://invent.kde.org/neon/backports-focal/pipewire/commit/956c83f1c8ccb39ee566c51b44aedc7d61de3f67

Git commit 55c264d2a5a776545ecd69ad7b843e6e0d795ef7 by Peter Hutterer on 09/08/2021 at 06:52..
conf: store state in XDG_STATE_HOME

Defaulting to $HOME/.local/state, this is the directory that state
information is to be kept.

As with the configuration loading, where a caller requests an absolute
path, that path will be honored, we only fall back to XDG_STATE_HOME for
relative paths.

This adds a new PIPEWIRE_STATE_DIR environment variable to override this
directory.
https://invent.kde.org/neon/backports-focal/pipewire/commit/55c264d2a5a776545ecd69ad7b843e6e0d795ef7

Git commit 7fda66142b108eb37f6660bd4cc1acf2c324bb45 by Wim Taymans on 09/08/2021 at 07:47..
conf: try to load state from where we saved it

When XDG_STATE_HOME is unset, we save in $HOME/.local/state/pipewire,
so try to first load the state file from there as well before we
try to fall back to the old XDG_CONFIG_HOME location.
https://invent.kde.org/neon/backports-focal/pipewire/commit/7fda66142b108eb37f6660bd4cc1acf2c324bb45

Git commit 0e386b6584e17823175eca2ef1ec0c7b93eff976 by Wim Taymans on 09/08/2021 at 08:50..
context: also set driver on inactive nodes that want one

Also set the driver on an inactive node when it wants a driver.

Fixes the case where xjadeo does not activate itself but still wants
to poll the transport state of the driver.

See #1491
https://invent.kde.org/neon/backports-focal/pipewire/commit/0e386b6584e17823175eca2ef1ec0c7b93eff976

Git commit 03a4c0100a8ce865dcc889d2232ee7a79f16f1bb by Niklāvs Koļesņikovs on 09/08/2021 at 10:37..
pipewire-jack/src/meson.build: turn jack-devel warning into error

Almost no one will see that warning just like the rest of Meson
configuration warnings. So, if it's gonna yield a build with
dysfunctional JACK SDK, then it's best to make it explicitly fail
before people file bugs about missing jack.pc file.
https://invent.kde.org/neon/backports-focal/pipewire/commit/03a4c0100a8ce865dcc889d2232ee7a79f16f1bb

Git commit 35d7ad55293066be4390f78b70e9a1e1f414eb68 by Wim Taymans on 09/08/2021 at 12:18..
acp: compare the HW volume against stored HW volume

When we store the real_volume we get a hardware_volume as stored
in the mixer and a residual software_volume.

When we read the volume from the card, we need to compare this against
the hardware_volume we stored to check if something changed, not
against the real_volume that also contains the leftover software_volume.
https://invent.kde.org/neon/backports-focal/pipewire/commit/35d7ad55293066be4390f78b70e9a1e1f414eb68

Git commit 5a4ef78480292e3e25602dc44ed81948fb3ed75a by Wim Taymans on 09/08/2021 at 13:27..
pulse-server: fix some indent errors
https://invent.kde.org/neon/backports-focal/pipewire/commit/5a4ef78480292e3e25602dc44ed81948fb3ed75a

Git commit 780f2d645d0bab64f2833a93d0985593699b125f by Wim Taymans on 09/08/2021 at 13:28..
alsa: enable client-rt for alsa clients

So that the pipewire thread is running with RT priority.
https://invent.kde.org/neon/backports-focal/pipewire/commit/780f2d645d0bab64f2833a93d0985593699b125f

Git commit e2d810a9b985f6e6d9ca77a3909b8bd736a99963 by Pauli Virtanen on 09/08/2021 at 18:02..
media-session: fix linking nodes with targets to wrong nodes

For nodes that have node.target set, when the target is not available,
media-session links them to any available node.  If the target node
appears afterward, media-session would not re-link them, leading to
output being directed to wrong place (e.g. pavucontrol input monitor)
even though the intended target or a better fallback is available.

This occurs e.g. when devices are removed and re-added.

Fix this by (i) for reconnectable nodes, reconnect them if target
appears later, and (ii) for non-reconnectable nodes, raise error to the
client if node.target is set but not found (but proceed to fallback if
obj->target_node is set).

Also slightly reorganize policy-node.c:rescan_node for clarity.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e2d810a9b985f6e6d9ca77a3909b8bd736a99963

Git commit 8c6b111ea6708b8f1bc3a021b900bfec8d5e05a1 by Pauli Virtanen on 09/08/2021 at 18:02..
media-session: simplify target node handling + fix priorities

Handle all node.target behavior in rescan_node.

Make distinction between target nodes set in session manager via
metadata or via restore-stream; priorities are
metadata > client's node.target > restore-stream.
Allow metadata override to also remove the target node setting.
https://invent.kde.org/neon/backports-focal/pipewire/commit/8c6b111ea6708b8f1bc3a021b900bfec8d5e05a1

Git commit aa0736d67f5c0499193a6a6d1f0c331768018998 by Pauli Virtanen on 09/08/2021 at 19:25..
pulse-server: allow moving nodes with node.target to default sink/src

Set node.target metadata to "-1" instead of deleting it to direct nodes
to the default device.

Deleting the metadata, as done previously, does not work for nodes for
which the client has node.target set.
https://invent.kde.org/neon/backports-focal/pipewire/commit/aa0736d67f5c0499193a6a6d1f0c331768018998

Git commit bdc164f509b1343605b2e07faa4d7beb389c57e8 by Wim Taymans on 10/08/2021 at 08:45..
udev: fix behringer UMC202 usb device id

See https://usb-ids.gowdy.us/read/UD/1397/0507
https://invent.kde.org/neon/backports-focal/pipewire/commit/bdc164f509b1343605b2e07faa4d7beb389c57e8

Git commit b7162d2c094e505f1b11d052f4d5d4519b088811 by Wim Taymans on 10/08/2021 at 09:14..
alsa: free alibpref after use
https://invent.kde.org/neon/backports-focal/pipewire/commit/b7162d2c094e505f1b11d052f4d5d4519b088811

Git commit 0a5a4c046d10c0a53c7d2120a523cc28663ad73b by Wim Taymans on 10/08/2021 at 09:25..
alsa: Free global state

We need to do this or else newly plugged devices might not load.

It does not seem to harm UCM config on my machine, so this reverts
3d372424ccb96fd2b705c9ed94e76a82ad44e113

See #1478
https://invent.kde.org/neon/backports-focal/pipewire/commit/0a5a4c046d10c0a53c7d2120a523cc28663ad73b

Git commit bf91be5d61eb1f68660d864bba6ae57751b715fd by Andika Triwidada on 11/08/2021 at 03:57..
Update Indonesian translation
https://invent.kde.org/neon/backports-focal/pipewire/commit/bf91be5d61eb1f68660d864bba6ae57751b715fd

Git commit b4976728c3d1255adc692c3a28b333b03db07259 by Wim Taymans (on behalf of jicksaw) on 11/08/2021 at 18:52..
filter-chain: fix parsing when control isn't last

Control had to be defined last, because after it the parser would
start skipping keys and fail to set rest of the params.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b4976728c3d1255adc692c3a28b333b03db07259

Git commit 67eb485811d7b7dd1a0bb0701b52718d470b8868 by Wim Taymans on 11/08/2021 at 18:54..
filter-chain: add convolver
https://invent.kde.org/neon/backports-focal/pipewire/commit/67eb485811d7b7dd1a0bb0701b52718d470b8868

Git commit e46799d43fae9bade7a86c70d0d018ba7646317f by Wim Taymans on 11/08/2021 at 19:10..
filter-chain: simplify parsing a little

Always parse the value and check the type.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e46799d43fae9bade7a86c70d0d018ba7646317f

Git commit 85dd03c2d809c065c1890f56ca0a3ed8b91bf6a5 by Wim Taymans on 11/08/2021 at 19:12..
filter-chain: make plugin wrapper

So that we can implement the internal plugins with a more expressive
API than LADSPA.
https://invent.kde.org/neon/backports-focal/pipewire/commit/85dd03c2d809c065c1890f56ca0a3ed8b91bf6a5

Git commit 48136b4c2b6b7d7a2230980bafedb7f22be4b6b5 by Wim Taymans on 11/08/2021 at 19:12..
filter-chain: simplify the plugin API
https://invent.kde.org/neon/backports-focal/pipewire/commit/48136b4c2b6b7d7a2230980bafedb7f22be4b6b5

Git commit a2aaa713920c7e22dc4f99426acc5389a42f730c by Wim Taymans on 11/08/2021 at 19:12..
filter-chain: simplify plugin API some more
https://invent.kde.org/neon/backports-focal/pipewire/commit/a2aaa713920c7e22dc4f99426acc5389a42f730c

Git commit 44c6ec146e1f03281c2654aed089013ba0f37466 by Wim Taymans on 11/08/2021 at 19:33..
filter-chain: parse config options

Remove LADSPA dependencies, only use it in ladspa_plugin.c
Parse convolver config, like filename
https://invent.kde.org/neon/backports-focal/pipewire/commit/44c6ec146e1f03281c2654aed089013ba0f37466

Git commit be9ac91ce129bfbecc924d2caa5cfa7b7e021004 by Wim Taymans on 11/08/2021 at 19:33..
filter-chain: read samples correctly
https://invent.kde.org/neon/backports-focal/pipewire/commit/be9ac91ce129bfbecc924d2caa5cfa7b7e021004

Git commit dbe9f0247116c089bf7922745cb388633bfa3dc8 by Wim Taymans on 11/08/2021 at 19:33..
filter-chain: add support to read from offset

So that the channel of the response file can be set
https://invent.kde.org/neon/backports-focal/pipewire/commit/dbe9f0247116c089bf7922745cb388633bfa3dc8

Git commit 755eab0cd3230fd6e9c5a7042e8ee1fc5e15e252 by Wim Taymans on 11/08/2021 at 19:33..
filter-chain: add more convolver options

Add gain, delay, offset, length, channels options.
Make default blocksize depend on the ir length.
https://invent.kde.org/neon/backports-focal/pipewire/commit/755eab0cd3230fd6e9c5a7042e8ee1fc5e15e252

Git commit ce2b3853188240e46f77165217a49a6ac87ee0f4 by Wim Taymans on 11/08/2021 at 19:33..
filter-chain: protect against bad values
https://invent.kde.org/neon/backports-focal/pipewire/commit/ce2b3853188240e46f77165217a49a6ac87ee0f4

Git commit f816f702a5bd621a79cefeda9442801418a58fce by Wim Taymans on 12/08/2021 at 07:59..
filter-chain: make sndfile optional

Replace the code paths that require sndfile with a fallback when the
dependency was not found.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f816f702a5bd621a79cefeda9442801418a58fce

Git commit f87942027f5776e3f24e2ea60ed659ea38b8308f by Wim Taymans (on behalf of Zsombor Welker) on 12/08/2021 at 18:45..
bluez5: report HF indicator 2 based battery status

HF indicator 2 (see [assigned-numbers], Hands-Free Profile) is able to
report battery percentage at 1% intervals (in range [0, 100]), contrary
to the `+XAPL` `+IPHONEACCEV` extension which only supports 10%
increments.  This does not guarantee increased granularity however, as
peers may still be limited to imprecise battery measurements internally
or round to coarser percentages.
Supporting both additionally broadens the range of devices for which PW
can report its battery level.

[assigned-numbers]:
https://www.bluetooth.com/specifications/assigned-numbers/
https://invent.kde.org/neon/backports-focal/pipewire/commit/f87942027f5776e3f24e2ea60ed659ea38b8308f

Git commit be6824cb15a0e621ce7efc978f70ed275a474bb1 by Wim Taymans (on behalf of Sanchayan Maity) on 12/08/2021 at 18:54..
bluez5-device: Set device intended role for HFP
https://invent.kde.org/neon/backports-focal/pipewire/commit/be6824cb15a0e621ce7efc978f70ed275a474bb1

Git commit eff67c3c03c9406b183d9ba8a01cbdbd973f4aa8 by Wim Taymans (on behalf of Torkel Niklasson) on 12/08/2021 at 18:59..
Add log level argument to ratelimit_test function

If a log message is rate limited, we only need to know about it if we
are actually interested in that log level. We therefore add an argument
to the ratelimit_test function to set the log level of the message
printed if a message is skipped

Change-Id: I5ccd4a78bf7e972fe8b0e7133cd7e08c1e38835f
https://invent.kde.org/neon/backports-focal/pipewire/commit/eff67c3c03c9406b183d9ba8a01cbdbd973f4aa8

Git commit a1777d00e3bf8ade9ce0c80d8e9ebe02f1c3f00c by Zsombor Welker on 12/08/2021 at 19:13..
bluez5: correct parsing order for HF indicator 2 based battery status

Since "AT+BIND=" was before "AT+BIND=?", the seconds statement was never
matched.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a1777d00e3bf8ade9ce0c80d8e9ebe02f1c3f00c

Git commit f5850af4d89e81f90255df982a9d251ff2621be8 by Zsombor Welker on 13/08/2021 at 08:30..
bluez5: handle XAPL battery level per Apple Guidelines

Corrects the handling of AT+XAPL Apple extensions to send
`+XAPL=iPhone,2` instead of `+XAPL: iPhone,2` based on Apple's
documentation.

Replaces magic numbers with enum values.

[Accessory Design Guidelines](https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf)
https://invent.kde.org/neon/backports-focal/pipewire/commit/f5850af4d89e81f90255df982a9d251ff2621be8

Git commit 5071589aea35227440a75476c7c5f342e81a4ef6 by Wim Taymans (on behalf of Pauli Virtanen) on 13/08/2021 at 18:45..
bluez5: enable SBC-XQ codec by default, if allowed by quirks

Enable SBC-XQ by default, and move it at the end of the codecs list, so
that bluez does not connect to it automatically except when it is the
codec used previously.

When the codec is disabled by quirks, it won't appear in the codecs
list, and so can't be selected by user (and so won't be connected
automatically).

However, since SelectConfiguration does not carry information which
device is in question, we cannot prevent BlueZ connecting to the codec
even if it's disabled for a specific device. If the "impossible" occurs
regardless, we won't reject the connection and the profile will be shown
as the generic "A2DP" one.  If the sound is garbled, the user can select
some other profile that works.
https://invent.kde.org/neon/backports-focal/pipewire/commit/5071589aea35227440a75476c7c5f342e81a4ef6

Git commit 672223d05524fc743cc843d5ac47a635bf89f07b by Pauli Virtanen on 13/08/2021 at 20:37..
bluez5: avoid poll busy loop in a2dp-sink

Disable flush polling when we don't have data ready to write to the
socket (or socket send failed). This avoids entering into a poll busy
loop, which may result to rtkit killing the process.
https://invent.kde.org/neon/backports-focal/pipewire/commit/672223d05524fc743cc843d5ac47a635bf89f07b

Git commit ffb7893f20b815a4ffaee48d0597509692e881bd by Wim Taymans (on behalf of Arun Raghavan) on 15/08/2021 at 15:09..
doc: Fix minor copy-pasto in impl-module
https://invent.kde.org/neon/backports-focal/pipewire/commit/ffb7893f20b815a4ffaee48d0597509692e881bd

Git commit b6ea0dee4631ad41163286334164e18bab2a805d by Oğuz Ersen on 15/08/2021 at 17:06..
po: update turkish translation
https://invent.kde.org/neon/backports-focal/pipewire/commit/b6ea0dee4631ad41163286334164e18bab2a805d

Git commit 920d6f2288e0bd54a64bbe87efc33a8e580281ac by Dylan Aïssi on 16/08/2021 at 08:18..
Merge tag '0.3.33' into upstream/latest
https://invent.kde.org/neon/backports-focal/pipewire/commit/920d6f2288e0bd54a64bbe87efc33a8e580281ac

Git commit 2bf5d2dfcdf298f3463e01efe5da60fb31203e34 by Dylan Aïssi on 16/08/2021 at 09:26..
Merge branch 'debian/experimental' into debian/master
https://invent.kde.org/neon/backports-focal/pipewire/commit/2bf5d2dfcdf298f3463e01efe5da60fb31203e34

Git commit 1601e37555bea83579237cdd576564eb25ff0b9a by Dylan Aïssi on 16/08/2021 at 09:29..
Merge branch 'upstream/latest' into debian/master
https://invent.kde.org/neon/backports-focal/pipewire/commit/1601e37555bea83579237cdd576564eb25ff0b9a

Git commit 120d94ec5a0ae7575b365e383469c22d72422ead by Dylan Aïssi on 16/08/2021 at 09:30..
Use debian/master branch in d/gbp.conf
https://invent.kde.org/neon/backports-focal/pipewire/commit/120d94ec5a0ae7575b365e383469c22d72422ead

Git commit 84769d0f69211440bf154089884f9b257f52c696 by Dylan Aïssi on 16/08/2021 at 09:32..
Bump d/changelog
https://invent.kde.org/neon/backports-focal/pipewire/commit/84769d0f69211440bf154089884f9b257f52c696

Git commit 62f88664a229d3520ad293cb848deca03e00a71f by Dylan Aïssi on 16/08/2021 at 09:43..
Disable aptX support for now, upstream has switched from libopenaptx to libfreeaptx (not yet in Debian)
https://invent.kde.org/neon/backports-focal/pipewire/commit/62f88664a229d3520ad293cb848deca03e00a71f

Git commit f44ee592b541bc99a6be9a20fdcce7925074d21e by Dylan Aïssi on 16/08/2021 at 09:51..
Upload to unstable
https://invent.kde.org/neon/backports-focal/pipewire/commit/f44ee592b541bc99a6be9a20fdcce7925074d21e

Git commit 6c9f342775306209b353c60856a45118b1dbd24b by Wim Taymans (on behalf of Anukul) on 16/08/2021 at 10:04..
Update 90-pipewire-alsa.rules --> add rule for gsx 1200
https://invent.kde.org/neon/backports-focal/pipewire/commit/6c9f342775306209b353c60856a45118b1dbd24b

Git commit ee6d363481e05ebb43ddeeb316b937b598bad19b by Wim Taymans on 16/08/2021 at 18:31..
filter-chain: add the 2 stage convolver

So that the tail is processed with a larger fft size to make it
faster for larger convolutions.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ee6d363481e05ebb43ddeeb316b937b598bad19b

Git commit 6d196b1d1192ee49fb5784f55f920797bd26412e by Wim Taymans on 17/08/2021 at 08:04..
alsa: use ProcessLatency param to get and set internal latency
https://invent.kde.org/neon/backports-focal/pipewire/commit/6d196b1d1192ee49fb5784f55f920797bd26412e

Git commit a2083d12d468e412537831579895815716305bc2 by Wim Taymans on 17/08/2021 at 08:15..
alsa: add params to set default internal latency
https://invent.kde.org/neon/backports-focal/pipewire/commit/a2083d12d468e412537831579895815716305bc2

Git commit 5a05ee87536ba2b3ad5b33af9958d831def813fd by Wim Taymans on 17/08/2021 at 08:28..
media-session: fix defaults for internal latency
https://invent.kde.org/neon/backports-focal/pipewire/commit/5a05ee87536ba2b3ad5b33af9958d831def813fd

Git commit 391465d1cd84b0fcf6d489d160b5054a0f1af95d by Wim Taymans on 17/08/2021 at 08:49..
audioadapter: emit Latency param changed when follower changed

When the follower port Emits a latency param changed, our reported
latency also changes so we need to emit the changed notify.
https://invent.kde.org/neon/backports-focal/pipewire/commit/391465d1cd84b0fcf6d489d160b5054a0f1af95d

Git commit c39d374ca81b391b5c64fe3ab6da0614459c138f by Wim Taymans on 17/08/2021 at 09:57..
alsa: hook up latencyOffsetNsec in ALSA sink/source

This property is exposed on the device Route and forwarded to the
nodes. It then configured the process_latency.ns field, which
influences the reported port latency.

This makes it possible to change the internal port latency on the
sink and source with pavucontrol and tweak the synchronization to
compensate for internal latencies in the device.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c39d374ca81b391b5c64fe3ab6da0614459c138f

Git commit a5e2e955d2ea0b1f0df1ab7e9396d4ccb8652071 by Wim Taymans on 17/08/2021 at 12:45..
audioconvert: add more conversions

Add the other endian conversions.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a5e2e955d2ea0b1f0df1ab7e9396d4ccb8652071

Git commit fd82da938ad1d0795ddd722707eb14fbfba35eba by Wim Taymans on 17/08/2021 at 13:03..
audioconvert: add more format support

Add support to endian conversion as well.
https://invent.kde.org/neon/backports-focal/pipewire/commit/fd82da938ad1d0795ddd722707eb14fbfba35eba

Git commit d0d7f2f20bfe88ee7a661cfedf9ade041b44c8e3 by Wim Taymans on 17/08/2021 at 15:31..
spa: add alaw and ulaw defines

Add alaw and ulaw as raw formats.
https://invent.kde.org/neon/backports-focal/pipewire/commit/d0d7f2f20bfe88ee7a661cfedf9ade041b44c8e3

Git commit df9f79d869d545bde5aea3c2b107d7fe471aa1ac by Wim Taymans on 17/08/2021 at 15:32..
audioconvert: add converstion to and from alaw/ulaw
https://invent.kde.org/neon/backports-focal/pipewire/commit/df9f79d869d545bde5aea3c2b107d7fe471aa1ac

Git commit e9679afb120afb973999632e2fe254d9f35bc1b4 by Wim Taymans on 17/08/2021 at 15:33..
audioconvert: support alaw/ulaw conversion
https://invent.kde.org/neon/backports-focal/pipewire/commit/e9679afb120afb973999632e2fe254d9f35bc1b4

Git commit c3db68a219434279a9f63ae2fa28fa943948c4cd by Wim Taymans on 17/08/2021 at 15:34..
gst: support ulaw/alaw conversion of caps
https://invent.kde.org/neon/backports-focal/pipewire/commit/c3db68a219434279a9f63ae2fa28fa943948c4cd

Git commit 961f478af891a435997fd0752f4f52b229a533f0 by Wim Taymans on 17/08/2021 at 15:35..
pulse-server: add alaw/ulaw support
https://invent.kde.org/neon/backports-focal/pipewire/commit/961f478af891a435997fd0752f4f52b229a533f0

Git commit f7c91491cb4e333dd42429271b5c9d609be3ad74 by Wim Taymans on 17/08/2021 at 15:35..
pw-cat: support ulaw/alaw formats
https://invent.kde.org/neon/backports-focal/pipewire/commit/f7c91491cb4e333dd42429271b5c9d609be3ad74

Git commit 49c1c0386f136a78f82a6b7601b3f06bb90e48b8 by Wim Taymans on 17/08/2021 at 15:56..
pw-cat: fix raw read

raw read needs bytes, so use the stride to calculate it from frames.
Move ulaw/alaw to packed formats.
https://invent.kde.org/neon/backports-focal/pipewire/commit/49c1c0386f136a78f82a6b7601b3f06bb90e48b8

Git commit cad64bc99230312314935b9ae042a80762c81227 by Wim Taymans (on behalf of Julian Bouzas) on 17/08/2021 at 16:01..
audioadapter: add support for passthrough mode

Allows audioadapter to behave as its follower
https://invent.kde.org/neon/backports-focal/pipewire/commit/cad64bc99230312314935b9ae042a80762c81227

Git commit bf66a3b2362093dbcc3a35dffe4d6bea2a896c67 by Wim Taymans on 17/08/2021 at 18:05..
pulse-server: use NODE_RATE to suggest a graph rate

When the rate is in the allowed rates and the graph is idle, it
will switch to the new rate.
https://invent.kde.org/neon/backports-focal/pipewire/commit/bf66a3b2362093dbcc3a35dffe4d6bea2a896c67

Git commit c25e6cee5087768bdc8e07d6d8dec349d1ae948b by Wim Taymans on 17/08/2021 at 18:31..
pulse-server: add an example of context.exec in the config file

Extra setup with pactl or scripts can be run here.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c25e6cee5087768bdc8e07d6d8dec349d1ae948b

Git commit 0bad741d45ef7f46e1c48d10f8d8fc410168f09d by Wim Taymans on 18/08/2021 at 07:44..
pw-cat: suggest samplerate as graph rate
https://invent.kde.org/neon/backports-focal/pipewire/commit/0bad741d45ef7f46e1c48d10f8d8fc410168f09d

Git commit 2d4ded2384900feee6e1fe65fb45b06c974a1cc8 by Wim Taymans on 18/08/2021 at 07:45..
conf: waitpid needs a cleared status

It might not change the status when the process has changed state.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2d4ded2384900feee6e1fe65fb45b06c974a1cc8

Git commit 7846687df869d99d95701b419080234450fd6d8d by Wim Taymans on 18/08/2021 at 07:56..
alsa: suggest rate to graph with node.rate
https://invent.kde.org/neon/backports-focal/pipewire/commit/7846687df869d99d95701b419080234450fd6d8d

Git commit f8aa4dcfccd1779b4569000249b9532fb491901b by Wim Taymans on 18/08/2021 at 14:20..
context: only prepared nodes can make a node non-passive

This avoid starting the node before the link has been prepared.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f8aa4dcfccd1779b4569000249b9532fb491901b

Git commit f96fa1bf369067b87a51cc44fa310f37290b5433 by Wim Taymans on 18/08/2021 at 14:58..
pulse-server: find the rate in the format_info

Also look for the highest rate in the format_info to suggest as
the graph sample rate.

See #1523
https://invent.kde.org/neon/backports-focal/pipewire/commit/f96fa1bf369067b87a51cc44fa310f37290b5433

Git commit fc2fe127941ce7a7b5de521d19a01bd57435f724 by Wim Taymans (on behalf of Pauli Virtanen) on 18/08/2021 at 19:55..
bluez5: update a2dp-codecs.h from bluez with aptx-ll caps
https://invent.kde.org/neon/backports-focal/pipewire/commit/fc2fe127941ce7a7b5de521d19a01bd57435f724

Git commit 73994feda92c9ed4663766cd56902c437b655519 by Wim Taymans (on behalf of Pauli Virtanen) on 18/08/2021 at 19:55..
bluez5: allow same codec ID to correspond to multiple endpoints

The codec IDs are user-visible properties.

Some codecs can have multiple endpoints (e.g. different caps struct, or
multiple possible vendor ids), so this detail should not leak to the
user.
https://invent.kde.org/neon/backports-focal/pipewire/commit/73994feda92c9ed4663766cd56902c437b655519

Git commit 90b62ba2b328bf89d05a273b376249f1402a2b26 by Wim Taymans (on behalf of Pauli Virtanen) on 18/08/2021 at 19:55..
bluez5: add aptx-LL codec

Support the low-latency variant of the aptx codec.

The magic mostly seems to be on the device side, since the stream is the
same as standard aptx, but latency is smaller even if stream/packet
sizes are the same.

Sound output latency is noticeably less than with the standard aptx.
Tested on Sennheiser HD 250 / Avantree Aria Pro.

The codec in principle also supports bidirectional duplex streams,
but that is not implemented here.
https://invent.kde.org/neon/backports-focal/pipewire/commit/90b62ba2b328bf89d05a273b376249f1402a2b26

Git commit f00ec34787dc3b92a1b201386803344026a9c6a6 by Wim Taymans (on behalf of Pauli Virtanen) on 18/08/2021 at 19:55..
bluez5: use lower latency for aptx-ll codec

This pushes the latency to 256 samples, which still seems to work
Latency of 128 seems to be too small. (NB. the number of input samples
is also the size of packets sent in bytes)

Since pipewire clients usually use powers of two, this may be the
smallest value that makes sense.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f00ec34787dc3b92a1b201386803344026a9c6a6

Git commit bb2f637839b4c1c1c2635b2934399f2574d77379 by Stefan Riesenberger on 19/08/2021 at 15:33..
pipewire-pulse: set description for ladspa sources
https://invent.kde.org/neon/backports-focal/pipewire/commit/bb2f637839b4c1c1c2635b2934399f2574d77379

Git commit abf37f618e3f2a7ed5fecf4bde72128f4ced4ea5 by Wim Taymans on 20/08/2021 at 07:26..
modules: ensure node.name and description are set

Most apps need this and some even crash when they are not set.
https://invent.kde.org/neon/backports-focal/pipewire/commit/abf37f618e3f2a7ed5fecf4bde72128f4ced4ea5

Git commit 4ab8ecfe067d5a0a1d9654de86388eecbb4430d2 by Wim Taymans on 20/08/2021 at 08:15..
pipewire: allow : in SPA_PLUGIN_DIR to scan multiple paths
https://invent.kde.org/neon/backports-focal/pipewire/commit/4ab8ecfe067d5a0a1d9654de86388eecbb4430d2

Git commit eca37b58a6e8800bf3bc12ac3ed58bedc21f3633 by Pauli Virtanen on 21/08/2021 at 17:00..
bluez5: make room for a2dp duplex channel

Some non-standard A2DP codecs (FastStream/aptX-LL) have "voice duplex
channel" that can be used to provide an A2DP duplex mode.

Add support for duplex channels, accounting for the fact that the two
directions may be encoded with different actual codecs.
https://invent.kde.org/neon/backports-focal/pipewire/commit/eca37b58a6e8800bf3bc12ac3ed58bedc21f3633

Git commit 623b6df8a20d2dc27996ea02f655a817d22ec19e by Pauli Virtanen on 21/08/2021 at 17:00..
bluez5: work around obscure issue with a2dp-source with duplex

For unknown reason the BT socket when working with A2DP "duplex" stream,
sometimes stops waking up poll when data arrives. Regardless, recv() can
read data packets from it.

To work around this, when A2DP source is in duplex mode, instead of
polling on data, we poll on a timer.
https://invent.kde.org/neon/backports-focal/pipewire/commit/623b6df8a20d2dc27996ea02f655a817d22ec19e

Git commit dedc08cdf8526a595c84415dffa475de168f7df0 by Pauli Virtanen on 22/08/2021 at 14:41..
bluez5: enable duplex for aptx-ll

aptX-LL sink devices may send back mSBC encoded data corresponding to
microphone input.  It appears to be enabled when the bidirectional link
is set in the caps, and the device also supports this.

Implement mSBC decoding in the duplex channel.

Tested to be working on Avantree Aria Pro.
https://invent.kde.org/neon/backports-focal/pipewire/commit/dedc08cdf8526a595c84415dffa475de168f7df0

Git commit b368bea98cbebfd870861150430122e7d003c0df by Wim Taymans (on behalf of Julian Bouzas) on 23/08/2021 at 08:11..
audioconvert: do _port_set_param on fmtconvert if convert mode

The fmtconvert plugin does not support SPA_PARAM_PortConfig. Instead, we need to
set the format in the specific port with SPA_PARAM_Format.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b368bea98cbebfd870861150430122e7d003c0df

Git commit c628975a7506413631b17478f8c19220984ef100 by Wim Taymans (on behalf of Pauli Virtanen) on 23/08/2021 at 08:17..
bluez5: update fastream caps from bluez
https://invent.kde.org/neon/backports-focal/pipewire/commit/c628975a7506413631b17478f8c19220984ef100

Git commit e08cdf27d56d5b9c13f12d517c90c4bf44ee0c0b by Wim Taymans (on behalf of Pauli Virtanen) on 23/08/2021 at 08:17..
bluez5: add FastStream codec

A2DP codec that uses SBC.  Has a duplex channel, which sends an SBC
stream back.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e08cdf27d56d5b9c13f12d517c90c4bf44ee0c0b

Git commit ab5fcf4a66e6e8784097fc11aced3ed832f4f521 by Wim Taymans (on behalf of Pauli Virtanen) on 23/08/2021 at 08:17..
bluez5: boost A2DP duplex microphone volume by 20 dB

There doesn't seem to be a way to control the A2DP duplex microphone
HW volume gain, and devices sometimes have very low mic volumes.

Work around this by boosting the software volume scale by +20 dB.  If it
causes clipping, the user can just reduce the volume to bring SW gain
below 1.0.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ab5fcf4a66e6e8784097fc11aced3ed832f4f521

Git commit 82fc54f2526a01a694199ee3eeeaa4af870602d7 by Wim Taymans (on behalf of Pauli Virtanen) on 23/08/2021 at 08:21..
media-session: bluez-autoswitch: save user-selected headset profile

When switching back from the recording mode, save currently selected
profile as the default headset profile to use in future.

This allows users to select a specific profile they want to use for
input, and to avoid autoswitching to HFP/HSP if they want to use a
different microphone, without needing to edit configuration files.
https://invent.kde.org/neon/backports-focal/pipewire/commit/82fc54f2526a01a694199ee3eeeaa4af870602d7

Git commit 7362a6be047305cfb4a7e3fe79316d1ef1ed2578 by Wim Taymans (on behalf of Pauli Virtanen) on 23/08/2021 at 08:21..
bluez5: update mSBC kernel version blocklist

Also versions 5.10.y, y >= 51 contain patch that removes ALT 1 support,
and fix has not reached stable yet.
https://invent.kde.org/neon/backports-focal/pipewire/commit/7362a6be047305cfb4a7e3fe79316d1ef1ed2578

Git commit 24f61deefdbbf1aabcef6009a636fc6f64623e19 by Wim Taymans on 23/08/2021 at 08:58..
media-session: also check restore-stream when info updates

We only need an info update to restore the stream so check for that
in addition to a param update.

The info update can be used to restore the stream and the param update
to update the stored value.
https://invent.kde.org/neon/backports-focal/pipewire/commit/24f61deefdbbf1aabcef6009a636fc6f64623e19

Git commit 9090f19b0a74bb02995983de61332d28d0da0bd3 by Wim Taymans on 23/08/2021 at 09:11..
audioconvert: improve passthrough mode

When in passthrough mode, use the position io to update the
io_rate_match fields for the follower. This makes it possible for the
follower to also provide the right amount of data when the converter
is not selected in passthrough.

Add an option to configure the converter in None port config where it
removes all the ports. We can use this when removing the converter to
make sure all it's ports are removed.

When we remove the converter, make sure we expose the follower ports
directly so we can use them for passthrough.
https://invent.kde.org/neon/backports-focal/pipewire/commit/9090f19b0a74bb02995983de61332d28d0da0bd3

Git commit 8f7a972a48592212f80942a46cb2eed665d1e500 by Wim Taymans on 23/08/2021 at 09:20..
audioadapter: fix passthrough switching some more

Remove the follower ports when leaving passthrough, add the DSP
ports.
Set up the link_io between follower and convert again when leaving
passthrough.
https://invent.kde.org/neon/backports-focal/pipewire/commit/8f7a972a48592212f80942a46cb2eed665d1e500

Git commit 2427eeae2b75b72b784d29edcf1dfc461b509105 by Wim Taymans on 23/08/2021 at 09:20..
audioconvert: reset converter format as well

Reset the format of the converter so that when we go back to DSP mode,
we don't expose the old ports again.
.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2427eeae2b75b72b784d29edcf1dfc461b509105

Git commit 0af0cceca248cdab5c40a720bc5e88ffb42b6c1b by Wim Taymans on 23/08/2021 at 09:20..
audioadapter: use format directly when reconfiguring

There is no need to parse and then recreate the format.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0af0cceca248cdab5c40a720bc5e88ffb42b6c1b

Git commit 8147772cf59a5508ac1351684b5947401f1416ba by Wim Taymans on 23/08/2021 at 09:31..
spa: add definitions for IEC958 (S/PDIF)

Add Format subtype and codec property.
Add codecs to include in the format codec property.
Add property to configure elements with supported codecs.
Add type info.
https://invent.kde.org/neon/backports-focal/pipewire/commit/8147772cf59a5508ac1351684b5947401f1416ba

Git commit 9dfe35b17ce1ba7482e1ec302a678bd4247a278d by Wim Taymans on 23/08/2021 at 09:31..
alsa: add enumeration of iec958 format

For hdmi and iec958 devices, enumerate the iec958 formats and
codecs. Initially only PCM is supported as a codec but with
a property or an init option, the list of codecs can be dynamically
configured.
https://invent.kde.org/neon/backports-focal/pipewire/commit/9dfe35b17ce1ba7482e1ec302a678bd4247a278d

Git commit 5feb88575c3ea2c59d61747a391257f98705eea5 by Wim Taymans on 23/08/2021 at 09:31..
spa: add helpers to parse and create iec958 formats
https://invent.kde.org/neon/backports-focal/pipewire/commit/5feb88575c3ea2c59d61747a391257f98705eea5

Git commit 437275460cda4e9f15de1bfb1d537d5c22d421a0 by Wim Taymans on 23/08/2021 at 09:31..
alsa: add set_format for iec958 formats
https://invent.kde.org/neon/backports-focal/pipewire/commit/437275460cda4e9f15de1bfb1d537d5c22d421a0

Git commit 2e6f80f808e7f8292cebc2631cb5262f775574e4 by Wim Taymans on 23/08/2021 at 09:58..
alsa: only list IEC958 codecs when iec958 or hdmi device.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2e6f80f808e7f8292cebc2631cb5262f775574e4

Git commit bceb9a4b6e2e8854c064aa7634ec7a80eb15a984 by Wim Taymans on 23/08/2021 at 09:58..
pipewire-pulse: enumerate iec958 formats for sinks
https://invent.kde.org/neon/backports-focal/pipewire/commit/bceb9a4b6e2e8854c064aa7634ec7a80eb15a984

Git commit 1a713e963ab605ea8b80629f975cf9f468faa5ef by Wim Taymans on 23/08/2021 at 10:09..
pulse-server: fix parsing and creation of iec958 formats

Implement creating IEC958 format EnumFormat params.

Fix parsing of negotiated IEC958 formats and convert to our internal
format.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1a713e963ab605ea8b80629f975cf9f468faa5ef

Git commit 10c3bf5ff3936a25f06faa560d54a292c8c052fa by Wim Taymans on 23/08/2021 at 11:03..
media-session: detect and block passthrough-only streams

If we see that the stream only has passthrough formats, make them
error immediately for now.
https://invent.kde.org/neon/backports-focal/pipewire/commit/10c3bf5ff3936a25f06faa560d54a292c8c052fa

Git commit 44d575ba700c863ca25efcde4bdd59d6aa24fe7a by Wim Taymans on 23/08/2021 at 11:06..
stream: enable adapter for all audio streams

This way, we can support streams with normal and passthrough
formats by switching the adapter mode.
https://invent.kde.org/neon/backports-focal/pipewire/commit/44d575ba700c863ca25efcde4bdd59d6aa24fe7a

Git commit 454a9bd55f8bd5e4c7ee3ec45bfaa65efbd5be0b by Wim Taymans on 23/08/2021 at 11:28..
media-session: detect passthrough and passthrough only nodes
https://invent.kde.org/neon/backports-focal/pipewire/commit/454a9bd55f8bd5e4c7ee3ec45bfaa65efbd5be0b

Git commit b0a9945ed0e563db4da7552132b0b5cf0f84fe66 by Wim Taymans on 23/08/2021 at 15:07..
alsa: only enable PCM iec958 codec when configured

Rework the codec enumeration a little and don't automatically enable PCM
as the code unless requested by the user.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b0a9945ed0e563db4da7552132b0b5cf0f84fe66

Git commit 34e53113e249f7d8962cc1076a4a8e6a5259691f by Wim Taymans on 23/08/2021 at 15:27..
pulse-server: handle the case where rate-match returns 0

Still feed the minreq amount of data into the converter.
https://invent.kde.org/neon/backports-focal/pipewire/commit/34e53113e249f7d8962cc1076a4a8e6a5259691f

Git commit 9dbfa63193831772ebc4200e611c50c5fe9ade52 by Wim Taymans on 23/08/2021 at 15:44..
audioconvert: silence an info debug message
https://invent.kde.org/neon/backports-focal/pipewire/commit/9dbfa63193831772ebc4200e611c50c5fe9ade52

Git commit 0f5face73f1194209d690aa79d5c234fa36094e5 by Wim Taymans on 23/08/2021 at 19:00..
filter-chain: use pffft for the convolver

It is faster.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0f5face73f1194209d690aa79d5c234fa36094e5

Git commit 123fe3d1c54d9c9543eb6b01e23510fad877874e by Wim Taymans on 24/08/2021 at 10:07..
filter-chain: improve pffft compilation and CPU support

Compile different pffft versions per CPU.
Plug the right version depending on the runtime CPU.

See #1543
https://invent.kde.org/neon/backports-focal/pipewire/commit/123fe3d1c54d9c9543eb6b01e23510fad877874e

Git commit 1e4e83d305a7b0705415b64014bcaf5dbdae6c11 by Wim Taymans on 24/08/2021 at 14:26..
filter-chain: add more mixer ports

Add option to set NULL data as the port data so that plugins can
skip processing.
Add 8 mixer ports and skip NULL data.
Move silence and discard samples to static area.
Improve the virtual sink examples. use the correct mixing for the HRIR
channels.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1e4e83d305a7b0705415b64014bcaf5dbdae6c11

Git commit df92c09ff5bb7937b63240a10c7150a0819750e7 by Wim Taymans on 24/08/2021 at 14:45..
filter-chain: fix loop index
https://invent.kde.org/neon/backports-focal/pipewire/commit/df92c09ff5bb7937b63240a10c7150a0819750e7

Git commit 11cb77c5773208141e2ecbe40662d508b64da9a2 by Wim Taymans on 25/08/2021 at 07:28..
context: fall back to default rate in case of errors

When the allowed rates does not contain the default rate, also
fall back to only the default rate.
See the configured rates in the properties so it can be inspected.
https://invent.kde.org/neon/backports-focal/pipewire/commit/11cb77c5773208141e2ecbe40662d508b64da9a2

Git commit 999083105ca201466e32aeaaccb7c32c69d12dfc by Wim Taymans on 25/08/2021 at 09:54..
jack: protect against bad ports and buffers
https://invent.kde.org/neon/backports-focal/pipewire/commit/999083105ca201466e32aeaaccb7c32c69d12dfc

Git commit 762f45c5a0757d8090ba27af64addc7acb410b03 by Wim Taymans on 25/08/2021 at 09:56..
jack: move the free object list to globals

Move the free object list as a global so that we can even access old
objects after client_closed.
Move the objects from a client to the global free list when we close
the client.

Ardour wants to access objects even after calling client_close() so
we need to keep them around a little longer.

See #1546
https://invent.kde.org/neon/backports-focal/pipewire/commit/762f45c5a0757d8090ba27af64addc7acb410b03

Git commit 67965d60befc35c8d56e1c82edc4a2dd95d15397 by Wim Taymans on 25/08/2021 at 11:08..
stream: fix debug message
https://invent.kde.org/neon/backports-focal/pipewire/commit/67965d60befc35c8d56e1c82edc4a2dd95d15397

Git commit 743aaa3dbd6d5a42e2d8de45f46aaf24d26b846d by Wim Taymans on 25/08/2021 at 13:11..
audioconvert: don't just copy the converter flags

We need to manage our own flags based on the direction of the follower.

We also need to make sure we only clear the NEED_CONFIGURE flag
after we are actually configured, not just when we configured our
internal converter.

See #1548
https://invent.kde.org/neon/backports-focal/pipewire/commit/743aaa3dbd6d5a42e2d8de45f46aaf24d26b846d

Git commit 3526e33fe1dccf2fe8d96b518812b25623411864 by Wim Taymans on 25/08/2021 at 14:29..
impl-node: send Pause when a Play reply is pending

When we send a Play request to the client but it deactivates before
sending the reply, make sure we send a Pause request as well so that
Play/Pause is always matched up.

Fixes #1548
https://invent.kde.org/neon/backports-focal/pipewire/commit/3526e33fe1dccf2fe8d96b518812b25623411864

Git commit a9169cf491f27ce2efa38b01cfa3d28bfe127056 by Wim Taymans on 25/08/2021 at 15:33..
pulse-server: Handle formats of virtual devices better

Virtual devices tend to start with partial fields set in the EnumFormat
param (usually rate is missing). This causes virtual devices to be
invisible until they are used in some way.

Fix this by relaxing the parsing of EnumFormat and by falling back to
the server defaults for the unspecified fields.

Fixes #1413
https://invent.kde.org/neon/backports-focal/pipewire/commit/a9169cf491f27ce2efa38b01cfa3d28bfe127056

Git commit d1f521af4050bf92f472eff12ff5f0227d2a2924 by Wim Taymans (on behalf of jakobrs) on 25/08/2021 at 15:39..
Add missing `>` in link factory usage string
https://invent.kde.org/neon/backports-focal/pipewire/commit/d1f521af4050bf92f472eff12ff5f0227d2a2924

Git commit 63ba9f98ba2f494cf650f7c74dac2a7a16e2dac9 by Pauli Virtanen on 25/08/2021 at 17:58..
bluez5: don't create aptx-ll/faststream sink endpoints

We don't currently implement encoding for the duplex channel
for these codecs, so they are not fully functional as A2DP sinks,
and their main use is anyway with headphones.

Also, the number of endpoints in BlueZ appears to be limited, and
appears to be counted across all adapters.  Unclear whether this comes
from AVDTP limitation, but currently plugging in a second BT adapter
causes the second media application registration to fail.  This change
reduces the number of endpoints enough so that registration succeeds for
two adapters.
https://invent.kde.org/neon/backports-focal/pipewire/commit/63ba9f98ba2f494cf650f7c74dac2a7a16e2dac9

Git commit 09a0fdcc0ffd2b579fa3aff3ecff02c431c58af0 by Wim Taymans on 25/08/2021 at 19:19..
protocol-simple: avoid freeing client multiple times

Ensure we only queue one cleanup operation and cancel all pending
operations when we destroy the client.

Fixes #1550
https://invent.kde.org/neon/backports-focal/pipewire/commit/09a0fdcc0ffd2b579fa3aff3ecff02c431c58af0

Git commit a701a500af12728ccc317f92dd031602b56ebd5d by Wim Taymans on 25/08/2021 at 19:20..
filter-chain: add hilbert function

Can be used to perform a 90 degree phase shift.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a701a500af12728ccc317f92dd031602b56ebd5d

Git commit 34b1ecc24488334146e7ada94272f34dcc520842 by Wim Taymans (on behalf of Julian Bouzas) on 25/08/2021 at 19:23..
pw-cat: calculate number of samples properly with io_rate_match

Fixes wrong buffer sizes when adapter is configured in passthrough mode.
https://invent.kde.org/neon/backports-focal/pipewire/commit/34b1ecc24488334146e7ada94272f34dcc520842

Git commit 1924c2c29824955b5e763f1def6967f68e403c7c by Wim Taymans on 26/08/2021 at 11:05..
0.3.34
https://invent.kde.org/neon/backports-focal/pipewire/commit/1924c2c29824955b5e763f1def6967f68e403c7c

Git commit 73854e9ec9824bdfc433db70065dfe2dafeba878 by Wim Taymans on 26/08/2021 at 15:19..
filter-chain: improve convolver

Make the input buffer a little larger and leave the top blockSize
samples zero. That way we can fill up the lower part, leave the upper
part zero padded and feed this to the fft directly. Also only clear
the lower part when we can't fill it completely.

This removes some memcpy and memset operations.
https://invent.kde.org/neon/backports-focal/pipewire/commit/73854e9ec9824bdfc433db70065dfe2dafeba878

Git commit 979239355eafd359d6ff9f55a9e9f8998ef28573 by zayar lwin on 26/08/2021 at 15:33..
po: ADD burmese [my] translation
https://invent.kde.org/neon/backports-focal/pipewire/commit/979239355eafd359d6ff9f55a9e9f8998ef28573

Git commit 8073083edfe3bbb04daccc1febd8b7bc795768da by Dylan Aïssi on 26/08/2021 at 15:52..
Merge tag '0.3.34' into upstream/latest
https://invent.kde.org/neon/backports-focal/pipewire/commit/8073083edfe3bbb04daccc1febd8b7bc795768da

Git commit d9bbcf9a418e74376dd4c1224d1ca3b63b146721 by Dylan Aïssi on 26/08/2021 at 15:53..
Merge branch 'upstream/latest' into debian/master
https://invent.kde.org/neon/backports-focal/pipewire/commit/d9bbcf9a418e74376dd4c1224d1ca3b63b146721

Git commit 0726255cec100fdc631d38760e4ae6ce4a644c42 by Dylan Aïssi on 26/08/2021 at 15:56..
Bump d/changelog
https://invent.kde.org/neon/backports-focal/pipewire/commit/0726255cec100fdc631d38760e4ae6ce4a644c42

Git commit 27016419ef43b1f61e1d13f2a2f0993636f7ffa6 by Dylan Aïssi on 26/08/2021 at 16:10..
Don't install sink-convolver.conf (filter-chain example configuration)
https://invent.kde.org/neon/backports-focal/pipewire/commit/27016419ef43b1f61e1d13f2a2f0993636f7ffa6

Git commit d4fbf733e2c645f270cf68283e3d6f4c6edf12eb by Dylan Aïssi on 26/08/2021 at 16:18..
Update symbols file
https://invent.kde.org/neon/backports-focal/pipewire/commit/d4fbf733e2c645f270cf68283e3d6f4c6edf12eb

Git commit 863cb8084839df1336a6fdc3aedf32e0cc6a6347 by Dylan Aïssi on 26/08/2021 at 18:54..
Upload to unstable
https://invent.kde.org/neon/backports-focal/pipewire/commit/863cb8084839df1336a6fdc3aedf32e0cc6a6347

Git commit 1fe54e5f17d608198c05f9a3853c6af083bcc5ce by zayar lwin on 27/08/2021 at 11:44..
Update LINGUAS now conclude [my]
https://invent.kde.org/neon/backports-focal/pipewire/commit/1fe54e5f17d608198c05f9a3853c6af083bcc5ce

Git commit 994630cb3a3ff09332ad10330a5492704de0cca1 by Wim Taymans on 27/08/2021 at 15:11..
filter-chain: optimize convolver some more

Add function to convolve without accumulate and use that when possible
to avoid some memset and memcpy.
https://invent.kde.org/neon/backports-focal/pipewire/commit/994630cb3a3ff09332ad10330a5492704de0cca1

Git commit 4677cc348cbd34faf17a63058c703a46934d23be by Wim Taymans on 27/08/2021 at 15:12..
stream: clear the draining/drained state when inactive

When we inactivate the stream, clear the draining/drained state.
Otherwise, the stream stays in the drained state and won't call the
process function anymore when we activate it again.

This used to work before because we called the process function from the
Start command, which would queue a buffer and unset the drained flag.
Calling the process function from Start was however not right when the
process function needed to be called from the RT thread or when the
stream is a driver.

Fixes the issue where speaker-test would only play one channel.
https://invent.kde.org/neon/backports-focal/pipewire/commit/4677cc348cbd34faf17a63058c703a46934d23be

Git commit e90c436f3ae8109c230f64cb13f2f5d6d8b28fff by Wim Taymans on 27/08/2021 at 19:05..
filter-chain: remove another copy
https://invent.kde.org/neon/backports-focal/pipewire/commit/e90c436f3ae8109c230f64cb13f2f5d6d8b28fff

Git commit b057c9166d3be7250f0f8518f52026c1a8d7f18e by Pauli Virtanen on 29/08/2021 at 13:34..
bluez5: don't try to autoconnect same device via multiple adapters

If you use multiple BT adapters, it's annoying that PW tries to
autoconnect to the device via all available adapters, and you end up
with multiple connections to the same device (which does not necessarily
work).

Avoid this by autoconnecting with only the first adapter that sees the
device.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b057c9166d3be7250f0f8518f52026c1a8d7f18e

Git commit 2c7cdcfa413523c63340e46c48c83d68ebf262a2 by Konstantin Kharlamov on 29/08/2021 at 22:12..
media-session: constify various params
https://invent.kde.org/neon/backports-focal/pipewire/commit/2c7cdcfa413523c63340e46c48c83d68ebf262a2

Git commit 60480f422ec223d28ad76bbcd352ab0b7fc48827 by Konstantin Kharlamov on 29/08/2021 at 22:12..
media-session: simplify save_profile
https://invent.kde.org/neon/backports-focal/pipewire/commit/60480f422ec223d28ad76bbcd352ab0b7fc48827

Git commit b136bb8ca5675ad67c338f88f49f1f93a9ab88f0 by Wim Taymans (on behalf of Julian Bouzas) on 30/08/2021 at 08:01..
pipewire-pulse: delay create stream reply if the peer is not found

When the client adapter is configured in passthrough mode, the stream param
changed event in pipewire-pulse is emitted before the session manager creates
the link, and not after. Therfore, the peer can never be found when replying
create stream, and the pulseaudio application receives a stream error.

This patch delays the create stream reply until the link is added if the peer
cannot be found, fixing the above race conditon to allow passthrough mode to
work with pulseaudio applications.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b136bb8ca5675ad67c338f88f49f1f93a9ab88f0

Git commit d4b06431ff565f4db5ce2810304ca0f496810103 by Wim Taymans (on behalf of Julian Bouzas) on 30/08/2021 at 08:01..
pulse-server: calculate buffer size based on the frame size

Audio with big frame sizes (especially audio with multiple channels) needs more
buffer size than the one calculated with the current formula. This patch uses
the frame size to calculate the buffer size, fixing playback issues for clients
configured in passthrough mode.
https://invent.kde.org/neon/backports-focal/pipewire/commit/d4b06431ff565f4db5ce2810304ca0f496810103

Git commit cff9dbf9dda7661916f0fb79ba1ebceb0396d95e by Wim Taymans on 30/08/2021 at 08:50..
echo-cancel: improve properties

Make the streams passive so that things can suspend.
Use a differend node.name for the input and output streams so that
autoconnect can actually remember the right target.
Make the media.name and description nicer.

See #1557
https://invent.kde.org/neon/backports-focal/pipewire/commit/cff9dbf9dda7661916f0fb79ba1ebceb0396d95e

Git commit 09ee977141f0ddc40697f04827cca61a1ef50809 by Wim Taymans on 30/08/2021 at 15:36..
alsa: cache UCM config

ALSA has problems with creating more than 8 configs per card so cache
the config per card and reuse it.

Fixes problems with no devices after logging out and in again because
ALSA can't create UCM profiles anymore.

See #1553
https://invent.kde.org/neon/backports-focal/pipewire/commit/09ee977141f0ddc40697f04827cca61a1ef50809

Git commit 9f57341699db6bf8c0cf9ecd343805dcc1988735 by Wim Taymans on 30/08/2021 at 19:26..
module-pulse-tunnel: set the bufferattr right

tlength for playack and fragsize for capture.

See #1434
https://invent.kde.org/neon/backports-focal/pipewire/commit/9f57341699db6bf8c0cf9ecd343805dcc1988735

Git commit d34c4facc04720639e23ff37966597b582ddaa5e by Wim Taymans on 30/08/2021 at 21:27..
module-roc: fix properties

Actually set the right properties on the source and sink.

Not quite right because the pulseaudio ROC has a sink-input or a
playback stream in pipewire.

See #1538
https://invent.kde.org/neon/backports-focal/pipewire/commit/d34c4facc04720639e23ff37966597b582ddaa5e

Git commit e7db65b133aea134a9201f504c1bd1b4e755be00 by Wim Taymans (on behalf of Konstantin Kharlamov) on 31/08/2021 at 08:42..
media-session: remove unused props from `struct profile`
https://invent.kde.org/neon/backports-focal/pipewire/commit/e7db65b133aea134a9201f504c1bd1b4e755be00

Git commit a4f3a230953b20091598f184ea653b0af325fbe7 by Wim Taymans (on behalf of Konstantin Kharlamov) on 31/08/2021 at 08:42..
tools/pw-dump: add support for --color-always
https://invent.kde.org/neon/backports-focal/pipewire/commit/a4f3a230953b20091598f184ea653b0af325fbe7

Git commit 3300f5ddc444a06ac16383864d340e4df73a22a7 by Wim Taymans on 31/08/2021 at 09:45..
context: activate loopback to drivers

We start with setting the visitied flag on the driver. Still follow the
links to other visited nodes because it might make them active. for
example, adding a link between two midi ports should make the midi
driver running so that data flows between the ports.

See #1559
https://invent.kde.org/neon/backports-focal/pipewire/commit/3300f5ddc444a06ac16383864d340e4df73a22a7

Git commit 71055dce7340f15784000e47c1c5b53293468ded by Wim Taymans on 31/08/2021 at 10:38..
alsa: handle excessive delay values gracefully

When we read an excessively large delay value, clamp it to twice the
delay so that we don't set our timeout to something too far in the
future.
https://invent.kde.org/neon/backports-focal/pipewire/commit/71055dce7340f15784000e47c1c5b53293468ded

Git commit dce6f30954ed6fcb69e43c603b565672008d906b by Wim Taymans on 31/08/2021 at 11:46..
filter-chain: rename sink-convolver

Rename to what it actually does.
https://invent.kde.org/neon/backports-focal/pipewire/commit/dce6f30954ed6fcb69e43c603b565672008d906b

Git commit e7a43f6d915f31dd0d53957677aa048c3f8a5988 by Wim Taymans on 31/08/2021 at 11:52..
filter-chain: add 7.1 virtual sink example
https://invent.kde.org/neon/backports-focal/pipewire/commit/e7a43f6d915f31dd0d53957677aa048c3f8a5988

Git commit 592163fb0a7249c89480cddeff9da030286b22ea by Wim Taymans on 31/08/2021 at 14:04..
stream: rename a variable
https://invent.kde.org/neon/backports-focal/pipewire/commit/592163fb0a7249c89480cddeff9da030286b22ea

Git commit 01f640709e716e37f806d496969a6932bf711da3 by Wim Taymans on 01/09/2021 at 11:22..
alsa: always list PCM as iec958 codec

Always put PCM as the supported format for iec958.
Only accept iec958codecs for iec958 capable nodes.
https://invent.kde.org/neon/backports-focal/pipewire/commit/01f640709e716e37f806d496969a6932bf711da3

Git commit ab3e265b2c1fdf633da88013f7035b3f899704e8 by Wim Taymans on 01/09/2021 at 11:22..
alsa: emit param changes correctly

Use the param user field to tag changes in the params.
codec changes emits an EnumFormat and Props change.
Accumulate various param changes and emit them together.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ab3e265b2c1fdf633da88013f7035b3f899704e8

Git commit 774db99d128a12123b9b2fcf28066faff9f0152c by Wim Taymans on 01/09/2021 at 11:22..
alsa: emit params using the user flags

Use the user field to tag changes in params, toggle the serial flag when
emiting the port or node info.
https://invent.kde.org/neon/backports-focal/pipewire/commit/774db99d128a12123b9b2fcf28066faff9f0152c

Git commit 6c3c88f9d377fb6e2a1f6d0721bbd31568a8d7ce by Wim Taymans on 01/09/2021 at 11:22..
audioconvert: handle follower EnumFormat changes as well
https://invent.kde.org/neon/backports-focal/pipewire/commit/6c3c88f9d377fb6e2a1f6d0721bbd31568a8d7ce

Git commit 93e9efc1e48e3842da0d20bf4407db96a9e899da by Wim Taymans on 01/09/2021 at 11:23..
audioconvert: handle NULL param
https://invent.kde.org/neon/backports-focal/pipewire/commit/93e9efc1e48e3842da0d20bf4407db96a9e899da

Git commit a25396c1eb0f0f742f785ca5ff0a5b605af6ee45 by Wim Taymans on 01/09/2021 at 11:23..
pulse-server: filter out iec958 PCM formats

Convert the iec958 PCM formats differently when enumerating the sink
formats. This way we can still convert the param to a format_info.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a25396c1eb0f0f742f785ca5ff0a5b605af6ee45

Git commit 49eb31f67089f9ebdd26e4d43f6419d28f6e2fbb by Wim Taymans on 01/09/2021 at 11:23..
pulse-server: add device-restore extension

This is mostly to read and set the supported formats of a sink.
https://invent.kde.org/neon/backports-focal/pipewire/commit/49eb31f67089f9ebdd26e4d43f6419d28f6e2fbb

Git commit ea7a731106ecb02b5e80944974681985d851ff07 by Wim Taymans on 01/09/2021 at 11:24..
pulse-server: set the SINK_SET_FORMATS flag

When we have an iec958Codecs property on the node, we can use it to
configure the codecs on the sink.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ea7a731106ecb02b5e80944974681985d851ff07

Git commit eafef4043022d4731dd51de38afe49ed315d47d2 by Wim Taymans on 01/09/2021 at 11:25..
pulse-server: remove pod debug
https://invent.kde.org/neon/backports-focal/pipewire/commit/eafef4043022d4731dd51de38afe49ed315d47d2

Git commit 28cf342bb86534857b754360f540f2cdc7f4e5ad by Wim Taymans (on behalf of Jonas Holmberg) on 01/09/2021 at 15:15..
media-session: Change some warnings to info

If a program using pipewire-alsa calls snd_pcm_close() immediately after
snd_pcm_prepare() without reading or writing any data the client node
may be removed before the session manager can link it, which would
result in the following log warnings:

can't link 35:40 -> 43:48: link-factory: unknown input port 48
error id:25 seq:11467 res:-22 (Invalid argument): link-factory: unknown input port 48
can't link 35:41 -> 43:46: link-factory: unknown input port 46
error id:16 seq:11468 res:-22 (Invalid argument): link-factory: unknown input port 46
https://invent.kde.org/neon/backports-focal/pipewire/commit/28cf342bb86534857b754360f540f2cdc7f4e5ad

Git commit dddbe289fbef299f493ac075e388d1d90db038f3 by Julian Bouzas on 01/09/2021 at 21:08..
audiomixer: add support for more formats in the mix table

The S8, S16, S24 and S32 formats are now supported. The mixing process also
takes into account the number of channels.
https://invent.kde.org/neon/backports-focal/pipewire/commit/dddbe289fbef299f493ac075e388d1d90db038f3

Git commit c65ae2f2e62ce6f1047003a66cbe1e3ed3404c67 by Julian Bouzas on 01/09/2021 at 21:35..
audiomixer: refactor and add support for more formats

The audiomixer processing logic is now based on mixer-dsp.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c65ae2f2e62ce6f1047003a66cbe1e3ed3404c67

Git commit 1a93165e843e0979c02ccd144a09e568dfeff631 by Julian Bouzas on 01/09/2021 at 21:35..
impl-port: use audiomixer for RAW media subtype when setting up mixer
https://invent.kde.org/neon/backports-focal/pipewire/commit/1a93165e843e0979c02ccd144a09e568dfeff631

Git commit 80628f38e7d8152f3f80ddbbaa13395f2899b80e by Wim Taymans on 02/09/2021 at 08:27..
alsa: move codec config to acp-device

Just like the latency, move the codecs to the device Route param.
This way, it is easier for the session manager to save and restore
the codecs as part of the Route settings.
https://invent.kde.org/neon/backports-focal/pipewire/commit/80628f38e7d8152f3f80ddbbaa13395f2899b80e

Git commit f277487887d041321d2d2738871f37e5e07d034d by Wim Taymans on 02/09/2021 at 08:27..
media-session: save and restore IEC958 Codecs
https://invent.kde.org/neon/backports-focal/pipewire/commit/f277487887d041321d2d2738871f37e5e07d034d

Git commit 9052b1be33f830a973458894668a08d1fc303993 by Wim Taymans on 02/09/2021 at 09:39..
media-session: add option to restore bluetooth profile

Add default-profile.restore-bluetooth option to restore the BT
profile.

See #1567
https://invent.kde.org/neon/backports-focal/pipewire/commit/9052b1be33f830a973458894668a08d1fc303993

Git commit 99e6c77525253ca55a2b0a5282f64ff7cdddc570 by Wim Taymans on 02/09/2021 at 10:35..
alsa: improve device name construction

Get the ucm prefix only once, when we open the UCM card and then
use it for all devices using the card.

Construct the device name right before we open it with the ucm prefix
and possibly the AES flags instead of messing with the property.
https://invent.kde.org/neon/backports-focal/pipewire/commit/99e6c77525253ca55a2b0a5282f64ff7cdddc570

Git commit e5886b7bc601897c9bd68c1d1a06e07c3ebab79a by Wim Taymans on 02/09/2021 at 13:17..
alsa: pass POD_Long as (long) varargs
https://invent.kde.org/neon/backports-focal/pipewire/commit/e5886b7bc601897c9bd68c1d1a06e07c3ebab79a

Git commit ef795cc2e33067c21cd91b909bb0f676fadfefa2 by Wim Taymans on 02/09/2021 at 13:22..
pulse-server: add quirk for skypeforlinux

Or else it refuses to show the output devices in some cases for some
reason.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ef795cc2e33067c21cd91b909bb0f676fadfefa2

Git commit 5fa1ae99ae5e328bff6713bc5eedf5a3d79d3f8f by Wim Taymans on 02/09/2021 at 14:12..
media-session: implement passthrough for S/PDIF

Make sure we always suspend before reconfiguring a device.

Put the node and the device in passthrough mode when requested. Move
back to DSP mode after the node is unlinked.

Parse the exclusive flag of a stream once when the node info changes.

Use a new variable 'passthrough' to remember the current state of
a node and the peer.

Parse non-raw formats as well.

Check if two nodes can passthrough by intersecting the EnumFormat
params. If it is possible, configure the node for passthrough.

Don't try to reconnect nodes in passthrough.

Fail if we can't find a node compatible with passthrough.

See #629
https://invent.kde.org/neon/backports-focal/pipewire/commit/5fa1ae99ae5e328bff6713bc5eedf5a3d79d3f8f

Git commit c2c7dd040ab1ec8ada21ce8488382ff4176766d0 by Wim Taymans on 02/09/2021 at 15:31..
alsa: CLAMP the error just in case something goes wrong.

The calculation of the elapsed time is actually not a good idea because
it becomes larger and larger and a tiny change in the rate could result
in a large difference that would make things fail quickly.

Until that is fixed, this patch will need to do..
https://invent.kde.org/neon/backports-focal/pipewire/commit/c2c7dd040ab1ec8ada21ce8488382ff4176766d0

Git commit 034dd00813445ab5ab054b4f2b7d45f11bdc7890 by Wim Taymans on 02/09/2021 at 16:37..
alsa-seq: use better clock rate matching

Match the elapsed queue time against the elapsed graph time.
https://invent.kde.org/neon/backports-focal/pipewire/commit/034dd00813445ab5ab054b4f2b7d45f11bdc7890

Git commit a5e37540ff6d537a72b98b71e55c062559c2bebb by Wim Taymans on 03/09/2021 at 09:12..
impl-node: recalc graph when destroying a node with driver

When we destroy a node that still has another driver, recalculate the
graph so that the driver has a chance to idle.

This can happen when we add an inactive node to the driver and then
destroy the node, like for jack clients.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a5e37540ff6d537a72b98b71e55c062559c2bebb

Git commit 112d50c8b9998c52f3bee372eac6f249ba7380a6 by Wim Taymans (on behalf of columbarius) on 03/09/2021 at 09:34..
doc: clarify format negotiation

Describing different behaviour for modifier-less and modifier-aware case
and how a EnumFormat with modifier should be fixated. Also adding a Note
about `SPA_PARAM_BUFFERS_blocks`, which is important for multiplane
DMA-BUFS.
https://invent.kde.org/neon/backports-focal/pipewire/commit/112d50c8b9998c52f3bee372eac6f249ba7380a6

Git commit 7a618390eced6431389e3b9659cbac72819337a1 by Wim Taymans (on behalf of Simon Ser) on 03/09/2021 at 09:34..
doc: add warning about mapping DMA-BUFs

A list of reasons why DMA-BUFs have to be treated specially. This
should make it clearer why mmaping DMA-BUFs should be avoided and hint
clients on how treat them correctly

Co-authored-by: columbarius <co1umbarius at protonmail.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/7a618390eced6431389e3b9659cbac72819337a1

Git commit 63521c106322521122c305eec4460933d6719b5f by Wim Taymans (on behalf of columbarius) on 03/09/2021 at 09:34..
doc: add section about v4l2 dmabuf sharing
https://invent.kde.org/neon/backports-focal/pipewire/commit/63521c106322521122c305eec4460933d6719b5f

Git commit 91f1b44499f4cc41c7b4dd3630b27b009d5bdc95 by Wim Taymans on 03/09/2021 at 11:41..
introspect: improve info updates

The current _info_update() methods will always reset the change_mask in
the new info structure.

This causes problems if multiple updates are applied to the info before
the rescan in the session manager of pulse-server is excuted. The first
update is cleared and this causes the session manager to sometimes miss
the state changes of nodes and fail to suspend them.

Add a new method to merge with optional reset of the various
introspection info structures. We can use this instead and simply
accumulate all changes until the rescan code has processed all changes.
https://invent.kde.org/neon/backports-focal/pipewire/commit/91f1b44499f4cc41c7b4dd3630b27b009d5bdc95

Git commit e41187d64345cd36290c917c05a4b7d46f23c937 by Wim Taymans (on behalf of Niklāvs Koļesņikovs) on 03/09/2021 at 11:41..
man: move from xmltoman to rst2man

xmltoman looks dead and uses XML as well as pulls in a long list of
Perl dependencies. This replaces it with rst2man that has almost no
dependencies beyond Python, which is already required for the Meson
build system.

Naturally rst2man uses reStructuredText and the pages were rewritten
via regex and manual editing to be as close to original XML format
as possible. A few fixes and updates were done too. Most notably a
note was added to indicate that production deployments should not be
starting the session manager via pipewire.conf file.

There's three slight formatting issues/differences:
1. rst2man produces simpler footer.
2. "-f | --foo=value" confuses the parser and it fails to correctly
   add argument specific syntax highlighting to assignment value.
3. XML version had inconsistent use of <arg> and <opt> which has
   been partially addressed. But different manual pages still have
   their differences to what and how is highlighted.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e41187d64345cd36290c917c05a4b7d46f23c937

Git commit 40cbcf288775432891c09b441ffd09879c2bdb32 by Wim Taymans (on behalf of Niklāvs Koļesņikovs) on 03/09/2021 at 11:41..
Meson: Update two pipewire.org URLs to HTTPS
https://invent.kde.org/neon/backports-focal/pipewire/commit/40cbcf288775432891c09b441ffd09879c2bdb32

Git commit 2ce1dc113e5f057b3f314a5e1aaf47178418fb24 by Wim Taymans on 03/09/2021 at 13:45..
jack: also find uuid for monitor nodes
https://invent.kde.org/neon/backports-focal/pipewire/commit/2ce1dc113e5f057b3f314a5e1aaf47178418fb24

Git commit 699bfbc09514cd4d0b6378091272a486e6bc6641 by Wim Taymans on 03/09/2021 at 13:46..
jack: improve lookup of removed objects

Keep the original type of the object around in the free list so that we
can still look it up.

Make most methods only find the still active object by checking if the
client matches.

Make some methods (jack_port_by_id() for example) also find the removed
objects for as long as they are in the cache and not overwritten.

This make carla and catia work better because they expect to access the
old object after it has been destroyed.

See #1531
https://invent.kde.org/neon/backports-focal/pipewire/commit/699bfbc09514cd4d0b6378091272a486e6bc6641

Git commit 90371440b0c35447b760eb4df606e76c50b5b21d by Wim Taymans (on behalf of Julian Bouzas) on 03/09/2021 at 14:00..
media-session: add alsa-no-dsp module

Instruct the policy to not configure audio adapter nodes in DSP mode. Instead,
Device nodes will always be configured in passthrough mode, and client nodes
will be configured in convert or passthrough mode depending on whether the
client format matches the device format or not.
https://invent.kde.org/neon/backports-focal/pipewire/commit/90371440b0c35447b760eb4df606e76c50b5b21d

Git commit 987282b376173c429936ba2589a4fab9744f4bb9 by Pauli Virtanen on 03/09/2021 at 17:12..
spa/support: add plugin loader interface

Add a SPA interface for loading SPA plugins, so that plugins can request
the host to load other plugins.
https://invent.kde.org/neon/backports-focal/pipewire/commit/987282b376173c429936ba2589a4fab9744f4bb9

Git commit 3115775c02d7ca7c0ef16c5d0b6e2ab62564d0e8 by Pauli Virtanen on 03/09/2021 at 17:12..
context: add SPA plugin loader interface to support plugins
https://invent.kde.org/neon/backports-focal/pipewire/commit/3115775c02d7ca7c0ef16c5d0b6e2ab62564d0e8

Git commit 59d572de0914256720b4c2a4d535afc3e66d264d by Pauli Virtanen on 03/09/2021 at 17:40..
bluez5: split A2DP codecs to separate SPA plugins

Make easier to package A2DP codecs separately, by splitting each to a
separate SPA plugin.  Adjust the code to not use a global variable for
the codec list.

The A2DP SPA interface API is in the bluez5 private headers, and not
exposed in installed SPA headers, as it's too close to the
implementation.
https://invent.kde.org/neon/backports-focal/pipewire/commit/59d572de0914256720b4c2a4d535afc3e66d264d

Git commit 68e8846096a3b025c592df725449e93c4f303d00 by Wim Taymans (on behalf of Pauli Virtanen) on 03/09/2021 at 19:09..
bluez5: update kernel version blocklist

Patch fixing ALT1 mSBC is in Linux 5.10.62, 5.13.14, 5.14.1, 5.15-rc
https://invent.kde.org/neon/backports-focal/pipewire/commit/68e8846096a3b025c592df725449e93c4f303d00

Git commit f85d3907ef302e6036e82c24f48ab3dd008f0e7c by Wim Taymans (on behalf of Pauli Virtanen) on 03/09/2021 at 19:09..
bluez5: add a device to hw-volume blocklist
https://invent.kde.org/neon/backports-focal/pipewire/commit/f85d3907ef302e6036e82c24f48ab3dd008f0e7c

Git commit 44f10330e8159eef53d69c48d20a3534074fa7d3 by Wim Taymans on 05/09/2021 at 06:21..
alsa: remove AES0 settings

Remove this for now, we should only add this when actually sending
encoded formats.

Fixes #1570
https://invent.kde.org/neon/backports-focal/pipewire/commit/44f10330e8159eef53d69c48d20a3534074fa7d3

Git commit 18dde01d872a0144b5908899b4e30fe2c9a3a58f by Wim Taymans (on behalf of Pauli Virtanen) on 05/09/2021 at 06:26..
bluez5: minor error handling etc. fixups
https://invent.kde.org/neon/backports-focal/pipewire/commit/18dde01d872a0144b5908899b4e30fe2c9a3a58f

Git commit abc01083d4e085cbb7b47327ce678ed50bb5e814 by Wim Taymans (on behalf of Pauli Virtanen) on 05/09/2021 at 06:26..
context: fixup integer overflow
https://invent.kde.org/neon/backports-focal/pipewire/commit/abc01083d4e085cbb7b47327ce678ed50bb5e814

Git commit 08be841a9e99e284b50ed175b5ac65187c4e12a2 by Wim Taymans (on behalf of Peter Hutterer) on 06/09/2021 at 07:29..
doc: fix a doxygen undocumented parameter warning
https://invent.kde.org/neon/backports-focal/pipewire/commit/08be841a9e99e284b50ed175b5ac65187c4e12a2

Git commit 83ed6e0be30dbf485d7a4aa0a3bae8fb1f0b700b by Wim Taymans (on behalf of Peter Hutterer) on 06/09/2021 at 07:29..
doc: swap two @ doxygen tags for the backslash ones
https://invent.kde.org/neon/backports-focal/pipewire/commit/83ed6e0be30dbf485d7a4aa0a3bae8fb1f0b700b

Git commit 55f01ae679bb5bf462aaa0124a17ed87317cd5f6 by Wim Taymans (on behalf of Peter Hutterer) on 06/09/2021 at 07:29..
media-session: document the access-flatpak module
https://invent.kde.org/neon/backports-focal/pipewire/commit/55f01ae679bb5bf462aaa0124a17ed87317cd5f6

Git commit 6b6f5f36592333ba0bc7704782d658c34ab0cd97 by Wim Taymans (on behalf of Peter Hutterer) on 06/09/2021 at 07:29..
doc: mention xdg-desktop-portal in the media-session access-portal module

Makes it slightly easier to connect the dots.
https://invent.kde.org/neon/backports-focal/pipewire/commit/6b6f5f36592333ba0bc7704782d658c34ab0cd97

Git commit 7d13c7750d9efda95903c1f131b7e388f3498a17 by Wim Taymans (on behalf of Peter Hutterer) on 06/09/2021 at 07:29..
doc: document the portal negotation process with graphs

This is a multi-step process involving 4 processes and two modules.
Let's add some graphs to make this slightly easier to comprehend for
those not familiar with how portals work.
https://invent.kde.org/neon/backports-focal/pipewire/commit/7d13c7750d9efda95903c1f131b7e388f3498a17

Git commit 6f9586bf544b18bc33582ce5adfb5dacb80c042d by Wim Taymans (on behalf of Peter Hutterer) on 06/09/2021 at 07:29..
media-session: use more descriptive names for parsing match rules

Easier to understand this way what is being passed around and where
we're at with the parsing.
https://invent.kde.org/neon/backports-focal/pipewire/commit/6f9586bf544b18bc33582ce5adfb5dacb80c042d

Git commit 7cb718833b2d61280bda6363f3ace044b3c1bcdf by Wim Taymans (on behalf of Peter Hutterer) on 06/09/2021 at 07:29..
alsa-monitor: reword the match rule comment in the config file

Each dictionary needs to fully match but out of the dicts we have, only
one needs to match to apply. Reword that for clarity.

Also document regex vs normal string comparison vs the magic null
string.
https://invent.kde.org/neon/backports-focal/pipewire/commit/7cb718833b2d61280bda6363f3ace044b3c1bcdf

Git commit 8d741d607764d7e530be29d3e313af050974877d by Wim Taymans (on behalf of Peter Hutterer) on 06/09/2021 at 07:29..
alsa-monitor: document this module in some detail
https://invent.kde.org/neon/backports-focal/pipewire/commit/8d741d607764d7e530be29d3e313af050974877d

Git commit c54f64cd13416b0e8b98d0544a8c79ef4f8bf094 by Wim Taymans on 06/09/2021 at 10:55..
alsa: clean up rate matching code

Remove some useless fields.
Use macros for time<->rate conversions.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c54f64cd13416b0e8b98d0544a8c79ef4f8bf094

Git commit f9d8bdb9b852243408cb93af5da6110c93298106 by Wim Taymans on 06/09/2021 at 13:09..
spa: improve param result handling

Check if we actually managed to add the param to the builder before we
try to deref it.
Use a safer deref that checks the sizes of the pod and builder.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f9d8bdb9b852243408cb93af5da6110c93298106

Git commit 435de99428f7c49da1559e7ba7955a461c5579be by Wim Taymans on 06/09/2021 at 13:09..
Increase pod buffer size

The props of a 64 channel node are at least 2048 bytes long so make sure
we can build and filter them.

Fixes #1574
https://invent.kde.org/neon/backports-focal/pipewire/commit/435de99428f7c49da1559e7ba7955a461c5579be

Git commit b5ad37c7ac6a2b8d66967f71751fc666812ec85f by Pauli Virtanen on 06/09/2021 at 15:04..
bluez5: make codec loading compatible with old conf files

Change codec factory names to api.codec.bluez5.*, so that they won't
conflict with old config file lib name rules for api.bluez5.*

Specify the fallback library name when loading the codecs, so that it
works without the rules in config files.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b5ad37c7ac6a2b8d66967f71751fc666812ec85f

Git commit 6a18272fed981c29117b2d1e9f8a6a63c4564d92 by Peter Hutterer on 06/09/2021 at 22:26..
spa: mark the gettext wrappers with __attribute__((format_arg))

This removes the -Wformat-literal warnings for all _("some message")
calls. Remaining warnings are those where we pass in a custom buffer.
https://invent.kde.org/neon/backports-focal/pipewire/commit/6a18272fed981c29117b2d1e9f8a6a63c4564d92

Git commit e55a5441b8b292fa4fc7955b727f6bddf549a4aa by Peter Hutterer on 06/09/2021 at 22:26..
spa: silence two -Wformat-nonliteral warnings

In one we can duplicate the spa_asprintf call without real drawbacks.

The second one can be split up without losing details. Note that there
is another one in backend-native.c where splitting it up will make the
code harder to understand. The warning for that one remains.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e55a5441b8b292fa4fc7955b727f6bddf549a4aa

Git commit 8bb0e340c7ba9b63b6cf0effdfa87d420f954f4d by Peter Hutterer on 06/09/2021 at 22:57..
protocol-pulse: fix two -Wformat-nonliteral warnings

For the stream group, we break into the three components we write out
and print those.

For the IPv6 address printing inside [], we can make this a condition on
the printf statement.
https://invent.kde.org/neon/backports-focal/pipewire/commit/8bb0e340c7ba9b63b6cf0effdfa87d420f954f4d

Git commit 7e4d5b142f883edcb86703a1485272211d41bc05 by Wim Taymans on 07/09/2021 at 07:51..
pulse-server: don't leak format info
https://invent.kde.org/neon/backports-focal/pipewire/commit/7e4d5b142f883edcb86703a1485272211d41bc05

Git commit 959d289bcacb1c8305ce49ebd8f7e7e03d7371d4 by Wim Taymans (on behalf of Peter Hutterer) on 07/09/2021 at 07:52..
ci: add a check for modules being linked correctly in the doc

A new module requires a \subpage entry in the respective parent page.
Check for that.
https://invent.kde.org/neon/backports-focal/pipewire/commit/959d289bcacb1c8305ce49ebd8f7e7e03d7371d4

Git commit 2306124f49a7333f110ddea271307427bbaefaf9 by Wim Taymans (on behalf of Peter Hutterer) on 07/09/2021 at 07:52..
doc: fix listing of the new No DSP media-session module

And copy the text from the comment into the public documentation, better
than just having an empty page there.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2306124f49a7333f110ddea271307427bbaefaf9

Git commit 882f1aee6c5e0ffa63273bff9e5a8e3a11fff4fa by Wim Taymans on 07/09/2021 at 07:56..
media-session: turn some info in debug
https://invent.kde.org/neon/backports-focal/pipewire/commit/882f1aee6c5e0ffa63273bff9e5a8e3a11fff4fa

Git commit 2d88ad179afe868141bb29b89a299ce1373fd4ee by Wim Taymans on 07/09/2021 at 10:20..
jack: update format flags when format is set

So that the introspection of the port will show a format when it is set.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2d88ad179afe868141bb29b89a299ce1373fd4ee

Git commit f0bc0d068ecaaea5482d2753985aabcca5733de1 by Wim Taymans on 07/09/2021 at 13:48..
link: avoid multiple concurrent negotiations

When multiple links are created at the same time for the same port, we
get into a race where multiple links will try to set a format
asynchronously and eventually break the links. Avoid this by marking the
port as busy for as long as an async format or buffer is pending and
avoid starting new link negotiation when one of the ports is busy.

This problem was observed when ardour6 tries to link all device capture
ports to its single monitor port.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f0bc0d068ecaaea5482d2753985aabcca5733de1

Git commit 902444ae1a323d6f956a55c3e57d98cc85a8993a by Wim Taymans (on behalf of Peter Hutterer) on 07/09/2021 at 14:09..
meson: if media-session is to be built but alsa is missing, error out

If -Dsession-managers includes media-session, we should error out if the
dependency is missing instead of just silently skipping the build.
https://invent.kde.org/neon/backports-focal/pipewire/commit/902444ae1a323d6f956a55c3e57d98cc85a8993a

Git commit 86362407c13ec9cebea8059bf23d91c598ededa5 by Wim Taymans (on behalf of Peter Hutterer) on 07/09/2021 at 14:09..
meson: improve an error message

We have -Dsession-managers and -Ddefault-session-manager, the latter is
currently only used for pw-uninstalled.sh. Let's adjust the error
message to use "default" so it's a bit easier to understand by this may
fail with -Dsession-managers=wireplumber.
https://invent.kde.org/neon/backports-focal/pipewire/commit/86362407c13ec9cebea8059bf23d91c598ededa5

Git commit 05759e3babf210b92468b05710d58e9390eca62f by Wim Taymans (on behalf of Peter Hutterer) on 07/09/2021 at 14:09..
meson: use 'auto' as default session manager

Right now, meson -Dsession-managers=wireplumber will fail the build
because the default session manager option is set to media-session - and
if that isn't being built we error out.

Use an 'auto' value instead, selecting the first session-manager in the
list as the default one.
https://invent.kde.org/neon/backports-focal/pipewire/commit/05759e3babf210b92468b05710d58e9390eca62f

Git commit c25cec230c0619bfb7eb4c56f6325046b3274667 by Wim Taymans (on behalf of Peter Hutterer) on 07/09/2021 at 14:09..
meson: if WP is the default SM but not built, use the system one

If we're not building wireplumber but it is set as the default session
manager, search for one in $PATH and use that.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c25cec230c0619bfb7eb4c56f6325046b3274667

Git commit a54fa5f26da997346ec9a0844f2e234b51399409 by Wim Taymans on 07/09/2021 at 15:16..
jack: improve do_sync

Keep track of the last scheduled sync operation and wake up listeners
when it completes.

The waiters also compare against the last issued sync so that when multiple
syncs are pending from multiple threads, they will all wakeup instead of
just one.

Fixes some lockups with ardour6.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a54fa5f26da997346ec9a0844f2e234b51399409

Git commit 75f15accd506ac4cad0b2a801764908303be1fbb by Wim Taymans on 07/09/2021 at 18:12..
filter-chain: add dirac pulse
https://invent.kde.org/neon/backports-focal/pipewire/commit/75f15accd506ac4cad0b2a801764908303be1fbb

Git commit 1595ff37e86ca5bc982f40975b35a8a42cd49496 by Hugo Carvalho on 07/09/2021 at 20:13..
Update Portuguese Translation
https://invent.kde.org/neon/backports-focal/pipewire/commit/1595ff37e86ca5bc982f40975b35a8a42cd49496

Git commit f288a2b77d62c894ac393b350c7e03bbcfa7b392 by Wim Taymans (on behalf of Barnabás Pőcze) on 08/09/2021 at 07:32..
libcamera: fix compilation error

Upstream libcamera commit 32635054bc76e2ababd8ea2177fca1f88229541a
changed "planes" on `FrameMetadata` to be a function. Adapt
the plugin code accordingly.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f288a2b77d62c894ac393b350c7e03bbcfa7b392

Git commit 852d6fc4b690c8e8d9a0b2d2e5d802b1a69353af by Wim Taymans (on behalf of Peter Hutterer) on 08/09/2021 at 07:44..
media-session: remove a superfluous NULL check

spa_streq() checks for NULL and (through the same function) so does
pw_properties_parse_bool()
https://invent.kde.org/neon/backports-focal/pipewire/commit/852d6fc4b690c8e8d9a0b2d2e5d802b1a69353af

Git commit bc2d820b6dcb12d888b3acdb347ef685e1954a64 by Wim Taymans (on behalf of Peter Hutterer) on 08/09/2021 at 07:44..
meson: make media_session_sources unconditional

The sources are used by the documentation, so rather than duplicating
the checks for whether to build it or not, just define it as
always-present empty array and fill it when needed.

Otherwise we get a meson error if media-session is disabled but
documentation is enabled.
https://invent.kde.org/neon/backports-focal/pipewire/commit/bc2d820b6dcb12d888b3acdb347ef685e1954a64

Git commit 71ee6ec669cb4dbc229853220234ae6aed1014f5 by Wim Taymans (on behalf of Peter Hutterer) on 08/09/2021 at 07:50..
daemon: split the session-manager and pipewire-pulse comments

Let them be enabled/disabled individually.
https://invent.kde.org/neon/backports-focal/pipewire/commit/71ee6ec669cb4dbc229853220234ae6aed1014f5

Git commit 055643091fd7f457b136f0990aa5fc83216006dc by Wim Taymans (on behalf of Peter Hutterer) on 08/09/2021 at 07:50..
meson: drop default-session-manager, use the first session-manager instead

default-session-manager is only used in the pw-uninstalled.sh developer
script. c25cec230c0619bfb7eb4c56f6325046b3274667 added the ability to
use the system-installed wireplumber but other than that this option is
largely superfluous.

Drop it and pick whichever the first entry to session-manager is. For
the vast use-case of either MS or WP this will just work fine and for
the niche case of building both SMs one just needs to make sure the
order is as desired.

And in the case of no session manager, the config line to start the SM
is now commented out.
https://invent.kde.org/neon/backports-focal/pipewire/commit/055643091fd7f457b136f0990aa5fc83216006dc

Git commit 4562ef4ed05bccfac768a3e4a6f4d3f5ad430c27 by Wim Taymans on 08/09/2021 at 08:31..
update some docs
https://invent.kde.org/neon/backports-focal/pipewire/commit/4562ef4ed05bccfac768a3e4a6f4d3f5ad430c27

Git commit 8f88792a9a7618551568e9e85ce6d38e74e07bce by Wim Taymans on 08/09/2021 at 09:24..
jack: don't emit bufsize_callback from activate()

We just check the initial size of the buffer and remember that, we
should not emit (or schedule) a bufsize change callback.

Emiting the callback should really only be done after the buffer size
changes after activate completed.

Fixes some jconvolver startup problems.
https://invent.kde.org/neon/backports-focal/pipewire/commit/8f88792a9a7618551568e9e85ce6d38e74e07bce

Git commit a3fe226eac3d52514c90c22157533e162a1a719d by Wim Taymans on 08/09/2021 at 09:28..
context: don't try to change the quantum when idle

When the driver is going to be idle or not running, avoid updating
the quantum.

This is mostly when a node is moved to another driver. Changing the
quantum of the old driver would have the clients briefly see the useless
quantum before being moved to the new driver.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a3fe226eac3d52514c90c22157533e162a1a719d

Git commit 9423e8d648848675dcbe7597ca9a2ce7363037f7 by Wim Taymans on 08/09/2021 at 09:51..
impl-node: move quantum and rate

When we move a node from one driver to another, move the quantum and
rate if the target driver was idle so that we can mostly continue
uninterupted until a quantum/rate change is calculated.
https://invent.kde.org/neon/backports-focal/pipewire/commit/9423e8d648848675dcbe7597ca9a2ce7363037f7

Git commit 2071a14c82f21865c13b762027c90535575d4235 by Wim Taymans on 08/09/2021 at 09:53..
context: only apply lock-quantum for unsuspended nodes

When the node is suspended, don't take into account the lock-quantum
settings or else the graph would not want to change to the requested
quantum of the node.

Say we have a jack node with node.lock-quantum = true and
node.latency=256/48000. When it joins the graph and is suspended, the
lock-quantum is ignored and the node.latency is set on the graph.
After that, the lock-quantum ensures the graph quantum doesn't change
anymore until the node is suspended.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2071a14c82f21865c13b762027c90535575d4235

Git commit e4b030fafa0606f46414340db7bfb7f76ebb9591 by Wim Taymans on 08/09/2021 at 11:02..
jack: add option to disable process lock

Some applications might expect the process function to run concurrently
with the callbacks. PipeWire tries to avoid this by using a lock for the
duration of the process callback. Make an option to disable this.

See #1576
https://invent.kde.org/neon/backports-focal/pipewire/commit/e4b030fafa0606f46414340db7bfb7f76ebb9591

Git commit 0cf6760ee0b770141fd8e2a086aefa336b9d291e by Wim Taymans on 08/09/2021 at 14:28..
resample: limit the amount of taps

So that we don't allocate too much space but also don't cause an
overflow in the indexes.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0cf6760ee0b770141fd8e2a086aefa336b9d291e

Git commit f22dd9d781770d052f07e336345d8d964384be62 by Wim Taymans (on behalf of Jonas Holmberg) on 08/09/2021 at 14:36..
pipewire-alsa: Make it MT safe

Make pipewire-alsa MT safe so that multi threaded programs can use it
without any extra locks.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f22dd9d781770d052f07e336345d8d964384be62

Git commit 20e64b39da4b5997b26220fa9424942ca0943db4 by Julian Bouzas on 08/09/2021 at 18:24..
fmtconvert: add support for U16, U24, U32 and U24_32 formats
https://invent.kde.org/neon/backports-focal/pipewire/commit/20e64b39da4b5997b26220fa9424942ca0943db4

Git commit 7d0a8b68e81def412c4a9c1ef45c519ac3099de1 by Julian Bouzas on 08/09/2021 at 18:24..
audiomixer: add support for U8, U16, U24, U32, S24_32 and U24_32 formats
https://invent.kde.org/neon/backports-focal/pipewire/commit/7d0a8b68e81def412c4a9c1ef45c519ac3099de1

Git commit 0596b388feb7197b59e85ae56c3a58a79552fa55 by Peter Hutterer on 08/09/2021 at 23:31..
doc: fix example for the PIPEWIRE_DEBUG format
https://invent.kde.org/neon/backports-focal/pipewire/commit/0596b388feb7197b59e85ae56c3a58a79552fa55

Git commit 91069ec3d21c4c09f91f742cd1114806196e863e by Wim Taymans on 09/09/2021 at 07:52..
0.3.35
https://invent.kde.org/neon/backports-focal/pipewire/commit/91069ec3d21c4c09f91f742cd1114806196e863e

Git commit 2055c57436a6d35f4165f63a2189248fd651c093 by Frédéric Danis on 09/09/2021 at 09:36..
meson: Allow access to WP tools in uninstalled shell

If WirePlumber is built as a subproject this calls the wireplumber's
`wp-uninstalled.sh` command to be able to run PW and WP commands from
the uninstalled shell.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2055c57436a6d35f4165f63a2189248fd651c093

Git commit c2b11b09f16075b61b31e371a576b82fc54fca52 by Wim Taymans (on behalf of Peter Hutterer) on 09/09/2021 at 09:49..
ci: bump the Fedora distribution to F34
https://invent.kde.org/neon/backports-focal/pipewire/commit/c2b11b09f16075b61b31e371a576b82fc54fca52

Git commit 954befccff49be6d3d4f20f767ac6c1d129dddd3 by Wim Taymans on 09/09/2021 at 11:01..
doc: define HAVE_DOT to generate dot files

Fixes #1585
https://invent.kde.org/neon/backports-focal/pipewire/commit/954befccff49be6d3d4f20f767ac6c1d129dddd3

Git commit 67be26aac73334ea6cefbff997c037506946211b by Wim Taymans on 09/09/2021 at 14:24..
media-session: only check passthrough when available

When none of the nodes have a valid passthrough format, don't check if
passthrough is possible.

Without the check, it is possible that a node has a common format with
the peer that is not a passthrough format, like a raw audio format.

Fixes #1587
https://invent.kde.org/neon/backports-focal/pipewire/commit/67be26aac73334ea6cefbff997c037506946211b

Git commit e6d7b1aa705611d69e771358a9809e83baab18eb by Wim Taymans on 09/09/2021 at 16:05..
media-session: copy some device keys to the nodes

Chrome seems to want to use the device.bus
https://invent.kde.org/neon/backports-focal/pipewire/commit/e6d7b1aa705611d69e771358a9809e83baab18eb

Git commit 4d883dbb2fad3ed619be2dccf6ad62065c7224d8 by Dylan Aïssi on 09/09/2021 at 19:08..
Merge tag '0.3.35' into upstream/latest
https://invent.kde.org/neon/backports-focal/pipewire/commit/4d883dbb2fad3ed619be2dccf6ad62065c7224d8

Git commit 436cd439f9f0c27f1fb8bb1725074b861ca26fc3 by Dylan Aïssi on 09/09/2021 at 19:08..
Merge branch 'upstream/latest' into debian/master
https://invent.kde.org/neon/backports-focal/pipewire/commit/436cd439f9f0c27f1fb8bb1725074b861ca26fc3

Git commit 4ed1d30441d6c80a232629d090788773b3aa9892 by Dylan Aïssi on 09/09/2021 at 19:10..
Bump d/changelog

Signed-off-by: Dylan Aïssi <daissi at debian.org>
https://invent.kde.org/neon/backports-focal/pipewire/commit/4ed1d30441d6c80a232629d090788773b3aa9892

Git commit 526fa8f41102cd552a85bd3e59ff1fdf13d0f36c by Dylan Aïssi on 09/09/2021 at 19:20..
Replace xmltoman by python3-docutils in BD to generate manpages

Signed-off-by: Dylan Aïssi <daissi at debian.org>
https://invent.kde.org/neon/backports-focal/pipewire/commit/526fa8f41102cd552a85bd3e59ff1fdf13d0f36c

Git commit 6d5fa1c0c0b12ccae72db5e2079d594766ecf7a7 by Dylan Aïssi on 09/09/2021 at 19:27..
Don't install new filter-chain example conf files

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/6d5fa1c0c0b12ccae72db5e2079d594766ecf7a7

Git commit a49b874e4c2dd5219bfd955f3fd65ec8cf10c80e by Dylan Aïssi on 09/09/2021 at 19:32..
Update symbols file

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/a49b874e4c2dd5219bfd955f3fd65ec8cf10c80e

Git commit 4c5468ecff0808afacfa952365d6a98d0cd19b86 by Dylan Aïssi on 09/09/2021 at 19:49..
Upload to unstable

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/4c5468ecff0808afacfa952365d6a98d0cd19b86

Git commit 4f8ff41a4546aa6e010dd31cfc19ecc4da1440e6 by Wim Taymans (on behalf of Pauli Virtanen) on 10/09/2021 at 07:35..
media-session: don't crash if obj->info is missing
https://invent.kde.org/neon/backports-focal/pipewire/commit/4f8ff41a4546aa6e010dd31cfc19ecc4da1440e6

Git commit 3f8fb6e4dc9a272c0cdb7bcfa90730a85fd9a9d0 by Wim Taymans (on behalf of Pauli Virtanen) on 10/09/2021 at 07:35..
media-session: don't bluez-autoswitch for suspended/idle/errored streams

E.g. skypeforlinux makes its input streams idle but does not destroy
them, when no call is active.
https://invent.kde.org/neon/backports-focal/pipewire/commit/3f8fb6e4dc9a272c0cdb7bcfa90730a85fd9a9d0

Git commit 767ac793286ab9426bd1bb8cb25ef93505260755 by Wim Taymans (on behalf of Julian Bouzas) on 10/09/2021 at 07:35..
audiomixer: support multiple channels when mixing with AVX, SSE and SSE2
https://invent.kde.org/neon/backports-focal/pipewire/commit/767ac793286ab9426bd1bb8cb25ef93505260755

Git commit 0a21d763345bc7d40f3f850461637b3396be1b79 by Wim Taymans (on behalf of Peter Hutterer) on 10/09/2021 at 07:38..
test: add tests for the log levels to show up correctly

Two tests, once with pw_log_set_level(), once with PIPEWIRE_DEBUG
https://invent.kde.org/neon/backports-focal/pipewire/commit/0a21d763345bc7d40f3f850461637b3396be1b79

Git commit e1672f97625a3db6844f8054c9e45109eadc5cc6 by Wim Taymans (on behalf of Peter Hutterer) on 10/09/2021 at 07:38..
pipewire: allow for log level names in PIPEWIRE_DEBUG

Allow one of "XEWIDT" to refer to none, errors, warnings, info, debug
and trace, respectively because they're immediately recognizable. Well,
except maybe the X.

PIPEWIRE_DEBUG="I" is equivalent to PIPEWIRE_DEBUG="3" for example.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e1672f97625a3db6844f8054c9e45109eadc5cc6

Git commit 9faa006c1d0b535189c3551092fe588298850e17 by Wim Taymans on 10/09/2021 at 11:38..
media-session: try to not select nodes with unavailable route

Nodes that have the current route as unavailable should preferably not
be selected as defaults or targets.
https://invent.kde.org/neon/backports-focal/pipewire/commit/9faa006c1d0b535189c3551092fe588298850e17

Git commit 966fbd5a2176e31c8a34a751a5c831c19221a5ab by Wim Taymans (on behalf of Pauli Virtanen) on 10/09/2021 at 17:57..
bluez5: blocklist devices for sbc-xq
https://invent.kde.org/neon/backports-focal/pipewire/commit/966fbd5a2176e31c8a34a751a5c831c19221a5ab

Git commit 6dde4ea1aaba33eea8b7fbb339683942a5bf3b27 by Wim Taymans on 11/09/2021 at 11:07..
jack: pause processing until callback is emited

Change the buffer_size and sample_rate when we are sure the proces
callback is not running.

Delay process callback until we have called the buffer_size or
samplerate callback. Otherwise the jack application might be called with
the new buffer_size/sample_rate before the callback has been called.
https://invent.kde.org/neon/backports-focal/pipewire/commit/6dde4ea1aaba33eea8b7fbb339683942a5bf3b27

Git commit fc9f7c1005e5ab06c6ef7628169b4b59a3b83c48 by Wim Taymans (on behalf of Davide Beatrici) on 11/09/2021 at 14:28..
stream: declare pw_stream_get_control() in header

The function is defined and exported, but is not declared in the header.
https://invent.kde.org/neon/backports-focal/pipewire/commit/fc9f7c1005e5ab06c6ef7628169b4b59a3b83c48

Git commit d2017ff540c0cc1d5da81bf6484ab56e0c3b51fd by Wim Taymans (on behalf of liberodark) on 11/09/2021 at 14:29..
Fix multiple module dir
https://invent.kde.org/neon/backports-focal/pipewire/commit/d2017ff540c0cc1d5da81bf6484ab56e0c3b51fd

Git commit 535aca1b309d65cf79a81d9e1ed849469ce9d666 by Pauli Virtanen on 12/09/2021 at 08:51..
gitlab: update Bluetooth issue template

Add commands that output basic info, and add link to instructions for
debug log.
https://invent.kde.org/neon/backports-focal/pipewire/commit/535aca1b309d65cf79a81d9e1ed849469ce9d666

Git commit fda6e7b4af246dfa20d172df353dec610215307b by Wim Taymans on 13/09/2021 at 08:50..
pulse-server: parse default.clock.rate from core info

Use the core.info clock rate as the default sample rate as soon as the
manager exposes the core object. Otherwise the default sample rate is 0
until someone calls GET_SERVER_INFO, which as a side effect sets the
default sample rate.

Fixes issues with sinks not appearing right away.

Fixes #1588
https://invent.kde.org/neon/backports-focal/pipewire/commit/fda6e7b4af246dfa20d172df353dec610215307b

Git commit 9d7b2266870fd3abd117739cc2357f5d5ff74888 by Dylan Aïssi (on behalf of Arto Jantunen) on 13/09/2021 at 10:49..
pipewire-bin: Recommend rtkit (Closes: #984429)
https://invent.kde.org/neon/backports-focal/pipewire/commit/9d7b2266870fd3abd117739cc2357f5d5ff74888

Git commit 29b41022cd63bde34538f38e719b2b569f51ec59 by Dylan Aïssi on 13/09/2021 at 10:50..
Update d/changelog

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/29b41022cd63bde34538f38e719b2b569f51ec59

Git commit 939c6e7aa466ab5ea630895dd5042f8acf8f9095 by Wim Taymans on 13/09/2021 at 15:35..
jack: always move the timebase owner to the driver

Whenever a timebase owner is moved to a new driver, try to install it as
a timebase owner on the driver.

Before this patch, the timebase owner would only be installed on the
first driver is was assigned to, which was most likely a dummy driver.

See #1589
https://invent.kde.org/neon/backports-focal/pipewire/commit/939c6e7aa466ab5ea630895dd5042f8acf8f9095

Git commit 652c1423f8fcc515ca263f7c80f43e2dedf2ebf4 by Pauli Virtanen on 13/09/2021 at 18:11..
gitlab: fix bluetooth issue template

Should use lsusb for determining adapter.
https://invent.kde.org/neon/backports-focal/pipewire/commit/652c1423f8fcc515ca263f7c80f43e2dedf2ebf4

Git commit 47a46e198fdf46ca0303369fab18722f4a37e8de by Wim Taymans on 14/09/2021 at 09:06..
improve debug
https://invent.kde.org/neon/backports-focal/pipewire/commit/47a46e198fdf46ca0303369fab18722f4a37e8de

Git commit 7543ad0766f42e8b9ea8b0896747417a712d04a2 by Wim Taymans on 14/09/2021 at 09:06..
impl-node: add node.transport.sync property

When the node support transport sync. That is, when it will clear the
pending_sync flag from its activation area when it completed a new
seek.

Before this patch, the pending sync was always automatically cleared,
which broke some applications that are time masters such as bitwig.

Fixes #1589
https://invent.kde.org/neon/backports-focal/pipewire/commit/7543ad0766f42e8b9ea8b0896747417a712d04a2

Git commit 349324b9a6bd8a95a587cce529881e6213ecb159 by Wim Taymans on 14/09/2021 at 10:42..
alsa: pass AES bits to S/PDIF devices

This is the right thing to do and might even fix output to some
devices.
https://invent.kde.org/neon/backports-focal/pipewire/commit/349324b9a6bd8a95a587cce529881e6213ecb159

Git commit 36fe2e9b9e7f9cde35c6c4dce3fecc1fb17333f9 by Wim Taymans on 14/09/2021 at 11:34..
context: scale quantum values to default rate

The quantum values are relative to the default clock rate. When an
alternative rate is selected, scale the quantum values accordingly.
https://invent.kde.org/neon/backports-focal/pipewire/commit/36fe2e9b9e7f9cde35c6c4dce3fecc1fb17333f9

Git commit bf29130f84114fa734c16c80cd8734ab149683cf by Wim Taymans on 14/09/2021 at 13:39..
midifile: debug some more message types
https://invent.kde.org/neon/backports-focal/pipewire/commit/bf29130f84114fa734c16c80cd8734ab149683cf

Git commit d79308617432017d3b76798b4b70bef393e8f0f0 by Wim Taymans on 14/09/2021 at 16:08..
alsa-seq: fix port delete

We need to first mark the removed port as invalid, and then look for the
last valid port in the port array otherwise last_port becomes 0 and
midi dataflow stops.

Fixes #1601
https://invent.kde.org/neon/backports-focal/pipewire/commit/d79308617432017d3b76798b4b70bef393e8f0f0

Git commit 19a3bf21005fdea963b64faa8afd649509a7d9fc by Wim Taymans on 14/09/2021 at 19:06..
spa: handle last_port correctly

last_port is always 1 more than the highest valid port number.
https://invent.kde.org/neon/backports-focal/pipewire/commit/19a3bf21005fdea963b64faa8afd649509a7d9fc

Git commit 14f0c6f9a6b6c7cb52c41aa836c73f30aa95d314 by Peter Hutterer on 15/09/2021 at 01:24..
modules: print the optional modules as part of the meson summary

This makes it easier to figure out if a particular module was missing
from the build. Example output:

  Optional Modules
    rt                        : YES
    rtkit                     : YES
    portal                    : YES
    pulse-tunnel              : YES
    zeroconf-discover         : YES
    roc-sink                  : NO
    roc-source                : NO
https://invent.kde.org/neon/backports-focal/pipewire/commit/14f0c6f9a6b6c7cb52c41aa836c73f30aa95d314

Git commit eca2bbb8921ceca6b39f30510219d83c63a7524b by Georges Basile Stavracas Neto on 15/09/2021 at 13:25..
v4l2: Pass camera controls and formats in the node itself

Instead of using the Port to do that. This is what audio nodes
do.
https://invent.kde.org/neon/backports-focal/pipewire/commit/eca2bbb8921ceca6b39f30510219d83c63a7524b

Git commit f6f10669a07d2de05a81335f60cd3ff31d38da58 by Wim Taymans on 15/09/2021 at 18:57..
alsa: destroy stream first and then context

This makes things more deterministic.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f6f10669a07d2de05a81335f60cd3ff31d38da58

Git commit 21657ea2af77d9c6faad09248f1934e2fba72c95 by Wim Taymans on 15/09/2021 at 18:57..
remote-node: improve node io tag

Set the second tag field to INVALID to separate the node io areas from
the port io areas.
https://invent.kde.org/neon/backports-focal/pipewire/commit/21657ea2af77d9c6faad09248f1934e2fba72c95

Git commit 97be5687ec950f82defd5b390b0f4c11ca314274 by Wim Taymans on 15/09/2021 at 18:57..
remote-node: clear the node io areas when removing the memory

When the memory is removed, clear the node io areas so that it doesn't
accidentally get reused.

Fixes a crash in cheese when the node is stopped and then resumed.
https://invent.kde.org/neon/backports-focal/pipewire/commit/97be5687ec950f82defd5b390b0f4c11ca314274

Git commit 077808b09ab674d66f876fe2da768fa5545a1f32 by Wim Taymans on 15/09/2021 at 18:57..
pipewiresrc: also notify waiters when start fails
https://invent.kde.org/neon/backports-focal/pipewire/commit/077808b09ab674d66f876fe2da768fa5545a1f32

Git commit a2202de6791864c2ff8d09b751d0111426d8690c by Wim Taymans on 15/09/2021 at 18:57..
gst: also stop waiting when we are flushing
https://invent.kde.org/neon/backports-focal/pipewire/commit/a2202de6791864c2ff8d09b751d0111426d8690c

Git commit d04244abb91954e899ce8a504839aa520add82ea by Wim Taymans on 15/09/2021 at 18:57..
audioconvert: add softMute to PropInfo

So that it can be introspected.

Fixes #1613
https://invent.kde.org/neon/backports-focal/pipewire/commit/d04244abb91954e899ce8a504839aa520add82ea

Git commit 803763ed01e6d9fb039f8ef625842655c8be07fa by Wim Taymans on 16/09/2021 at 08:05..
gst: add 30 seconds timeout

Add a timeout to all blocking wait operations so that we don't wait
forever but error out after 30 seconds.
https://invent.kde.org/neon/backports-focal/pipewire/commit/803763ed01e6d9fb039f8ef625842655c8be07fa

Git commit 142272e5ccef89430b07d8b81ea839f80399868c by Wim Taymans on 16/09/2021 at 09:29..
jack: shortcut callbacks when NULL

When the callbacks are NULL, just update the bufsize/srate and be
done. There is no need to wait for a context switch in that case.
https://invent.kde.org/neon/backports-focal/pipewire/commit/142272e5ccef89430b07d8b81ea839f80399868c

Git commit cb1c259bc5c7000a06d750588a6449f48f7fb360 by Wim Taymans on 16/09/2021 at 09:43..
jack: check buffersize when we get the io area

We can immeditately update the buffersize when we get the io area.
https://invent.kde.org/neon/backports-focal/pipewire/commit/cb1c259bc5c7000a06d750588a6449f48f7fb360

Git commit 2e17cc79014b0167282e0dce9949bdf90062f379 by Wim Taymans on 16/09/2021 at 09:51..
jack: always check srate/bufsize from data thread

To ensure processing is always happening with the values emited
in the callback.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2e17cc79014b0167282e0dce9949bdf90062f379

Git commit 4997d47f63ed2c91d74bc8e5b229e57200354ee5 by Wim Taymans on 16/09/2021 at 13:08..
0.3.36
https://invent.kde.org/neon/backports-focal/pipewire/commit/4997d47f63ed2c91d74bc8e5b229e57200354ee5

Git commit 39c8ed4f62172026036281691cd3b67b469a8629 by Pauli Virtanen on 16/09/2021 at 16:20..
media-session: don't use-after-free if linking node removed

Should fix an ASAN crash.
https://invent.kde.org/neon/backports-focal/pipewire/commit/39c8ed4f62172026036281691cd3b67b469a8629

Git commit 10abcd92d76ddd02b690ff06d67c013bfc5fa5c2 by Wim Taymans on 16/09/2021 at 16:38..
update version number as well
https://invent.kde.org/neon/backports-focal/pipewire/commit/10abcd92d76ddd02b690ff06d67c013bfc5fa5c2

Git commit 8887b86c62202e33140033c7a36c29842aeb8f31 by Dylan Aïssi on 16/09/2021 at 19:30..
Merge tag '0.3.36' into upstream/latest
https://invent.kde.org/neon/backports-focal/pipewire/commit/8887b86c62202e33140033c7a36c29842aeb8f31

Git commit aee7be554cf30d6ae47f505e4b4af6149cd287c0 by Dylan Aïssi on 16/09/2021 at 19:31..
Merge branch 'upstream/latest' into debian/master
https://invent.kde.org/neon/backports-focal/pipewire/commit/aee7be554cf30d6ae47f505e4b4af6149cd287c0

Git commit c1532f471d3fd3383309165d25e603f0dcb7aca3 by Dylan Aïssi on 16/09/2021 at 19:33..
Bump d/changelog

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/c1532f471d3fd3383309165d25e603f0dcb7aca3

Git commit a8309d29872fe16ba3e403f03a9954d1fe819282 by Dylan Aïssi on 16/09/2021 at 19:51..
Upload to unstable
https://invent.kde.org/neon/backports-focal/pipewire/commit/a8309d29872fe16ba3e403f03a9954d1fe819282

Git commit 6168067cb2a45ffa3c92aff1135659feaf9c1240 by Leonardo Neumann on 18/09/2021 at 07:36..
fix missing limits.h include
https://invent.kde.org/neon/backports-focal/pipewire/commit/6168067cb2a45ffa3c92aff1135659feaf9c1240

Git commit cae15544494acaa5732945aa56c7a191c6f94b92 by Wim Taymans (on behalf of Pauli Virtanen) on 19/09/2021 at 17:28..
bluez5: move bluez-hardware.conf loading to the plugin

It's not really the responsibility of the session manager to load the
bluez5 device quirks, and it's easier for eg. Wireplumber if it doesn't
need to do it.

Move loading bluez-hardware.conf to be the responsibility of the bluez5
spa plugin, similarly as the alsa plugin deals with the ACP database.

Put the configuration to share/spa-0.2/bluez5, mirroring the plugin
directory structure in lib/spa-0.2/bluez5.
https://invent.kde.org/neon/backports-focal/pipewire/commit/cae15544494acaa5732945aa56c7a191c6f94b92

Git commit 90b4efd98d798eff47d336eed8a466690a32d050 by Wim Taymans (on behalf of Pauli Virtanen) on 19/09/2021 at 17:33..
bluez5: cleanup hfp/hsp backend handling + config file option

It seems not uncommon that people have not properly configured ofono
running, which results to loss of HFP/HSP functionality. It's less
surprising if the backend selection is fixed in the configuration file,
and (by default) does not depend on running services.

Add a configuration file option for selecting HFP/HSP backend, and set
the default value to the native backend. Emit warnings if conflicting
backend services are detected to be running.

Also cleanup hfp/hsp backend handling a bit, now that it's mostly
abstracted behind an interface.
https://invent.kde.org/neon/backports-focal/pipewire/commit/90b4efd98d798eff47d336eed8a466690a32d050

Git commit def45adaec6dc88f7347f1805b096725ba7cebb7 by Wim Taymans (on behalf of Pauli Virtanen) on 19/09/2021 at 17:41..
bluez5: fix behavior on HSP/HFP backends with no codec switching

Fix HSP/HFP profile not showing correctly when using hsphfpd/ofono
backends, which don't support codec switching and have no HFP codec
profiles.
https://invent.kde.org/neon/backports-focal/pipewire/commit/def45adaec6dc88f7347f1805b096725ba7cebb7

Git commit 229892d45dd0a08367088808b1e2252f8d8036cc by Wim Taymans (on behalf of Pauli Virtanen) on 19/09/2021 at 18:12..
pw-uninstalled: set SPA_DATA_DIR + fix meson devenv

Set SPA_DATA_DIR needed for the bluez5 plugin hwdb file in
pw-uninstalled.

Also fix its value for meson devenv.
https://invent.kde.org/neon/backports-focal/pipewire/commit/229892d45dd0a08367088808b1e2252f8d8036cc

Git commit 335ad734dea3044dd367c78c7d06ab9065c5a89a by Peter Hutterer on 20/09/2021 at 05:56..
doc: fix example config for echo cancel

Fixes #1625
https://invent.kde.org/neon/backports-focal/pipewire/commit/335ad734dea3044dd367c78c7d06ab9065c5a89a

Git commit ebda71d48925ae4d79a276e3ace3fb16adeef4ce by Wim Taymans (on behalf of Peter Hutterer) on 20/09/2021 at 07:29..
spa: fix the indentation in the various meson.build files

Was all over the place using tabs and spaces, let's make this more
consistent.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ebda71d48925ae4d79a276e3ace3fb16adeef4ce

Git commit 56193d474ca45eb5463949e5e2ac3b0cde1635f3 by Wim Taymans (on behalf of Peter Hutterer) on 20/09/2021 at 07:29..
spa/bluez: correct a library name variable in meson.build

Unused, so no functional change here
https://invent.kde.org/neon/backports-focal/pipewire/commit/56193d474ca45eb5463949e5e2ac3b0cde1635f3

Git commit 0cbd56f0cdb855df56ae9f8770c4d326616da857 by Wim Taymans (on behalf of Peter Hutterer) on 20/09/2021 at 07:29..
spa: declare a dependency for each used library in meson.build

For SPA libraries that we link against elsewhere in the tree, declare a
declare a dependency "foo_dep" for that library that specifies how to
link to it. Then use that dependency in the various targets.

This removes the knowledge of how to link with the library from the
target which can treat it as just another dependency.

In the case of optional libraries (e.g. the journal support lib) we can
then use declare_dependency() to declare an empty dependencies and thus
link them unconditionally in the target.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0cbd56f0cdb855df56ae9f8770c4d326616da857

Git commit dfb40fb714dd7d1e1cd6f1f8d8fcb304fba7ae8a by Wim Taymans (on behalf of Peter Hutterer) on 20/09/2021 at 07:29..
test: implement a test for the journal logger
https://invent.kde.org/neon/backports-focal/pipewire/commit/dfb40fb714dd7d1e1cd6f1f8d8fcb304fba7ae8a

Git commit 92f35b99a079b545c2340070c14fb1e09e38fafd by Wim Taymans on 20/09/2021 at 10:24..
alsa: don't mix process return and alsa err

Use a separate error field for the alsa errors, we already use the res
field for the process result.
https://invent.kde.org/neon/backports-focal/pipewire/commit/92f35b99a079b545c2340070c14fb1e09e38fafd

Git commit 537fc63cc6a9aeede65d995350a71bb36d030164 by Wim Taymans on 20/09/2021 at 10:24..
jack: set the final midi size as the buffer size.

The buffer has initially a maxsize. After writing we midi events, we can
update it with the real size.
https://invent.kde.org/neon/backports-focal/pipewire/commit/537fc63cc6a9aeede65d995350a71bb36d030164

Git commit afb37dd7fc24dfa77cf2b75285399391bbafb58e by Wim Taymans on 20/09/2021 at 13:05..
pipewire: remove useless assignment
https://invent.kde.org/neon/backports-focal/pipewire/commit/afb37dd7fc24dfa77cf2b75285399391bbafb58e

Git commit 49a0250ecd75c900bbbe78177b328aa009ef4ccc by Wim Taymans on 20/09/2021 at 13:06..
impl-metadata: avoid infinite loop in cleat_items

When we need to remove all items, copy the storage to a temporary
array and clear the storage.

When one of the callbacks would add a new item to the storage it would
operate on the new empty storage and the loop to iteratively clear
subjects would be able to complete.

Fixes #1622
https://invent.kde.org/neon/backports-focal/pipewire/commit/49a0250ecd75c900bbbe78177b328aa009ef4ccc

Git commit 64f83158f4782bdf6b5ae199ca6c2738114f40a9 by Wim Taymans on 20/09/2021 at 13:48..
alsa-plugin: improve error handling and recovery

Ignore -ENOENT errors, they are likely because some device was
removed.
Make sure we clear the poll descriptor when nothing is pollable, even
in the error case.
Clear the error after we reported it instead of reporting it forever.

Fixes #1627
https://invent.kde.org/neon/backports-focal/pipewire/commit/64f83158f4782bdf6b5ae199ca6c2738114f40a9

Git commit 2ae6ac2bcb47273fa97660c39accc07f0d812aa7 by Wim Taymans on 20/09/2021 at 16:33..
media-session: skip route availability check for default nodes

For default nodes, that are explicitly configured, skip the route check.
This makes it possible for the user to select a non-available node
as the default still.

Fixes #1624
https://invent.kde.org/neon/backports-focal/pipewire/commit/2ae6ac2bcb47273fa97660c39accc07f0d812aa7

Git commit 8efe54a1760994d8ce85fbb65795b7225491763f by Wim Taymans on 20/09/2021 at 16:34..
media-session: fall back to EnumRoute for availability check

If the device doesn't have an active Route, also check the EnumRoute to
see if there is something available. If nothing is available, also avoid
selecting this node.

Fixes #1624
https://invent.kde.org/neon/backports-focal/pipewire/commit/8efe54a1760994d8ce85fbb65795b7225491763f

Git commit 1129e90c4fb800dc7199986aa14f30d3208c03bd by Wim Taymans (on behalf of Ivan) on 20/09/2021 at 16:40..
conf: Fix format inconsistencies and beautify configs
https://invent.kde.org/neon/backports-focal/pipewire/commit/1129e90c4fb800dc7199986aa14f30d3208c03bd

Git commit 143f233be3a3e9f80bcb5863fdd149b430700b3b by Wim Taymans on 20/09/2021 at 18:11..
audioconvert: increase buffer size

64 channels with the new format support needs more space.

See #1620
https://invent.kde.org/neon/backports-focal/pipewire/commit/143f233be3a3e9f80bcb5863fdd149b430700b3b

Git commit e8e7e72b767b6e0e04ec7c308030330908114186 by Peter Hutterer on 20/09/2021 at 22:59..
meson: require alsa for pipewire-alsa or media-session

The previous code had alsa optional if pipewire-alsa was on
auto/disabled bug failed later with missing alsa if media-session was in
the session manager array. Which it is by default.

Fixes #1632
https://invent.kde.org/neon/backports-focal/pipewire/commit/e8e7e72b767b6e0e04ec7c308030330908114186

Git commit 68f4dee2d91636c94d0e84ce933748112b89afe9 by Wim Taymans on 21/09/2021 at 08:31..
pipewire: use lock for registry and init

Use a global lock to serialize concurrent pw_init calls.
Use a global lock to protect the global registry. With the alsa api,
multiple threads could open the device and create streams and
load/unload plugins.

See !942
https://invent.kde.org/neon/backports-focal/pipewire/commit/68f4dee2d91636c94d0e84ce933748112b89afe9

Git commit c0d3349849a367877cfbd118c79bf46cd02dab24 by Wim Taymans on 21/09/2021 at 08:50..
spa: add DSD format definitions
https://invent.kde.org/neon/backports-focal/pipewire/commit/c0d3349849a367877cfbd118c79bf46cd02dab24

Git commit 1b5d02dd310a1800360c06dd40218b43500b5c57 by Wim Taymans on 21/09/2021 at 08:50..
alsa: add enumeration of DSD formats
https://invent.kde.org/neon/backports-focal/pipewire/commit/1b5d02dd310a1800360c06dd40218b43500b5c57

Git commit 43b27002eb1e78cb5c41724e45a8363641a14e31 by Wim Taymans on 21/09/2021 at 08:50..
tools: add beginnings of DSD player
https://invent.kde.org/neon/backports-focal/pipewire/commit/43b27002eb1e78cb5c41724e45a8363641a14e31

Git commit 25d39a5ea1a2c43111e507c2a64cb135b9a26ea4 by Wim Taymans on 21/09/2021 at 08:50..
alsa: only expose DSD format when DSD_U32_BE is supported
https://invent.kde.org/neon/backports-focal/pipewire/commit/25d39a5ea1a2c43111e507c2a64cb135b9a26ea4

Git commit af6e887077538e83870942851b8f775f1140017d by Wim Taymans on 21/09/2021 at 08:50..
spa: add interleave DSD param

And make alsa report the interleaving.
https://invent.kde.org/neon/backports-focal/pipewire/commit/af6e887077538e83870942851b8f775f1140017d

Git commit 670efe28115c9e092386ae49cb64013f97143fb1 by Wim Taymans on 21/09/2021 at 08:50..
alsa: implement set_format for DSD formats
https://invent.kde.org/neon/backports-focal/pipewire/commit/670efe28115c9e092386ae49cb64013f97143fb1

Git commit ae9f90ecccce4fdbca267385816d3b1266e91104 by Wim Taymans on 21/09/2021 at 08:50..
dsdplay: implement data processing

Simplify channel layout management a little.
Use the bitorder and interleaving to read and format the DSD in the
buffer.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ae9f90ecccce4fdbca267385816d3b1266e91104

Git commit fb0c5f503fbd3cad0c5b5f72dd2268966a744325 by Wim Taymans on 21/09/2021 at 08:50..
media-session: DSD is also a valid passthrough format
https://invent.kde.org/neon/backports-focal/pipewire/commit/fb0c5f503fbd3cad0c5b5f72dd2268966a744325

Git commit 275b8a0f9ea4c0b1809e5b875a8b34e823b08294 by Wim Taymans on 21/09/2021 at 08:50..
dsdplay: make separate dsffile
https://invent.kde.org/neon/backports-focal/pipewire/commit/275b8a0f9ea4c0b1809e5b875a8b34e823b08294

Git commit 23edb9ab2abd16f05f8d10fa0f1e88a8d64ccf50 by Wim Taymans on 21/09/2021 at 08:58..
pipewire: release lock when clearing handle

The handle might want to unload plugins and we thus need to release the
lock.
https://invent.kde.org/neon/backports-focal/pipewire/commit/23edb9ab2abd16f05f8d10fa0f1e88a8d64ccf50

Git commit 1c3802bd8239bbc6c983c7dda249ebfa3c44b053 by Wim Taymans on 21/09/2021 at 10:16..
spa: add SPA_ABS helper macro
https://invent.kde.org/neon/backports-focal/pipewire/commit/1c3802bd8239bbc6c983c7dda249ebfa3c44b053

Git commit 0ec77ab09cf8eb696db7509a37e4f93176cd255d by Wim Taymans on 21/09/2021 at 10:25..
dsd: show rate in bytes per seconds.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0ec77ab09cf8eb696db7509a37e4f93176cd255d

Git commit d8aec1c7b467eceabf739a27023a4467113b91ab by Wim Taymans on 21/09/2021 at 10:29..
pw-play: move dsdplay into pw-cat
https://invent.kde.org/neon/backports-focal/pipewire/commit/d8aec1c7b467eceabf739a27023a4467113b91ab

Git commit 423e8b2f03fa76f066573ddd8a00d9e870c80def by Wim Taymans on 21/09/2021 at 10:35..
Revert "pipewire-alsa: Make it MT safe"

This reverts commit f22dd9d781770d052f07e336345d8d964384be62.

Obsolete now that pw_init and factory loading/unloading has been
made thread safe.
https://invent.kde.org/neon/backports-focal/pipewire/commit/423e8b2f03fa76f066573ddd8a00d9e870c80def

Git commit 7c11dcf8085fbba84f42e24460890807ec8a0c37 by Wim Taymans on 21/09/2021 at 11:02..
alsa: enumerate all passthrough formats

Don't use the audio.channels and audio.rate settings influence the
passthrough formats.

See #93
https://invent.kde.org/neon/backports-focal/pipewire/commit/7c11dcf8085fbba84f42e24460890807ec8a0c37

Git commit 2d69f775de5f332743d425c55104161ecb222eed by Javier Martinez Canillas on 21/09/2021 at 12:49..
libcamera: add a libcamera_set_config() helper function to the wrapper

The libcamera wrapper provides a set of C functions that wraps libcamera's
C++ interface. But there isn't a function to call LibCamera::set_config().
https://invent.kde.org/neon/backports-focal/pipewire/commit/2d69f775de5f332743d425c55104161ecb222eed

Git commit a7a6f19815df81bb53fa3848f8b7e17790bbdf05 by Javier Martinez Canillas on 21/09/2021 at 12:49..
libcamera: don't set camera configuration in LibCamera::start()

There is no need to set and validate the configuration when the camera
is started, since this was already made when the camera was opened.

The configuration only needs to be set again if the port format changes
due a SPA_PARAM_Format parameter.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a7a6f19815df81bb53fa3848f8b7e17790bbdf05

Git commit 21c412dc4942efe8f40541963090a72f7e59deb1 by Javier Martinez Canillas on 21/09/2021 at 12:49..
libcamera: fix a use-after-free due an attempt to stop the camera twice

Camera is currently stopped and started in the spa_libcamera_set_format()
function, but this leads to a segfault due attempting to access a buffers
field of an already freed libcamera::FrameBufferAllocator instance.

The FrameBufferAllocator instance is freed in LibCamera::stop(), that is
called by spa_libcamera_stream_off() as handler of the node commands
SPA_NODE_COMMAND_Pause and SPA_NODE_COMMAND_Suspend.

Since the camera was already stopped, there's no need to attempt to stop
it again. In fact, the camera shouldn't be stopped/started at all in the
spa_libcamera_set_format() function but instead only as an action of the
SPA_NODE_COMMAND_{Pause,Suspend} and SPA_NODE_COMMAND_Start commands.

And same for the stop that's done in the LibCamera::close() function, it
shouldn't be needed because the camera is already stopped before closing.

Fixes #1513
https://invent.kde.org/neon/backports-focal/pipewire/commit/21c412dc4942efe8f40541963090a72f7e59deb1

Git commit ce9f75abaaa3c43109516493254c25f624e7a7fc by Javier Martinez Canillas on 21/09/2021 at 12:49..
libcamera: free the FrameBufferAllocator buffers before deleting it

The libcamera application developer guide mentions that buffers allocated
by the FrameBufferAllocator must be explicitly freed before deleting it.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ce9f75abaaa3c43109516493254c25f624e7a7fc

Git commit 439dc8eb2a7505fca9aa4e55865059cbf5878e23 by Javier Martinez Canillas on 21/09/2021 at 12:49..
libcamera: disconnect camera in spa_libcamera_stream_off()

The camera is connected in the spa_libcamera_stream_on() function but the
disconnect happen in LibCamera::stop(). It makes more sense to have this
two operations separated as it's done for the connection and start, since
the camera then can be stopped/started without needing to do a reconnect.

Move the camera disconnect to spa_libcamera_stream_off() for the reason
mentioned above but also to make the code more consistent and symmetric.
https://invent.kde.org/neon/backports-focal/pipewire/commit/439dc8eb2a7505fca9aa4e55865059cbf5878e23

Git commit 310e6009ca84c20b60f80127969cd50decdd1dbb by Javier Martinez Canillas on 21/09/2021 at 12:49..
libcamera: fix a segfault caused by queueing no longer valid requests

The requests_ vector contains the requests created for a camera on start()
but the vector elements are not removed on camera stop(). This leads to a
segfault, when these requests that are no longer valid are queued again.

Also move the streamName_ map clear to LibCamera::stop() where it should
be, since its elements are added in the LibCamera::start() function.
https://invent.kde.org/neon/backports-focal/pipewire/commit/310e6009ca84c20b60f80127969cd50decdd1dbb

Git commit c8f629a0a3d6c018801fae522b942796e66f5b3f by Wim Taymans on 21/09/2021 at 15:39..
pulse-server: improve module args compatibility

Boolean switches can also be true with 'y', 'yes', 't' and 'on'
https://invent.kde.org/neon/backports-focal/pipewire/commit/c8f629a0a3d6c018801fae522b942796e66f5b3f

Git commit 59203c11b8c303228b27e401c100a03332b797fd by Wim Taymans on 21/09/2021 at 16:32..
jack: only update buffer_size/srate when active

As long as we are inactive, don't update our internal buffer_size or
sample rate. This way, when we become active, we will emit the right
callback with the right value instead of doing nothing.

Fixes crashes in Carla.
https://invent.kde.org/neon/backports-focal/pipewire/commit/59203c11b8c303228b27e401c100a03332b797fd

Git commit 6f519d4052ea312b18d4fd44d778e6369934e11f by Wim Taymans on 21/09/2021 at 16:33..
pulse-server: put the channel map in the loopback args

Fixes #1486
https://invent.kde.org/neon/backports-focal/pipewire/commit/6f519d4052ea312b18d4fd44d778e6369934e11f

Git commit 93e51a85f14d8a0d07a8e7089e02ff936dc4c6b6 by Anders Jonsson on 21/09/2021 at 20:30..
po: Update Swedish translation
https://invent.kde.org/neon/backports-focal/pipewire/commit/93e51a85f14d8a0d07a8e7089e02ff936dc4c6b6

Git commit b00bc8192972b6358d4420e7c11106d0f8780c10 by Peter Hutterer on 22/09/2021 at 02:15..
test: fix a use-of-uninitialized-variable compiler warning

False positive, we abort in the cases where this isn't initialized.

Fixes e1672f97625a3db6844f8054c9e45109eadc5cc6
https://invent.kde.org/neon/backports-focal/pipewire/commit/b00bc8192972b6358d4420e7c11106d0f8780c10

Git commit 48cff597a6b139562df98d4371638b8e198ef30e by Peter Hutterer on 22/09/2021 at 02:15..
test: don't try to log for LOG_LEVEL_NONE

We can only log for a level below our current one if we are two above
NONE. And by the same instance, we don't expect NONE messages to show
up.
https://invent.kde.org/neon/backports-focal/pipewire/commit/48cff597a6b139562df98d4371638b8e198ef30e

Git commit c6f0ac7ff0a100fc2b7ab39b1441ba2b190019c8 by Peter Hutterer on 22/09/2021 at 02:15..
test: fix the calls to pw_deinit()

Missing from some tests, superfluous in the other test because it was
already called in the test_log_levels() helper function
https://invent.kde.org/neon/backports-focal/pipewire/commit/c6f0ac7ff0a100fc2b7ab39b1441ba2b190019c8

Git commit 6f43aba91d1373c26adf10369f5292f186c5d8e0 by Peter Hutterer on 22/09/2021 at 03:58..
doc: check if the media_session_sources variable exists

When building with -Dexamples=disabled, the whole src/examples is
skipped, so we never declare that variable.

Fixes #1551
https://invent.kde.org/neon/backports-focal/pipewire/commit/6f43aba91d1373c26adf10369f5292f186c5d8e0

Git commit e46a30562ff21d70215d0efc77496a9d7f587542 by Wim Taymans (on behalf of Peter Hutterer) on 22/09/2021 at 06:53..
Promote media-session to its own subdirectory

media-session is past the point of being a mere example, let's promote
it out of the subdirectory.

pw-reserve is moved to tools/
https://invent.kde.org/neon/backports-focal/pipewire/commit/e46a30562ff21d70215d0efc77496a9d7f587542

Git commit 3f032ae464fbb8146dfaa99476d6e61690e8a0d6 by Wim Taymans on 22/09/2021 at 07:04..
build: fix session manager path
https://invent.kde.org/neon/backports-focal/pipewire/commit/3f032ae464fbb8146dfaa99476d6e61690e8a0d6

Git commit 7e8446e98419a66477346dc8f5d5ce43f2eaef3a by George Kiagiadakis on 22/09/2021 at 12:17..
coverity: fix multiple source code parse errors

Coverity scans the source code for static analysis, but its parser
has a couple of flaws...
The most common one is the failure to parse deprecation macros in
enum definitions, like:

```
  G_PARAM_PRIVATE GLIB_DEPRECATED_ENUMERATOR_IN_2_26 = G_PARAM_STATIC_NAME,
                  ^
  SD_JOURNAL_SYSTEM_ONLY _sd_deprecated_ = SD_JOURNAL_SYSTEM /* old name */
                         ^
```

but also recent gcc built-in macros, like:

```
  #if __has_builtin(__builtin_is_constant_evaluated)
      ^
  #if _GLIBCXX_HAS_BUILTIN(__has_unique_object_representations)
      ^
```

The solution is to replace the code with regular expressions at an earlier
stage. This can be configured directly in coverity with cov-configure
https://invent.kde.org/neon/backports-focal/pipewire/commit/7e8446e98419a66477346dc8f5d5ce43f2eaef3a

Git commit 884ecab425408e396b2c501386db92836027a180 by Wim Taymans on 22/09/2021 at 13:14..
add SPA_EXPORT for public functions

Fixes #1638
https://invent.kde.org/neon/backports-focal/pipewire/commit/884ecab425408e396b2c501386db92836027a180

Git commit 717004334b021382d1f63d9fd7fdd809e18dacfe by Pauli Virtanen on 22/09/2021 at 17:18..
bluez5: backend-native: don't use libbluetooth hci commands

BlueZ 6 is planning to make most of libbluetooth private.  In
particular, the direct hci access is planned to be removed.  This is
currently used for determining adapter msbc support.

Instead of using libbluetooth API, try to determine msbc support by
a connect() attempt, which the kernel should reject when not supported.
https://invent.kde.org/neon/backports-focal/pipewire/commit/717004334b021382d1f63d9fd7fdd809e18dacfe

Git commit 207c5796b6f05ee97a6babc8d1b9fb70002fefd5 by Peter Hutterer on 23/09/2021 at 05:29..
pulse: print the strerror on metadata errors
https://invent.kde.org/neon/backports-focal/pipewire/commit/207c5796b6f05ee97a6babc8d1b9fb70002fefd5

Git commit f06741d6fc4300b67eb9fb4394a73ecb23475f0c by Peter Hutterer on 23/09/2021 at 05:29..
media-session: define NAME before including reserve.c

This ensures the log messages show up with the right module name prefix
https://invent.kde.org/neon/backports-focal/pipewire/commit/f06741d6fc4300b67eb9fb4394a73ecb23475f0c

Git commit 29fdd100668c6b69df1467e30bc188c85b9e437b by Peter Hutterer on 23/09/2021 at 05:30..
test: add two tests for the spa_interface callback versioning
https://invent.kde.org/neon/backports-focal/pipewire/commit/29fdd100668c6b69df1467e30bc188c85b9e437b

Git commit 165bc7e2890a97927112ca50f4ca46d03c7f1188 by Peter Hutterer on 23/09/2021 at 05:40..
test: disable the journal logger for tests

No point spamming the journal here.
https://invent.kde.org/neon/backports-focal/pipewire/commit/165bc7e2890a97927112ca50f4ca46d03c7f1188

Git commit d1484a655665e270a068831347ad3e488bf0cc4e by Wim Taymans on 23/09/2021 at 07:58..
spa: fix layout defines

Fixes #1637
https://invent.kde.org/neon/backports-focal/pipewire/commit/d1484a655665e270a068831347ad3e488bf0cc4e

Git commit c41e3553bf0a6b76d8949c081ba633f7a6343d19 by Wim Taymans on 23/09/2021 at 08:17..
0.3.37
https://invent.kde.org/neon/backports-focal/pipewire/commit/c41e3553bf0a6b76d8949c081ba633f7a6343d19

Git commit 88ba3014d681b8d7e9b8ecf1ce1a221cb1ba4d56 by Wim Taymans on 23/09/2021 at 11:00..
pulse-tunnel: increase default latency to 100ms

20ms is too small and might be a typo from the pulseaudio 200ms default
latency.
https://invent.kde.org/neon/backports-focal/pipewire/commit/88ba3014d681b8d7e9b8ecf1ce1a221cb1ba4d56

Git commit cb474043fa26276f69f46ad2e780da25010cfc8d by Wim Taymans on 23/09/2021 at 11:11..
pulse-tunnel: add pulse.latency option

Add a pulse.latency option to override the default 100ms latency.
https://invent.kde.org/neon/backports-focal/pipewire/commit/cb474043fa26276f69f46ad2e780da25010cfc8d

Git commit a118d2e625dfe71bd8c1fb870788e2d599797f49 by Wim Taymans (on behalf of Yuri Chornoivan) on 23/09/2021 at 11:21..
po: Update Ukrainian translation
https://invent.kde.org/neon/backports-focal/pipewire/commit/a118d2e625dfe71bd8c1fb870788e2d599797f49

Git commit 21616a25ad2ee9b89d88ec1958d9185cbc64b40f by Wim Taymans on 23/09/2021 at 13:02..
alsa: sync with pulseaudio

Fixes #1642
https://invent.kde.org/neon/backports-focal/pipewire/commit/21616a25ad2ee9b89d88ec1958d9185cbc64b40f

Git commit 48a298c66d6e79c9ce9bb615a87770fedc0678ed by Dylan Aïssi on 23/09/2021 at 14:13..
Merge tag '0.3.37' into upstream/latest
https://invent.kde.org/neon/backports-focal/pipewire/commit/48a298c66d6e79c9ce9bb615a87770fedc0678ed

Git commit 8be285e4f7e7a7badfb4f86d8ef5997eeda5e5b3 by Dylan Aïssi on 23/09/2021 at 14:13..
Merge branch 'upstream/latest' into debian/master
https://invent.kde.org/neon/backports-focal/pipewire/commit/8be285e4f7e7a7badfb4f86d8ef5997eeda5e5b3

Git commit 8224e4a7ced8b0f76702705f9a1cee96cc2a3e91 by Dylan Aïssi on 23/09/2021 at 14:15..
Bump d/changelog

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/8224e4a7ced8b0f76702705f9a1cee96cc2a3e91

Git commit f1f5cbc0a61de697b876a4aee9d0cef0577a0dd7 by Wim Taymans on 23/09/2021 at 14:36..
support: return completion from process

HAVE_DATA|NEED_DATA signals that the graph can continue processing.
OK means that the node will continue asynchronously later. This
is needed to make the dummy driver work as a follower.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f1f5cbc0a61de697b876a4aee9d0cef0577a0dd7

Git commit 582a6eec4c8b7f62976fee6b5df0561adb6a0703 by Dylan Aïssi on 23/09/2021 at 14:37..
Install pw-dsdplay in pipewire-bin

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/582a6eec4c8b7f62976fee6b5df0561adb6a0703

Git commit 8b38f1e1bc21c79a785eb23eaff3f89d1405b437 by Dylan Aïssi on 23/09/2021 at 15:22..
Update symbols file

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/8b38f1e1bc21c79a785eb23eaff3f89d1405b437

Git commit 6164025dee3b85e0bcf3dd89c3a5fbbebf95f9ca by Dylan Aïssi on 23/09/2021 at 15:36..
Move bluez-hardware.conf from pipewire-media-session to libspa-0.2-bluetooth

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/6164025dee3b85e0bcf3dd89c3a5fbbebf95f9ca

Git commit 51ce64c91e65cdc9f9dfc5b1e588b3e352043f8b by Dylan Aïssi on 23/09/2021 at 15:56..
Upload to unstable

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/51ce64c91e65cdc9f9dfc5b1e588b3e352043f8b

Git commit 2b65fb36f264d5c753a14b1756d44a0affbadcbc by Peter Hutterer on 24/09/2021 at 02:33..
test: simplify the logger test a bit

The tests using this function use the pw_log* macros which invoke
whichever logger pipewire has set. Since the default logging
implementation supports logging to a file anyway, let's just use that
instead of having to load the plugin ourselves.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2b65fb36f264d5c753a14b1756d44a0affbadcbc

Git commit 49ebcfb093406fa41a44e1920a2bb0e3e3dd9509 by Peter Hutterer on 24/09/2021 at 02:33..
spa: drop the pre-C99 checks from the log.h header

spa_log_logv was missing, so with this ifdef'd out we already fail to
compile:
spa/plugins/alsa/alsa-acp-device.c:1003: undefined reference to `spa_log_logv'

And it appears that the only requirement is __VA_ARGS__ support in the
compiler which we require in other places anyway.
https://invent.kde.org/neon/backports-focal/pipewire/commit/49ebcfb093406fa41a44e1920a2bb0e3e3dd9509

Git commit 6668d5bbc48168926e7ee6e1c5d7adcb7d7152ca by Peter Hutterer on 24/09/2021 at 02:33..
test: fix the environment variable name to disable systemd logging

Fixes 165bc7e2890a97927112ca50f4ca46d03c7f1188
https://invent.kde.org/neon/backports-focal/pipewire/commit/6668d5bbc48168926e7ee6e1c5d7adcb7d7152ca

Git commit 39fa2e503f7063216b6051840885025ac1298094 by Wim Taymans (on behalf of Peter Hutterer) on 24/09/2021 at 10:49..
man: fix an indentation issue in pipewire.1
https://invent.kde.org/neon/backports-focal/pipewire/commit/39fa2e503f7063216b6051840885025ac1298094

Git commit 69e935e8a452de252fc2c443dcac8e4371c165ea by Wim Taymans (on behalf of Peter Hutterer) on 24/09/2021 at 10:49..
daemon: allow for a -v, -vv, -vvv argument to increase verbosity

Sometimes that's faster than having to play with PIPEWIRE_DEBUG.
Same for pipewire-media-session.
https://invent.kde.org/neon/backports-focal/pipewire/commit/69e935e8a452de252fc2c443dcac8e4371c165ea

Git commit 40487e485db9ad6c25f2cb42747098ef11b0a6c4 by Peter Hutterer on 24/09/2021 at 21:21..
daemon: only call pw_log_set_level() if -v is actually given

Previous commit 69e935e unconditionally called pw_log_set_level() after
the option parsing. If pw_init() changed the logging level based on
PIPEWIRE_DEBUG, we'd now overwrite that change.

Call pw_log_set_level() only if -v is actually given on the commandline.
This means a commandline option will override PIPEWIRE_DEBUG if set but
that is intended.

Fixes 69e935e8a452de252fc2c443dcac8e4371c165ea
https://invent.kde.org/neon/backports-focal/pipewire/commit/40487e485db9ad6c25f2cb42747098ef11b0a6c4

Git commit 0af3c858061b6cc6eb9a62821afa4b4aada3faf6 by Wim Taymans (on behalf of Pauli Virtanen) on 25/09/2021 at 16:24..
bluez5: don't probe native backend presence

Don't do a blocking probe of native backend presence, because it may
trigger DBus activation for Bluez.  If the DBus activation fails, it
ends up blocking until timeout.

ofono/hsphfpd usually don't have DBus activation configured, so they
fail instantly (which is why this problem was not encountered, even
though they do blocking calls on startup in previous pipewire versions
too).

Instead, select the backend once we have Bluez objects listed.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0af3c858061b6cc6eb9a62821afa4b4aada3faf6

Git commit 65f881c2220249de2396189000e0d415a1cffbf2 by Wim Taymans (on behalf of Pauli Virtanen) on 25/09/2021 at 16:27..
bluez5: fix kernel version regexps

5.14.x kernels do support msbc-alt1, and should not be rejected.
https://invent.kde.org/neon/backports-focal/pipewire/commit/65f881c2220249de2396189000e0d415a1cffbf2

Git commit 9e94aafaec7b580a893b2d95d1b3e611875f0e53 by Wim Taymans (on behalf of Pauli Virtanen) on 25/09/2021 at 16:27..
bluez5: fix FastStream microphone support on some devices

Some devices require the source direction bit to be selected, in order
to send data.
https://invent.kde.org/neon/backports-focal/pipewire/commit/9e94aafaec7b580a893b2d95d1b3e611875f0e53

Git commit dc7b88e1dac282b9724c269631a848b056496be9 by Pauli Virtanen on 26/09/2021 at 14:58..
bluez5: fix CVSD recording on Intel AX200

Intel 8087:0029 at Firmware revision 0.0 build 191 week 21 2021 on
kernel 5.13.19 produces CVSD data stream that consists of 96-byte data
packets interleaved with 96-byte zero packets.

This seems to not occur on other adapters, which usually produce only
48-byte data packets.
https://invent.kde.org/neon/backports-focal/pipewire/commit/dc7b88e1dac282b9724c269631a848b056496be9

Git commit 20051012c4274e2453508305528f7d7f00f7638b by Dylan Aïssi on 27/09/2021 at 08:49..
Add an upstream patch to support msbc with kernel 5.14.x

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/20051012c4274e2453508305528f7d7f00f7638b

Git commit 590e0fd80cc6c1b747f893f75a4ca5dd521cfc76 by Dylan Aïssi on 27/09/2021 at 08:57..
Upload to unstable
https://invent.kde.org/neon/backports-focal/pipewire/commit/590e0fd80cc6c1b747f893f75a4ca5dd521cfc76

Git commit 61a2577941b8524b08bfc0d9d74caec949ff3031 by Jonas Holmberg on 27/09/2021 at 09:05..
pipewire-alsa: fix a memory leak

Free node_name.
https://invent.kde.org/neon/backports-focal/pipewire/commit/61a2577941b8524b08bfc0d9d74caec949ff3031

Git commit becd76de58c3d1f687b81dc7c6fd1a8f5425b54f by Wim Taymans (on behalf of George Kiagiadakis) on 27/09/2021 at 17:31..
bluez5: sco-sink: Add follower mode
https://invent.kde.org/neon/backports-focal/pipewire/commit/becd76de58c3d1f687b81dc7c6fd1a8f5425b54f

Git commit 7d58ce9e24e967481dc18ff240e5b60ccbd19695 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:19..
pw-cli: add a 'quit' command to exit

Slightly less confusing for new users if we have at least one
help-listed command to exit.
https://invent.kde.org/neon/backports-focal/pipewire/commit/7d58ce9e24e967481dc18ff240e5b60ccbd19695

Git commit ae59185f6fa0cb7876f4cb73c80461e9689fb097 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:19..
pw-cli: use readline() in interactive mode

With history and a simple command completion hook this makes the
interactive mode a lot easier to deal with.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ae59185f6fa0cb7876f4cb73c80461e9689fb097

Git commit bbe9059ed35dddcc7d2da21ac4ff38710942d85a by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:24..
pipewire: re-use info dict for the journal logger

All the config options we pass in are standardised in spa/support/log.h, so the
journal logger should be (and it is) able to handle or ignore them.
https://invent.kde.org/neon/backports-focal/pipewire/commit/bbe9059ed35dddcc7d2da21ac4ff38710942d85a

Git commit 9a6b929eb17bf73ee7cf8eb6be748cc8ce3d9664 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:24..
doc: document the two other log enviroment variables
https://invent.kde.org/neon/backports-focal/pipewire/commit/9a6b929eb17bf73ee7cf8eb6be748cc8ce3d9664

Git commit 92c7c8354d976e5927c4d5cf33d1734864be763e by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:24..
pipewire: don't log the location if PIPEWIRE_LOG_LINE=false

Default remains enabled, but sometimes it's easier to not have this.
https://invent.kde.org/neon/backports-focal/pipewire/commit/92c7c8354d976e5927c4d5cf33d1734864be763e

Git commit 264141b31b3f6b4306f15408404e035dc8c3dcc8 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:24..
media-session: add a doc blurb for the restore-stream module
https://invent.kde.org/neon/backports-focal/pipewire/commit/264141b31b3f6b4306f15408404e035dc8c3dcc8

Git commit 6bf1f9a6943eab41cd52420d2d7cc627e64a82dc by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
spa: split the callback version check into a separate macro
https://invent.kde.org/neon/backports-focal/pipewire/commit/6bf1f9a6943eab41cd52420d2d7cc627e64a82dc

Git commit cbcf62f3415f0a66fc41cc21ce5e6779f65a821e by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
spa: add a macro to check for a callback version

spa_interface_call() and friends will quietly do nothing if the version
doesn't match so we need an extra macro to know whether we can
spa_interface_call() for any given version.

This allows us to implement things like:
   if (spa_interface_callback_version_min(1)
        spa_interface_call(..., 1, func_v1)
   else
        spa_interface_call(..., 0, func_v0)
https://invent.kde.org/neon/backports-focal/pipewire/commit/cbcf62f3415f0a66fc41cc21ce5e6779f65a821e

Git commit 9eda8344173b6f0d83eaa8f9a4d09aa505c9b2ba by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
spa: use the spa_log_logv macro to chain the log calls

No need to use the interface call directly here, let's just use the
macro.
https://invent.kde.org/neon/backports-focal/pipewire/commit/9eda8344173b6f0d83eaa8f9a4d09aa505c9b2ba

Git commit 26cfdc95ccc8fe5de1b06052163e3e2dcc1e1a33 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
pipewire: use the spa_log_logv macro instead of a direct interface call

This checks the log level of global_log.level again which is always the
same as the global pw_log_level.
https://invent.kde.org/neon/backports-focal/pipewire/commit/26cfdc95ccc8fe5de1b06052163e3e2dcc1e1a33

Git commit 0e60e9c063277164b02d6ddad5a00c6ef8224d1f by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
spa: add topic-based logging

Add a struct spa_log_topic that allows for logical grouping of messages.
The new macros spa_log_logt() and spa_log_logtv() take a topic as
argument, the topic's level acts as filter.
A new macro spa_log_topic_init() initializes a topic. By default a topic
inherits its logger's debug level but a logger implementation may set
that topic to a specific fixed log level.

The various spa_log_*() macros transparently wrap new and old
implementations:
- if the implementation is version 0, the new logt() calls drop the
  topic and get routed into the old log() calls
- if the implementation is version 1, the old log() calls use a NULL
  topic and get routed into the new logt() calls

All spa_log_* macros use the SPA_LOG_DEFAULT_TOPIC topic (NULL), it is
up to the caller to redefine that. Alternatively, use spa_logt_* to pass
an explicit topic.

There is one crucial flaw in this implementation: log topics are
initialized to their target level by the current logger. Where a topic
is initialized but the logger is switched later, the topic is not
automatically re-initialized. Ultimately this shouldn't matter for
real-world use-cases.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0e60e9c063277164b02d6ddad5a00c6ef8224d1f

Git commit 59a5791d41ca834152a3381377cfd6ae9d3e0660 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
spa: implement the new topic logging for the provided loggers

Both simple log implementation now support the new topic-based
functions, and so does the journal logger too.
https://invent.kde.org/neon/backports-focal/pipewire/commit/59a5791d41ca834152a3381377cfd6ae9d3e0660

Git commit b58282353bda1faf5817b14a1b025e5521e9732c by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
pipewire: pass the PIPEWIRE_DEBUG config down to the logger

Convert the PIPEWIRE_DEBUG environment variable to the json format
specified by the log interface and pass it on.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b58282353bda1faf5817b14a1b025e5521e9732c

Git commit 52bd80aaa45c8b72699e9d1faca640de8d7564b2 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
log: add topic loggers and a default topic

pw_log_log/logv now go through the topic-based logger using the
"default" topic. Log topics themselves can be allocated by the call
sites. The simplest way to use a topic from e.g. a module:

    PW_LOG_TOPIC_STATIC(mod_topic, "mod.foo");
    #define PW_LOG_TOPIC_DEFAULT mod_topic
    ...
    void pipewire__module_init() {
  	  PW_LOG_TOPIC_INIT(mod_topic);
  	  ...
    }

With the #define all pw_log_foo() are now routed through the custom
topic. For the cases where the log topic must be specified, a
pw_logt_foo() set of macros is available.

Log topics are enabled through the PIPEWIRE_DEBUG environment variable
which now supports globs, e.g. PIPEWIRE_DEBUG="*:I;mod.access:D"
to enable global INFO but DEBUG for the access module.

Namespaces documented are "pw", "mod" and "conn", for pipewire-internal
stuff, modules and connection dumping. The latter is special-cased to
avoid spamming the log files, it requires an expcit "conn.<glob>"
pattern to enable.

The "default" topic always exists and is the fallback for any
pw_log_foo() invocation that does not use a topic.
https://invent.kde.org/neon/backports-focal/pipewire/commit/52bd80aaa45c8b72699e9d1faca640de8d7564b2

Git commit a6e66d91801b3f2a16ff14c27a5c5b937bd95e20 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
pipewire: use the internal log topics
https://invent.kde.org/neon/backports-focal/pipewire/commit/a6e66d91801b3f2a16ff14c27a5c5b937bd95e20

Git commit e9d869b46f0bbd61632ee5a8f6c4797f41ce9243 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
spa: implement a log topic for alsa
https://invent.kde.org/neon/backports-focal/pipewire/commit/e9d869b46f0bbd61632ee5a8f6c4797f41ce9243

Git commit 14112fd168940584967e9ef126afb0550d3bc480 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
modules: use the new topic-based logging from various pipewire modules
https://invent.kde.org/neon/backports-focal/pipewire/commit/14112fd168940584967e9ef126afb0550d3bc480

Git commit 96f8a7597ea332404b4107ee6855709e16f2a555 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
modules: switch protocol-native to the new logging system

This is more complicated than a normal module because we have two
logging topics: mod.protocol-native and conn.protocol-native for wire
messages. Because the latter use spa_debug (through spa_debug_pod) we
need to #define our way around so those too use the right topics.

Note that this removes the previous "connection" category, it is now
"conn.protocol-native" instead.
https://invent.kde.org/neon/backports-focal/pipewire/commit/96f8a7597ea332404b4107ee6855709e16f2a555

Git commit 52a96bb6026dd1701f29946b3a8083c4a3c5f8bf by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
modules: add log topics to module-protocol-pulse

This ends up using a nested namespace: mod.protocol-pulse for the module
itself, mod.protocol-pulse.foo for the various submodules and
extensions.
https://invent.kde.org/neon/backports-focal/pipewire/commit/52a96bb6026dd1701f29946b3a8083c4a3c5f8bf

Git commit e3b216c026490d58fcf561af1491a1d725e1d4cf by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
media-session: add log topics to all modules

Media-session itself uses ms.core, there are only two files that could
have a sub-topic but right now they don't use it (match-rules and
metadata).

The modules use the ms.mod.* namespace, so it's trivial to filter on
those.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e3b216c026490d58fcf561af1491a1d725e1d4cf

Git commit b3646743c1f7309d61b533c58c45f0930b9837c5 by Wim Taymans (on behalf of Peter Hutterer) on 28/09/2021 at 07:35..
spa: sprinkle more log topics into spa
https://invent.kde.org/neon/backports-focal/pipewire/commit/b3646743c1f7309d61b533c58c45f0930b9837c5

Git commit 4d85e6aead1797a53592970a4032e553c9bfd5af by Wim Taymans on 28/09/2021 at 13:31..
resample: fix off-by-one

Don't use the previously skipped sample to calculate the remaining
amount of samples or else we remove one sample too much in some cases
and cause distortion, mostly when downsampling.

Fixes #1646
https://invent.kde.org/neon/backports-focal/pipewire/commit/4d85e6aead1797a53592970a4032e553c9bfd5af

Git commit 7c28b0d7afbc20337ad4c7f6c5bcc11173c16ba5 by Peter Hutterer on 29/09/2021 at 03:21..
meson: add a summary for the readline dependency
https://invent.kde.org/neon/backports-focal/pipewire/commit/7c28b0d7afbc20337ad4c7f6c5bcc11173c16ba5

Git commit 90cbcb6c0503642aebddf990832d18f055cd71e4 by Wim Taymans (on behalf of Peter Hutterer) on 29/09/2021 at 07:17..
systemd: add PipeWire to the systemd service file descriptions

Without this, a journal entry merely looks like this:
 Stopping Multimedia Service ...

Which is obviously terrible from a branding perspective but also makes
it harder for users to figure out what process was responsible for this
entry.
https://invent.kde.org/neon/backports-focal/pipewire/commit/90cbcb6c0503642aebddf990832d18f055cd71e4

Git commit 4ea8fa81808f7087a68afb8e96f420232df0f126 by Wim Taymans (on behalf of Peter Hutterer) on 29/09/2021 at 07:18..
systemd: make pipewire-pulse require one of the session managers

Where pipewire and friends are started via socket activation,
a PA client connection to the pulse socket triggers
pipewire-pulse.service. That in turn triggers pipewire.service through
Wants/After and once that is started up, pipewire-pulse actually
starts up.

At the same time, pipewire-media-session or wireplumber are started
through WantedBy/after in the respective service files.

Depending on which leg the race condition got out of bed with today,
pipewire-pulse may be finished before the session manager has set up the
graph and the PA client doesn't see any devices.

Fix this by adding a dependency on the session manager in
pipewire-pulse, installed via an Alias so media-session and wireplumber
can install the same alias. Wants is a light dependency, so for the case
where it doesn't exist we fall back to the current behavior anyway.

This doesn't remove the race condition since systemd may deem the
session manager to have started before the graph is set up, but it
should reduce the occurances.

The disadvantage here: only one Alias will be installed by systemd, so
first-come, first-serve in the case of both media-session and
wireplumber being installed.

See #1553
https://invent.kde.org/neon/backports-focal/pipewire/commit/4ea8fa81808f7087a68afb8e96f420232df0f126

Git commit 88d7ea3d8806beb5d9e04bd489ab6cc2d11a7ad8 by Wim Taymans on 29/09/2021 at 08:16..
spa-resample: add some verbose info messages
https://invent.kde.org/neon/backports-focal/pipewire/commit/88d7ea3d8806beb5d9e04bd489ab6cc2d11a7ad8

Git commit d2f05733699e37c557fccb79e6fced03aef82cd7 by Barnabás Pőcze on 29/09/2021 at 08:35..
pipewire: module-zeroconf-discover: handle module destroy events

module-zeroconf-discover loads module-pulse-tunnel for each entity
exposed on the network. Previously, however, the destroy event
of the loaded pulse-tunnel modules were not handled.

This resulted in a use-after-free because both `pw_context_destroy()`
and `module-zeroconf-discover.c:impl_free()` tried to destroy
the pulse-tunnel modules. The reason for that is that since
1de16afc40b16f198a94e46ac6ad75949f2de81e the modules
are prepended to the module list of the context, not appended,
therefore modules are destroyed in LIFO order, thus the pulse-tunnel
modules were destroyed before the zeroconf-discover module that
loaded them.

Fix that by handling the destroy event of the loaded pulse-tunnel
modules.

Fixes #1653
https://invent.kde.org/neon/backports-focal/pipewire/commit/d2f05733699e37c557fccb79e6fced03aef82cd7

Git commit 275dfed92af8e0f7dfbe3d8d22402f3fa8440388 by Wim Taymans on 29/09/2021 at 14:30..
filter-chain: handle unaligned sum_simd

Fall back to slow path if the input is not aligned, which can happen
after resampling.

Fixes #1659
https://invent.kde.org/neon/backports-focal/pipewire/commit/275dfed92af8e0f7dfbe3d8d22402f3fa8440388

Git commit d6469e54372e59af7bed771fed688ab7e9ab3ef5 by Wim Taymans on 29/09/2021 at 14:53..
filter-chain: make it possible to suggest a samplerate

Make it possible to let a plugin suggest a samplerate for the filter.
Make the convolver suggest the samplerate of the IR file anf use that
if nothing else is specified in the config.

Fixes #1659
https://invent.kde.org/neon/backports-focal/pipewire/commit/d6469e54372e59af7bed771fed688ab7e9ab3ef5

Git commit b45d906dc474904940162a25f82a095ae2445f24 by Wim Taymans on 29/09/2021 at 14:59..
support: increment methods version

Using the version of the .h files is always the latest.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b45d906dc474904940162a25f82a095ae2445f24

Git commit a9c64e1609f119b93efccb5bc67dbcfcc2b12513 by Wim Taymans on 29/09/2021 at 15:03..
fix versions of the log interface
https://invent.kde.org/neon/backports-focal/pipewire/commit/a9c64e1609f119b93efccb5bc67dbcfcc2b12513

Git commit 33787ffe1cee05b7e5be7936a4611adc187af5b8 by Wim Taymans on 29/09/2021 at 15:06..
tests: fix log test
https://invent.kde.org/neon/backports-focal/pipewire/commit/33787ffe1cee05b7e5be7936a4611adc187af5b8

Git commit b292a71220d3ed973712943ca05caf260891e8fb by Wim Taymans (on behalf of Barnabás Pőcze) on 29/09/2021 at 15:07..
spa: support: use flexible array member

Use a flexible array member directly to store the pattern.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b292a71220d3ed973712943ca05caf260891e8fb

Git commit 25a0e3beb4a73e59344dd8dc5eab8744debf0213 by Wim Taymans (on behalf of Barnabás Pőcze) on 29/09/2021 at 15:07..
spa: support: do not include C source file

Previously, `log-patterns.c` was included in two other source files
(`journal.c` and `logger.c`). It was also specified in the sources
list for the libspa-support library, which resulted in the unnecessary
independent compilation of the file, generating "defined but not used"
warnings.

Extract the function definitions into `log-patterns.h` and
use that in `journal.c` and `logger.c`, and remove the inclusion
of `log-patterns.c` from both.
https://invent.kde.org/neon/backports-focal/pipewire/commit/25a0e3beb4a73e59344dd8dc5eab8744debf0213

Git commit 184e80d75358552610c214ea55a88389b0b6eeb8 by Wim Taymans (on behalf of Barnabás Pőcze) on 29/09/2021 at 15:07..
spa: support: use spa_list_consume()

Use `spa_list_consume()` when freeing entities in the pattern
list instead of `spa_list_for_each_safe()`.
https://invent.kde.org/neon/backports-focal/pipewire/commit/184e80d75358552610c214ea55a88389b0b6eeb8

Git commit 013567524a80df93cbda50c9bf3a5685b7853319 by Wim Taymans on 29/09/2021 at 15:08..
support: res might be used uninitialized
https://invent.kde.org/neon/backports-focal/pipewire/commit/013567524a80df93cbda50c9bf3a5685b7853319

Git commit fe79e684b75226f723e83ceb2c106f1d8cb725b9 by Peter Hutterer on 29/09/2021 at 23:38..
spa: remove #define SPA_WEAK

This is a leftover from an earlier version of 0e60e9c063277164b02d6. The
attribute is not supported by clang at this time, so let's remove
the #define until we have a use-case that requires it.
https://invent.kde.org/neon/backports-focal/pipewire/commit/fe79e684b75226f723e83ceb2c106f1d8cb725b9

Git commit abd5f9fbe8d79b1a6d3076ec50640c9a7c467b15 by Peter Hutterer on 30/09/2021 at 00:08..
Remove remaining tabs from meson.build files

No changes, just tab-to-space replacement and a little bit of manual
twiddling.
https://invent.kde.org/neon/backports-focal/pipewire/commit/abd5f9fbe8d79b1a6d3076ec50640c9a7c467b15

Git commit 696dbf7cd634d977a674b4266f6349034fe208f6 by Wim Taymans on 30/09/2021 at 07:49..
pulse-tunnel: pass latency as msec
https://invent.kde.org/neon/backports-focal/pipewire/commit/696dbf7cd634d977a674b4266f6349034fe208f6

Git commit 5026645e937517329d284f0060ba7619fab7a152 by Wim Taymans on 30/09/2021 at 07:49..
pulse-server: add latency_msec parameter
https://invent.kde.org/neon/backports-focal/pipewire/commit/5026645e937517329d284f0060ba7619fab7a152

Git commit bb99f9c71e9183c617ed9c825689012887fcaa75 by Wim Taymans (on behalf of Peter Hutterer) on 30/09/2021 at 08:29..
media-session: exit with status 1, not -1

The EXIT_FAILURE define is 1 and besides, it's more common anyway.
https://invent.kde.org/neon/backports-focal/pipewire/commit/bb99f9c71e9183c617ed9c825689012887fcaa75

Git commit 0aa09ec801dd05348ece71de2c3a42fe47409571 by Wim Taymans (on behalf of Peter Hutterer) on 30/09/2021 at 08:29..
media-session: rename mod_topic to ms_topic for clarity
https://invent.kde.org/neon/backports-focal/pipewire/commit/0aa09ec801dd05348ece71de2c3a42fe47409571

Git commit 8352e47878a3ccf0870c5663337e040e1346ace8 by Wim Taymans (on behalf of Peter Hutterer) on 30/09/2021 at 08:30..
media-session: warn if WirePlumber is running on startup

Matches WirePlumber commit 2bc999594 but here we merely print an error
messages instead of failing to start.
https://invent.kde.org/neon/backports-focal/pipewire/commit/8352e47878a3ccf0870c5663337e040e1346ace8

Git commit 47a294c5bf52656998a7f43b13068c02001add77 by Wim Taymans on 30/09/2021 at 08:42..
0.3.38
https://invent.kde.org/neon/backports-focal/pipewire/commit/47a294c5bf52656998a7f43b13068c02001add77

Git commit f26d5d1173e16e2fee6833bcb46e6abde460ff07 by Dylan Aïssi on 01/10/2021 at 07:40..
Merge tag '0.3.38' into upstream/latest
https://invent.kde.org/neon/backports-focal/pipewire/commit/f26d5d1173e16e2fee6833bcb46e6abde460ff07

Git commit 720f4413d39e48b34449f33bd5d70e569cc35f6d by Dylan Aïssi on 01/10/2021 at 07:40..
Merge branch 'upstream/latest' into debian/master
https://invent.kde.org/neon/backports-focal/pipewire/commit/720f4413d39e48b34449f33bd5d70e569cc35f6d

Git commit 7c71e6f5b8ee23f26184f63c5390a0361ead4ff8 by Dylan Aïssi on 01/10/2021 at 07:41..
Bump d/changelog

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/7c71e6f5b8ee23f26184f63c5390a0361ead4ff8

Git commit 07e2b12d23c99a20af378befab7e38cf156c1632 by Dylan Aïssi on 01/10/2021 at 07:47..
Drop d/p/fix-msbc-with-linux-5.14.patch, included in upstream release

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/07e2b12d23c99a20af378befab7e38cf156c1632

Git commit 359c4d0722c48132a5f0a5ab95932f3582664295 by Dylan Aïssi on 01/10/2021 at 07:57..
Add libreadline-dev to Build-Depends

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/359c4d0722c48132a5f0a5ab95932f3582664295

Git commit 2e9ac72f4bb0fa50be6ac3c89dc88cfd1e2586ab by Dylan Aïssi on 01/10/2021 at 08:02..
Update symbols file

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/2e9ac72f4bb0fa50be6ac3c89dc88cfd1e2586ab

Git commit 56a7c96db209dcec03f5d72582b0cb3ba479c6d2 by Dylan Aïssi on 01/10/2021 at 08:08..
Upload to unstable

Signed-off-by: Dylan Aïssi <dylan.aissi at collabora.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/56a7c96db209dcec03f5d72582b0cb3ba479c6d2

Git commit 15eaf65994295da3b4bbcbafd6e70079dba75b6a by Harald Sitter on 04/10/2021 at 09:19..
Merge tag 'debian/0.3.38-1' into Neon/release

pipewire Debian release 0.3.38-1
https://invent.kde.org/neon/backports-focal/pipewire/commit/15eaf65994295da3b4bbcbafd6e70079dba75b6a


More information about the Neon-commits mailing list