diff mbox series

[scarthgap,RFC,1/3] recipes-multimedia: Add pipewire configuration files

Message ID 20260123060348.2493115-2-p-bhagat@ti.com
State RFC
Delegated to: Ryan Eatmon
Headers show
Series Add pipeWire audio stack for am62dxx | expand

Commit Message

Paresh Bhagat Jan. 23, 2026, 6:03 a.m. UTC
- Add 92-capture.conf for capture configuration
- Add 90-multichannel.conf for multichannel setup
- Add pipewire_1.0.9.bbappend recipe extension

Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
---
 .../pipewire/pipewire/90-multichannel.conf      | 17 +++++++++++++++++
 .../pipewire/pipewire/92-capture.conf           | 17 +++++++++++++++++
 .../pipewire/pipewire_1.0.9.bbappend            | 14 ++++++++++++++
 3 files changed, 48 insertions(+)
 create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
 create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
 create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend

Comments

Yogesh Hegde Jan. 23, 2026, 6:47 a.m. UTC | #1
Hi Paresh,

On 11:33-20260123, Paresh Bhagat via lists.yoctoproject.org wrote:
> - Add 92-capture.conf for capture configuration
> - Add 90-multichannel.conf for multichannel setup
> - Add pipewire_1.0.9.bbappend recipe extension
> 
> Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>

Thanks for your patch! 

> ---
>  .../pipewire/pipewire/90-multichannel.conf      | 17 +++++++++++++++++
>  .../pipewire/pipewire/92-capture.conf           | 17 +++++++++++++++++
>  .../pipewire/pipewire_1.0.9.bbappend            | 14 ++++++++++++++
>  3 files changed, 48 insertions(+)
>  create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
>  create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
>  create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend
> 
> diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
> new file mode 100644
> index 00000000..1dd926bc
> --- /dev/null
> +++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
> @@ -0,0 +1,17 @@
> +context.objects = [
> +    {
> +        factory = adapter
> +        args = {
> +            factory.name     = api.alsa.pcm.sink
> +            node.name        = "alsa_multidac_8ch"
> +            node.description = "Multi-DAC 8ch Output"
> +            media.class      = "Audio/Sink"
> +
> +            api.alsa.path = "hw:0,0"
> +            api.alsa.disable-mmap = true
> +
> +            audio.channels = 8
> +            audio.position = [ FL FR FC LFE RL RR SL SR ]
> +        }
> +    }
> +]
> diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
> new file mode 100644
> index 00000000..b0871da2
> --- /dev/null
> +++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
> @@ -0,0 +1,17 @@
> +context.objects = [
> +    {
> +        factory = adapter
> +        args = {
> +            factory.name     = api.alsa.pcm.source
> +            node.name        = "alsa_multidac_4ch_capture"
> +            node.description = "ALSA 4ch Capture (L1 L2 R1 R2)"
> +            media.class      = Audio/Source

As per pipewire docs [0], Audio/Source should be in quotes. 

> +
> +            api.alsa.path = "hw:0,0"
> +            api.alsa.disable-mmap = true
> +
> +            audio.channels = 4
> +            audio.position = [ FL FR SL SR ]
> +        }
> +    }
> +]
> diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend b/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend
> new file mode 100644
> index 00000000..29b17af3
> --- /dev/null
> +++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend
> @@ -0,0 +1,14 @@
> +SRC_URI += " \
> +    file://90-multichannel.conf \
> +    file://92-capture.conf \
> +"
> +
> +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

FILESEXTRAPATHS should be before SRC_URI so that bitbake knows where to
find files mentioned in the SRC_URI. 

> +
> +do_install:append() {
> +    install -d ${D}${sysconfdir}/pipewire/pipewire.conf.d
> +    install -m 0644 ${WORKDIR}/90-multichannel.conf ${D}${sysconfdir}/pipewire/pipewire.conf.d/
> +    install -m 0644 ${WORKDIR}/92-capture.conf ${D}${sysconfdir}/pipewire/pipewire.conf.d/
> +}
> +
> +FILES:${PN} += " ${sysconfdir}"

Nitpick, packaging entire ${sysconfdir} might not be a best practice, best
would be to package only the required files or the pipewire.conf.d dir. 

FILES:${PN} += "${sysconfdir}/pipewire/pipewire.conf.d/*.conf"

[0]: https://docs.pipewire.org/page_man_pipewire_conf_5.html

Regards, 
- Yogesh
Ryan Eatmon Jan. 23, 2026, 4:03 p.m. UTC | #2
On 1/23/2026 12:03 AM, Paresh Bhagat wrote:
> - Add 92-capture.conf for capture configuration
> - Add 90-multichannel.conf for multichannel setup
> - Add pipewire_1.0.9.bbappend recipe extension
> 
> Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
> ---
>   .../pipewire/pipewire/90-multichannel.conf      | 17 +++++++++++++++++
>   .../pipewire/pipewire/92-capture.conf           | 17 +++++++++++++++++
>   .../pipewire/pipewire_1.0.9.bbappend            | 14 ++++++++++++++
>   3 files changed, 48 insertions(+)
>   create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
>   create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
>   create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend
> 
> diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
> new file mode 100644
> index 00000000..1dd926bc
> --- /dev/null
> +++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
> @@ -0,0 +1,17 @@
> +context.objects = [
> +    {
> +        factory = adapter
> +        args = {
> +            factory.name     = api.alsa.pcm.sink
> +            node.name        = "alsa_multidac_8ch"
> +            node.description = "Multi-DAC 8ch Output"
> +            media.class      = "Audio/Sink"
> +
> +            api.alsa.path = "hw:0,0"
> +            api.alsa.disable-mmap = true
> +
> +            audio.channels = 8
> +            audio.position = [ FL FR FC LFE RL RR SL SR ]
> +        }
> +    }
> +]
> diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
> new file mode 100644
> index 00000000..b0871da2
> --- /dev/null
> +++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
> @@ -0,0 +1,17 @@
> +context.objects = [
> +    {
> +        factory = adapter
> +        args = {
> +            factory.name     = api.alsa.pcm.source
> +            node.name        = "alsa_multidac_4ch_capture"
> +            node.description = "ALSA 4ch Capture (L1 L2 R1 R2)"
> +            media.class      = Audio/Source
> +
> +            api.alsa.path = "hw:0,0"
> +            api.alsa.disable-mmap = true
> +
> +            audio.channels = 4
> +            audio.position = [ FL FR SL SR ]
> +        }
> +    }
> +]
> diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend b/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend
> new file mode 100644
> index 00000000..29b17af3
> --- /dev/null
> +++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend


We do not directly bbappend recipes to maintain yoctoproject compatible 
status.  Please check other bbappends in meta-arago for examples on how 
to do this properly.  For example: 
meta-arago-distro/recipes-multimedia/libtiff/tiff_%.bbappend


This same comment applies to the other patches where you add bbappend 
files as well.


> @@ -0,0 +1,14 @@
> +SRC_URI += " \
> +    file://90-multichannel.conf \
> +    file://92-capture.conf \
> +"
> +
> +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
> +
> +do_install:append() {
> +    install -d ${D}${sysconfdir}/pipewire/pipewire.conf.d
> +    install -m 0644 ${WORKDIR}/90-multichannel.conf ${D}${sysconfdir}/pipewire/pipewire.conf.d/
> +    install -m 0644 ${WORKDIR}/92-capture.conf ${D}${sysconfdir}/pipewire/pipewire.conf.d/
> +}
> +
> +FILES:${PN} += " ${sysconfdir}"
Denys Dmytriyenko Jan. 23, 2026, 5:03 p.m. UTC | #3
On Fri, Jan 23, 2026 at 10:03:39AM -0600, Ryan Eatmon via lists.yoctoproject.org wrote:
> 
> 
> On 1/23/2026 12:03 AM, Paresh Bhagat wrote:
> >- Add 92-capture.conf for capture configuration
> >- Add 90-multichannel.conf for multichannel setup
> >- Add pipewire_1.0.9.bbappend recipe extension
> >
> >Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
> >---
> >  .../pipewire/pipewire/90-multichannel.conf      | 17 +++++++++++++++++
> >  .../pipewire/pipewire/92-capture.conf           | 17 +++++++++++++++++
> >  .../pipewire/pipewire_1.0.9.bbappend            | 14 ++++++++++++++
> >  3 files changed, 48 insertions(+)
> >  create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
> >  create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
> >  create mode 100644 meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend
> >
> >diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
> >new file mode 100644
> >index 00000000..1dd926bc
> >--- /dev/null
> >+++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
> >@@ -0,0 +1,17 @@
> >+context.objects = [
> >+    {
> >+        factory = adapter
> >+        args = {
> >+            factory.name     = api.alsa.pcm.sink
> >+            node.name        = "alsa_multidac_8ch"
> >+            node.description = "Multi-DAC 8ch Output"
> >+            media.class      = "Audio/Sink"
> >+
> >+            api.alsa.path = "hw:0,0"
> >+            api.alsa.disable-mmap = true
> >+
> >+            audio.channels = 8
> >+            audio.position = [ FL FR FC LFE RL RR SL SR ]
> >+        }
> >+    }
> >+]
> >diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
> >new file mode 100644
> >index 00000000..b0871da2
> >--- /dev/null
> >+++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
> >@@ -0,0 +1,17 @@
> >+context.objects = [
> >+    {
> >+        factory = adapter
> >+        args = {
> >+            factory.name     = api.alsa.pcm.source
> >+            node.name        = "alsa_multidac_4ch_capture"
> >+            node.description = "ALSA 4ch Capture (L1 L2 R1 R2)"
> >+            media.class      = Audio/Source
> >+
> >+            api.alsa.path = "hw:0,0"
> >+            api.alsa.disable-mmap = true
> >+
> >+            audio.channels = 4
> >+            audio.position = [ FL FR SL SR ]
> >+        }
> >+    }
> >+]
> >diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend b/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend
> >new file mode 100644
> >index 00000000..29b17af3
> >--- /dev/null
> >+++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend
> 
> 
> We do not directly bbappend recipes to maintain yoctoproject
> compatible status.  Please check other bbappends in meta-arago for
> examples on how to do this properly.  For example:
> meta-arago-distro/recipes-multimedia/libtiff/tiff_%.bbappend
> 
> 
> This same comment applies to the other patches where you add
> bbappend files as well.

And since this is to add 2 extra conf files, alternatively this could be a 
completely separate recipe.


> >@@ -0,0 +1,14 @@
> >+SRC_URI += " \
> >+    file://90-multichannel.conf \
> >+    file://92-capture.conf \
> >+"
> >+
> >+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
> >+
> >+do_install:append() {
> >+    install -d ${D}${sysconfdir}/pipewire/pipewire.conf.d
> >+    install -m 0644 ${WORKDIR}/90-multichannel.conf ${D}${sysconfdir}/pipewire/pipewire.conf.d/
> >+    install -m 0644 ${WORKDIR}/92-capture.conf ${D}${sysconfdir}/pipewire/pipewire.conf.d/
> >+}
> >+
> >+FILES:${PN} += " ${sysconfdir}"
diff mbox series

Patch

diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
new file mode 100644
index 00000000..1dd926bc
--- /dev/null
+++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/90-multichannel.conf
@@ -0,0 +1,17 @@ 
+context.objects = [
+    {
+        factory = adapter
+        args = {
+            factory.name     = api.alsa.pcm.sink
+            node.name        = "alsa_multidac_8ch"
+            node.description = "Multi-DAC 8ch Output"
+            media.class      = "Audio/Sink"
+
+            api.alsa.path = "hw:0,0"
+            api.alsa.disable-mmap = true
+
+            audio.channels = 8
+            audio.position = [ FL FR FC LFE RL RR SL SR ]
+        }
+    }
+]
diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
new file mode 100644
index 00000000..b0871da2
--- /dev/null
+++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire/92-capture.conf
@@ -0,0 +1,17 @@ 
+context.objects = [
+    {
+        factory = adapter
+        args = {
+            factory.name     = api.alsa.pcm.source
+            node.name        = "alsa_multidac_4ch_capture"
+            node.description = "ALSA 4ch Capture (L1 L2 R1 R2)"
+            media.class      = Audio/Source
+
+            api.alsa.path = "hw:0,0"
+            api.alsa.disable-mmap = true
+
+            audio.channels = 4
+            audio.position = [ FL FR SL SR ]
+        }
+    }
+]
diff --git a/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend b/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend
new file mode 100644
index 00000000..29b17af3
--- /dev/null
+++ b/meta-arago-distro/recipes-multimedia/pipewire/pipewire_1.0.9.bbappend
@@ -0,0 +1,14 @@ 
+SRC_URI += " \
+    file://90-multichannel.conf \
+    file://92-capture.conf \
+"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+do_install:append() {
+    install -d ${D}${sysconfdir}/pipewire/pipewire.conf.d
+    install -m 0644 ${WORKDIR}/90-multichannel.conf ${D}${sysconfdir}/pipewire/pipewire.conf.d/
+    install -m 0644 ${WORKDIR}/92-capture.conf ${D}${sysconfdir}/pipewire/pipewire.conf.d/
+}
+
+FILES:${PN} += " ${sysconfdir}"