diff options
| author | Markus Volk <f_l_k@t-online.de> | 2022-08-22 19:19:40 +0200 |
|---|---|---|
| committer | Khem Raj <raj.khem@gmail.com> | 2022-08-22 14:13:37 -0700 |
| commit | f6eb4c82bb86c2b09b6ec5e0adf7c332af53b2aa (patch) | |
| tree | e51cd1a3c43995dc78f44ef36cb52c992d8ff35d /meta-multimedia | |
| parent | f36a158aa0b6dc5d595c08f33733f889a7202b36 (diff) | |
| download | meta-openembedded-f6eb4c82bb86c2b09b6ec5e0adf7c332af53b2aa.tar.gz | |
pipewire: update to v0.3.56
Add the configuration to make pipewire work as a drop-in replacement for pulseaudio-server.
Add pipewire-media-session as a standalone recipe, since pipewire would fetch the code as a
subproject at do_configure.
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-multimedia')
| -rw-r--r-- | meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb | 25 | ||||
| -rw-r--r-- | meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-avb-fix-compilation-on-big-endian.patch | 53 | ||||
| -rw-r--r-- | meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch | 47 | ||||
| -rw-r--r-- | meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb (renamed from meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb) | 53 |
4 files changed, 117 insertions, 61 deletions
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb new file mode 100644 index 0000000000..9fdb60380b --- /dev/null +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | SUMMARY = "PipeWire Media Session is an example session manager for PipeWire" | ||
| 2 | HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/media-session" | ||
| 3 | LICENSE = "MIT" | ||
| 4 | |||
| 5 | LIC_FILES_CHKSUM = "file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a" | ||
| 6 | |||
| 7 | DEPENDS = " \ | ||
| 8 | pipewire \ | ||
| 9 | alsa-lib \ | ||
| 10 | dbus \ | ||
| 11 | " | ||
| 12 | |||
| 13 | SRC_URI = "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master" | ||
| 14 | |||
| 15 | S = "${WORKDIR}/git" | ||
| 16 | SRCREV = "e5d5cf2404786af8bcc40bdb8a2962bef4ec18b6" | ||
| 17 | |||
| 18 | inherit meson pkgconfig | ||
| 19 | |||
| 20 | FILES:${PN} += " \ | ||
| 21 | ${systemd_user_unitdir}/pipewire-media-session.service \ | ||
| 22 | ${datadir}/pipewire/media-session.d/* \ | ||
| 23 | " | ||
| 24 | |||
| 25 | RRECOMMENDS:${PN} += "pipewire" | ||
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-avb-fix-compilation-on-big-endian.patch b/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-avb-fix-compilation-on-big-endian.patch new file mode 100644 index 0000000000..fc618b4a7c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-avb-fix-compilation-on-big-endian.patch | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | From 1a5ec4452fa21592eaeeb823ad95a1db6eb60376 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Wim Taymans <wtaymans@redhat.com> | ||
| 3 | Date: Tue, 19 Jul 2022 13:49:42 +0200 | ||
| 4 | Subject: [PATCH 001/113] avb: fix compilation on big endian | ||
| 5 | |||
| 6 | Patch-Status: Backport | ||
| 7 | |||
| 8 | --- | ||
| 9 | src/modules/module-avb/aaf.h | 2 +- | ||
| 10 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 11 | |||
| 12 | diff --git a/src/modules/module-avb/aaf.h b/src/modules/module-avb/aaf.h | ||
| 13 | index cb4871ca6..b444ce251 100644 | ||
| 14 | --- a/src/modules/module-avb/aaf.h | ||
| 15 | +++ b/src/modules/module-avb/aaf.h | ||
| 16 | @@ -35,7 +35,7 @@ struct avb_packet_aaf { | ||
| 17 | unsigned gv:1; | ||
| 18 | unsigned tv:1; | ||
| 19 | |||
| 20 | - uint8_t seq_number; | ||
| 21 | + uint8_t seq_num; | ||
| 22 | |||
| 23 | unsigned _r2:7; | ||
| 24 | unsigned tu:1; | ||
| 25 | diff --git a/src/modules/module-avb/iec61883.h b/src/modules/module-avb/iec61883.h | ||
| 26 | index d3b3a7daa..6ca8724ad 100644 | ||
| 27 | --- a/src/modules/module-avb/iec61883.h | ||
| 28 | +++ b/src/modules/module-avb/iec61883.h | ||
| 29 | @@ -37,7 +37,7 @@ struct avb_packet_iec61883 { | ||
| 30 | unsigned gv:1; | ||
| 31 | unsigned tv:1; | ||
| 32 | |||
| 33 | - uint8_t seq_number; | ||
| 34 | + uint8_t seq_num; | ||
| 35 | |||
| 36 | unsigned _r2:7; | ||
| 37 | unsigned tu:1; | ||
| 38 | diff --git a/spa/plugins/avb/avbtp/packets.h b/spa/plugins/avb/avbtp/packets.h | ||
| 39 | index 7047456bf..3d4a652ee 100644 | ||
| 40 | --- a/spa/plugins/avb/avbtp/packets.h | ||
| 41 | +++ b/spa/plugins/avb/avbtp/packets.h | ||
| 42 | @@ -116,7 +116,7 @@ struct spa_avbtp_packet_aaf { | ||
| 43 | unsigned gv:1; | ||
| 44 | unsigned tv:1; | ||
| 45 | |||
| 46 | - uint8_t seq_number; | ||
| 47 | + uint8_t seq_num; | ||
| 48 | |||
| 49 | unsigned _r2:7; | ||
| 50 | unsigned tu:1; | ||
| 51 | -- | ||
| 52 | 2.34.1 | ||
| 53 | |||
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch b/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch deleted file mode 100644 index ad6448a10a..0000000000 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch +++ /dev/null | |||
| @@ -1,47 +0,0 @@ | |||
| 1 | From d3ea3142e1a4de206e616bc18f63a529e6b4986a Mon Sep 17 00:00:00 2001 | ||
| 2 | From: psykose <alice@ayaya.dev> | ||
| 3 | Date: Wed, 13 Apr 2022 21:57:49 +0000 | ||
| 4 | Subject: [PATCH 001/154] spa: fix c90 header include | ||
| 5 | |||
| 6 | placing declarations after code is invalid under ISO c90 | ||
| 7 | |||
| 8 | Fixes !1211 | ||
| 9 | |||
| 10 | Patch-Status: Backport | ||
| 11 | --- | ||
| 12 | spa/include/spa/utils/string.h | 6 ++++-- | ||
| 13 | 1 file changed, 4 insertions(+), 2 deletions(-) | ||
| 14 | |||
| 15 | diff --git a/spa/include/spa/utils/string.h b/spa/include/spa/utils/string.h | ||
| 16 | index e80434537..43d19616c 100644 | ||
| 17 | --- a/spa/include/spa/utils/string.h | ||
| 18 | +++ b/spa/include/spa/utils/string.h | ||
| 19 | @@ -276,10 +276,11 @@ static inline int spa_scnprintf(char *buffer, size_t size, const char *format, . | ||
| 20 | static inline float spa_strtof(const char *str, char **endptr) | ||
| 21 | { | ||
| 22 | static locale_t locale = NULL; | ||
| 23 | + locale_t prev; | ||
| 24 | float v; | ||
| 25 | if (SPA_UNLIKELY(locale == NULL)) | ||
| 26 | locale = newlocale(LC_ALL_MASK, "C", NULL); | ||
| 27 | - locale_t prev = uselocale(locale); | ||
| 28 | + prev = uselocale(locale); | ||
| 29 | v = strtof(str, endptr); | ||
| 30 | uselocale(prev); | ||
| 31 | return v; | ||
| 32 | @@ -319,10 +320,11 @@ static inline bool spa_atof(const char *str, float *val) | ||
| 33 | static inline double spa_strtod(const char *str, char **endptr) | ||
| 34 | { | ||
| 35 | static locale_t locale = NULL; | ||
| 36 | + locale_t prev; | ||
| 37 | double v; | ||
| 38 | if (SPA_UNLIKELY(locale == NULL)) | ||
| 39 | locale = newlocale(LC_ALL_MASK, "C", NULL); | ||
| 40 | - locale_t prev = uselocale(locale); | ||
| 41 | + prev = uselocale(locale); | ||
| 42 | v = strtod(str, endptr); | ||
| 43 | uselocale(prev); | ||
| 44 | return v; | ||
| 45 | -- | ||
| 46 | 2.25.1 | ||
| 47 | |||
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb index c176c6eeb1..6c88e99f92 100644 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb | |||
| @@ -13,10 +13,10 @@ LIC_FILES_CHKSUM = " \ | |||
| 13 | 13 | ||
| 14 | DEPENDS = "dbus ncurses" | 14 | DEPENDS = "dbus ncurses" |
| 15 | 15 | ||
| 16 | SRCREV = "64cf5e80e6240284e6b757907b900507fe56f1b5" | 16 | SRCREV = "f274e53d25ee8f483ac6fce9e516bb1830abe88b" |
| 17 | SRC_URI = " \ | 17 | SRC_URI = " \ |
| 18 | git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https \ | 18 | git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https \ |
| 19 | file://0001-spa-fix-c90-header-include.patch \ | 19 | file://0001-avb-fix-compilation-on-big-endian.patch \ |
| 20 | " | 20 | " |
| 21 | 21 | ||
| 22 | S = "${WORKDIR}/git" | 22 | S = "${WORKDIR}/git" |
| @@ -62,7 +62,6 @@ EXTRA_OEMESON += " \ | |||
| 62 | -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ | 62 | -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ |
| 63 | -Dsystemd-system-unit-dir=${systemd_system_unitdir} \ | 63 | -Dsystemd-system-unit-dir=${systemd_system_unitdir} \ |
| 64 | -Dsystemd-user-unit-dir=${systemd_user_unitdir} \ | 64 | -Dsystemd-user-unit-dir=${systemd_user_unitdir} \ |
| 65 | -Dvulkan=disabled \ | ||
| 66 | -Dman=disabled \ | 65 | -Dman=disabled \ |
| 67 | -Dsession-managers='[]' \ | 66 | -Dsession-managers='[]' \ |
| 68 | -Dlv2=disabled \ | 67 | -Dlv2=disabled \ |
| @@ -72,12 +71,26 @@ EXTRA_OEMESON += " \ | |||
| 72 | -Dlegacy-rtkit=false \ | 71 | -Dlegacy-rtkit=false \ |
| 73 | " | 72 | " |
| 74 | 73 | ||
| 75 | PACKAGECONFIG:class-target ??= "\ | 74 | # spa alsa plugin code uses typedef redefinition, which is officially a C11 feature. |
| 75 | # Pipewire builds with 'c_std=gnu99' by default. Recent versions of gcc don't issue this warning in gnu99 | ||
| 76 | # mode but it looks like clang still does | ||
| 77 | CFLAGS:append = " -Wno-typedef-redefinition" | ||
| 78 | |||
| 79 | # According to wireplumber documentation only one session manager should be installed at a time | ||
| 80 | # Possible options are media-session, which has fewer dependencies but is very simple, | ||
| 81 | # or wireplumber, which is more powerful. | ||
| 82 | PIPEWIRE_SESSION_MANAGER ??= "media-session" | ||
| 83 | |||
| 84 | FFMPEG_AVAILABLE = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'ffmpeg', '', d)}" | ||
| 85 | BLUETOOTH_AAC = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'bluez-aac', '', d)}" | ||
| 86 | |||
| 87 | PACKAGECONFIG:class-target ??= " \ | ||
| 76 | ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ | 88 | ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ |
| 77 | ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ | 89 | ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez ${BLUETOOTH_AAC}', '', d)} \ |
| 78 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service', '', d)} \ | 90 | ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \ |
| 79 | ${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)} \ | 91 | ${@bb.utils.filter('DISTRO_FEATURES', 'alsa vulkan pulseaudio', d)} \ |
| 80 | gstreamer jack libusb pw-cat raop sndfile v4l2 \ | 92 | ${PIPEWIRE_SESSION_MANAGER} \ |
| 93 | ${FFMPEG_AVAILABLE} gstreamer jack libusb pw-cat raop sndfile v4l2 udev volume \ | ||
| 81 | " | 94 | " |
| 82 | 95 | ||
| 83 | # "jack" and "pipewire-jack" packageconfigs cannot be both enabled, | 96 | # "jack" and "pipewire-jack" packageconfigs cannot be both enabled, |
| @@ -85,17 +98,19 @@ PACKAGECONFIG:class-target ??= "\ | |||
| 85 | # libjack.so* files, thus colliding with the libpack package. This | 98 | # libjack.so* files, thus colliding with the libpack package. This |
| 86 | # is why these two are marked in their respective packageconfigs | 99 | # is why these two are marked in their respective packageconfigs |
| 87 | # as being in conflict. | 100 | # as being in conflict. |
| 88 | PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev" | 101 | PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev,,pipewire-alsa pipewire-alsa-card-profile" |
| 89 | PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi" | 102 | PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi" |
| 90 | PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" | 103 | PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" |
| 91 | PACKAGECONFIG[bluez-aac] = "-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac" | 104 | PACKAGECONFIG[bluez-aac] = "-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac" |
| 92 | PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native graphviz-native" | 105 | PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native graphviz-native" |
| 93 | PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg" | 106 | PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg" |
| 94 | PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" | 107 | PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base,,gstreamer1.0-pipewire" |
| 95 | PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" | 108 | PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" |
| 96 | PACKAGECONFIG[libcamera] = "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera" | 109 | PACKAGECONFIG[libcamera] = "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera libdrm" |
| 97 | PACKAGECONFIG[libcanberra] = "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra" | 110 | PACKAGECONFIG[libcanberra] = "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra" |
| 98 | PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb" | 111 | PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb" |
| 112 | PACKAGECONFIG[media-session] = ",,,pipewire-media-session" | ||
| 113 | PACKAGECONFIG[pulseaudio] = "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio,,pipewire-pulse" | ||
| 99 | PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib" | 114 | PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib" |
| 100 | PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack" | 115 | PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack" |
| 101 | PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled" | 116 | PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled" |
| @@ -109,8 +124,12 @@ PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=enabled,-Dsyst | |||
| 109 | # currently lacks the feature of enabling user services. | 124 | # currently lacks the feature of enabling user services. |
| 110 | PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd" | 125 | PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd" |
| 111 | # pw-cat needs sndfile packageconfig to be enabled | 126 | # pw-cat needs sndfile packageconfig to be enabled |
| 127 | PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev" | ||
| 112 | PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" | 128 | PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" |
| 129 | PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled" | ||
| 130 | PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader" | ||
| 113 | PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing" | 131 | PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing" |
| 132 | PACKAGECONFIG[wireplumber] = ",,,wireplumber" | ||
| 114 | 133 | ||
| 115 | PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " | 134 | PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " |
| 116 | PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " | 135 | PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " |
| @@ -227,10 +246,16 @@ PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" | |||
| 227 | SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}" | 246 | SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}" |
| 228 | CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf" | 247 | CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf" |
| 229 | FILES:${PN} = " \ | 248 | FILES:${PN} = " \ |
| 230 | ${datadir}/pipewire/pipewire.conf \ | 249 | ${datadir}/pipewire \ |
| 231 | ${systemd_system_unitdir}/pipewire.* \ | 250 | ${systemd_system_unitdir}/pipewire* \ |
| 232 | ${systemd_user_unitdir}/pipewire.* \ | 251 | ${systemd_user_unitdir}/pipewire* \ |
| 233 | ${bindir}/pipewire \ | 252 | ${bindir}/pipewire \ |
| 253 | ${bindir}/pipewire-avb \ | ||
| 254 | " | ||
| 255 | |||
| 256 | RRECOMMENDS:${PN}:class-target += " \ | ||
| 257 | pipewire-modules-meta \ | ||
| 258 | pipewire-spa-plugins-meta \ | ||
| 234 | " | 259 | " |
| 235 | 260 | ||
| 236 | FILES:${PN}-dev += " \ | 261 | FILES:${PN}-dev += " \ |
