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

KDE Git Services - Bulk Change null at kde.org
Mon Jun 28 10:34:23 BST 2021


Git repository change summary for neon/backports-focal/pipewire
Pushed by sitter into branch 'Neon/release-lts'.
Changed from 9f6b394174d942f475fc97a3128e72bb94d5617e to 7f872523991ce43f4539d4900e6335466efcdd4c
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 b1610d37fe606c744f88d09ba10c0d617344ab1f by Jonas Holmberg on 19/05/2021 at 15:39..
modules: Add module-rt

Add a module to set thread priorities without using rtkit.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b1610d37fe606c744f88d09ba10c0d617344ab1f

Git commit 71c6a175c4cbd9082ef1d9105740a5d38bbe3271 by Wim Taymans (on behalf of Peter Hutterer) on 20/05/2021 at 07:24..
Drop double semicolons
https://invent.kde.org/neon/backports-focal/pipewire/commit/71c6a175c4cbd9082ef1d9105740a5d38bbe3271

Git commit be4d6ef2b9268ff4d495e0b5387fc8a1beaef028 by Wim Taymans (on behalf of Peter Hutterer) on 20/05/2021 at 07:34..
editorconfig: add xml files for the man pages
https://invent.kde.org/neon/backports-focal/pipewire/commit/be4d6ef2b9268ff4d495e0b5387fc8a1beaef028

Git commit 59a8253047d424bb90b532706c033dfd56a23cef by Wim Taymans (on behalf of Peter Hutterer) on 20/05/2021 at 07:34..
man: fix the pipewire.conf man page

This still referred to a config file format prior to 49d11acde01c. Reword
sections accordingly and try to explain the actual configuration file format.

xmltoman is quite limited in its supported tags, so we need to use wrong tags
to get some sensible formatting, notably <opt> to get a bold word.
https://invent.kde.org/neon/backports-focal/pipewire/commit/59a8253047d424bb90b532706c033dfd56a23cef

Git commit 9af86b7b765c584a5155bac00ecb5436b06664f1 by Wim Taymans (on behalf of Peter Hutterer) on 20/05/2021 at 07:34..
man: specify the xdg and confdata dirs in the pipewire.conf man page
https://invent.kde.org/neon/backports-focal/pipewire/commit/9af86b7b765c584a5155bac00ecb5436b06664f1

Git commit 6df32666b44b5174aace3dcff39f39a58eba508f by Wim Taymans on 20/05/2021 at 09:24..
filter-chain: check external ports only once

When we duplicate the pipeline to match the channels, only check
if a port was used only once for the first instance. Makes
demonic filter work again.
https://invent.kde.org/neon/backports-focal/pipewire/commit/6df32666b44b5174aace3dcff39f39a58eba508f

Git commit 1ce6db47e399a6b16c5b01dbd1ecb8f95db2fcfd by Peter Hutterer on 21/05/2021 at 04:18..
doc: drop meaningless cond/endcond
https://invent.kde.org/neon/backports-focal/pipewire/commit/1ce6db47e399a6b16c5b01dbd1ecb8f95db2fcfd

Git commit 2b626bc31a1ef60bed74a4ed6931fe606b3e15be by Peter Hutterer on 21/05/2021 at 04:18..
doc: add a missing endcond to the context
https://invent.kde.org/neon/backports-focal/pipewire/commit/2b626bc31a1ef60bed74a4ed6931fe606b3e15be

Git commit ff7675b142b9fe7f21fd3681cee4eff844cd6f35 by Peter Hutterer on 21/05/2021 at 04:18..
doc: escape the use of <pid> and <username> with markdown

Doxygen complains about invalid HTML tags, let's mark them as code.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ff7675b142b9fe7f21fd3681cee4eff844cd6f35

Git commit ef6528c513016b04871f035b6c36504a2a137d13 by Peter Hutterer on 21/05/2021 at 04:19..
doc: fix an obsolete reference to pw_fill_stream_properties

As of f724319e8aac5edacd94edcdc40f68c2cde23f1c this happens automatically and
the function is no longer available.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ef6528c513016b04871f035b6c36504a2a137d13

Git commit 0c41f24401d6066b939d2eccd5d11b4deff2ca59 by Peter Hutterer on 21/05/2021 at 05:04..
doc: fix an outdated reference
https://invent.kde.org/neon/backports-focal/pipewire/commit/0c41f24401d6066b939d2eccd5d11b4deff2ca59

Git commit f47f85bbcb00ab8ee657dc8112291e0571f08dd7 by Peter Hutterer on 21/05/2021 at 05:04..
doc: fix broken references

These pages never existed, let's not try to reference them.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f47f85bbcb00ab8ee657dc8112291e0571f08dd7

Git commit c9cab11a822a0adfab309e614c96adf13960a9ba by Peter Hutterer on 21/05/2021 at 05:04..
doc: drop two references to entities we don't include in doxygen
https://invent.kde.org/neon/backports-focal/pipewire/commit/c9cab11a822a0adfab309e614c96adf13960a9ba

Git commit ac9de036721ba69e0ecea8c039b4bffdf0a94ad8 by Peter Hutterer on 21/05/2021 at 05:04..
doc: document some missing parameters
https://invent.kde.org/neon/backports-focal/pipewire/commit/ac9de036721ba69e0ecea8c039b4bffdf0a94ad8

Git commit 1567dd4e3a675626507215cd976830c3499fada0 by Peter Hutterer on 21/05/2021 at 05:04..
doc: fix some missing parameter warnings

Where both declaration and definition are documented, drop one and rely on the
other. Drop the obvious documentations where not needed, doxygen wants either
none or all parameters documented.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1567dd4e3a675626507215cd976830c3499fada0

Git commit 923e7c8b591622a985250410a1b45745d4619693 by Peter Hutterer on 21/05/2021 at 05:04..
doc: doxygen can't document a nonexisting enum
https://invent.kde.org/neon/backports-focal/pipewire/commit/923e7c8b591622a985250410a1b45745d4619693

Git commit 7c4bfe5a1557e6a067a1fd18a9a36dfd52dd79a2 by Peter Hutterer on 21/05/2021 at 05:04..
doc: use markdown ticks instead of escaped html for readability
https://invent.kde.org/neon/backports-focal/pipewire/commit/7c4bfe5a1557e6a067a1fd18a9a36dfd52dd79a2

Git commit 4cf18c92f8c1b7914d055fc69bc8ff8bb90f33d2 by Peter Hutterer on 21/05/2021 at 05:04..
spa: fix few doxygen errors
https://invent.kde.org/neon/backports-focal/pipewire/commit/4cf18c92f8c1b7914d055fc69bc8ff8bb90f33d2

Git commit cbe29c070cad1ca3fddabd0e11ead6cc05ae08bb by Peter Hutterer on 21/05/2021 at 05:05..
doc: switch doxygen to using groups instead of pages and classes

C code doesn't lend itself well to using classes and pages are best for prose.
A doxygen group is a set of related functions - which is exactly what we have
here, e.g. pw_context.

This patch basically adds the following lines to each header:
\defgroup pw_whatever
\addtogroup pw_whatever
\{
....  function declarations ....
\}

Doxygen is smart enough to merge documentation in the header with
documentation in the correspondin .c file where the function is implemented.
https://invent.kde.org/neon/backports-focal/pipewire/commit/cbe29c070cad1ca3fddabd0e11ead6cc05ae08bb

Git commit 079b90bde5855232e356bf0a5dd9e08582a0be74 by Peter Hutterer on 21/05/2021 at 06:08..
doc: add a custom doxygen theme based on doxygen-awesome

Theme from doxygen-awesome-css with custom modifications based on the
pipewire.org website to use the same type of blue, grey, etc.

doxygen-awesome-css is MIT licensed, see
https://github.com/jothepro/doxygen-awesome-css
https://invent.kde.org/neon/backports-focal/pipewire/commit/079b90bde5855232e356bf0a5dd9e08582a0be74

Git commit 89c10dad703b4cddfcf33c554104a103f08de948 by Wim Taymans on 21/05/2021 at 08:10..
spa: Clean up some of the param handling
https://invent.kde.org/neon/backports-focal/pipewire/commit/89c10dad703b4cddfcf33c554104a103f08de948

Git commit 36000ea508e124e76ec84980e9d2cd791b87748a by Wim Taymans on 21/05/2021 at 08:45..
stream: clean up the params

Use defines for the param index.
Fix params for filter. Make it possible to use Props params.
https://invent.kde.org/neon/backports-focal/pipewire/commit/36000ea508e124e76ec84980e9d2cd791b87748a

Git commit 3c503ca240f60a1aedf16a2f128c845f427f5581 by Wim Taymans on 21/05/2021 at 08:46..
impl-link: improve debug, log param name
https://invent.kde.org/neon/backports-focal/pipewire/commit/3c503ca240f60a1aedf16a2f128c845f427f5581

Git commit 39a2636c9b7bca208ea4cf7073d240180121c7ec by Wim Taymans on 21/05/2021 at 09:08..
alsa: clean up port and node params
https://invent.kde.org/neon/backports-focal/pipewire/commit/39a2636c9b7bca208ea4cf7073d240180121c7ec

Git commit da566c286589aa57475a0db4a33f5efcd5358b21 by Wim Taymans (on behalf of columbarius) on 21/05/2021 at 10:41..
spa: add property flag SPA_POD_PROP_FLAG_MANDATORY

This flag is used to announce that the respective key is mandatory and
therefore the object containing this key is not suitable to be merged
with other objects missing it.
https://invent.kde.org/neon/backports-focal/pipewire/commit/da566c286589aa57475a0db4a33f5efcd5358b21

Git commit d735d32eb3c3a1e33b52f767f60c0df40cbe5c0e by Wim Taymans (on behalf of columbarius) on 21/05/2021 at 10:41..
spa: respect mandatory properties while filtering
https://invent.kde.org/neon/backports-focal/pipewire/commit/d735d32eb3c3a1e33b52f767f60c0df40cbe5c0e

Git commit 6216de6ca0243ace8f8b84d6f784ab37f0e73eac by Valentin David on 21/05/2021 at 12:39..
alsa: Add support for SteelSeries Arctis 9 Wireless
https://invent.kde.org/neon/backports-focal/pipewire/commit/6216de6ca0243ace8f8b84d6f784ab37f0e73eac

Git commit d2e1b968afe83be089d2009725e545491310f258 by Sjoerd Simons on 22/05/2021 at 12:26..
Let pipewire-pulse services conflict with their pulseaudio counterparts

You can only run either pulseaudio *or* the pipewire-pulse daemon at one
time. So make the pipewire-pulse units conflict with their pulseaudio
counterparts to avoid both running at the same time
https://invent.kde.org/neon/backports-focal/pipewire/commit/d2e1b968afe83be089d2009725e545491310f258

Git commit e9ba0899c2a5f3942a3cee1b9fcd651422a12e26 by Wim Taymans (on behalf of Barnabás Pőcze) on 24/05/2021 at 08:23..
filter-chain: fix rnnoise example configuration

Other filter-chain configuration file examples do not prefix
the plugin key with 'ladspa/'. And in the absence of
the LADSPA_PATH environmental variable, this would lead
to "/usr/lib64/ladspa/ladspa/librnnoise_ladspa.so" being used
as the path, which is not correct.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e9ba0899c2a5f3942a3cee1b9fcd651422a12e26

Git commit a8a6def20fee7a3d5de09ab7e7688220c3d4a733 by Wim Taymans (on behalf of Barnabás Pőcze) on 24/05/2021 at 08:23..
filter-chain: fix reference counting issue

Fix a reference counting issue that resulted in
ladspa_handle's refcount being equal to the
sum of the refcounts of its descriptors.

This would result in a memory leak when a descriptor
is loaded more than once from the same handle.
This cannot happen because `ladspa_handle_list` is
not  populated by `ladspa_handle_load()`.
The next commit implements exactly that, so
the fix is applied before the change that
would introduce the problem.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a8a6def20fee7a3d5de09ab7e7688220c3d4a733

Git commit 67e588f382a05415852327096b06c45a0266e244 by Wim Taymans (on behalf of Barnabás Pőcze) on 24/05/2021 at 08:23..
filter-chain: actually use ladspa_handle_list

Add successfully loaded handles to the list in `ladspa_handle_load()`,
and remove them when they are freed in `ladspa_handle_unref()`.
https://invent.kde.org/neon/backports-focal/pipewire/commit/67e588f382a05415852327096b06c45a0266e244

Git commit 22d874cdeb99b3a6c1266d9e234076eaac0c9ab1 by Wim Taymans (on behalf of Barnabás Pőcze) on 24/05/2021 at 08:23..
filter-chain: handle LADSPA_PATH as colon separated list of paths

Split up LADSPA_PATH at colons, and try to load the particular
plugin from each directory specified in LADSPA_PATH.

Fixes #1217.
https://invent.kde.org/neon/backports-focal/pipewire/commit/22d874cdeb99b3a6c1266d9e234076eaac0c9ab1

Git commit fa64d93e64592d5edd8767f722cf4ea093641052 by Wim Taymans (on behalf of Fabrice Fontaine) on 24/05/2021 at 08:33..
fix linking with -latomic

Linking with -latomic has been added to pipewire-jack since
https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/b8c58c74d835ee2918f9e391abd65f9e0132bdb4

However, this is not the right place to add this dependency, atomic_dep
should be added to pipewire_dep to avoid the following build failure:

/home/giuliobenetti/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/9.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: src/pipewire/libpipewire-0.3.so.0.326.0.p/filter.c.o: in function `impl_node_process':
filter.c:(.text+0xf28): undefined reference to `__atomic_fetch_add_4'

Indeed, atomic operation such as __atomic_fetch_add is used in libcamera
as well as in ./spa/plugins/libcamera/libcamera_wrapper.cpp,
./spa/include/spa/utils/ringbuffer.h and ./spa/include/spa/graph/graph.h

Fixes:
 - http://autobuild.buildroot.org/results/b5305e8e7dd1a5e8bfaba72b06251056ba7d1af1

Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
https://invent.kde.org/neon/backports-focal/pipewire/commit/fa64d93e64592d5edd8767f722cf4ea093641052

Git commit 25f9765e9cf0cc94b90e9e16d5916662a4e80361 by Wim Taymans (on behalf of Arun Raghavan) on 24/05/2021 at 08:34..
pulse-server: Implement module-combine-sink
https://invent.kde.org/neon/backports-focal/pipewire/commit/25f9765e9cf0cc94b90e9e16d5916662a4e80361

Git commit 8e3635331112fd4137f7714204a2fcac808e027e by Wim Taymans on 24/05/2021 at 10:58..
pulse-server: module-combine-sink remove right property
https://invent.kde.org/neon/backports-focal/pipewire/commit/8e3635331112fd4137f7714204a2fcac808e027e

Git commit 1e9442e6b87f62076302ada2ec1b29fb6f85a2e5 by Barnabás Pőcze on 25/05/2021 at 12:55..
pulse-server: fix memory issue

Previously, when `pw_protocol_pulse_new()` returned NULL,
the code would jump to the `error` label, which would
call `impl_free()`. At this point, however, `impl->module_listener`
is not initialized, which would lead to a SIGSEGV when
`spa_hook_remove()` is called from `impl_free()`.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1e9442e6b87f62076302ada2ec1b29fb6f85a2e5

Git commit f1cc525d7e5e097e2f4f5340e81d9ae533e40ba9 by Georges Basile Stavracas Neto on 25/05/2021 at 21:41..
Add channel paths to analog-surround-*

Motu M4 has four inputs (two line-in inputs, and two complete ones
with gain and XLR and whatnot), as well as four outputs (two monitor
pairs, and an unnaccounted headphone).

Sadly, like a few other interfaces, it wasn't being given an input
profile, since the matching code goes through default.conf testing
each config, and ends up selecting 'analog-surround-40', which does
not have input mapping. The inputs would fallback to 'multichannel-
input', which also doesn't have input paths.

Add input paths to all analog-surround-* mappings, and remove their
'direction=output' fields since they handle both out and in.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f1cc525d7e5e097e2f4f5340e81d9ae533e40ba9

Git commit 799ba7de1626d570fe21f8fec98a27ef6a79fdcd by Wim Taymans (on behalf of Johannes Wolf) on 26/05/2021 at 07:35..
alsa-profiles: Add NI Komplete Audio 6 profile set
https://invent.kde.org/neon/backports-focal/pipewire/commit/799ba7de1626d570fe21f8fec98a27ef6a79fdcd

Git commit d0aff793b76d29f399be239015490036cea3b7d4 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:44..
spa: doxygenize the param/video comments
https://invent.kde.org/neon/backports-focal/pipewire/commit/d0aff793b76d29f399be239015490036cea3b7d4

Git commit 07533cb708f92efe85c5c7c84b36cbe4155ff15f by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:44..
spa: group the spa headers into doxygen modules

Subdirectories buffer, control, debug, monitor, pod, support and utils, others
are still missing. Headers are grouped either per subdirectory (e.g. buffer/
gets added to group spa_buffer) or per-file (e.g. spa_json is a separate
group), whatever seemed like the most sensible approach.
https://invent.kde.org/neon/backports-focal/pipewire/commit/07533cb708f92efe85c5c7c84b36cbe4155ff15f

Git commit 851a64d8c84f6ee3558bf3376e04490facdea69e by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:44..
doc: add spa to doxygen output

This requires a helper script: doxygen doesn't differ between static methods
and static inline methods. EXTRACT_STATIC defines whether it parses *any*
static method but we're currently using all C files as input files as well. We
cannot convince doxygen to just parse static inline functions in header files
so for SPA we hack around this: meson passes the spa headers to a shell script
with simply copies those changed to `/* static */ inline void (foo)` and doxygen
then runs on those header files.

The result: we get all spa functions added to your doxygen output at the cost
of a few sed calls.
https://invent.kde.org/neon/backports-focal/pipewire/commit/851a64d8c84f6ee3558bf3376e04490facdea69e

Git commit 3aacc719b2b95335c732c184480551d21f8cee82 by Wim Taymans (on behalf of modula t) on 26/05/2021 at 07:46..
fix floating point exception when `s->clock.position' is less than `s->offset`
https://invent.kde.org/neon/backports-focal/pipewire/commit/3aacc719b2b95335c732c184480551d21f8cee82

Git commit 6d19dd0162aeb39421a81d889a24602ecbaead61 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:46..
pulse-server: if all transport methods failed, fail server creation

No point in keeping a server running if it doesn't listen to anything.
https://invent.kde.org/neon/backports-focal/pipewire/commit/6d19dd0162aeb39421a81d889a24602ecbaead61

Git commit 4dd886188a52b44a5805cdb2701b8671e4a6a246 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:51..
alsa: fix scan-build errors for unused variables

All cases of value stored but never read
https://invent.kde.org/neon/backports-focal/pipewire/commit/4dd886188a52b44a5805cdb2701b8671e4a6a246

Git commit 5596e350ea4d6840ca7ae17bb5b936039de119f5 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:51..
pipewire-jack: fix scan-build errors for unused variables

All cases of value stored but never read
https://invent.kde.org/neon/backports-focal/pipewire/commit/5596e350ea4d6840ca7ae17bb5b936039de119f5

Git commit f3f915e897534b1242f491f16001b83a0b78255c by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:51..
pipewire-alsa: fix scan-build errors for unused variables

All cases of value stored but never read
https://invent.kde.org/neon/backports-focal/pipewire/commit/f3f915e897534b1242f491f16001b83a0b78255c

Git commit 2cb7b19b7d144bbd005de9afe9f7bade5c4d3026 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:51..
pulse-server: fix scan-build errors for unused variables

All cases of value stored but never read
https://invent.kde.org/neon/backports-focal/pipewire/commit/2cb7b19b7d144bbd005de9afe9f7bade5c4d3026

Git commit 07503410c7ea2fc073cf671874271a310f01371b by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:51..
stream: fix scan-build errors for unused variables

All cases of value stored but never read
https://invent.kde.org/neon/backports-focal/pipewire/commit/07503410c7ea2fc073cf671874271a310f01371b

Git commit 049eaac821f926e0e112daefc26ebc1975a9b344 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:51..
modules: fix scan-build errors for unused variables

All cases of value stored but never read
https://invent.kde.org/neon/backports-focal/pipewire/commit/049eaac821f926e0e112daefc26ebc1975a9b344

Git commit 0b5f19f1d2e390b95ccb3908f0e7ba1b96f32cbe by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:51..
pipewire: fix scan-build errors for unused variables

All cases of value stored but never read
https://invent.kde.org/neon/backports-focal/pipewire/commit/0b5f19f1d2e390b95ccb3908f0e7ba1b96f32cbe

Git commit e1211e6a945b24ffa6992a3f2a18779a8e0710fe by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:51..
tools: fix scan-build errors for unused variables

All cases of value stored but never read
https://invent.kde.org/neon/backports-focal/pipewire/commit/e1211e6a945b24ffa6992a3f2a18779a8e0710fe

Git commit 25a58fd9398061c98fd03e2a4d9514a692d3f8dd by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:51..
examples: fix scan-build errors for unused variables

All cases of value stored but never read
https://invent.kde.org/neon/backports-focal/pipewire/commit/25a58fd9398061c98fd03e2a4d9514a692d3f8dd

Git commit 5e5b9e305062b2848c9ed28104f2cfe52e3ca075 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 07:54..
conf: PIPEWIRE_CONFIG_DIR should take precedence if set

This matches the behavior of most applications - check environment variables
first, then fall back to the various built-in options (in our case xdg, /etc/
/usr/share, in that order).
https://invent.kde.org/neon/backports-focal/pipewire/commit/5e5b9e305062b2848c9ed28104f2cfe52e3ca075

Git commit f8243f3cc190acca899cc708527b49093f18a5db by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 08:02..
doc: move spa/foo.md to spa-foo.md

Flatten the hierarchy a bit to make it easier to handle.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f8243f3cc190acca899cc708527b49093f18a5db

Git commit b00e524341445dc67f0c943e99222f6e05c528f8 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 08:02..
doc: rename design.txt to design.md

It's a valid markdown file, let's have only one file type here.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b00e524341445dc67f0c943e99222f6e05c528f8

Git commit 6cf819ab1c9acecf526b2c4c4d1a0252472a0b6c by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 08:02..
doc: namespace the pipewire md files
https://invent.kde.org/neon/backports-focal/pipewire/commit/6cf819ab1c9acecf526b2c4c4d1a0252472a0b6c

Git commit fce28ac59b9772ddd130907991a3b5953a1e216f by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 08:02..
doc: remove duplicate tutorial reference
https://invent.kde.org/neon/backports-focal/pipewire/commit/fce28ac59b9772ddd130907991a3b5953a1e216f

Git commit 9ed9980fa2ce1343b55914f865a0b8c79dcf1bd3 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 08:02..
doc: change the tutorials to doxygen sources

While doxygen can handle markdown pages, support for it is very limited:
markdown pages can only be included as a whole page, they get an automatic
title (custom titles are possible but aren't standard markdown) and it's not
possible to use \subpage without messing with the markdown again. Any markdown
page will thus end up as separate item in the doxygen output, not really
suitable for generating a good page hiearchy.

Let's switch the tutorial to use doxygen directly instead of markdown, short
of using code/endcode instead of markdown's ``` there isn't that much
difference anyway but it allows us to structure things nicer in the online
docs.
https://invent.kde.org/neon/backports-focal/pipewire/commit/9ed9980fa2ce1343b55914f865a0b8c79dcf1bd3

Git commit 46a39e0ba7aa9ac11a220e103cfb98e89974a970 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 08:02..
doc: switch the spa documentation to doxygen
https://invent.kde.org/neon/backports-focal/pipewire/commit/46a39e0ba7aa9ac11a220e103cfb98e89974a970

Git commit 13bb152840203014969bb4863d27cb9868a9c315 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 08:02..
doc: fix a copy/paste-o
https://invent.kde.org/neon/backports-focal/pipewire/commit/13bb152840203014969bb4863d27cb9868a9c315

Git commit b64f0d581f720943ceed5e8285319cc5d44e47e1 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 08:02..
doc: switch from .md to .dox files and impose some general structure

This is an attempt of breaking up the documentation, currently spread across
several pages. We're left with a few high-level topics with various things
grouped underneath those.

Further refinement is necessary, but this can now be done in incremental steps
over massive reworks.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b64f0d581f720943ceed5e8285319cc5d44e47e1

Git commit bc64b32798a4e9397fdadd07be55d7d18c2b4887 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 08:03..
bluez: fix a memleak on error

If the allocation failed, our strdup'ed path would leak.

Found by scan-build
https://invent.kde.org/neon/backports-focal/pipewire/commit/bc64b32798a4e9397fdadd07be55d7d18c2b4887

Git commit e83f039833e300814541933dccf6b3ab0a614695 by Wim Taymans (on behalf of Peter Hutterer) on 26/05/2021 at 08:03..
alsa: free the strdup'd substring on error

n is the return value of pa_split()

Found by scan-build
https://invent.kde.org/neon/backports-focal/pipewire/commit/e83f039833e300814541933dccf6b3ab0a614695

Git commit 8027c9225e21fb183e36b7b9a241fe39e7c3498e by Wim Taymans on 26/05/2021 at 08:17..
context: log some more errors when config file fails
https://invent.kde.org/neon/backports-focal/pipewire/commit/8027c9225e21fb183e36b7b9a241fe39e7c3498e

Git commit f007ca475c1f46a1bab05c4da6f8f46214157251 by Wim Taymans on 26/05/2021 at 08:18..
pw-cli: handle failure to create context

Fixes #1234
https://invent.kde.org/neon/backports-focal/pipewire/commit/f007ca475c1f46a1bab05c4da6f8f46214157251

Git commit 4e4294dc13005510a60b92345d1097b49cb8e16e by Wim Taymans on 26/05/2021 at 08:23..
pulse-server: handle NULL dbus connection

Fixes #1224
https://invent.kde.org/neon/backports-focal/pipewire/commit/4e4294dc13005510a60b92345d1097b49cb8e16e

Git commit 492caf44565a2820fd8e04bb8206a024d472053e by Wim Taymans on 26/05/2021 at 08:44..
pulse-server: handle errors during create

If a stream is being created and an error occurs we always need to
reply with the pending create_tag.

Fixes #624
https://invent.kde.org/neon/backports-focal/pipewire/commit/492caf44565a2820fd8e04bb8206a024d472053e

Git commit 751f9a9ea0358f876a212912140144c32618cac7 by Wim Taymans on 26/05/2021 at 08:52..
dbus: make sure we don't unref a NULL dbus connection

See #1213
https://invent.kde.org/neon/backports-focal/pipewire/commit/751f9a9ea0358f876a212912140144c32618cac7

Git commit 653c60b7cca17862e3f76679efb289c7e0f4e25f by Wim Taymans on 26/05/2021 at 13:41..
Change IRC server name
https://invent.kde.org/neon/backports-focal/pipewire/commit/653c60b7cca17862e3f76679efb289c7e0f4e25f

Git commit de270ba87a1a7b8ad941e41da59187c45d6d23f2 by Wim Taymans on 26/05/2021 at 13:48..
README: Fix new IRC server link
https://invent.kde.org/neon/backports-focal/pipewire/commit/de270ba87a1a7b8ad941e41da59187c45d6d23f2

Git commit 733ad43d3fd48350f744ab0861b10da5ea2559ee by Wim Taymans (on behalf of James Henstridge) on 27/05/2021 at 11:24..
module-portal: direct GetConnectionUnixProcessID call to /org/freedesktop/DBus

The D-Bus specification says that the message bus accepts method calls
on other object paths for backwards compatibility, and may reject
security sensitive calls on unexpected object paths:

https://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-messages
https://invent.kde.org/neon/backports-focal/pipewire/commit/733ad43d3fd48350f744ab0861b10da5ea2559ee

Git commit 265cad2704d611ac20d753c7d12aea0733fb2be6 by Wim Taymans (on behalf of Peter Hutterer) on 27/05/2021 at 11:27..
pw-uninstalled: set PW_UNINSTALLED=1 so we can adjust the shell

This allows for easy configuration of the shell if we're inside
pw-uninstalled's shell, e.g. PS1="$PS1  ${PW_UNINSTALLED:+🪠}"
https://invent.kde.org/neon/backports-focal/pipewire/commit/265cad2704d611ac20d753c7d12aea0733fb2be6

Git commit c8c0a152b7c8ff7a4d83ff72120594fbcb1d8b70 by Wim Taymans (on behalf of Peter Hutterer) on 27/05/2021 at 11:27..
man: drop --name documentation from pipewire.1

Support for this was dropped in 80825aeaea752a4ca50aedf3a38e4b2ded3f50d1
https://invent.kde.org/neon/backports-focal/pipewire/commit/c8c0a152b7c8ff7a4d83ff72120594fbcb1d8b70

Git commit 46ef88e520dba50df2b39167aa7257ccbb4c17ba by Wim Taymans on 27/05/2021 at 13:21..
spa: save the old change_mask and restore when emitting full

When we add a new listener to an object, it will emit the full state
of the object. For this it temporarily sets the change_mask to all
changes. Restore the previous state after this or else we might not
emit the right change_mask for the next listener.

Consider the case where one there are two listeners on an object.
The object emits a change and the first listener wants to enumerate the
changed params. For this is adds a new listener and then triggers the
enumeration. If we set the change_mask to 0 after adding the listener,
the second listener would get a 0 change_mask and fail to update
its state.
https://invent.kde.org/neon/backports-focal/pipewire/commit/46ef88e520dba50df2b39167aa7257ccbb4c17ba

Git commit 1a8f274a8034cf2e380914cdda7787f509949008 by Wim Taymans on 27/05/2021 at 13:26..
spa: add Latency param and object

Add a new latency param that contains a latency object.
The latency object contains the min and max delay from a port to
the terminal sink/source. It is also possible to express this
delay as a fraction of the quantum to avoid having to recalculate
the latency every time the quantum changes.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1a8f274a8034cf2e380914cdda7787f509949008

Git commit 1cd6d7b01da509c2a9ab633249a774316bf2bbdb by Wim Taymans on 27/05/2021 at 13:26..
spa: Implement latency reporting

Implement latency reporting in alsa
Implement latency reporting on audioconf by passing on the latency
from the follower to outside of the adapter.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1cd6d7b01da509c2a9ab633249a774316bf2bbdb

Git commit b588cc6b03f1fdf332e1be8dd1626d0b922583c6 by Wim Taymans on 27/05/2021 at 13:26..
jack: listen to latency updates on ports

Listen for the latency updates on ports and use this to report
latency.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b588cc6b03f1fdf332e1be8dd1626d0b922583c6

Git commit cd32404e92e73234a1a530ecb011c0c9a4b71707 by Wim Taymans on 27/05/2021 at 13:26..
port: implement latency reporting some more

Implement a port recalculate latency method that takes the min
and max latency of all peer ports and sets that as the new port
latency.
When a link is made, let the output and input port recalculate
latencies.
Pass latency param in audioconvert.
https://invent.kde.org/neon/backports-focal/pipewire/commit/cd32404e92e73234a1a530ecb011c0c9a4b71707

Git commit 0779862cda14e39574a40ee5999d3957d01a0522 by Wim Taymans on 27/05/2021 at 13:26..
alsa-seq: add port latency reporting
https://invent.kde.org/neon/backports-focal/pipewire/commit/0779862cda14e39574a40ee5999d3957d01a0522

Git commit b9b89b92b254e089586129edaa36667783d920f2 by Wim Taymans on 27/05/2021 at 13:26..
spa: add some latency helpers

Add more fields to the latency object.
Add methods to create, parse and process latency info.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b9b89b92b254e089586129edaa36667783d920f2

Git commit 0222e408e0ed96499b0f841e6ac3db5b13b75461 by Wim Taymans on 27/05/2021 at 13:26..
audioconvert: use the right latency param

We need to use the latency param of the port direction to configure
the other port.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0222e408e0ed96499b0f841e6ac3db5b13b75461

Git commit cd58c5158270f211d989b2732e73463faab48217 by Wim Taymans on 27/05/2021 at 13:26..
port: implement latency_changed event

Emit the latency changed event when the latency was updated.
https://invent.kde.org/neon/backports-focal/pipewire/commit/cd58c5158270f211d989b2732e73463faab48217

Git commit 80d48ad3b6a99d9a4503da332cf4db8fddedc09a by Wim Taymans on 27/05/2021 at 13:26..
link: recalc latency when the peer latency changed

Trigger a recalculation of the port latency when the peer port
latency changed.

This makes the latency update from a port propagate through the
pipeline.
https://invent.kde.org/neon/backports-focal/pipewire/commit/80d48ad3b6a99d9a4503da332cf4db8fddedc09a

Git commit d8e9a43b9c6523e5ead745ee9c0b7812390c26ca by Wim Taymans on 27/05/2021 at 13:26..
stream: handle Latency param

Handle the latency param and remember the latency. Add the latency
to the delay value in the time.

Also make it possible to add custom Latency params.
https://invent.kde.org/neon/backports-focal/pipewire/commit/d8e9a43b9c6523e5ead745ee9c0b7812390c26ca

Git commit bae0622311780b925f126dc73ddd9a98e8d6c131 by Wim Taymans on 27/05/2021 at 13:26..
filter-chain: pass latency param along

Intercept the latency param and pass it on the right stream.
https://invent.kde.org/neon/backports-focal/pipewire/commit/bae0622311780b925f126dc73ddd9a98e8d6c131

Git commit 4af20141682d98c324e80979ae591bb50bb631fa by Wim Taymans on 27/05/2021 at 13:26..
jack: add latency reporting

Rework the param handling a little.
Keep properties for ports. Use this in the client and port info.
Trigger the latency callback when the port latency changed.
Update the port latency when it changed.
https://invent.kde.org/neon/backports-focal/pipewire/commit/4af20141682d98c324e80979ae591bb50bb631fa

Git commit f383ac21dd0b72e94f5ed129ac4fac3503629a34 by Wim Taymans on 27/05/2021 at 13:26..
pw-cat: remove debug
https://invent.kde.org/neon/backports-focal/pipewire/commit/f383ac21dd0b72e94f5ed129ac4fac3503629a34

Git commit 9262f576d5ec38e30315dabbb94a1244c87d6e01 by Wim Taymans on 27/05/2021 at 13:26..
spa: fix unit test, add new object type
https://invent.kde.org/neon/backports-focal/pipewire/commit/9262f576d5ec38e30315dabbb94a1244c87d6e01

Git commit 07f8a0d27507d6208c19b8fb72125b6f233d01a2 by Wim Taymans on 27/05/2021 at 13:26..
impl-port: remove useless code

We already check for 0 as the undefined value in the combine
function.
https://invent.kde.org/neon/backports-focal/pipewire/commit/07f8a0d27507d6208c19b8fb72125b6f233d01a2

Git commit 12a3ea9539da555eb31c5ffa35f441b66e351d47 by Wim Taymans on 27/05/2021 at 13:26..
jack: implement default latency handler

It combines all latency from one direction and sets it as the latency
for the other direction.

Also keep only one latency value per port, in the object.
https://invent.kde.org/neon/backports-focal/pipewire/commit/12a3ea9539da555eb31c5ffa35f441b66e351d47

Git commit e7eba820022135fd86621e7283d75651350983d7 by Wim Taymans on 27/05/2021 at 13:26..
port: keep both output and input latency on port

But only emit latency changes for the latency matching the port.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e7eba820022135fd86621e7283d75651350983d7

Git commit c319ed68d12d59f28135664b0da3c6c238e5d01d by Wim Taymans on 27/05/2021 at 13:26..
jack: implement more latency

Keep both input and output latency on the ports.

When setting the port latency only apply the rate latency values
and assume the node latency does not depend on buffer-size or time.
This is likely true because jack only knows about latency relative
to the rate.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c319ed68d12d59f28135664b0da3c6c238e5d01d

Git commit 06cf1e1c0052829c521c436db78dc948c8249173 by Wim Taymans on 27/05/2021 at 14:07..
module: proxy latency params
https://invent.kde.org/neon/backports-focal/pipewire/commit/06cf1e1c0052829c521c436db78dc948c8249173

Git commit 70722c07410208617b4a5663f00951aa238f453b by Wim Taymans on 27/05/2021 at 16:08..
channelmix: provide some more upmix options

If nothing else is possible, also try to upmix from FC

See #1237
https://invent.kde.org/neon/backports-focal/pipewire/commit/70722c07410208617b4a5663f00951aa238f453b

Git commit 279470bc07c541cc6af04350f7fe50f234a3b081 by Barnabás Pőcze on 27/05/2021 at 17:32..
pulse-server: native-protocol-tcp: do not hardcode port

Use `PW_PROTOCOL_PULSE_DEFAULT_PORT` from pulse-server.h
instead of hard-coding the default port.
https://invent.kde.org/neon/backports-focal/pipewire/commit/279470bc07c541cc6af04350f7fe50f234a3b081

Git commit 48f03f85a770ecd8a37c22da658b83466cd747f6 by Barnabás Pőcze on 27/05/2021 at 19:12..
pulse-server: add support for IPv6

Add support for listening on IPv6 addresses.
The following address formats are supported:
 * tcp:[<ipv6-addr>]:<port>,
 * tcp:<ipv4-addr>:<port>,
 * tcp:<port>, and
 * unix:<path>.

The IP addresses are parsed using `inet_pton()`,
only the formats supported by that function
are accepted.

The IPv6 address must be surrounded by square brackets,
they do not mean "optional" here. Specifying only the
port is equivalent to the following two addresses:
 * [::]:<port>, and
 * 0.0.0.0:<port>.

Address parsing has been made stricter: the port
must always be specified explicitly.

Fixes #1216.
https://invent.kde.org/neon/backports-focal/pipewire/commit/48f03f85a770ecd8a37c22da658b83466cd747f6

Git commit b9efb25605f3c4344cf9e80a4ade56df3edc1028 by Wim Taymans on 28/05/2021 at 09:19..
pulse-tunnel: handle latency a little better

Set a limit on the buffer size.
Announce our latency on the streams.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b9efb25605f3c4344cf9e80a4ade56df3edc1028

Git commit 913434167da422da583da58e4a96d1e27e525bb3 by Wim Taymans on 28/05/2021 at 09:20..
modules: remove some useless device names
https://invent.kde.org/neon/backports-focal/pipewire/commit/913434167da422da583da58e4a96d1e27e525bb3

Git commit 5a186ece0123491a68af3538972ad4abfa91cfb1 by Wim Taymans on 28/05/2021 at 09:38..
alsa: handle plugin errors better

When the plugins can't be loaded, we fail to make a main_loop.
Handle this case instead of segfaulting.

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

Git commit c851349f174db4e28e792cd4ef167ac5c670b1da by Wim Taymans (on behalf of Barnabás Pőcze) on 28/05/2021 at 09:40..
spa: logger: fix potential buffer overrun when message is long

If the message was too long, then the `vsnprintf()` call would
fill up `location`, leaving no space for the color escape sequence
and the newline, causing a stack buffer overrun here:

  size += snprintf(p + size, len - size, "%s\n", impl->colors ? suffix : "");

Fix that by reserving the last 24 bytes of the message buffer.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c851349f174db4e28e792cd4ef167ac5c670b1da

Git commit 8892152b135ccb1cd000516628767b560d541085 by Wim Taymans (on behalf of Oschowa) on 28/05/2021 at 09:49..
meson: Require bluetooth codec library dependencies only when bluez5 is
enabled
https://invent.kde.org/neon/backports-focal/pipewire/commit/8892152b135ccb1cd000516628767b560d541085

Git commit a138152befe822556a036a788edf33b9c4030ecc by Wim Taymans on 28/05/2021 at 09:52..
pulse-server: free message when resize fails

Based on patch by Peter Hutterer

Fixes !701
https://invent.kde.org/neon/backports-focal/pipewire/commit/a138152befe822556a036a788edf33b9c4030ecc

Git commit 934caab1e1fad0315daa004aa1b94da9dafc6ab2 by Wim Taymans on 28/05/2021 at 11:24..
stream: emit events from only one thread

Emitting events using the listener_list can not be done from multiple
threads at the same time.  For this reason, make a copy of the events
with the process event and call it explicitly from the data thread.

See #1122
https://invent.kde.org/neon/backports-focal/pipewire/commit/934caab1e1fad0315daa004aa1b94da9dafc6ab2

Git commit d8435cd5fd87e229558d767e2478d553f5829b01 by Huang-Huang Bao on 28/05/2021 at 11:40..
bluez5: use definations to index node and port params
https://invent.kde.org/neon/backports-focal/pipewire/commit/d8435cd5fd87e229558d767e2478d553f5829b01

Git commit 38bcec9022b161ed29bc1fd434f39ba8c89ce0ad by Huang-Huang Bao on 28/05/2021 at 12:02..
bluez5: add port latency reporting
https://invent.kde.org/neon/backports-focal/pipewire/commit/38bcec9022b161ed29bc1fd434f39ba8c89ce0ad

Git commit e953bb3238259b49d66527d5884c6d26b8ca5a74 by Huang-Huang Bao on 28/05/2021 at 13:01..
meson: fix build if bluez5 option is disabled

Don't look up codecs dependencies and don't include 'bluez5' subdir if 'bluez5' option is disabled or libbluetooth is not found.
See https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/707.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e953bb3238259b49d66527d5884c6d26b8ca5a74

Git commit 0eb46d8ef44a950df373039221b7d7edfd25e649 by Wim Taymans on 29/05/2021 at 06:41..
filter: call the process rt_callback
https://invent.kde.org/neon/backports-focal/pipewire/commit/0eb46d8ef44a950df373039221b7d7edfd25e649

Git commit 2a8d511be8bb5639e4b35ac50295a0fd4485b593 by Barnabás Pőcze on 29/05/2021 at 22:21..
pipewire: map: initialize free_list to SPA_ID_INVALID

If `struct pw_map::free_list` is not initialized to `SPA_ID_INVALID`,
then `pw_map_insert()` will try to read `map->items.data[0]` when
inserting the first element, but `data` is a `NULL`
pointer after initialization.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2a8d511be8bb5639e4b35ac50295a0fd4485b593

Git commit 3cf4bf7cf724521c1efb46f7b5bd250c732799bb by Evgeniy Khramtsov on 30/05/2021 at 12:30..
modules: build module-rt only on Linux

RLIMIT_RTTIME is Linux specific, there is no equivalent replacement
for FreeBSD. Save trouble and build module-rt for Linux only, rtkit
WIP fork should be fine on FreeBSD for now.
https://invent.kde.org/neon/backports-focal/pipewire/commit/3cf4bf7cf724521c1efb46f7b5bd250c732799bb

Git commit c58498bd92dcf0f73bdaf79ec75b75c33036816d by Wim Taymans (on behalf of Peter Hutterer) on 31/05/2021 at 07:35..
config.h.meson: drop define for USE_POISONING

This isn't hooked up and takes a bit of effort to hook up across the tree.
Let's remove the define so it doesn't look like we're doing something.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c58498bd92dcf0f73bdaf79ec75b75c33036816d

Git commit 98353560da85fed8879ba495c91db38f31781fcb by Wim Taymans (on behalf of Peter Hutterer) on 31/05/2021 at 07:35..
spa: remove semicolon at end of SPA_LIST_INIT
https://invent.kde.org/neon/backports-focal/pipewire/commit/98353560da85fed8879ba495c91db38f31781fcb

Git commit c8034441237f156e00606203db98dccc38270e7d by Wim Taymans on 31/05/2021 at 09:31..
impl-port: only send latency param when supported

Check if the port has latency param and only try to set the
latency param when it appears available. This avoids sending unknown
latency params to an old client and erroring out.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c8034441237f156e00606203db98dccc38270e7d

Git commit 4dc3d79ff22140560e69e8723a8c0597d0e7d704 by Wim Taymans on 31/05/2021 at 11:03..
alsa: sync with pulseaudio
https://invent.kde.org/neon/backports-focal/pipewire/commit/4dc3d79ff22140560e69e8723a8c0597d0e7d704

Git commit e375930813f0b8663ec4ceb6d5ea1850fbbe9695 by Wim Taymans (on behalf of Hui Wang) on 31/05/2021 at 11:08..
alsa-mixer: only use switch to mute Front in the Headphone path

According to the alsa-info.txt in the pipewire issues of #747 and #1206,
the Front Playback Volume is shared by Headphone and Lineout or
Headphone and Speaker, But Headphone, Lineout or Speaker they all have
independent Playback Switch, change to only use switch to mute the
Lineout or Speaker. This could resolve the issues of #747 and #1206.

See #1206 and #747
https://invent.kde.org/neon/backports-focal/pipewire/commit/e375930813f0b8663ec4ceb6d5ea1850fbbe9695

Git commit a2cab353659983bc837626848d1e4b13b52df477 by Wim Taymans on 31/05/2021 at 13:01..
echo-cancel: use the right node.group
https://invent.kde.org/neon/backports-focal/pipewire/commit/a2cab353659983bc837626848d1e4b13b52df477

Git commit d37ea7851a63ba3895f6a650b9858b2ef4c4fc3f by Wim Taymans on 31/05/2021 at 13:17..
echo-cancel: copy some more node properties
https://invent.kde.org/neon/backports-focal/pipewire/commit/d37ea7851a63ba3895f6a650b9858b2ef4c4fc3f

Git commit b0068fd46b32f6054cccc2522aed66fa5748bb87 by Wim Taymans on 31/05/2021 at 13:40..
media-session: use direction to find the node by name

Also use the stream direction when finding a node by name. We should
only select nodes that have the right direction.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b0068fd46b32f6054cccc2522aed66fa5748bb87

Git commit 84856229235c3267a73b5ca1b1f7456e0a9a7a4e by Wim Taymans on 31/05/2021 at 13:53..
echo-cancel: reuse buffer on error

Queue the dequeued buffers when there is an error so that we can
recover.
https://invent.kde.org/neon/backports-focal/pipewire/commit/84856229235c3267a73b5ca1b1f7456e0a9a7a4e

Git commit 743eaf4aa27140336ff1f54833f2838e8773dfba by Wim Taymans on 31/05/2021 at 14:12..
filter: add PARAM_Latency support

Announce the Latency param in pw-filter.
Mark the latency param as writable. It becomes readable when we provide
a value.
https://invent.kde.org/neon/backports-focal/pipewire/commit/743eaf4aa27140336ff1f54833f2838e8773dfba

Git commit 7f912a1cffd7c39b58cb9da0c99d43f357e19c11 by Wim Taymans on 31/05/2021 at 14:13..
impl-port: improve Latency param check

We can use the latency param when we have a Writable entry in the
param_info.
https://invent.kde.org/neon/backports-focal/pipewire/commit/7f912a1cffd7c39b58cb9da0c99d43f357e19c11

Git commit a248391939e9e97397dd13e4c5ddd1fe8606d959 by Wim Taymans on 31/05/2021 at 14:15..
echo-cancel: set latency on the right streams
https://invent.kde.org/neon/backports-focal/pipewire/commit/a248391939e9e97397dd13e4c5ddd1fe8606d959

Git commit bc6e11d6e4c0b455219e044f5994185dbe0c645e by Wim Taymans on 31/05/2021 at 14:17..
audioconvert: move some info to debug
https://invent.kde.org/neon/backports-focal/pipewire/commit/bc6e11d6e4c0b455219e044f5994185dbe0c645e

Git commit f19d9989069e933b73544d073fc0d335a6d7a0cc by Arun Raghavan on 31/05/2021 at 16:46..
pw-jack: Fix empty string checks

shellcheck seems to hate x"$FOO" = x checks, so let's use the
appropriate test arguments instead.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f19d9989069e933b73544d073fc0d335a6d7a0cc

Git commit 70c6e6ccc84f64224fb9ecbe07b82ea372025076 by Barnabás Pőcze on 31/05/2021 at 19:34..
pulse-server: only unlink sockets

If the entity specified in a unix socket address exists, check
if it is a socket, and bail out if it is not.
https://invent.kde.org/neon/backports-focal/pipewire/commit/70c6e6ccc84f64224fb9ecbe07b82ea372025076

Git commit ebed44db79fc86a495e6a4beff1d6058e2f8d7bd by Barnabás Pőcze on 31/05/2021 at 19:34..
pulse-server: support absolute unix socket paths

If a unix socket address starts with '/', use it
directly as an absolute path, do not prepend
the runtime directory.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ebed44db79fc86a495e6a4beff1d6058e2f8d7bd

Git commit 87c00a6f00eda6800915ab9f637c78a7d38b014d by Barnabás Pőcze on 31/05/2021 at 19:34..
pulse-server: add missing EWOULDBLOCK check
https://invent.kde.org/neon/backports-focal/pipewire/commit/87c00a6f00eda6800915ab9f637c78a7d38b014d

Git commit bc6adbe15dd82ea2a02dbe1b95348eba1d9d647e by Barnabás Pőcze on 31/05/2021 at 19:34..
pulse-server: make control flow easier to unserstand

Use a switch statement to make the control flow
a bit easier to understand.
https://invent.kde.org/neon/backports-focal/pipewire/commit/bc6adbe15dd82ea2a02dbe1b95348eba1d9d647e

Git commit 1cb613ee4b87d95efab8f5e73459d97f62afa271 by Barnabás Pőcze on 31/05/2021 at 19:34..
pulse-server: terminate connection in more cases

If any of those two branches are taken, the connection
cannot make forward progress since no data will be read/sent
from/to the client.

For example, sending just 21 invalid bytes to the server
causes the first 20 bytes (client descriptor) to be read,
then rejected, leaving `client->message == NULL`. But since
polling is level triggered, `on_client_data()` and thus
`do_read()` will continue to be called ceaselessly,
thereby spamming the log and wasting resources.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1cb613ee4b87d95efab8f5e73459d97f62afa271

Git commit e994949d576e93f8c22a700394d4e0f519af7062 by Wim Taymans on 01/06/2021 at 08:37..
properties: make safer serialize_dict implementation

Don't use alloca for the serialized string but instead write the
serialized string directly to the file.

Fixes #1249
https://invent.kde.org/neon/backports-focal/pipewire/commit/e994949d576e93f8c22a700394d4e0f519af7062

Git commit f544e4d87cb64aca0f3f5dafeb1716bf6476e809 by Wim Taymans on 01/06/2021 at 09:47..
acp: reset volume when enabling a device

When we enable a device, the node will be created and its software
volume will be set to 100%. Update the device volume with this as
well so that changing the volume has an effect.

Fixes #1198
https://invent.kde.org/neon/backports-focal/pipewire/commit/f544e4d87cb64aca0f3f5dafeb1716bf6476e809

Git commit 0f55ff9e60551467cd0946a00d36e8403f1502d0 by Wim Taymans on 01/06/2021 at 10:25..
stream: clarify buffer onwership and lifecycle

Fixes #1126
https://invent.kde.org/neon/backports-focal/pipewire/commit/0f55ff9e60551467cd0946a00d36e8403f1502d0

Git commit 620e8de52ad4b48adeb296681f46385f209b0f71 by Wim Taymans on 01/06/2021 at 10:43..
acp: copy the db_fix key as well

Or else we will try to free the original key twice and segfault.

Fixes #1125
https://invent.kde.org/neon/backports-focal/pipewire/commit/620e8de52ad4b48adeb296681f46385f209b0f71

Git commit 102b77ea03198fdc531a88f619eb9787d48a1ccb by Wim Taymans on 01/06/2021 at 14:59..
pulse-server: don't request already requested data

When we are flushing, don't ask for already requested bytes
or else we end up with too much data in our buffer.

Fixes #1243
https://invent.kde.org/neon/backports-focal/pipewire/commit/102b77ea03198fdc531a88f619eb9787d48a1ccb

Git commit 3889ea52777f0a6d5ae344dbeeb51f64e8dc6d7c by Wim Taymans on 01/06/2021 at 15:48..
pulse-server: add ref to client while processing

Add a ref to the client while processing messages. This way we don't
destroy the client if we destroy the server it is on.

Fixes #1240
https://invent.kde.org/neon/backports-focal/pipewire/commit/3889ea52777f0a6d5ae344dbeeb51f64e8dc6d7c

Git commit 4c13eced55a5a1d27e9730afbe45e920638e359c by Barnabás Pőcze on 01/06/2021 at 20:11..
pulse-server: detach clients from server

When the server or client goes away, detach the client
from the server to avoid potential use-after-free issues
that might occur if the client causes the
unloading of the server it is connected to.

E.g.:

  pactl load-module module-protocol-native-tcp port=4713
  pactl -s localhost:4713 unload-module module-native-protocol-tcp

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

Git commit 1a5faa7b525e0be89b071b01ec1eba217818646d by Peter Hutterer on 02/06/2021 at 04:17..
spa: add a header for ANSI color sequences

Makes the code more readable and guarantees we use the same sequences for the
same colors everywhere.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1a5faa7b525e0be89b071b01ec1eba217818646d

Git commit c3ab4ec9dccfbbe125ef68556a95b33843ded3b4 by Wim Taymans (on behalf of Peter Hutterer) on 02/06/2021 at 07:39..
spa: fix documentation for spa_atoi32

The val isn't undefined on failure, it's unmodified.
https://invent.kde.org/neon/backports-focal/pipewire/commit/c3ab4ec9dccfbbe125ef68556a95b33843ded3b4

Git commit 6826df07dacd91f1ebc895548d8eb41783ef1dd7 by Wim Taymans (on behalf of Peter Hutterer) on 02/06/2021 at 07:39..
spa/utils: add spa_atou32, spa_atoi64,spa_atou64, spa_atod, spa_atof

Same as the existing spa_atoi32 but for uint32_t, {u}int64_t, float and
double.
https://invent.kde.org/neon/backports-focal/pipewire/commit/6826df07dacd91f1ebc895548d8eb41783ef1dd7

Git commit 3796bc814e3bf50882c4b062089568061aa88515 by Wim Taymans (on behalf of Peter Hutterer) on 02/06/2021 at 07:39..
pipewire: use spa_ato*() to parse properties

For boolean properties:
- passing in NULL no longer crashes and instead returns false
- passing in a string starting with 1 (e.g. "1xyz") no longer resolves to true

For int-based properties:
- passing in NULL no longer crashes and instead returns 0
- passing in invalid numbers no longer resolves to whatever number prefix
  could be parsed (e.g. "123foo" was 123)
https://invent.kde.org/neon/backports-focal/pipewire/commit/3796bc814e3bf50882c4b062089568061aa88515

Git commit a1e821c2593329c9b06e1e6a08cb77d68f37c253 by Wim Taymans (on behalf of Peter Hutterer) on 02/06/2021 at 07:39..
pw-dump: use the spa_ato* helpers for string to number conversions
https://invent.kde.org/neon/backports-focal/pipewire/commit/a1e821c2593329c9b06e1e6a08cb77d68f37c253

Git commit e0471c6757543420c84b4980b085261c60ddc4f5 by Wim Taymans (on behalf of Peter Hutterer) on 02/06/2021 at 10:56..
pipewire: allow NULL pointers in pw_properties_free()

Just like the real free() we should just ignore a NULL pointer, makes the
caller code easier for those instances where properties are optional.

Patch generated with concinelle with a few manual fixes.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e0471c6757543420c84b4980b085261c60ddc4f5

Git commit 71e0cfb5fa63223aa209f8beb80a05c6bcb157a8 by Wim Taymans (on behalf of Peter Hutterer) on 02/06/2021 at 10:56..
pipewire: allow NULL pointers in pw_free_strv()

Just like the real free() we should just ignore a NULL pointer, makes the
caller code easier for those instances where properties are optional.
https://invent.kde.org/neon/backports-focal/pipewire/commit/71e0cfb5fa63223aa209f8beb80a05c6bcb157a8

Git commit 1d4b24d02b9e58fc30fa709b2e621f12bee0ebb4 by Wim Taymans (on behalf of Peter Hutterer) on 02/06/2021 at 10:56..
pipewire: allow NULL pointers in pw_memmap_free()

Just like the real free() we should just ignore a NULL pointer, makes the
caller code easier for those instances where properties are optional.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1d4b24d02b9e58fc30fa709b2e621f12bee0ebb4

Git commit e3d3f047803cec6499dcd2aac08ae124b55f5a8c by Wim Taymans on 02/06/2021 at 11:23..
alsa: if we are passed a UCM device, make sure to open UCM

UCM devices can require local data from use_case_mgr_open() but since
we do that in a separate process, make sure we reopen the use case
manager in case we are passed a UCM device so that the config is
available.

See #1251
https://invent.kde.org/neon/backports-focal/pipewire/commit/e3d3f047803cec6499dcd2aac08ae124b55f5a8c

Git commit dde03a7dd3c22170686074f8b54b303c5bff8fc7 by Wim Taymans on 02/06/2021 at 13:22..
config: add some comments in the config file

About where to copy and change it.
https://invent.kde.org/neon/backports-focal/pipewire/commit/dde03a7dd3c22170686074f8b54b303c5bff8fc7

Git commit 58d0e44664a1568e50cdaebbcbcbe4a18229285e by Wim Taymans on 02/06/2021 at 13:55..
pipewire: Add option to disable config files

Add env variable PIPEWIRE_NO_CONFIG to disable parsing
custom config files.
Add a method to check extra options.
Expose valgrind, no-config and no-color as options.
https://invent.kde.org/neon/backports-focal/pipewire/commit/58d0e44664a1568e50cdaebbcbcbe4a18229285e

Git commit 35e81fbfdcd7f07aa25058b51da1b625d1650616 by Wim Taymans on 02/06/2021 at 15:25..
alsa: rework UCM open

Use _alibpref to check if a device needs a UCM local config. Mark
the device as such and use this to set the OPEN_UCM property on
the device.
Open the UCM for a card when the device has the property set. Use the
same logic for loading the UCM as the acp code.

See #1251
https://invent.kde.org/neon/backports-focal/pipewire/commit/35e81fbfdcd7f07aa25058b51da1b625d1650616

Git commit 42196a331d7903afd425827dc72679d700f93f61 by Arun Raghavan on 02/06/2021 at 16:46..
module-echo-cancel: Consolidate includes
https://invent.kde.org/neon/backports-focal/pipewire/commit/42196a331d7903afd425827dc72679d700f93f61

Git commit bbae1adda09f7b35f49d9cd52506fda0602d2b5a by Arun Raghavan on 02/06/2021 at 16:46..
module-echo-cancel: Separate input gathering and output processing

This aggregates buffers from the capture stream and the sink in the
corresponding process callbacks, and runs processing based on the
desired resampler rate if there is one.

We allow the ringbuffer in which we capture buffers to grow to some
extent, as that seems to be required for playback to occur smoothly.
Whether this is hiding some other underlying problem likely needs
investigation.
https://invent.kde.org/neon/backports-focal/pipewire/commit/bbae1adda09f7b35f49d9cd52506fda0602d2b5a

Git commit 1349d5334d205e2d5631f76fff7e85b034973fe6 by Arun Raghavan on 02/06/2021 at 16:50..
module-echo-cancel: Drop buffers on overruns

Without this, if we do overrun, we'll never catch this.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1349d5334d205e2d5631f76fff7e85b034973fe6

Git commit d95870d8d3ab7fb9b91f0dbd8ae9395b1929434b by Arun Raghavan on 02/06/2021 at 21:56..
module-echo-cancel: Wire up the webrtc echo canceller

Mostly uses the existing infrastructure, but the webrtc canceller has a
fixed blocksize, so we:

  1. Use the canceller blocksize if configured
  2. Accumulate output data in a ringbuffer
  3. Push out the data in the required chunk size
https://invent.kde.org/neon/backports-focal/pipewire/commit/d95870d8d3ab7fb9b91f0dbd8ae9395b1929434b

Git commit d2d0375c3927083bc03ff16c6160b32bf58e9c85 by Arun Raghavan on 02/06/2021 at 22:26..
module-echo-cancel: Change extension .cc to .cpp for aec-webrtc

Makes this consistent with the rest of the code base.
https://invent.kde.org/neon/backports-focal/pipewire/commit/d2d0375c3927083bc03ff16c6160b32bf58e9c85

Git commit 27433c400092aa730d0f110211a33eed9073683e by Wim Taymans (on behalf of Huang-Huang Bao) on 03/06/2021 at 07:17..
bluez5: clean up node volume emitting

The problem described in previous 'volume_changed()' has been fixed
in 5bf21444384a515de63fe1194bea5b4bb2ffd24f, hence we don't need
that workaround anymore.
https://invent.kde.org/neon/backports-focal/pipewire/commit/27433c400092aa730d0f110211a33eed9073683e

Git commit f92a5b3bbd89733a32b249c79d5adc94ddd299fd by Wim Taymans (on behalf of Huang-Huang Bao) on 03/06/2021 at 07:17..
bluez5: emit node volume and mute right after bluez5 node creating

bluez5 nodes will always be removed & created again during profile changing, hence
node volume & mute will always be reset. This is OK if profile did changed, because
session manager would carries volume & mute to bluez5 route param. But if profile
was not changed after setting profile (a2dp-sink-sbc -> a2dp-sink -> a2dp-sink-sbc),
session manager would think node volume & mute are not changed and no route
setting is performed, causing route volume out of sync with node volume.

To fix this, we emit node volume and mute right after bluez5 node is created.

Fixes #1254
https://invent.kde.org/neon/backports-focal/pipewire/commit/f92a5b3bbd89733a32b249c79d5adc94ddd299fd

Git commit c7cac40e03de2a2f1d4bb23f7f6aba807fc59e7a by Wim Taymans (on behalf of Huang-Huang Bao) on 03/06/2021 at 07:17..
bluez5: init node soft volumes to 1.0f
https://invent.kde.org/neon/backports-focal/pipewire/commit/c7cac40e03de2a2f1d4bb23f7f6aba807fc59e7a

Git commit 5a69a04cfe676b4b548994690ce5ad864d501471 by Wim Taymans (on behalf of Reynaldo H. Verdejo Pinochet) on 03/06/2021 at 07:25..
INSTALL: pass build dir to uninstalled script

The instructions were left a bit broken by
d068cc2bcfb because the unistalled script uses
"build" as default and will fail with an "invalid
build directory" error for people following the
guide step-by-step and using "builddir" instead.
https://invent.kde.org/neon/backports-focal/pipewire/commit/5a69a04cfe676b4b548994690ce5ad864d501471

Git commit 4d4518280133fa6315d9458224f88606baa79713 by Wim Taymans (on behalf of Peter Hutterer) on 03/06/2021 at 07:25..
spa: add SPA_FOR_EACH_ELEMENT for array traversal
https://invent.kde.org/neon/backports-focal/pipewire/commit/4d4518280133fa6315d9458224f88606baa79713

Git commit 8b98d111e12fb79218916c48c0a3fe27a0d07699 by Wim Taymans (on behalf of Peter Hutterer) on 03/06/2021 at 07:51..
context: print the correct strerror if the config load failed

"can't load config client.conf: Success" is a bit confusing otherwise.
https://invent.kde.org/neon/backports-focal/pipewire/commit/8b98d111e12fb79218916c48c0a3fe27a0d07699

Git commit 6971d11901928a363fd8f45c28923e73f12805f9 by Wim Taymans on 03/06/2021 at 08:10..
pw-cat: support u8 format as well
https://invent.kde.org/neon/backports-focal/pipewire/commit/6971d11901928a363fd8f45c28923e73f12805f9

Git commit 0b0a4897d65bd7414a13fb5f843b95288f7108b4 by Wim Taymans on 03/06/2021 at 09:18..
spa: use unsigned long for strtoul result
https://invent.kde.org/neon/backports-focal/pipewire/commit/0b0a4897d65bd7414a13fb5f843b95288f7108b4

Git commit 3fcb9c44efe4a2edd3c3f0e1071dbefd58e3ba8a by Wim Taymans on 03/06/2021 at 09:40..
spa: use strtoull for atou32

On machines with a 32 bits long, converting a negative value will
still result in  v == (uint32_t)v and the unit test will fail.
Extend to 64 bits and strtoull to reject negative values in atou32.
https://invent.kde.org/neon/backports-focal/pipewire/commit/3fcb9c44efe4a2edd3c3f0e1071dbefd58e3ba8a

Git commit 1b484867eb20dbcf9ffea812834fc9142f89f652 by Wim Taymans on 03/06/2021 at 10:01..
0.3.29
https://invent.kde.org/neon/backports-focal/pipewire/commit/1b484867eb20dbcf9ffea812834fc9142f89f652

Git commit 131832d4415b6ff06f73606995641687feb06f50 by George Kiagiadakis on 03/06/2021 at 14:36..
pulse-server: suffix TAG_USEC constants with LL, as they must be 64-bit

Fixes protocol errors on arm
https://invent.kde.org/neon/backports-focal/pipewire/commit/131832d4415b6ff06f73606995641687feb06f50

Git commit 0f03109cb6121130e5fa616a3d0f534898a57a47 by Barnabás Pőcze on 03/06/2021 at 15:06..
Makefile: remove trailing slashes from env variables
https://invent.kde.org/neon/backports-focal/pipewire/commit/0f03109cb6121130e5fa616a3d0f534898a57a47

Git commit a8428a57b15a2e1f993cbbda5969c7a85007dcc9 by Barnabás Pőcze on 03/06/2021 at 15:06..
pipewire: impl-module: simplify module dir handling logic

Since `pw_split_walk()` does not skip leading runs of
delimiters, if `module_dir` is an absolute path, then

  l = pw_split_strv(module_dir, "/", 0, &n_paths);

will return an array of one element, which is exactly the same
as `module_dir`, `strcmp(l[0], module_dir) == 0`.

If `module_dir` is a relative path, then the returned array
still contains a single element, which is, again, the same
as `module_dir`.

Therefore, omit the the call to `pw_split_strv()` and simply
use `module_dir` as is.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a8428a57b15a2e1f993cbbda5969c7a85007dcc9

Git commit 576513583b79031a9d1c46df71c9c9474bd4bac6 by Barnabás Pőcze on 03/06/2021 at 15:06..
pipewire: impl-module: limit module search depth

Limit the depth of the recursive search done by `find_module()`
to a sensible amount (at the moment: 8).
https://invent.kde.org/neon/backports-focal/pipewire/commit/576513583b79031a9d1c46df71c9c9474bd4bac6

Git commit 3b681f2138c11dea630e0373fe929541a2c75264 by Barnabás Pőcze on 03/06/2021 at 15:06..
pipewire: utils: pw_split_walk(): skip leading runs of chars in `delimiter`

Previously, if the string started with any of the characters in
delimiter, the first returned string would've been an empty string.
This is in contrast with the fact that otherwise `pw_split_walk()`
skips empty fields.

E.g.

  "::field1::field2" with ":" as `delimiter`

would have resulted in
 *  ""
 *  "field1"
 *  "field2".

Adjust the function to skip leading runs of characters in `delimiter`
by calling `strspn()` first.
https://invent.kde.org/neon/backports-focal/pipewire/commit/3b681f2138c11dea630e0373fe929541a2c75264

Git commit 6affda94248a1607c300ec30d2b53e8fa00089a2 by Barnabás Pőcze on 03/06/2021 at 15:23..
pipewire: utils: add more tests for pw_split_walk()
https://invent.kde.org/neon/backports-focal/pipewire/commit/6affda94248a1607c300ec30d2b53e8fa00089a2

Git commit 669fbf10c12822678a756184e1c734438905b584 by Wim Taymans on 03/06/2021 at 18:33..
fix some leaks in error paths
https://invent.kde.org/neon/backports-focal/pipewire/commit/669fbf10c12822678a756184e1c734438905b584

Git commit 0ba9402d4ba201c09a9c134f11236ab39a754a9b by Wim Taymans on 03/06/2021 at 18:33..
Revert "media-session: use direction to find the node by name"

This reverts commit b0068fd46b32f6054cccc2522aed66fa5748bb87.

It breaks recording from monitor ports.
https://invent.kde.org/neon/backports-focal/pipewire/commit/0ba9402d4ba201c09a9c134f11236ab39a754a9b

Git commit 4cb87317a7524f5b18e5efdf1e7c0370d7362da8 by Peter Hutterer on 03/06/2021 at 23:00..
pipewire: assert a nonzero array allocation size

If pw_array_ensure_size() is called on an array that has not been initialized
with an extend, assert. Otherwise we get stuck in an infinite loop since
doubling our zero allocation size will never reach "need".
https://invent.kde.org/neon/backports-focal/pipewire/commit/4cb87317a7524f5b18e5efdf1e7c0370d7362da8

Git commit e65afe8fa2e83ac21b8cbe7481a2ab6c55986336 by Wim Taymans (on behalf of Barnabás Pőcze) on 04/06/2021 at 06:55..
pulse-server: module-combine-sink: remove hooks

Remove hooks when the module is unloaded to avoid
use-after-free issues. Remove the cleanup source as well.

Fixes #1259.
https://invent.kde.org/neon/backports-focal/pipewire/commit/e65afe8fa2e83ac21b8cbe7481a2ab6c55986336

Git commit 2a8b7594bc508a1f9af0e2fb3455c3d8dc4de006 by Wim Taymans on 04/06/2021 at 07:13..
pulse-server: avoid overflow

Make sure the requested bytes never go below 0.

See #1258
https://invent.kde.org/neon/backports-focal/pipewire/commit/2a8b7594bc508a1f9af0e2fb3455c3d8dc4de006

Git commit 98503a84b383539acb6c5ced694c175c0eb3f6f0 by Peter Hutterer on 04/06/2021 at 07:57..
spa: fix an C++ invalid type conversion

In file included from spa/tests/test-cpp.cpp:49:
../spa/include/spa/param/latency-utils.h: In function ‘int spa_latency_parse(const spa_pod*, spa_latency_info*)’:
../spa/include/spa/param/latency-utils.h:95:25: error: invalid conversion from ‘int’ to ‘spa_direction’ [-fpermissive]
   95 |         info->direction &= 1;
      |         ~~~~~~~~~~~~~~~~^~~~
      |                         |
      |                         int
https://invent.kde.org/neon/backports-focal/pipewire/commit/98503a84b383539acb6c5ced694c175c0eb3f6f0

Git commit 3332e271be035c9df12666cea7702cc31adf9105 by Peter Hutterer on 04/06/2021 at 07:57..
spa: fix compiler warnings about missing braces in initializer

First element is a spa_list, so {{0}} it is.

../spa/include/spa/node/utils.h:98:40: warning: missing braces around initializer for ‘spa_list’ [-Wmissing-braces]
   98 |         struct spa_hook listener = { 0 };
https://invent.kde.org/neon/backports-focal/pipewire/commit/3332e271be035c9df12666cea7702cc31adf9105

Git commit a179e0fecd341857e61ea02f303c1eb2ee5233e5 by Peter Hutterer on 04/06/2021 at 07:57..
spa: fix a C++ typecast warning

void* cannot be automatically type-casted so let's do this explicitly.

../spa/include/spa/param/latency-utils.h: In function ‘spa_pod* spa_latency_build(spa_pod_builder*, uint32_t, const spa_latency_info*)’:
../spa/include/spa/pod/builder.h:651:1: error: invalid conversion from ‘void*’ to ‘spa_pod*’ [-fpermissive]
https://invent.kde.org/neon/backports-focal/pipewire/commit/a179e0fecd341857e61ea02f303c1eb2ee5233e5

Git commit a71e68e945fc440c003672e9aaadb819c6c47dea by Peter Hutterer on 04/06/2021 at 08:46..
spa: add missing header guards and extern C define for spa/pod/filter.h
https://invent.kde.org/neon/backports-focal/pipewire/commit/a71e68e945fc440c003672e9aaadb819c6c47dea

Git commit 81cc466752456b766249c9f566f95fd5325b3e53 by Peter Hutterer on 04/06/2021 at 08:46..
spa: the cpp test is a compilation test only

No point installing or even running it, we don't do anything here.
https://invent.kde.org/neon/backports-focal/pipewire/commit/81cc466752456b766249c9f566f95fd5325b3e53

Git commit b179e81070dcfb42a3baa073e247076ebcbfc0bf by Wim Taymans (on behalf of Peter Hutterer) on 04/06/2021 at 08:58..
pipewire: add pw_properties_add_string()

Equivalent to the existing pw_properties_update_string() but only adds new
properties from the given string, it doesn't overwrite existing ones.
https://invent.kde.org/neon/backports-focal/pipewire/commit/b179e81070dcfb42a3baa073e247076ebcbfc0bf

Git commit f7755475286744b7482b3745c278eb62e1b9cfd3 by Wim Taymans (on behalf of Peter Hutterer) on 04/06/2021 at 08:58..
pipewire: merge, not overwrite the context.properties from the config file

Any values already set in the properties list (e.g. from earlier getenv())
calls should not be overwritten by the value in the config file.
https://invent.kde.org/neon/backports-focal/pipewire/commit/f7755475286744b7482b3745c278eb62e1b9cfd3

Git commit 2e6621fae0f96ec51f3665b7305712b51492cbf8 by Wim Taymans (on behalf of Peter Hutterer) on 04/06/2021 at 08:58..
daemon: use getenv(PIPEWIRE_CORE) for the core.name if it exists

As documented in pipewire/keys.h, PIPEWIRE_CORE is supposed to overwrite the
default value.
https://invent.kde.org/neon/backports-focal/pipewire/commit/2e6621fae0f96ec51f3665b7305712b51492cbf8

Git commit a2cb5f3394da24e0d98930086c888c32c5e84875 by Wim Taymans on 04/06/2021 at 10:08..
properties: try to keep full doxygen docs out of headers

Try to keep the full docs out of the headers and into the .c file.
A small short blurb in the header is enough for quick lookups.
Also try to use a regular comment to not confuse the doc system.
https://invent.kde.org/neon/backports-focal/pipewire/commit/a2cb5f3394da24e0d98930086c888c32c5e84875

Git commit 431bcb680509946581d8e014066f5dad635c5ee0 by Wim Taymans on 04/06/2021 at 11:53..
pw-uninstalled: set PKG_CONFIG_PATH
https://invent.kde.org/neon/backports-focal/pipewire/commit/431bcb680509946581d8e014066f5dad635c5ee0

Git commit afd92a4272241fd01ecaec4240c0551d6717a929 by Barnabás Pőcze on 04/06/2021 at 19:33..
pw-uninstalled: remove pipewire-pulse from library path

The library has been replaced by a PulseAudio server
reimplementation.
https://invent.kde.org/neon/backports-focal/pipewire/commit/afd92a4272241fd01ecaec4240c0551d6717a929

Git commit b433a6920f35016b7444ef95edf8d1aac4ed18f5 by Barnabás Pőcze on 04/06/2021 at 19:33..
pw-uninstalled: override ALSA_PLUGIN_DIR
https://invent.kde.org/neon/backports-focal/pipewire/commit/b433a6920f35016b7444ef95edf8d1aac4ed18f5

Git commit 4e5b20b1f56986e71533d6d7530c540a7b8f1895 by Barnabás Pőcze on 05/06/2021 at 13:49..
meson.build: add devenv

Add meson devenv with the appropriate env variables
set up. Largely based on pw-uninstalled.sh
https://invent.kde.org/neon/backports-focal/pipewire/commit/4e5b20b1f56986e71533d6d7530c540a7b8f1895

Git commit d3fcc0a37ae8070d63f99827ef9a6070a80df81d by Arun Raghavan (on behalf of Huang-Huang Bao) on 05/06/2021 at 15:17..
bluez5: correct parameter names in spa_bt_sco_io_create declaration

From its definition and parameters passed to its function call, the 3rd parameter
is read_mtu and the 4th is write_mtu.

Fixes #1256
https://invent.kde.org/neon/backports-focal/pipewire/commit/d3fcc0a37ae8070d63f99827ef9a6070a80df81d

Git commit 8c42e6aecb2462dc0fb28f0fe7f4561a69bb8b39 by Wim Taymans (on behalf of Huang-Huang Bao) on 05/06/2021 at 17:52..
alsa,bluez5: handle SPA_PARAM_Latency in port_set_param

Simply return 0 instead of -ENOENT.

Fixes #1262
https://invent.kde.org/neon/backports-focal/pipewire/commit/8c42e6aecb2462dc0fb28f0fe7f4561a69bb8b39

Git commit 08daf3f4f4c5aa882e149d4313b27d0b52aa28f3 by Wim Taymans (on behalf of Arun Raghavan) on 05/06/2021 at 17:54..
pulse-server: Add a module-echo-cancel

Fairly straightforwad module to load libpipewire-module-echo-cancel
https://invent.kde.org/neon/backports-focal/pipewire/commit/08daf3f4f4c5aa882e149d4313b27d0b52aa28f3

Git commit 5a054cfc9e709aa8dc32856cd7418fedce2ec414 by Wim Taymans on 05/06/2021 at 18:17..
jack: call pw_ methods from within the lock

We're using a thread loop so always call methods with the lock or
we might cause lockups and crashes.

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

Git commit 47c173c83f2ea0471c14f8eb02a5b22fabacdd20 by Peter Hutterer on 07/06/2021 at 05:16..
spa/util: add spa_scnprintf to use over snprintf

Wraps the glibc snprintf/vsnprintf calls, but aborts if given a negative size
and zero-terminates the buffer on error.

The returned value is clipped to size - 1 which avoids issues like the one
fixed in c851349f174db4e28e792cd4ef167ac5c670b1da.
https://invent.kde.org/neon/backports-focal/pipewire/commit/47c173c83f2ea0471c14f8eb02a5b22fabacdd20

Git commit 48eadac1f1fc7eb099fb5a3cf3149587ae2d5bfd by Peter Hutterer on 07/06/2021 at 05:37..
logger: switch snprintf to spa_snprintf

The two are functionally equivalent, but spa_snprintf never returns a value
higher than the size, preventing memory corruption where our input string
exceeds the target buffer size (see c851349f1).

Niche case: we can no longer differ between real overflow and fitting an
N-byte string into an N+1 sized buffer, we now get a "...truncated" message
now for log messages of exactly 999 bytes long.
https://invent.kde.org/neon/backports-focal/pipewire/commit/48eadac1f1fc7eb099fb5a3cf3149587ae2d5bfd

Git commit fb753679758d0fbd10032af7f896bd0625d8a1cc by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 07:20..
spa: add a missing include

../spa/include/spa/node/node.h:639:14: error: ‘ENOTSUP’ was not declared in this scope
https://invent.kde.org/neon/backports-focal/pipewire/commit/fb753679758d0fbd10032af7f896bd0625d8a1cc

Git commit db989d851df0f36c1ff9d2461601ed2c62fab40e by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 07:20..
spa: auto-generate the cpp compilation test

Replace the manually maintained header list with a Python script that finds
all header files and includes them in order. This adds another 25 or so
previously headers to the C++ compilation tests.
https://invent.kde.org/neon/backports-focal/pipewire/commit/db989d851df0f36c1ff9d2461601ed2c62fab40e

Git commit 0792c690c2149cf46f606f85d322447132d61508 by Wim Taymans on 07/06/2021 at 09:16..
jack: schedule port latency update from main thread

Ardour does the port latency update from the process thread. Schedule
an update on the main thread in all cases to avoid deadlocks.

See #1265
https://invent.kde.org/neon/backports-focal/pipewire/commit/0792c690c2149cf46f606f85d322447132d61508

Git commit 9a900305963c7201d09e1c65bbecb1a4cae6149a by Wim Taymans on 07/06/2021 at 09:17..
pw-cli: fix command parsing after pw_split changes

Don't assume anything about the way the split function maintain the
state.
https://invent.kde.org/neon/backports-focal/pipewire/commit/9a900305963c7201d09e1c65bbecb1a4cae6149a

Git commit b142e7f09f8c9ccb9b5333ce912300dcec5391ad by Wim Taymans on 07/06/2021 at 10:22..
jack: stop freewheeling correctly

Setting a NULL value for the property will remove the property and
will thus not send an update to the server and will thus not stop
freewheeling. Use "" to remove ourselves from the freewheel group
instead of looping forever.

See #1265
https://invent.kde.org/neon/backports-focal/pipewire/commit/b142e7f09f8c9ccb9b5333ce912300dcec5391ad

Git commit 1a710cad3c4cf20a846162d3b12a9d2c4c793f73 by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 10:29..
logger: reduce the number of appending snprintf calls

Write the timestamp and location into a temporary buffer, then include them in
the message print. This makes bugs involving size vs length less likely and
provides a fixed limit for how much space the filename can take in the
message.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1a710cad3c4cf20a846162d3b12a9d2c4c793f73

Git commit 9737d6e3da237661fee0baa382caf9e5035da28a by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 10:29..
logger: align debug messages better

Taken from https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/655#note_912691
https://invent.kde.org/neon/backports-focal/pipewire/commit/9737d6e3da237661fee0baa382caf9e5035da28a

Git commit 1c083a6d69080e6db8beaef2150b17d641e513ea by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 10:29..
logger: clamp the log time to 5 digits

In the interested of making the logs narrower, let's drop some digits from the
clock_gettime() seconds value. Clamping to 5 digigts, this gives us just under
28h before we wrap which is likely good enough for debugging.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1c083a6d69080e6db8beaef2150b17d641e513ea

Git commit c049689884d733cae58bd3096391cb9e92a2d146 by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 10:29..
logger: set linebuffering for the log

Set this once during setup so we don't have to remember to call fflush() after
each logging operation.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
https://invent.kde.org/neon/backports-focal/pipewire/commit/c049689884d733cae58bd3096391cb9e92a2d146

Git commit 6499f96396f4503cf5705041a05955ded83ba6da by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 10:31..
spa: add missing #includes
https://invent.kde.org/neon/backports-focal/pipewire/commit/6499f96396f4503cf5705041a05955ded83ba6da

Git commit d08d98941244fe34ce2cfa48e77e9bcbb1b507f3 by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 10:31..
spa: add a test for missing includes

For each header in the spa directory, generate a compilation test that
includes just that header. This way we can pick up missing #includes.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
https://invent.kde.org/neon/backports-focal/pipewire/commit/d08d98941244fe34ce2cfa48e77e9bcbb1b507f3

Git commit d9cc1a25f179e43bd76b8f0bc80927a20de8ce55 by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 10:44..
Include the valgrind headers in our tree

These headers are designed for including in the project. So the user doesn't
need to install valgrind-devel and we don't have to worry about whether the
headers are available or not.
https://invent.kde.org/neon/backports-focal/pipewire/commit/d9cc1a25f179e43bd76b8f0bc80927a20de8ce55

Git commit b6e27822e5d91e55f3c76fa033f0366e16a53da0 by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 10:44..
pipewire: use RUNNING_ON_VALGRIND to determine if we're in valgrind

This removes the use of the VALGRIND environment variable
https://invent.kde.org/neon/backports-focal/pipewire/commit/b6e27822e5d91e55f3c76fa033f0366e16a53da0

Git commit 83f8a2896fbd955fa6c259e6e57081e930adb0bd by Wim Taymans (on behalf of Peter Hutterer) on 07/06/2021 at 10:44..
alsa-mixer: drop the VALGRIND_HAVE_MEMCHECK hacks

Cause for this was a missing ioctl, fixed in 2014. See valgrind commit
4ef60ef1029e6933773b7de9966ece7185129d84
https://invent.kde.org/neon/backports-focal/pipewire/commit/83f8a2896fbd955fa6c259e6e57081e930adb0bd

Git commit 16674a07a55b5338e290c4c0e6f02e7c0c77265f by Wim Taymans on 07/06/2021 at 10:52..
logger: improve formatting

Make enough room for the timestamp to include the last ]
Add a space before the actual log line.
https://invent.kde.org/neon/backports-focal/pipewire/commit/16674a07a55b5338e290c4c0e6f02e7c0c77265f

Git commit bec615971c7809c42d45535c4404bbdea0bce02f by Wim Taymans (on behalf of Barnabás Pőcze) on 07/06/2021 at 10:54..
spa: utils: hook: use tab
https://invent.kde.org/neon/backports-focal/pipewire/commit/bec615971c7809c42d45535c4404bbdea0bce02f

Git commit b6c6a217470d3996da0d98f688d15a9d56aceefe by Wim Taymans (on behalf of Barnabás Pőcze) on 07/06/2021 at 10:54..
pipewire: module-adapter: remove resource listener

Unregister the resource listener when the node is going
away to avoid use-after-free issues.

Fixes #1276
https://invent.kde.org/neon/backports-focal/pipewire/commit/b6c6a217470d3996da0d98f688d15a9d56aceefe

Git commit 1f85d06317bd80388616ba70849351ea5464d08d by Wim Taymans on 07/06/2021 at 10:57..
module-adapter: clear bound-resource when destroyed

So that we don't reference it anymore or try to remove the listener.
https://invent.kde.org/neon/backports-focal/pipewire/commit/1f85d06317bd80388616ba70849351ea5464d08d

Git commit 8132c4e2b400bb6511f6d127e2cb743cacd1cd87 by Wim Taymans on 07/06/2021 at 11:04..
acp: add fallback alibpref just in case

Until we are sure that everybody has a recent enough version of
alsa-lib 1.2.5
https://invent.kde.org/neon/backports-focal/pipewire/commit/8132c4e2b400bb6511f6d127e2cb743cacd1cd87

Git commit 98ce5acb692ce0f952a0b7a927ed00a503d23e2a by Evgeniy Khramtsov on 07/06/2021 at 17:53..
utils: define SIGABRT for FreeBSD
https://invent.kde.org/neon/backports-focal/pipewire/commit/98ce5acb692ce0f952a0b7a927ed00a503d23e2a

Git commit 2dcab4580f8d97eaa4bc83e5299ed2403bc1e279 by Wim Taymans on 08/06/2021 at 07:40..
jack: store renamed port

When we rename the port, also store the new name in the port structure
so that we can actually find the port with the new name.

See #1265
https://invent.kde.org/neon/backports-focal/pipewire/commit/2dcab4580f8d97eaa4bc83e5299ed2403bc1e279

Git commit ec39cbee682ef729b4af396aa382e2bcef4a47fa by Wim Taymans on 08/06/2021 at 07:50..
jack: improve debug

Add quotes around the port and client names.
https://invent.kde.org/neon/backports-focal/pipewire/commit/ec39cbee682ef729b4af396aa382e2bcef4a47fa

Git commit 10270621c2dd966c959368e16b4da11d30a776f7 by Peter Hutterer on 08/06/2021 at 10:21..
spa: fix a missing include
https://invent.kde.org/neon/backports-focal/pipewire/commit/10270621c2dd966c959368e16b4da11d30a776f7

Git commit f3a98debec14eddb208f6e48d37069e2b269835b by Peter Hutterer on 08/06/2021 at 10:21..
spa: don't run the spa_scnprintf abort test under valgrind

valgrind doesn't know we expect this to fail, so let's not confuse it
https://invent.kde.org/neon/backports-focal/pipewire/commit/f3a98debec14eddb208f6e48d37069e2b269835b

Git commit db245fd0ce24d6bc83b8379c25861de94f44c6e8 by Wim Taymans on 08/06/2021 at 14:56..
context: override the CORE_NAME in context

Override the CORE_NAME using the env variable in the context instead
of pipewire.c. This avoids needing the _add_string() property method.
Remove the properties_add_string() method, there are new improved
plans for property parsing and merging: See #207
https://invent.kde.org/neon/backports-focal/pipewire/commit/db245fd0ce24d6bc83b8379c25861de94f44c6e8

Git commit e857856be7b64d562cdcc01c43933218a68b225e by Wim Taymans on 09/06/2021 at 07:14..
0.3.30
https://invent.kde.org/neon/backports-focal/pipewire/commit/e857856be7b64d562cdcc01c43933218a68b225e

Git commit 1f411176b510e941a5f4c1cd207c26d64bf4987b by Dylan Aïssi on 15/06/2021 at 14:46..
Merge tag '0.3.30' into upstream/latest
https://invent.kde.org/neon/backports-focal/pipewire/commit/1f411176b510e941a5f4c1cd207c26d64bf4987b

Git commit f97007a1e6ca1541f8952980a17c62af4d493317 by Dylan Aïssi on 15/06/2021 at 14:46..
Merge tag 'upstream/0.3.30' into debian/experimental
https://invent.kde.org/neon/backports-focal/pipewire/commit/f97007a1e6ca1541f8952980a17c62af4d493317

Git commit 4a271f7034eb6c705afc5ae095cd2762e832e96e by Dylan Aïssi on 15/06/2021 at 14:52..
Bump d/changelog
https://invent.kde.org/neon/backports-focal/pipewire/commit/4a271f7034eb6c705afc5ae095cd2762e832e96e

Git commit 742245522ee90803d39f665f3f6ef78688dc3cac by Dylan Aïssi on 15/06/2021 at 14:59..
Remove d/p/Let-pipewire-pulse-services-conflict-with-their-pulseaudi.patch, applied upstream
https://invent.kde.org/neon/backports-focal/pipewire/commit/742245522ee90803d39f665f3f6ef78688dc3cac

Git commit e16f8c099b9d693613471d96d5d315eff6a0d8cd by Dylan Aïssi on 15/06/2021 at 15:04..
Add libwebrtc-audio-processing-dev to Build-Depends
https://invent.kde.org/neon/backports-focal/pipewire/commit/e16f8c099b9d693613471d96d5d315eff6a0d8cd

Git commit 6a8c3536d4ba0ab3c3662eef877f33e8fd199be5 by Dylan Aïssi on 15/06/2021 at 15:09..
Update symbols file
https://invent.kde.org/neon/backports-focal/pipewire/commit/6a8c3536d4ba0ab3c3662eef877f33e8fd199be5

Git commit f8a37794c1ead8877fa318d9e6a72fe1bce5d803 by Dylan Aïssi on 16/06/2021 at 09:09..
Remove unused lintian override in pipewire-audio-client-libraries
https://invent.kde.org/neon/backports-focal/pipewire/commit/f8a37794c1ead8877fa318d9e6a72fe1bce5d803

Git commit ab1cc7fa149804b20b1c4b4af496643b7b1161f7 by Dylan Aïssi on 16/06/2021 at 10:07..
Upload to experimental
https://invent.kde.org/neon/backports-focal/pipewire/commit/ab1cc7fa149804b20b1c4b4af496643b7b1161f7

Git commit 7f872523991ce43f4539d4900e6335466efcdd4c by Harald Sitter on 28/06/2021 at 09:33..
Merge tag 'debian/0.3.30-1' into Neon/release-lts

pipewire Debian release 0.3.30-1
https://invent.kde.org/neon/backports-focal/pipewire/commit/7f872523991ce43f4539d4900e6335466efcdd4c


More information about the Neon-commits mailing list