diff mbox series

[meta-multimedia] pipewire: update 0.3.63 -> 0.3.64

Message ID 20230117074931.92069-1-f_l_k@t-online.de
State New
Headers show
Series [meta-multimedia] pipewire: update 0.3.63 -> 0.3.64 | expand

Commit Message

Markus Volk Jan. 17, 2023, 7:49 a.m. UTC
This is a bugfix release that is API and ABI compatible with previous
0.3.x releases.

  - Clear old buffer memory on ports to fix some SIGBUS errors.
  - It is now possible to assign custom port names to the ports from an
    adapter. This feature is helpful to those who use a multichannel
    interface with long-term connections. This way they can label each
    port with its designation, such as an instrument name or anything else
    to be displayed in a patchbay or DAW.
  - Fix some issues with node suspend and quantum and rate calculations.
  - Fix some regressions in pulse-tunnel and RTP-source adaptive resampling
    that could cause synchronization problems.
  - UCM devices now also have a Pro Audio profile.
  - NODE_TARGET (with the object.id) is now deprecated, use TARGET_OBJECT
    (with the object.serial, which is not reused and can avoid races).

  - Clear all peer input port buffers when suspending. This fixes some
    SIGBUS errors when some plugins were using old memory. (#2914)
  - Fix a case where nodes that were not supposed to be suspended, were
    kept suspended on a rate change. (#2929)
  - Fix an error in the quantum and rate calculations that could cause
    nodes to run with wrong quantum and rates when multiple rates were
    allowed. (#2925)

  - pw-dump will now sort dictionaries to make it easier to compare
    different outputs.
  - Improve output of pw-reserve.
  - pw-loopback uses TARGET_OBJECT so you will need to use the serial
    id (or better the name) as the target instead of the object id.

  - The filter-chain modules has seen some cleanups, refactoring and
    optimizations in the various DSP functions.
  - The ROC module now supports setting a custom samplerate.
  - ROC 0.2.X is now required.
  - The pulse tunnel and RTP source were not updating the rate field
    correctly which could cause synchronization problems. (#2891)
  - The filter-chain now supports an arbitrary number of control
    properties. (#2933)
  - It is now possible to assign custom port names to the ports from an
    adapter with the PW_KEY_NODE_CHANNELNAMES.
  - Support was added for capture and playback props in echo-cancel.
    (#2939)

  - The ACP code now has an option to set the probe samplerate. (#1599)
  - UCM devices now also have a Pro Audio profile.
  - Filtering of Step ranges is now implemented.

  - The channel-map is now set correctly on the echo-cancel module.
  - source_master and sink_master are now correctly handled in module
    echo-cancel.
  - Fix a regression in DRAIN where resuming after a DRAIN would fail.
    This caused problems for espeak. (#2928)
  - TARGET_OBJECT is now used to make it possible to use the indexes
    as a target.
  - ladspa-source and remap-source can now also link to monitors.

  - The ALSA plugin now handles the target.object correctly when set to
    -1. (#2893)

  - The v4l2 replacement library now also follows symlinks.
  - Support for getting and setting controls was added.
  - Support for G_PARM was added.
  - The environment variable PIPEWIRE_V4L2_TARGET can be used to force
    an application onto a specific camera.

  - Fix compilation without ldac_abr.
  - Fix a missing brace in CIND reply. This could cause some devices to
    fail.
  - Fix configuration of the initial latency.

  - The device provider now supports setting an fd so that it can connect
    to PipeWire sessions from the portal.
  - DMABuf support was re-enabled in gstpipewiresrc.

Build with support for gsettings and libcamera

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 .../pipewire/{pipewire_0.3.63.bb => pipewire_0.3.64.bb}     | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
 rename meta-multimedia/recipes-multimedia/pipewire/{pipewire_0.3.63.bb => pipewire_0.3.64.bb} (98%)

Comments

Peter Kjellerstedt April 18, 2023, 7:13 p.m. UTC | #1
> -----Original Message-----
> From: openembedded-devel@lists.openembedded.org <openembedded-devel@lists.openembedded.org> On Behalf Of Markus Volk
> Sent: den 17 januari 2023 08:50
> To: openembedded-devel@lists.openembedded.org
> Cc: Markus Volk <f_l_k@t-online.de>
> Subject: [oe] [meta-multimedia][PATCH] pipewire: update 0.3.63 -> 0.3.64
> 
> This is a bugfix release that is API and ABI compatible with previous
> 0.3.x releases.
> 
>   - Clear old buffer memory on ports to fix some SIGBUS errors.
>   - It is now possible to assign custom port names to the ports from an
>     adapter. This feature is helpful to those who use a multichannel
>     interface with long-term connections. This way they can label each
>     port with its designation, such as an instrument name or anything else
>     to be displayed in a patchbay or DAW.
>   - Fix some issues with node suspend and quantum and rate calculations.
>   - Fix some regressions in pulse-tunnel and RTP-source adaptive resampling
>     that could cause synchronization problems.
>   - UCM devices now also have a Pro Audio profile.
>   - NODE_TARGET (with the object.id) is now deprecated, use TARGET_OBJECT
>     (with the object.serial, which is not reused and can avoid races).
> 
>   - Clear all peer input port buffers when suspending. This fixes some
>     SIGBUS errors when some plugins were using old memory. (#2914)
>   - Fix a case where nodes that were not supposed to be suspended, were
>     kept suspended on a rate change. (#2929)
>   - Fix an error in the quantum and rate calculations that could cause
>     nodes to run with wrong quantum and rates when multiple rates were
>     allowed. (#2925)
> 
>   - pw-dump will now sort dictionaries to make it easier to compare
>     different outputs.
>   - Improve output of pw-reserve.
>   - pw-loopback uses TARGET_OBJECT so you will need to use the serial
>     id (or better the name) as the target instead of the object id.
> 
>   - The filter-chain modules has seen some cleanups, refactoring and
>     optimizations in the various DSP functions.
>   - The ROC module now supports setting a custom samplerate.
>   - ROC 0.2.X is now required.
>   - The pulse tunnel and RTP source were not updating the rate field
>     correctly which could cause synchronization problems. (#2891)
>   - The filter-chain now supports an arbitrary number of control
>     properties. (#2933)
>   - It is now possible to assign custom port names to the ports from an
>     adapter with the PW_KEY_NODE_CHANNELNAMES.
>   - Support was added for capture and playback props in echo-cancel.
>     (#2939)
> 
>   - The ACP code now has an option to set the probe samplerate. (#1599)
>   - UCM devices now also have a Pro Audio profile.
>   - Filtering of Step ranges is now implemented.
> 
>   - The channel-map is now set correctly on the echo-cancel module.
>   - source_master and sink_master are now correctly handled in module
>     echo-cancel.
>   - Fix a regression in DRAIN where resuming after a DRAIN would fail.
>     This caused problems for espeak. (#2928)
>   - TARGET_OBJECT is now used to make it possible to use the indexes
>     as a target.
>   - ladspa-source and remap-source can now also link to monitors.
> 
>   - The ALSA plugin now handles the target.object correctly when set to
>     -1. (#2893)
> 
>   - The v4l2 replacement library now also follows symlinks.
>   - Support for getting and setting controls was added.
>   - Support for G_PARM was added.
>   - The environment variable PIPEWIRE_V4L2_TARGET can be used to force
>     an application onto a specific camera.
> 
>   - Fix compilation without ldac_abr.
>   - Fix a missing brace in CIND reply. This could cause some devices to
>     fail.
>   - Fix configuration of the initial latency.
> 
>   - The device provider now supports setting an fd so that it can connect
>     to PipeWire sessions from the portal.
>   - DMABuf support was re-enabled in gstpipewiresrc.
> 
> Build with support for gsettings and libcamera
> 
> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  .../pipewire/{pipewire_0.3.63.bb => pipewire_0.3.64.bb}     | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>  rename meta-multimedia/recipes-multimedia/pipewire/{pipewire_0.3.63.bb => pipewire_0.3.64.bb} (98%)
> 
> diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.63.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.64.bb
> similarity index 98%
> rename from meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.63.bb
> rename to meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.64.bb
> index f7acb8db4..91945ca7d 100644
> --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.63.bb
> +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.64.bb
> @@ -13,12 +13,12 @@ LIC_FILES_CHKSUM = " \
> 
>  DEPENDS = "dbus ncurses"
> 
> -SRCREV = "5ff00f40b9d3ecfc38305edc27e9c2b01629802c"
> +SRCREV = "bba452695eb673461c5cf626eec57728991eadf7"
>  SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
> 
>  S = "${WORKDIR}/git"
> 
> -inherit meson pkgconfig systemd gettext useradd
> +inherit gsettings meson pkgconfig systemd gettext useradd

Why do you add inherit of gsettings? AFAICT, it is used to run 
`glib-compile-schemas $D${datadir}/glib-2.0/schemas` when installing/
removing the package. However, pipewire does not install anything in 
/usr/share/glib-2.0/schemas that I can see. And this now fails (with 
master of poky and meta-oe) if I add IMAGE_INSTALL:append = " pipewire" 
to my local.conf and build core-image-minimal:

  ERROR: core-image-minimal-1.0-r0 do_rootfs: Postinstall scriptlets of 
  ['pipewire'] have failed. If the intention is to defer them to first 
  boot, then please place them into pkg_postinst_ontarget:${PN} ().
  Deferring to first boot via 'exit 1' is no longer supported.

The actual error from log.do_rootfs:

  + glib-compile-schemas .../tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/rootfs/usr/share/glib-2.0/schemas
  Error opening directory ".../tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/rootfs/usr/share/glib-2.0/schemas": No such file or directory

> 
>  USERADD_PACKAGES = "${PN}"
> 
> @@ -88,7 +88,7 @@ PACKAGECONFIG:class-target ??= " \
>      ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio gtk', 'gsettings', '', d)} \
>      ${@bb.utils.filter('DISTRO_FEATURES', 'alsa vulkan pulseaudio', d)} \
>      ${PIPEWIRE_SESSION_MANAGER} \
> -    ${FFMPEG_AVAILABLE} avahi flatpak gstreamer jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling \
> +    ${FFMPEG_AVAILABLE} avahi flatpak gstreamer gsettings jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling libcamera \

Why do you add an unconditional dependency on gsettings here when 
there is a conditional dependency a couple of lines above? 
Alternatively, why is the conditional dependency left?

>  "
> 
>  # "jack" and "pipewire-jack" packageconfigs cannot be both enabled,
> --
> 2.34.1

//Peter
diff mbox series

Patch

diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.63.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.64.bb
similarity index 98%
rename from meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.63.bb
rename to meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.64.bb
index f7acb8db4..91945ca7d 100644
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.63.bb
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.64.bb
@@ -13,12 +13,12 @@  LIC_FILES_CHKSUM = " \
 
 DEPENDS = "dbus ncurses"
 
-SRCREV = "5ff00f40b9d3ecfc38305edc27e9c2b01629802c"
+SRCREV = "bba452695eb673461c5cf626eec57728991eadf7"
 SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
 
-inherit meson pkgconfig systemd gettext useradd
+inherit gsettings meson pkgconfig systemd gettext useradd
 
 USERADD_PACKAGES = "${PN}"
 
@@ -88,7 +88,7 @@  PACKAGECONFIG:class-target ??= " \
     ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio gtk', 'gsettings', '', d)} \
     ${@bb.utils.filter('DISTRO_FEATURES', 'alsa vulkan pulseaudio', d)} \
     ${PIPEWIRE_SESSION_MANAGER} \
-    ${FFMPEG_AVAILABLE} avahi flatpak gstreamer jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling \
+    ${FFMPEG_AVAILABLE} avahi flatpak gstreamer gsettings jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling libcamera \
 "
 
 # "jack" and "pipewire-jack" packageconfigs cannot be both enabled,