Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
pipewire"
This reverts commit 1e7b764c947d05ad985040011b01c800bcd9d99c.
Pipewire no longer needs dbus access, since the bluetooth impl is gone.
Bug-AGL: SPEC-2792
Change-Id: Ie451cb5e43b6230eae6fa16b5d915b44b181a679
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
This reverts commit 9fc6d8e9bbc9746777c03471b643992abcb182a5.
Native bluetooth implementation is no longer there.
Bug-AGL: SPEC-2792
Change-Id: Ib45a0a3036aae8f3ac6dd29ed4e1f49e041af057
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
George Kiagiadakis (6):
Revert "mixer: search for "Alsa/Sink" instead of "Audio/Sink" now"
Revert "simple-policy: handle bluez endpoints"
Revert "bluez: set media class to Bluez/<direction>/<profile> and create softdsp-endpoints"
Revert "alsa-udev: set media class to Alsa/<direction>"
Revert "bluez: add bluez module"
policy: add a hack that allows some clients to be linked always
Bug-AGL: SPEC-2792
Change-Id: I8730a5395b869100f1f1c53d4fdd5d7526b7e3b0
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
This removes the bluetooth-related patches that are superseeded
by the bluez-alsa based implementation.
Additionally, it adds a fix for a "sendmsg" error that was
appearing randomly sometimes.
Bug-AGL: SPEC-2792
Change-Id: I9835cbb5ec7cd21cbc5de2fd92a8a1c1356b0dea
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2797
Change-Id: I8f1d13c4e816706f96f4a7628d238877a0cd4c02
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2792
Change-Id: Ie241273679f88e61e418bbb5518551ad33ff4b65
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
In pipewire we only enable that if the bluez5 feature is enabled
because otherwise the module is not compiled and will error out
at runtime.
In wireplumber we always enable it since it does not depend on bluez.
Bug-AGL: SPEC-2792
Change-Id: I53bbc387bccd953633affd4fc34949a2fd488ed7
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2792
Change-Id: I6075539a4964e9fb638443e14cdcfa0d0028b81c
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2792
Change-Id: Ida682a405c4cc5d2f84a98cb71f89a7bb41ad489
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2674
Change-Id: Id5b099a8efed2a2f9bdae142ef69bbc09deae8e8
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2662
Change-Id: If419c940e18feb46f42f9004479944bd395a3b4a
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
George Kiagiadakis (5):
modules: initialize some spa_pod_builders inline
proxy: fix the naming of variables that point to the instance and private structures
Merge branch 'error-handling' into 'master'
simple-policy: do not leak client endpoints when rescanning
simple-policy: compare client creation times so that the "last one wins"
Julian Bouzas (6):
dsp: use the new WpProxyLink API
proxy: throw an error if the proxy is destroyed during async constructions
modules: handle error if the endpoint proxies could not be created
simple-policy: fix bug when finding endpoints
dsp: removed unneeded format property and always use the default format
simple-endpoint-link: skip already output linked ports
Bug-AGL: SPEC-2674
Change-Id: Ic35d9921dbd1e6d4f6302d326983a73436d2b8e6
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
* Every client now has a priority based on its role
* For playback, we allow only a single client to play at a time
* For capture, we allow all clients to capture simultaneously
* Every time the "selected" device changes (either because devices
are discovered/removed or because the user changed the selection),
the clients are re-linked to the new "selected" device.
* When a playback client quits and there are others waiting unlinked,
the highest priority one is linked automatically.
* This also properly fixes re-linking the correct client(s) to the
correct device(s) when wireplumber exits and restarts.
George Kiagiadakis (7):
m-client-permissions: ref-count the client data and re-work code for safety
policy: take into account the role of the client when linking it
Merge branch 'doc-fix' into 'master'
Merge branch 'delay-unhandled-clients' into 'master'
config: allow nested blocks, in case a property has a dictionary value
policy: implement a basic policy based on role priorities
simple-policy: remove the idle callback when the object finalizes
Julian Bouzas (3):
Fix doc warnings
audio-client-module: added new module to load clients after softdsp endpoints are created
simple-policy: delay unhandled enpoints if target is not found
Bug-AGL: SPEC-2473
Change-Id: Ia37f236a8cac8b5f1f0d5e7409c50d4e7cb8a2da
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
pipewire
Bug-AGL: SPEC-2634
Change-Id: I10301e0c244fad60b31a4dfa6dc0dc61512a4867
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
George Kiagiadakis (18):
Merge branch 'unregister-fix' into 'master'
config: skip empty lines and comments (starting with #)
config: implement reading properties for modules from the config file
config: allow module property blocks to span multiple lines
config: ensure that both ABI and MODULE are specified before the properties
simple-policy: allow configuring the default audio devices via module arguments
config: enhance the configuration file with comments
Merge branch 'async-endpoint-links' into 'master'
Merge branch 'link-fix' into 'master'
softdsp-endpoint: actually register the streams
softdsp-endpoint: dont't add the stream-id field on the description of the master controls
softdsp-endpoint: move the selected control in the endpoint and simplify the id encoding
alsa-udev/softdsp-endpoint: make the stream names & count configurable
softdsp-endpoint/dsp: actually notify controls on the endpoint, not the dsp object
simple-policy: match the requested role to a stream in find_endpoint
mixer: implement listing controls of multiple streams
Merge branch 'multistream-softdsp-ep'
Merge branch 'stop-client' into 'master'
Julian Bouzas (21):
core: handle global references in a simpler way
endpoint: remove unneeded ref/unref
modules: unregister endpoints on global_removed instead of proxy destroyed
modules: disconnect the signals when the endpoints are destroyed
proxy: remove unneeded destroy signal
endpoint-link: make contruction async
factory: remove unneeded sync construction API
simple-endpoint: handle both input and output directions
simple-policy: handle both input and output clients
simple-endpoint-link: dont link already linked ports
softdsp-endpoint: add multiple streams support
softdsp-endpoint: change the control value properly
dsp: add support for convert mode
module-pipewire: always include the node Id in the endpoint name
proxy-link: add new API
endpoint: allow derived classes of endpoint-link to finish async construction
simple-endpoint-link: store the created links in a list
endpoint: destroy the link before removing them from the lists
endpoint: add wp_endpoint_unlink API
simple-policy: unlink the target endpoint if it is already linked
proxy: allow derived classes to finish its creation
Bug-AGL: SPEC-2473
Bug-AGL: SPEC-2572
Change-Id: I1f9ca82ef907ce7f04c977692b3707fe3ef283d2
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
0004 adds a useful cli utility
0006 aids debugging
0007 fixes audio in qemu (SPEC-2570)
0008 & 0009 add functionality necessary for implementing multiple
streams per device
The rest is the same as before
Bug-AGL: SPEC-2570
Change-Id: If6736f0fc87491edce6981c0be44094239ddaa89
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
DISABLE_RTKIT saves us from nasty error messages about not being able
to connect to dbus. This doesn't make sense anyway, real-time mode
should not be enabled on embedded.
PIPEWIRE_DEBUG/G_MESSAGES_DEBUG are put there in comments so that
people can easily uncomment to figure out what is wrong with their
pipewire setup.
Bug-AGL: SPEC-2473
Change-Id: Id07d3d21f472885434158c300a227d53020c2189
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
This grants permission to all applications to be able to communicate
with pipewire. This is a temporary measure that we need to rethink
in the future.
This commit also changes the priority of the meta-pipewire layer
because the security-manager patch needs to be applied after the
patch to the same file from meta-app-framework, which has priority 70.
Bug-AGL: SPEC-2554
Change-Id: I9df47ea1a40e1fa97900bb5dbc21bc11765eb7ab
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
* adds support for managing client permissions (required for SPEC-2554)
* properly defaults to the first non-loopback device available on the system
* add support for linking all the stream channels instead of just one
George Kiagiadakis (7):
Merge branch 'registry' into 'master'
remote-pipewire: emit global-added for all proxy types
modules: add new module to manage client permissions
Merge branch 'async-endpoints' into 'master'
softdsp-endpoint: give a proper name to the endpoint based on alsa properties
simple-policy: select by default the first non-loopback device
softdsp-endpoint: fix compiler warnings
Julian Bouzas (8):
proxy: add wp_proxy_sync API and DONE signal
proxy: don't remove the listener on destruction as it is not needed
remote-pipewire: add registry listener
modules: use the registry from WpRemotePipewire
factory: add async support
endpoint: add async initable interface boilerplate
modules: make endpoint creation async
modules: add support for multiple channels linking
Bug-AGL: SPEC-2554
Change-Id: Ie1f42e096834c2cfbd2bade714e0546066f8fb7c
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Pipewire shares memory with its clients using open file
descriptors (memfd or shared memory file) which are created within
pipewire and therefore they have the same smack label as the
pipewire process. Clients must be able to read and write to this
memory, therefore they need rw acess to that smack label.
Since all AGL apps have only write access to the System label,
we need to use a different smack label which can be granted rw
access from the applications that need to use audio.
"System::Pipewire" is chosen here to follow the "System::Sub"
pattern that is described in the documentation.
Bug-AGL: SPEC-2554
Change-Id: I81cbf82adfde3ef4f67872bd91293370339b18d7
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2544
Change-Id: Ic9e2861518614425c394ab6b1dd050b221c0dc5a
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2393
Change-Id: I2e4feef547642c2b3d34403f7a1a45999cd4db11
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
George Kiagiadakis (9):
softdsp-endpoint: workaround pipewire bug
Merge branch 'proxy-global-id' into 'master'
core: destroy globals in _dispose() so that the global-removed signal is dispatched
m-mixer: downgrade warnings about no backend to debug messages
m-simple-policy: find_endpoint: ref the endpoint only if it's not NULL
modules: do not leak references to the endpoints at their construction time
meson: add option to disable gobject introspection
proxy: avoid crashing when the WpProxy is unrefed in the "destroyed" signal handler
remote-pipewire: do not leak the GSource
Julian Bouzas (2):
proxy: add global_id property
audio-softdsp-endpoint: set module instead of core in the module data
Change-Id: I1e08ad7245f09110d599163775ecb382298b111b
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
This allows granting pipewire additional permissions, most notably
the permission to access the alsa devices (SupplementaryGroups=audio)
and therefore fixes pipewire for the "running as non-root" setup
Bug-AGL: SPEC-2554
Change-Id: Ie9192a7f42f4929f70114ddc39a23d94f9ba84fc
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Add DISTRO_FEATURES based enabling of bluez5 support to pipewire recipe
so the Bluetooth plugin is enabled for experimentation.
Bug-AGL: SPEC-2473
Change-Id: Ic63df580c4005e924a2172d2d513dbdca94457f4
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
|
|
George Kiagiadakis (19):
lib: add new WpPolicy class and basic policy management functionality
modules: re-implement the simple policy module using WpPolicy
m-pipewire: temporarily add the sync_core_with_cb hack
WpPolicy: add a way of signaling policy changes
Merge branch 'proxy-api' into 'master'
lib: add a new WpRemote base class and move the pw_remote glue into a new WpRemotePipewire
Merge branch 'use-proxy-api' into 'master'
endpoint: maintain a weak ref to the core since construction time
modules: fix some ref counting and memory {de-,}allocation issues
proxy: maintain a weak ref to the core
lib: add some debug statements to debug the destruction sequence
Merge branch 'refcount-fix' into 'master'
Merge branch 'unregister-endpoint' into 'master'
policy: consume floating reference of GVariant in _find_endpoint()
endpoint: add some useful API for querying info about streams & controls
core: remove_global: remove object from the list before triggering the notification
remote-endpoint: disconnect the control-value change callback when the proxy is destroyed
modules: move the "selected" endpoint logic to the simple-policy module and improve it
module-mixer: implement the "Mixer/Audio" endpoint provider
Julian Bouzas (9):
proxy: add API
modules: use the new proxy API
audio-softdsp-endpoint: fix proxy port property description
alsa-udev: fix minor bug
module-pipewire and simple-endpoint: use the new Proxy API
modules: fix proxy ref-count
proxy: add destroyed signal
modules: unregister the endpoints when their proxy is destroyed
proxy: remove unneeded core reference
Bug-AGL: SPEC-2518
Change-Id: Ia4c68ea5aa173add542a96b76f34bce68dcf103d
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Add a bbappend to the pipewire recipe to create the required symlink
in /etc/systemd/user/sockets.target.wants to enable per-user socket
activation. A bbappend is used as this change is likely to be AGL
specific (for now?).
Bug-AGL: SPEC-2521
Change-Id: I4b349ab8151eabfb933f2dcfcf9d293fcb3ea321
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
|
|
George Kiagiadakis (16):
remote-endpoint: fix de-serialization of control id (Int instead of Id)
remote-endpoint: print error string in set_param implementation
m-pipewire/simple-endpoint: implement volume & mute controls
daemon: quit when the pipewire remote disconnects or signals an error
Merge branch 'endpoint-linking' into 'master'
Cleanup trailing whitespaces
softdsp-endpoint: restructure some code, fix some coding style issues
softdsp-endpoint: improve destruction sequence
softdsp-endpoint: copy format using standard struct assignment
softdsp-endpoint: destroy the DSP->node link when the DSP becomes idle
softdsp-endpoint: add master volume & mute controls
softdsp-endpoint: add the "selected" control
endpoint: ref the endpoint while unregistering
remote-endpoint: do not require a stream id on controls
softdsp-endpoint: automatically deselect other endpoints when one is selected
simple-policy: link client to the "selected" endpoint
Julian Bouzas (3):
endpoint: set core to null after unregistering endpoint and not before
modules: add softdsp-endpoit and endpoint linking implementations
simple-policy: add new module
Bug-AGL: SPEC-2473
Change-Id: Idace93865cf62016fac5b7ad9b45a888153e0d97
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
We were missing the
LIC_FILES_CHKSUM = "file:///${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
Bug-AGL: SPEC-2473
Change-Id: Ic7751ceb08fef1f19426e66c850740abf653fef7
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
|
|
Fix a typo.
Bug-AGL: SPEC-2473
Change-Id: I37d4698d9e750833fc94491f2c5c5225d7d9adbc
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
|
|
We have our own configuration of the pipewire.conf file that we ship in a
dedicated package.
Change-Id: Ifb79ceaf19970d81eb526309eeed3e3a7c420da4
Bug-AGL: SPEC-2473
Signed-off-by: build.automotivelinux.org <jenkins@automotivelinux.org>
|
|
Bug-AGL: SPEC-2473
Change-Id: I406e11a59223f1ded486eb9235604e1e35af84e1
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
This does enhance the recipes for pipewire and wireplumber in 2 ways:
a) we add a separate package for the configuration and make it replaceable
w/o recompiling pipewire or wireplumber itself
b) this in turn makes the recipes not AGL specific and upstreamable as-is.
v2: enhanced config recipes
v3 & v4: fix typo
Bug-AGL: SPEC-2473
Change-Id: I1f6f32d7cc64d9424706ca6bc87550f5e2c6d359
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
|
|
Bug-AGL: SPEC-2473
Change-Id: Ib03d2592a9b20a84643ebaf8a1b3b6a37fc33bf8
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2473
Change-Id: I309ff8cb335a78965dde122e8ff78142d2af6fdd
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2473
Change-Id: Ide95be79adb69437564e94071d0315ae5cfd9ae2
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
Bug-AGL: SPEC-2473
Change-Id: I1027dbfa7bfeba2bfa67f6247a819d9e04f3700c
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|