diff options
author | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2019-10-04 23:07:46 +0300 |
---|---|---|
committer | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2019-10-07 18:44:05 +0300 |
commit | 3e595682d9dc40f4011de895165b316cb39e381a (patch) | |
tree | 711cd9b4f56eb59d1c513b71a206133edb165581 /meta-pipewire/recipes-connectivity/bluez-alsa/bluez-alsa_git.bbappend | |
parent | 256f3bd54b259e5b6969d531b7dd5b01faea04e1 (diff) |
meta-pipewire: add recipe to build the bluez-alsa-pipewire gstreamer helper
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: I369b40eb1cf6d940ac233fff18605f400bce3628
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.bbappend | 35 |
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 \ + " |