diff options
| author | Zelan Zou <zelan.zou@nxp.com> | 2026-03-20 16:44:32 +0800 |
|---|---|---|
| committer | Zelan Zou <zelan.zou@nxp.com> | 2026-03-23 10:46:20 +0800 |
| commit | 35f03eaa2bbbe8cb2f5df14b764e2e296471c7cf (patch) | |
| tree | a97ff732a0f45a47f76cc31530dbdc112c226935 | |
| parent | 8de52d3ce167d03c0b311f6ef3d6c2332af91ea3 (diff) | |
| download | meta-freescale-35f03eaa2bbbe8cb2f5df14b764e2e296471c7cf.tar.gz | |
pipewire: Refresh patch
Signed-off-by: Zelan Zou <zelan.zou@nxp.com>
5 files changed, 130 insertions, 46 deletions
diff --git a/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0001-YOCIMX-9095-pipewiresrc-set-rank-to-secondary.patch b/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0001-YOCIMX-9095-pipewiresrc-set-rank-to-secondary.patch new file mode 100644 index 000000000..bf41f1b4b --- /dev/null +++ b/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0001-YOCIMX-9095-pipewiresrc-set-rank-to-secondary.patch | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | From 46670dce02361a318fc66e503d32a0ceb53ec1ea Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Haihua Hu <jared.hu@nxp.com> | ||
| 3 | Date: Mon, 30 Jun 2025 17:56:50 +0900 | ||
| 4 | Subject: [PATCH] YOCIMX-9095 pipewiresrc: set rank to secondary | ||
| 5 | |||
| 6 | Upstream-Status: Pending | ||
| 7 | |||
| 8 | currently, pipewiresrc cannot been used as default | ||
| 9 | video or audio src, so no need primary rank. | ||
| 10 | |||
| 11 | Signed-off-by: Haihua Hu <jared.hu@nxp.com> | ||
| 12 | --- | ||
| 13 | src/gst/gstpipewire.c | 2 +- | ||
| 14 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 15 | |||
| 16 | diff --git a/src/gst/gstpipewire.c b/src/gst/gstpipewire.c | ||
| 17 | index 5761a099d..15f2ac946 100644 | ||
| 18 | --- a/src/gst/gstpipewire.c | ||
| 19 | +++ b/src/gst/gstpipewire.c | ||
| 20 | @@ -26,7 +26,7 @@ plugin_init (GstPlugin *plugin) | ||
| 21 | { | ||
| 22 | pw_init (NULL, NULL); | ||
| 23 | |||
| 24 | - gst_element_register (plugin, "pipewiresrc", GST_RANK_PRIMARY + 1, | ||
| 25 | + gst_element_register (plugin, "pipewiresrc", GST_RANK_SECONDARY + 1, | ||
| 26 | GST_TYPE_PIPEWIRE_SRC); | ||
| 27 | gst_element_register (plugin, "pipewiresink", GST_RANK_NONE, | ||
| 28 | GST_TYPE_PIPEWIRE_SINK); | ||
| 29 | -- | ||
| 30 | 2.34.1 | ||
| 31 | |||
diff --git a/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0001-launch-allow-pipewire-pulse-can-be-started-by-root.patch b/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0001-launch-allow-pipewire-pulse-can-be-started-by-root.patch deleted file mode 100644 index ab34dc2fa..000000000 --- a/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0001-launch-allow-pipewire-pulse-can-be-started-by-root.patch +++ /dev/null | |||
| @@ -1,41 +0,0 @@ | |||
| 1 | From 2cac94185824aa7df07ec48a2872f3d26d517a6d Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Shengjiu Wang <shengjiu.wang@nxp.com> | ||
| 3 | Date: Tue, 28 Nov 2023 10:23:42 +0800 | ||
| 4 | Subject: [PATCH] launch: allow pipewire-pulse can be started by root. | ||
| 5 | |||
| 6 | revert commit 8942f6b40 ("launch: avoid autostarting pipewire-pulse | ||
| 7 | systemd units for root") | ||
| 8 | |||
| 9 | Upstream-Status: Inappropriate [i.MX specific] | ||
| 10 | Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> | ||
| 11 | --- | ||
| 12 | src/daemon/systemd/user/pipewire-pulse.service.in | 1 - | ||
| 13 | src/daemon/systemd/user/pipewire-pulse.socket | 1 - | ||
| 14 | 2 files changed, 2 deletions(-) | ||
| 15 | |||
| 16 | diff --git a/src/daemon/systemd/user/pipewire-pulse.service.in b/src/daemon/systemd/user/pipewire-pulse.service.in | ||
| 17 | index 73d22e532..da7728ee3 100644 | ||
| 18 | --- a/src/daemon/systemd/user/pipewire-pulse.service.in | ||
| 19 | +++ b/src/daemon/systemd/user/pipewire-pulse.service.in | ||
| 20 | @@ -14,7 +14,6 @@ Description=PipeWire PulseAudio | ||
| 21 | # After=pipewire-pulse.socket is not needed, as it is already implicit in the | ||
| 22 | # socket-service relationship, see systemd.socket(5). | ||
| 23 | Requires=pipewire-pulse.socket | ||
| 24 | -ConditionUser=!root | ||
| 25 | Wants=pipewire.service pipewire-session-manager.service | ||
| 26 | After=pipewire.service pipewire-session-manager.service | ||
| 27 | Conflicts=pulseaudio.service | ||
| 28 | diff --git a/src/daemon/systemd/user/pipewire-pulse.socket b/src/daemon/systemd/user/pipewire-pulse.socket | ||
| 29 | index 1ae5edafb..d27fb0e26 100644 | ||
| 30 | --- a/src/daemon/systemd/user/pipewire-pulse.socket | ||
| 31 | +++ b/src/daemon/systemd/user/pipewire-pulse.socket | ||
| 32 | @@ -1,6 +1,5 @@ | ||
| 33 | [Unit] | ||
| 34 | Description=PipeWire PulseAudio | ||
| 35 | -ConditionUser=!root | ||
| 36 | Conflicts=pulseaudio.socket | ||
| 37 | |||
| 38 | [Socket] | ||
| 39 | -- | ||
| 40 | 2.34.1 | ||
| 41 | |||
diff --git a/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0001-systemd-allow-pipewire-user-services-for-root.patch b/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0001-systemd-allow-pipewire-user-services-for-root.patch new file mode 100644 index 000000000..da159cfb2 --- /dev/null +++ b/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0001-systemd-allow-pipewire-user-services-for-root.patch | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | From 5e89cf0818c555dff31a1ef9e02828c2541b7e1f Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Shengjiu Wang <shengjiu.wang@nxp.com> | ||
| 3 | Date: Mon, 31 Mar 2025 14:44:23 +0800 | ||
| 4 | Subject: [PATCH] systemd: allow pipewire user services for root | ||
| 5 | |||
| 6 | Revert commit 9bc29b4b3 ("systemd: Disable pipewire user services for root") | ||
| 7 | |||
| 8 | BT ofono service needs root permission for starting service. | ||
| 9 | |||
| 10 | wireplumber[789]: 5:185m5:185mspa.bluez5: Failed to start HFP/HSP backend ofono | ||
| 11 | |||
| 12 | Upstream-Status: Inappropriate [i.MX specific] | ||
| 13 | Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> | ||
| 14 | --- | ||
| 15 | src/daemon/systemd/user/pipewire.service.in | 1 - | ||
| 16 | src/daemon/systemd/user/pipewire.socket | 1 - | ||
| 17 | 2 files changed, 2 deletions(-) | ||
| 18 | |||
| 19 | Index: pipewire-1.4.8/src/daemon/systemd/user/pipewire.service.in | ||
| 20 | =================================================================== | ||
| 21 | --- pipewire-1.4.8.orig/src/daemon/systemd/user/pipewire.service.in | ||
| 22 | +++ pipewire-1.4.8/src/daemon/systemd/user/pipewire.service.in | ||
| 23 | @@ -14,7 +14,6 @@ Description=PipeWire Multimedia Service | ||
| 24 | # After=pipewire.socket is not needed, as it is already implicit in the | ||
| 25 | # socket-service relationship, see systemd.socket(5). | ||
| 26 | Requires=pipewire.socket @PW_SERVICE_REQS@ | ||
| 27 | -ConditionUser=!root | ||
| 28 | |||
| 29 | [Service] | ||
| 30 | LockPersonality=yes | ||
| 31 | Index: pipewire-1.4.8/src/daemon/systemd/user/pipewire.socket | ||
| 32 | =================================================================== | ||
| 33 | --- pipewire-1.4.8.orig/src/daemon/systemd/user/pipewire.socket | ||
| 34 | +++ pipewire-1.4.8/src/daemon/systemd/user/pipewire.socket | ||
| 35 | @@ -1,6 +1,5 @@ | ||
| 36 | [Unit] | ||
| 37 | Description=PipeWire Multimedia System Sockets | ||
| 38 | -ConditionUser=!root | ||
| 39 | |||
| 40 | [Socket] | ||
| 41 | Priority=6 | ||
diff --git a/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0003-pipewiresrc-update-per-plane-stride-and-offset-accor.patch b/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0003-pipewiresrc-update-per-plane-stride-and-offset-accor.patch new file mode 100644 index 000000000..ce4d14371 --- /dev/null +++ b/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire/0003-pipewiresrc-update-per-plane-stride-and-offset-accor.patch | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | From f01c4d27819fc2897b10f7e2bc0f30bd183c45b8 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Elliot Chen <elliot.chen@nxp.com> | ||
| 3 | Date: Sat, 28 Feb 2026 14:47:22 +0900 | ||
| 4 | Subject: [PATCH] pipewiresrc: update per-plane stride and offset according to | ||
| 5 | chunk info | ||
| 6 | |||
| 7 | Upstream-Status: Pending | ||
| 8 | |||
| 9 | --- | ||
| 10 | meson.build | 2 +- | ||
| 11 | src/gst/gstpipewiresrc.c | 11 +++++++++++ | ||
| 12 | 2 files changed, 12 insertions(+), 1 deletion(-) | ||
| 13 | |||
| 14 | diff --git a/meson.build b/meson.build | ||
| 15 | index bca2c7a27..e290217e9 100644 | ||
| 16 | --- a/meson.build | ||
| 17 | +++ b/meson.build | ||
| 18 | @@ -412,7 +412,7 @@ gst_deps_def = { | ||
| 19 | 'gio-unix-2.0': {}, | ||
| 20 | 'gstreamer-1.0': {'version': '>= 1.10.0'}, | ||
| 21 | 'gstreamer-base-1.0': {}, | ||
| 22 | - 'gstreamer-video-1.0': {}, | ||
| 23 | + 'gstreamer-video-1.0': {'version': '>= 1.22.0'}, | ||
| 24 | 'gstreamer-audio-1.0': {}, | ||
| 25 | 'gstreamer-allocators-1.0': {}, | ||
| 26 | } | ||
| 27 | diff --git a/src/gst/gstpipewiresrc.c b/src/gst/gstpipewiresrc.c | ||
| 28 | index b0de17dfd..044c0d583 100644 | ||
| 29 | --- a/src/gst/gstpipewiresrc.c | ||
| 30 | +++ b/src/gst/gstpipewiresrc.c | ||
| 31 | @@ -838,6 +838,17 @@ static GstBuffer *dequeue_buffer(GstPipeWireSrc *pwsrc) | ||
| 32 | |||
| 33 | video_size += d->chunk->size; | ||
| 34 | } | ||
| 35 | + | ||
| 36 | + /* If the buffer number is smaller than the plane number, | ||
| 37 | + * update the stride and offset for the remain planes. | ||
| 38 | + */ | ||
| 39 | + if (n_datas && n_datas < n_planes) { | ||
| 40 | + for (i = n_datas; i < n_planes; i++) { | ||
| 41 | + meta->stride[i] = gst_video_format_info_extrapolate_stride (info->finfo, i, b->buffer->datas[0].chunk->stride); | ||
| 42 | + meta->offset[i] = meta->offset[i-1] + | ||
| 43 | + meta->stride[i-1] * GST_VIDEO_FORMAT_INFO_SCALE_HEIGHT (info->finfo, i-1, GST_VIDEO_INFO_HEIGHT(info)); | ||
| 44 | + } | ||
| 45 | + } | ||
| 46 | } | ||
| 47 | |||
| 48 | if (b->buffer->n_datas != gst_buffer_n_memory(data->buf)) { | ||
| 49 | -- | ||
| 50 | 2.34.1 | ||
| 51 | |||
diff --git a/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire_%.bbappend b/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire_%.bbappend index 865b29349..2c28aca5f 100644 --- a/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire_%.bbappend +++ b/dynamic-layers/multimedia-layer/recipes-multimedia/pipewire/pipewire_%.bbappend | |||
| @@ -1,8 +1,12 @@ | |||
| 1 | FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" | 1 | FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" |
| 2 | 2 | ||
| 3 | SRC_URI:append:imx-nxp-bsp = " file://0001-launch-allow-pipewire-pulse-can-be-started-by-root.patch" | 3 | SRC_URI:append:imx-nxp-bsp = " \ |
| 4 | 4 | file://0001-systemd-allow-pipewire-user-services-for-root.patch \ | |
| 5 | SYSTEMD_AUTO_ENABLE:imx-nxp-bsp = "disable" | 5 | file://0001-YOCIMX-9095-pipewiresrc-set-rank-to-secondary.patch \ |
| 6 | " | ||
| 7 | SRC_URI:append:mx95-nxp-bsp = " \ | ||
| 8 | file://0003-pipewiresrc-update-per-plane-stride-and-offset-accor.patch \ | ||
| 9 | " | ||
| 6 | 10 | ||
| 7 | DEPENDS:append:mx95-nxp-bsp = " libdrm" | 11 | DEPENDS:append:mx95-nxp-bsp = " libdrm" |
| 8 | 12 | ||
| @@ -10,8 +14,6 @@ PACKAGECONFIG:remove = "${PACKAGECONFIG_REMOVE}" | |||
| 10 | PACKAGECONFIG_REMOVE ?= "" | 14 | PACKAGECONFIG_REMOVE ?= "" |
| 11 | PACKAGECONFIG_REMOVE:mx6-nxp-bsp ?= "gstreamer" | 15 | PACKAGECONFIG_REMOVE:mx6-nxp-bsp ?= "gstreamer" |
| 12 | PACKAGECONFIG_REMOVE:mx7-nxp-bsp ?= "gstreamer" | 16 | PACKAGECONFIG_REMOVE:mx7-nxp-bsp ?= "gstreamer" |
| 13 | PACKAGECONFIG_REMOVE:mx8-nxp-bsp ?= "gstreamer" | ||
| 14 | PACKAGECONFIG_REMOVE:mx93-nxp-bsp ?= "gstreamer" | ||
| 15 | 17 | ||
| 16 | PACKAGECONFIG:class-target:append:imx-nxp-bsp = " ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez-lc3', '', d)}" | 18 | PACKAGECONFIG:class-target:append:imx-nxp-bsp = " ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez-lc3', '', d)}" |
| 17 | 19 | ||
