summaryrefslogtreecommitdiffstats
path: root/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend
diff options
context:
space:
mode:
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2019-10-04 23:07:46 +0300
committerGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2019-10-05 09:44:58 +0300
commit48e10ccbf966b091de28ad60f3a5983f30a8a956 (patch)
treedb729936e866c3d96054688b4afd0f23fd27b58e /meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend
parent2a069d5124121336a77573e95dde9c8c34b872ec (diff)
meta-pipewire: add recipe to build the bluez-alsa-pipewire gstreamer helperhalibut_8.0.2halibut/8.0.28.0.2
Unfortunately, the bluez-alsa PCM plugin does not work correctly when it is used through pipewire (or gstreamer, or anywhere really...). For this reason I have built a helper client that uses GStreamer to glue together the bluez-alsa sockets with pipewire. This helper is implemented as a patch to bluez-alsa so that it can use its internal private API. In the future this needs some re-thinking The helper is meant to run in the background as a service and it will create the appropriate streams in pipewire when it detects a new device on the bluealsa d-bus interface. Currently it only supports a2dp-sink and hfp modes (i.e. media player from a phone + calls). Bluetooth speakers need further policy work in wireplumber that is too complex to support on the current halibut version of pipewire/wireplumber. Bug-AGL: SPEC-2792 Change-Id: Ia0a0c4741dc6f28958e911436edde17ebde1a434 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
Diffstat (limited to 'meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend')
-rw-r--r--meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend35
1 files changed, 35 insertions, 0 deletions
diff --git a/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend b/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend
new file mode 100644
index 00000000..2f9699a8
--- /dev/null
+++ b/meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend
@@ -0,0 +1,35 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "\
+ file://0001-utils-add-a-gstreamer-helper-application-for-interco.patch \
+ file://bluealsa-gst-helper@.service \
+ "
+
+PACKAGECONFIG += "gsthelper"
+PACKAGECONFIG[gsthelper] = "--enable-gsthelper, --disable-gsthelper, gstreamer1.0"
+
+do_install_append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ # install the service file
+ mkdir -p ${D}${systemd_system_unitdir}/
+ install -m 0644 ${WORKDIR}/bluealsa-gst-helper@.service ${D}${systemd_system_unitdir}/bluealsa-gst-helper@.service
+
+ # enable the helper to start together with afm-user-session
+ mkdir -p ${D}${systemd_system_unitdir}/afm-user-session@.target.wants
+ ln -sf ../bluealsa-gst-helper@.service ${D}${systemd_system_unitdir}/afm-user-session@.target.wants/bluealsa-gst-helper@.service
+ fi
+}
+
+PACKAGES =+ "${PN}-pipewire"
+
+FILES_${PN}-pipewire = "\
+ ${bindir}/bluealsa-gst-helper \
+ ${systemd_system_unitdir}/bluealsa-gst-helper@.service \
+ ${systemd_system_unitdir}/afm-user-session@.target.wants/bluealsa-gst-helper@.service \
+ "
+RDEPENDS_${PN}-pipewire += "\
+ bluez-alsa \
+ pipewire \
+ gstreamer1.0-plugins-base \
+ gstreamer1.0-pipewire \
+ "