diff options
author | Markus Volk <f_l_k@t-online.de> | 2025-03-09 08:58:09 +0100 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2025-03-10 09:41:56 -0700 |
commit | 67e8544511d6d1dd220f520fb7d0b08ca08e0280 (patch) | |
tree | d0b30086c65507074365bf58e30592f14223c32a | |
parent | 468e751adb3403a2402a10fb1fae6d919c014eed (diff) | |
download | meta-openembedded-67e8544511d6d1dd220f520fb7d0b08ca08e0280.tar.gz |
pipewire: update 1.2.7 -> 1.4.0
- remove backport patch
- install libspa.so to libpipewire package
PipeWire 1.4.0 (2025-03-06)
This is the 1.4 release that is API and ABI compatible with previous
1.2.x and 1.0.x releases.
This release contains some of the bigger changes that happened since
the 1.2 release last year, including:
* client-rt.conf was removed, all clients now use client.conf and
are given RT priority in the data threads.
* UMP (aka MIDI2) support was added and is now the default format
to carry MIDI1 and MIDI2 around in PipeWire. There are helper
functions to convert between legacy MIDI and UMP.
* The resampler can now precompute (at compile time) some common
conversion filters. Delay reporting in the resampler was fixed and
improved.
* Bluetooth support for BAP broadcast links and support for hearing aids
using ASHA was added. A new G722 codec was also added.
Delay reporting and configuration in Bluetooth was improved.
* The ALSA plugin now supports DSD playback when explicitly allowed
with the alsa.formats property.
* A PipeWire JACK control API was added.
* A system service was added for pipewire-pulse.
* Many documentation and translation updates.
* Many of the SPA macros are converted to inline functions. All SPA
inline functions are now also compiled into a libspa.so library to
make it easier to access them from bindings.
* The module-filter-chain graph code was moved to a separate
filter-graph SPA plugin so that it becomes usable in more places.
EBUR128, param_eq and dcblock plugins were added to filter-graph.
The filter graph can now also use fftw for doing convolutions.
The audioconvert plugin was optimized and support was added to
audioconvert to insert extra filter-graphs in the processing pipeline.
* New helper functions were added to parse JSON format descriptions.
* The profiler now also includes the clock of the followers.
* RISCV CPU support and assembler optimisations were added.
* The clock used for logging timestamps can be configured now.
* The JSON parser was split into core functions and helper.
* Support for UCM split PCMs was added. Instead of alsa-lib splitting
up PCMs, PipeWire can mark the PCMs with the correct metadata so that
the session manager can use native PipeWire features to do this.
* Support for webrtc2 was added to echo-cancel.
* IEC958 codecs are now detected from the HDMI ELD data.
* Conversion between floating point and 32 bits now preserve 25 bits of
precision instead of 24 bits.
* A new Telephony D-BUS API compatible with ofono was added.
* The invoke queues are now more efficient and can be called from multiple
threads concurrently.
* Clock information in v4l2 was improved.
* An ffmpeg based videoconvert plugin was added that can be used with the
videoadapter.
* The GStreamer elements have improved buffer pool handling and rate
matching.
* The combine-stream module can now also mix streams.
* link-factory now checks that the port and node belong together.
* The netjack-manager module has support for autoconnecting streams.
* The native-protocol has support for abstract sockets.
* The pulse server has support for blocking playback and capture in
pulse.rules.
* The corked state of stream is now reported correctly in pulse-server.
* Fix backwards jumps in pulse-server.
* Latency configuration support was added in loopback and raop-sink.
* The ROC module has more configuration options.
* The SAP module now only send updated SDP when something changed.
* RTP source now has a standby mode where it idles when there is no
data received.
* Support for PTP clocking was added the RTP streams.
* The VBAN receiver can now dynamically create streams when they are
detected.
* Error reporting when making links was improved.
* Support for returning (canceling) a dequeued buffer in pw-stream.
* Support for emiting events in pw-stream was added.
* pw-cat now support stdin and stdout.
Highlights (since the previous 1.3.83 release)
- Small fixes and improvements.
PipeWire
- Fix some missing includes in metadata.h
- Pass the current error in errno when a stream is in error (#4574)
modules
- Evaluate node rules before loading adapter follower to ensure
properties are set correctly. (#4562)
SPA
- Avoid a use after free when building PODs. (#4445)
- Take headroom into account when calculating resync.
Bluetooth
- Fix +CLCC parsing.
GStreamer
- Notify about default device changes in deviceprovider.
- Copy frames between pools and avoid splitting video buffers.
JACK
- Add an option to disable the MIDI2 port flags. (#4584)
Older versions:
PipeWire 1.3.83 (2025-02-20)
This is the third and hopefully last 1.4 release candidate that
is (almost) API and (entirely) ABI compatible with previous 1.2.x
and 1.0.x releases.
We note that in the 1.3.x series, the API is slighty not backwards
compatible because some methods previously used to accept void* as
a parameter while they now require the correct type. We think this
is however a good kind of API breakage and expect projects to patch
their code to get things compiled with newer version (which will also
compile for older versions). Note also that this is not an ABI break.
- Handle JACK transport updates in a better way.
- Fix a SAP regression when starting.
- Fix regression in rate scaling.
- Improve bluetooth source rate handling.
- More small bugfixes and improvements.
- Handle JACK transport updates in a better way. (#4543)
- Check that the link factory port and nodes match. Deprecate the
port.id when making links.
- Improve profiler output by scaling the quantum with the node
rate so that we don't end up with confusing information. (#4555)
- Fix sending of the SAP SDP. Handle some SDP parsing errors.
- Add some more options to the ROC source module. (#4516)
- Fix firewire quirks in udev rules. (#4528)
- Fix a bug in the rate scaling in some cases that would make things
run with the wrong samplerate.
- Improve introspection of control types.
- Use the G722 codec from Android instead of FFmpeg for ASHA.
- Use the A2DP source rate as the graph rate. (#4555)
- Specify the bluetooth source latency property in the rate of the
stream to avoid conversions and rounding errors.
This is the second 1.4 release candidate that is API and ABI
compatible with previous 1.2.x and 1.0.x releases.
- Various pw-stream improvements: timing information fixes,
avoid locking buffers in some cases and an improved drain
event.
- A new Telephony D-BUS API compatible with ofono.
- Documentation fixes and updates.
- More small fixes and improvements.
- Improve timing information when rate is unknown.
- Avoid locked buffers in pw_stream in some cases.
- Improve pw_stream drain event emission.
- Improve manager socket handling. Applications can avoid hardcoding
the sockets so that they will respect the config settings.
- Fix header size calculation when using ipv6. (#4524)
- Optimize byteswapped s16 conversions.
- Improve event handling for internal events.
- Optimize negiotiation when in convert mode, prefer the format
of the follower in adapter.
- Fix EnumPortConfig for videoadapter without converter.
- Fix libcamera property buffer size.
- Add systemwide systemd files.
- Add a UMP example.
- Use the new JackPortMIDI2 flag to mark UMP ports to JACK.
- Support BAP hardware volume.
- Add a Telephony DBUS API.
- Disable buffer pools for audio by default.
- Improve the module documentation.
This is the first 1.4 release candidate that is API and ABI
compatible with previous 1.2.x and 1.0.x releases.
In addition to all the changes backported to 1.2.x, this release
also contains some new features:
- UMP support was added with MIDI 1.0 and MIDI 2.0 support in the ALSA
sequencer plugin. By default PipeWire will now use MIDI 2.0 in UMP
messages to transport MIDI in the graph, with conversions to/from legacy
MIDI where required. This requires UMP support in the kernel.
- client-rt.conf is no longer supported. Custom changes made to this
config should be moved to client.conf. Clients that try to load the
client-rt.conf will emit a warning and be directed to client.conf
automatically for backwards compatibility.
- The module-filter-chain code was moved to a new filter-graph plugin. This
made it possible to add filter-graph support directly in audioconvert. It
is now possible to run up to 8 run-time swappable filter-graphs inside
streams and nodes. This should make it easier to add effects to streams
and device nodes.
- Bluetooth support for BAP broadcast links and support for hearing aids
using ASHA was added.
- Many more bugfixes and improvements.
- Nodes are now only scheduled when ready to signal the driver.
- Add slovenian translation. (#4156)
- Link errors are handled better.
- The videoadapter is now enabled by default but no videoconverter
is loaded yet by default.
- Streams now have support for ProcessLatency.
- Streams now have a method to emit events.
- The RequestProcess event and command can now pass around extra
properties.
- Local timestamps are now used for logging.
- client-rt.conf is no longer supported. Custom changes made to this
config should be moved to client.conf. Clients that try to load the
client-rt.conf will emit a warning and be directed to cliert.conf
automatically to preserve backwards compatibility.
- pw_stream now has an API to return unused buffers.
- module-combine-stream can now mix streams.
- Links in error are now destroyed by link-factory.
- The netjack2 driver can now also create streams that autoconnect when
specified. (#4125)
- Many updates and bugfixes to the RTP modules.
- The netjack2 driver can now bind to a custom IP and port pair. (#4144)
- The loopback module and module-raop have support for ProcessLatency, which
can be used to query and update the latency.
- The profiler module can now reduce the sampling rate.
- The filter-chain was optimized some more.
- The filter-chain gained some more plugins: param_eq, ebur128, dcblock.
- Support for fftw based convolver was added.
- Some module arguments can now be overridden.
- The VBAN receiver now creates new streams per stream name. (#4400)
- The RTP SAP module is now smarter with generating new SAP messages.
- The RTP source can now be paused when no data is received. (#4456)
- pw-cat can now stream most formats from stdin/stdout.
- pw-profiler has a JSON dump option to dump the raw profiler data.
- pw-cli now supports unload-module. (#4276)
- The resampler can precompute some common coeficients now at compile
time.
- UMP support was added with MIDI 1.0 and MIDI 2.0 support in the ALSA
sequencer plugin. By default PipeWire will now use MIDI 2.0 in UMP
messages to transport MIDI in the graph, with conversions to/from legacy
MIDI where required.
- Control types can now be negotiated.
- Support for writing ALSA bind controls was added.
- The ALSA sequencer now has better names for the ports.
- The F32 to S32 conversion now uses 25 bits for an extra bit of
precision.
- libcamera controls can now be set in all cases.
- The videoadapter has been improved and a dummy and ffmpeg based
videoconverter plugin was added.
- Negotiation was improved in audioadapter. First a passthrough format
is tried.
- Some JSON helper functions were added and some duplicate code removed
or simplified.
- Add support for RISC V CPU detection and add many optimizations in
the audio converters.
- Add an option to disable ALSA mixer path select. (#4311)
- Fix a potential bug with the cleanup of the loop queues.
- ALSA nodes now dynamically adjust the DLL bandwidth based on average
measured variance.
- The loop invoke queue was made more efficient and make it possible to
invoke from multiple threads.
- The filter-chain code was moved to a new filter-graph plugin.
- Most function macros are now static inlined and can also be built into a
libspa.so file. This should improve language bindings.
- V4l2 clock information was improved.
- Supported IEC958 codecs are now autodetected via ELD info.
- Audioconvert was optimized some more.
- Audioconvert can now include filter-graphs in its processing.
- webrtc-audio-processing-2 is now supported in AEC.
- The resampler now reports the delay and subsample delay. Also the
delay is reported in the samplerate of the input.
- The ALSA sequencer now handle kernels without UMP support. (#4507)
- Add quirk to block clients from making record and playback streams.
- The corked state is now set on stream to always report this state
correctly to other clients.
- Readiness notification was added to the pulse server with the
PIPEWIRE_PULSE_NOTIFICATION_FD environment variable. (#4347)
- The pulse.cmd config now supports conditions.
- A bug in clearing the ringbuffer was fixed. (#4464)
- Support for the default devices was added to the deviceprovider. (#4268)
- The graph clock is now used as the source for the GStreamer clock.
- The sink now does some rate control.
- The ALSA plugin now supports DSD when explicitly enabled.
- JACK now supports 2 new extension formats for OSC and UMP.
- JACK clients can receive UMP MIDI1 or MIDI2 messages when using
the new UMP port format extension.
- JACK now reports the PipeWire version in the minor/micro/proto.
- Implement more jackserver functions.
- Support BAP broadcast links.
- Support for ASHA was added.
- Delay reporting in A2DP sources was improved.
- 2 new examples of pw-stream using spa_ringbuffer were added.
- Many updates to the man pages.
- More documentation about thread safety of functions in stream
and filters. (#4521)
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | meta-multimedia/recipes-multimedia/pipewire/files/0ca64277b317b4836beccaa3248ab9055526811c.patch | 46 | ||||
-rw-r--r-- | meta-multimedia/recipes-multimedia/pipewire/pipewire_1.4.0.bb (renamed from meta-multimedia/recipes-multimedia/pipewire/pipewire_1.2.7.bb) | 6 |
2 files changed, 3 insertions, 49 deletions
diff --git a/meta-multimedia/recipes-multimedia/pipewire/files/0ca64277b317b4836beccaa3248ab9055526811c.patch b/meta-multimedia/recipes-multimedia/pipewire/files/0ca64277b317b4836beccaa3248ab9055526811c.patch deleted file mode 100644 index 9b05e9e4c3..0000000000 --- a/meta-multimedia/recipes-multimedia/pipewire/files/0ca64277b317b4836beccaa3248ab9055526811c.patch +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | From 0ca64277b317b4836beccaa3248ab9055526811c Mon Sep 17 00:00:00 2001 | ||
2 | From: Wim Taymans <wtaymans@redhat.com> | ||
3 | Date: Mon, 30 Sep 2024 10:06:30 +0200 | ||
4 | Subject: [PATCH] spa: initialize all fields explicitly | ||
5 | |||
6 | Patch by Petar Popovic | ||
7 | |||
8 | Fixes #4325 | ||
9 | |||
10 | Upstream-Status: Backport [https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/0ca64277b317b4836beccaa3248ab9055526811c] | ||
11 | |||
12 | Signed-off-by: Markus Volk <f_l_k@t-online.de> | ||
13 | --- | ||
14 | spa/include/spa/pod/builder.h | 2 +- | ||
15 | spa/include/spa/pod/parser.h | 2 +- | ||
16 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
17 | |||
18 | diff --git a/spa/include/spa/pod/builder.h b/spa/include/spa/pod/builder.h | ||
19 | index 0564d94ea2..6d3e9d54af 100644 | ||
20 | --- a/spa/include/spa/pod/builder.h | ||
21 | +++ b/spa/include/spa/pod/builder.h | ||
22 | @@ -49,7 +49,7 @@ struct spa_pod_builder { | ||
23 | struct spa_callbacks callbacks; | ||
24 | }; | ||
25 | |||
26 | -#define SPA_POD_BUILDER_INIT(buffer,size) ((struct spa_pod_builder){ (buffer), (size), 0, {0}, {0} }) | ||
27 | +#define SPA_POD_BUILDER_INIT(buffer,size) ((struct spa_pod_builder){ (buffer), (size), 0, {0,0,NULL},{NULL,NULL}}) | ||
28 | |||
29 | static inline void | ||
30 | spa_pod_builder_get_state(struct spa_pod_builder *builder, struct spa_pod_builder_state *state) | ||
31 | diff --git a/spa/include/spa/pod/parser.h b/spa/include/spa/pod/parser.h | ||
32 | index 083f911713..4c1e72acce 100644 | ||
33 | --- a/spa/include/spa/pod/parser.h | ||
34 | +++ b/spa/include/spa/pod/parser.h | ||
35 | @@ -33,7 +33,7 @@ struct spa_pod_parser { | ||
36 | struct spa_pod_parser_state state; | ||
37 | }; | ||
38 | |||
39 | -#define SPA_POD_PARSER_INIT(buffer,size) ((struct spa_pod_parser){ (buffer), (size), 0, {0} }) | ||
40 | +#define SPA_POD_PARSER_INIT(buffer,size) ((struct spa_pod_parser){ (buffer), (size), 0, {0,0,NULL}}) | ||
41 | |||
42 | static inline void spa_pod_parser_init(struct spa_pod_parser *parser, | ||
43 | const void *data, uint32_t size) | ||
44 | -- | ||
45 | GitLab | ||
46 | |||
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.2.7.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.4.0.bb index 8c486b9c5e..d897ddb25d 100644 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.2.7.bb +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.4.0.bb | |||
@@ -12,9 +12,8 @@ LIC_FILES_CHKSUM = " \ | |||
12 | 12 | ||
13 | DEPENDS = "dbus ncurses" | 13 | DEPENDS = "dbus ncurses" |
14 | 14 | ||
15 | SRCREV = "cc7439187f61dd73b81ca69f5dbccbb52ce970b2" | 15 | SRCREV = "df1c36aec2aaf9e2eb1596b6b55e72c15fb2088a" |
16 | SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=1.2;protocol=https" | 16 | SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https" |
17 | SRC_URI += "file://0ca64277b317b4836beccaa3248ab9055526811c.patch" | ||
18 | 17 | ||
19 | S = "${WORKDIR}/git" | 18 | S = "${WORKDIR}/git" |
20 | 19 | ||
@@ -283,6 +282,7 @@ CONFFILES:libpipewire += "${datadir}/pipewire/client.conf" | |||
283 | FILES:libpipewire = " \ | 282 | FILES:libpipewire = " \ |
284 | ${datadir}/pipewire/client.conf \ | 283 | ${datadir}/pipewire/client.conf \ |
285 | ${libdir}/libpipewire-*.so.* \ | 284 | ${libdir}/libpipewire-*.so.* \ |
285 | ${libdir}/${SPA_SUBDIR}/libspa.so \ | ||
286 | " | 286 | " |
287 | # Add the bare minimum modules and plugins required to be able | 287 | # Add the bare minimum modules and plugins required to be able |
288 | # to use libpipewire. Without these, it is essentially unusable. | 288 | # to use libpipewire. Without these, it is essentially unusable. |