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 000000000..9fdb60380 --- /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 000000000..fc618b4a7 --- /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 ad6448a10..000000000 --- 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 c176c6eeb..6c88e99f9 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 += " \ |