summaryrefslogtreecommitdiffstats
path: root/meta-pipewire
AgeCommit message (Collapse)AuthorFilesLines
2020-01-10pipewire: add patch to fix random underrunsGeorge Kiagiadakis2-1/+32
Bug-AGL: SPEC-3098 Change-Id: Id304bf6d1adcf7cd739b705a23772c25ce5258e8 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-19bluez-alsa: update gst-helper to handle corking and use the Multimedia role ↵icefish_8.99.4icefish/8.99.48.99.4George Kiagiadakis1-11/+64
on A2DP Bug-AGL: SPEC-2792 Change-Id: I2247550d6059c31596651e84fdd617f849722422 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-19wireplumber: update with bluetooth audio policy fixesGeorge Kiagiadakis3-1/+7
George Kiagiadakis (5): config: add missing endpoint priority in hw:0,0 config config-policy: remove _can_link_stream() function config-policy: do not unlink other endpoints when linking one with keep=true config-policy: push endpoints with keep=true to the end of the list when sorting config-policy: debug handling of endpoints Bug-AGL: SPEC-2792 Change-Id: I5645715948f0c596ce0dc6754aa045ed58ebed84 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-18wireplumber: update to masterGeorge Kiagiadakis28-124/+230
* Fixes policy issues * Implements a standard way of configuring the default device: the device that matches from the *.endpoint files that has the highest priority and is available on the system becomes the default. Afterwards, at runtime, the default can be changed with wireplumber-cli. Clients now also link to the default device, so it is possible to change devices at runtime without reconfiguring wireplumber. George Kiagiadakis (9): session: select the default endpoint based on endpoint priority config: refactor wireplumber's configuration config: fix typo in config files module-session: debug default endpoint changes policy: track the exported session instead of the proxy config-policy: debug rescans cli: fail gracefully if connection to pipewire fails lib: debug loading of config files + endpoint priorities parser-endpoint: fix typo; initialize endpoint priority instead of reseting the match one Julian Bouzas (13): config-policy: sort endpoints by creation time when finding target parser-endpoint-link: higher number means higher priority softdsp-endpoint: don't rename the endpoint on creation modules: remove alsa-udev and audio-client modules modules: add config endpoint module config-policy: remove parsing of streams file parser-endpoint-link: don't parse unused state value base-endpoint: add _get_priority API modules: only allow 'sink' and 'source' strings when parsing direction in config files base-endpoint: add _get_global_id API policy: add _get_session API for the policy manager config-policy: use the default session endpoint if target-endpoint is not defined config-policy: only handle the highest priority endpoint for a target, and the ones with keep=true Bug-AGL: SPEC-2837 Change-Id: I87b3e8b9e159dfc472aa534e40e088ae758ad20c Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-12wireplumber: conf: load module-sessionGeorge Kiagiadakis1-0/+4
This is needed by the audiomixer to be able to find the default playback device endpoint. Bug-AGL: SPEC-2986 Change-Id: I0126a958c6c5005620fab89b0fb880b603cd9f14 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-12agl-service-audiomixer: add DEPENDS on wireplumberGeorge Kiagiadakis1-1/+1
Latest changes require linking against wireplumber's library Bug-AGL: SPEC-2986 Change-Id: I0524ec3f275add4bbdb57054a54c0c71e42db044 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-12agl-service-audiomixer: change back to building from the default AGL branchGeorge Kiagiadakis1-2/+2
Bug-AGL: SPEC-2986 Change-Id: I27419168f98d615b38f498490c23f80d33963aea Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-12wireplumber: update to masterGeorge Kiagiadakis2-2/+2
* Adds volume controls * Adds useful subcommands in wireplumber-cli George Kiagiadakis (15): lib: rename WpEndpoint* to WpBaseEndpoint* lib: implement WpEndpoint (interface + Proxy + Exported + unit test) endpoint: export name, media class & direction + finetune the global properties session: ensure the exported properties do not leak object, client & factory ids softdsp-endpoint: export Endpoint object on the pipewire registry config-policy: avoid race condition in the unit tests endpoint: implement get_{name,media_class,direction} exported: delay export until the core is connected modules: implement module-session, a WpSession provider module cli: extend with operations to list endpoints and change the default softdsp-endpoint: implement volume controls via the exported endpoint cli: add a set-volume command core: change idle_add to take a GDestroyNotify as well and return a source id endpoint proxy: don't try to set a control value if the proxy is destroyed meson: install a pkgconfig file for libwireplumber Julian Bouzas (3): stream: clear proxy when finalizing tests: clear core weak reference when finalizing endpoint-link-fake tests: improved config policy priority test to make sure endpoint role works Bug-AGL: SPEC-2986 Change-Id: Ifc30465c7e24c49ab475adbca590f6aca0e67600 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-11wireplumber: update for bug fixesGeorge Kiagiadakis1-1/+1
George Kiagiadakis (6): ci: pin pipewire to a specific working commit config: remove the stream from the default endpoint-link files config-policy: add some more debug statements config-policy: fix stream priority logic when the stream name comes from media.role config-policy: fix typo in variable check link-algorithm: link mono inputs to all available target ports Julian Bouzas (4): core: remove unnecessary idle callback when connecting core: return a boolean in sync API tests: make sure core is connected before starting config-policy tests policy: store a core weak reference Bug-AGL: SPEC-2837 Bug-AGL: SPEC-3003 Change-Id: I19a0a1580365e998600fcd6841d0c5d2fe955310 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-06agl-service-audiomixer: add signal-composer to RDEPENDSMatt Ranostay1-1/+2
To allow subscribing to steering wheel events it requires agl-service-signal-composer. Bug-AGL: SPEC-3023 Change-Id: I4731b28cfb2702436a9c02fbfa32d32792b00c59 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-12-05wireplumber: update to master as of Dec 5th 2019George Kiagiadakis9-53/+176
This update introduces a new TOML configuration file based policy engine, which behaves the same as the previous static engine, except that we now can: * link different apps to different devices * finetune how the device is configured with a lot of properties that we can match against * force a specific role to a specific app, by overriding it in the configuration file * make a specific app remain linked to the output even if another app comes in to play something; this is useful for the bluez-alsa gstreamer helper at this moment In addition, the code is cleaner and easier to work with, and we can easily add more properties to force a specific behavior per app. Bug-AGL: SPEC-2837 Change-Id: If0ecd468592b78cb2f2a5a8c3db16f655e4927f9 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-12-05pipewire: update to master as of Dec 5th 2019George Kiagiadakis10-227/+60
* Refreshed & combined some patches Bug-AGL: SPEC-2837 Change-Id: Ibd5849eff26bb51eb68580eac144aa07e646d127 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-11-26pipewire: Rework of security settingsJosé Bollo4-56/+9
This changes is mainly focussed on shifting from cynara to cynagora permission database. But it also changes how setting is done in the hope to make it simpler. Bug-AGL: SPEC-2993 Change-Id: Ie9085e11560724baf4194fc6d17651d40523bab7 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2019-11-19wireplumber: update to master as of Nov 19th 2019icefish_8.99.1icefish/8.99.18.99.1George Kiagiadakis2-11/+1
* Fixes the crashes that have previously been observed on the green machine * Addresses issues with format selection on some devices * Removed the mixer module which is no longer used Bastien Nocera (2): build: Fix build after recent PipeWire header changes ci: Add CI George Kiagiadakis (9): lib/wp: move internal functions and declarations to a private.h header proxy: allow multiple augment tasks to run in parallel fixup: include private.h in monitor.c lib: introduce WpObjectManager object-manager: actually add the object-manager.* files in git endpoint-link: ensure we call finalize of the parent class proxy: debug in dispose() so that we can print the pw_proxy pointer adapter: select a reasonable device format instead of letting pipewire choose its own ci: use the same os image as pipewire and build pw with minimal features Julian Bouzas (1): modules: remove the mixer Bug-AGL: SPEC-2837 Bug-AGL: SPEC-2860 Change-Id: Ica817888c877f409c4e57edb8f29f4cdf6ea0489 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-11-19pipewire: update to master as of Nov 19th 2019George Kiagiadakis15-6007/+132
* Refresh patches * Remove endpoint API patches, which have been merged * Remove log timestamp patch, which has been merged * Added a patch to module-access to avoid all those false-positive security errors in the journal * Update URLs to point to gitlab.freedesktop.org now that the project has moved * Switch from gitsm to git, since the project no longer makes use of submodules Bug-AGL: SPEC-2837 Change-Id: I53ef9548e48827b00595162c0a30e12b302eefd9 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-11-06wireplumber: update to latest masterGeorge Kiagiadakis1-4/+4
Changes: * Respects the device configuration again * Properly re-links with a client that was already there before when a higher priority or a newer one exits * Fixes some linking issues and assertion failures * Change the project URL to reflect the move to the "pipewire" group on freedesktop This still doesn't fix the crashes that have been observed to happen with alexa. George Kiagiadakis (5): tests: proxy: fix failure due to property key change in pipewire monitor & softdsp: fix alsa property names and api string policy: correctly figure out if a stream is a capture stream policy: do not assert if the endpoint link errors out README.md: add instructions on building and running Julian Bouzas (3): endpoint: add creation-time property simple-policy: select the newest client endpoint when the role priority is equal stream: get the node id from the info struct when preparing link Bug-AGL: SPEC-2837 Change-Id: I804e5211ae8cbc5b787e2fc586d600c8ac9b965e Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-10-09wireplumber: update configurationGeorge Kiagiadakis1-11/+2
This removes the bluetooth modules from the configuration and updates the alsa monitor name & flags to match what we have in wireplumber master. Bug-AGL: SPEC-2837 Change-Id: I8eabfabab5ce49a958fc17720a1b76ae43049566 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-10-07meta-pipewire: add recipe to build the bluez-alsa-pipewire gstreamer helperGeorge Kiagiadakis4-0/+518
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>
2019-10-07wireplumber: update to latest masterGeorge Kiagiadakis1-2/+2
* fixes the problem where audio was only audible on the left channel (SPEC-2850) * updates for pipewire master API changes * forward-ports the changes needed to run the bluez-alsa gst helper George Kiagiadakis (11): daemon: do not access the inexistent error-message property from core core & proxy: add some more assertions and debug messages for troubleshooting sofdsp-endpoint: run audioconvert in merge+split mode and use a new linking algorithm softdsp-endpoint/stream: remove the port proxies when they are removed on the server monitor: update to reflect API changes in pipewire master monitor: add a flag to activate alsa devices softdsp/convert: append the stream name on the new "object.path" key simple-policy: remove all the bluetooth policy stuff modules: remove module-pw-bluez policy: add a hack that allows some clients to be linked always meson: bump version to 0.1.90 Bug-AGL: SPEC-2850 Bug-AGL: SPEC-2792 Bug-AGL: SPEC-2837 Change-Id: I3bfa9fe54c5c01515d596f0f3c143958141ff1ad Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-10-07pipewire: update to latest masterGeorge Kiagiadakis19-528/+71
Update patches: * remove merged patches * remove the alsa algorithm correction that was needed for qemu, as it seems to cause severe underruns on other platforms now; I will recheck qemu to see if this is still an issue * add a workaround needed to get the audioconvert plugin running in merge+split mode (needed to get all the channels out instead of just the front left channel that we were getting before) Update version to 0.2.91 to reflect the fact that we are now tracking the master branch instead of the work branch. Enable the spa audiomixer plugin which is now required to mix audio on ports Bug-AGL: SPEC-2837 Change-Id: I2558aa5487b9c9918e077bf450230c143abf7e6c Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-10-01pipewire: add patch to fix random sendmsg errorsGeorge Kiagiadakis3-0/+306
Sometimes we get an error from sendmsg when too many objects exist in the graph and when this happens, clients start to silently fail to do things in a weird way. These patches fix that by handling the situation where sendmsg returns EAGAIN and trying again when the socket is unblocked. Previously, data would silently be dropped, which is what caused the weird behaviors. See also https://github.com/PipeWire/pipewire/issues/111 Bug-AGL: SPEC-2837 Change-Id: Ie30083545629114f10a28e628f54d85e22d13058 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-10-01wireplumber: remove residual config lineGeorge Kiagiadakis1-4/+0
The softdsp module has been removed (merged into the main module-pipewire), so it is not found when using this config and loading fails Bug-AGL: SPEC-2837 Change-Id: I304caa6f0091b4f214fb90dee8d179ec6a29415c Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-09-29pipewire: update pipewire & wireplumber to the latest development versionGeorge Kiagiadakis31-4863/+5990
This refreshes all the patches, removing all those that made it upstream, redoing the endpoint extension (now called session-manager extension), and adding some more last moment fixes. In addition, the configuration files for wireplumber & pipewire are being updated to load the new modules, as the module set has changed in both daemons. Finally, the pipewire recipe is adding PACKAGECONFIG options for jack and vulkan, so that we can actually disable them. Pipewire upstream builds them by default and we don't want that. Bug-AGL: SPEC-2837 Change-Id: Id42119c027558466f0a0aa71813ff15f33dfcb56 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-09-29audiomixer: temporarily disable code in audiomixer to make the build workGeorge Kiagiadakis1-2/+2
This essentially removes all mixer controls from the mixer, while it still allows the service to build and run, so that the rest of the system is not broken. The API used by audiomixer (the endpoint extension) has changed and we are still working on porting all the pieces involved. Bug-AGL: SPEC-2837 Change-Id: I12879f13f545c8cebe913860801cc61ed921e009 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-09-05wireplumber: update to fix mixer issueGeorge Kiagiadakis1-1/+1
Bug-AGL: SPEC-2797 Change-Id: I8f1d13c4e816706f96f4a7628d238877a0cd4c02 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-09-04wireplumber: update to 0.1.1, which includes patches for bluetooth supportGeorge Kiagiadakis1-3/+3
Bug-AGL: SPEC-2792 Change-Id: I6075539a4964e9fb638443e14cdcfa0d0028b81c Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> (cherry picked from commit 239d4051cc450dec1c65b47339e7df7833baa9a2)
2019-09-04pipewire: add patches for bluetooth supportGeorge Kiagiadakis7-1/+2865
Bug-AGL: SPEC-2792 Change-Id: Ida682a405c4cc5d2f84a98cb71f89a7bb41ad489 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> (cherry picked from commit c0eaa62e6fafd0b4cc057c0089ff110426bfde25)
2019-09-04pipewire config: enable bluez modules in pipewire and wireplumberGeorge Kiagiadakis3-3/+11
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> (cherry picked from commit 9fc6d8e9bbc9746777c03471b643992abcb182a5)
2019-09-03pipewire: security-manager: add patch to grant dbus privilege to pipewireGeorge Kiagiadakis2-1/+30
Bug-AGL: SPEC-2792 Change-Id: Ie241273679f88e61e418bbb5518551ad33ff4b65 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-08-01pipewire: add patch to fix non-S16 negotiation issueGeorge Kiagiadakis2-0/+45
Bug-AGL: SPEC-2674 Change-Id: Id5b099a8efed2a2f9bdae142ef69bbc09deae8e8 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-07-30wireplumber: add AGL-specific per-board configGeorge Kiagiadakis3-0/+125
Bug-AGL: SPEC-2662 Change-Id: If419c940e18feb46f42f9004479944bd395a3b4a Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-07-30wireplumber: update to fix some bugsGeorge Kiagiadakis1-1/+1
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>
2019-07-12wireplumber: add basic policy support based on role prioritiesGeorge Kiagiadakis1-1/+1
* 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>
2019-07-12pipewire: add and enable native gstreamer audio source & sink elements for ↵George Kiagiadakis8-0/+1464
pipewire Bug-AGL: SPEC-2634 Change-Id: I10301e0c244fad60b31a4dfa6dc0dc61512a4867 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-07-12wireplumber: update to latest versionGeorge Kiagiadakis1-1/+1
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>
2019-07-12pipewire: update patchesGeorge Kiagiadakis10-13/+429
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>
2019-06-27pipewire: install environment variable filesGeorge Kiagiadakis4-2/+34
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>
2019-06-27meta-pipewire: add patch to security-manager for pipewireGeorge Kiagiadakis3-1/+28
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>
2019-06-27wireplumber: uprevGeorge Kiagiadakis1-1/+1
* 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>
2019-06-27pipewire: run with the System::Pipewire smack labelGeorge Kiagiadakis3-2/+19
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>
2019-06-26agl-service-audiomixer: switch to gerritGeorge Kiagiadakis1-3/+3
Bug-AGL: SPEC-2544 Change-Id: Ic9e2861518614425c394ab6b1dd050b221c0dc5a Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-06-25pipewire: build with -mno-unaligned-access on armGeorge Kiagiadakis2-0/+29
Bug-AGL: SPEC-2393 Change-Id: I2e4feef547642c2b3d34403f7a1a45999cd4db11 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2019-06-24wireplumber: uprev to fix a few leaks and warningsGeorge Kiagiadakis1-1/+1
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>
2019-06-21pipewire: switch system-wide template systemd service & socket filesGeorge Kiagiadakis3-6/+58
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>
2019-06-20pipewire: Enable Bluetooth supportScott Murray1-0/+1
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>
2019-06-18pipewire: uprev wireplumberGeorge Kiagiadakis1-1/+1
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>
2019-06-12pipewire: Add user session socket activationScott Murray1-0/+11
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>
2019-06-12pipewire: uprev wireplumberGeorge Kiagiadakis1-1/+1
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>
2019-06-12Fix the LIC_FILES_CHKSUM of the pipewire-conf-agl packageJan-Simon Möller1-0/+1
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>
2019-06-12Fix PREFERRED_RPROVIDER for pipewire-configJan-Simon Möller1-1/+1
Fix a typo. Bug-AGL: SPEC-2473 Change-Id: I37d4698d9e750833fc94491f2c5c5225d7d9adbc Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>