pipewire/spa/plugins/bluez5
Iulia Tanasescu 9a5b2d42f9 bluez5: Configure LC3 codec capabilities
Currently, the PipeWire daemon registers BlueZ LE Media Endpoints
with audio capabilities covering all settings defined in the BAP spec.
However, some scenarios might require the capabilities to be restricted
to specific configurations.

This adds a method to read LC3 codec specific capabilities from the
Wireplumber config file, and provide those settings when registering
Media Endpoint objects with BlueZ. If the values are not present in
the config file, all settings will be used by default.

Below is an example of how to set the LC3 capabilities in the config
file, to support the 16_2 setting from the BAP spec:

bluez5.bap-server-capabilities.rates = [16000]
bluez5.bap-server-capabilities.durations = [10]
bluez5.bap-server-capabilities.channels = [1, 2]
bluez5.bap-server-capabilities.framelen_min = 40
bluez5.bap-server-capabilities.framelen_max = 40
bluez5.bap-server-capabilities.max_frames = 2
2024-12-14 10:57:23 +00:00
..
a2dp-codec-aac.c bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
a2dp-codec-aptx.c bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
a2dp-codec-caps.h bluez5: support Google's Opus A2DP vendor codec 2024-02-04 12:58:40 +02:00
a2dp-codec-faststream.c bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
a2dp-codec-lc3plus.c bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
a2dp-codec-ldac.c bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
a2dp-codec-opus-g.c bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
a2dp-codec-opus.c bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
a2dp-codec-sbc.c bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
backend-hsphfpd.c spa: move dbus helpers out of bluez plugin 2024-02-05 13:03:20 +00:00
backend-native.c bluez5: backend-native: update HFP SDP records 2024-10-31 08:18:45 +00:00
backend-ofono.c spa: move dbus helpers out of bluez plugin 2024-02-05 13:03:20 +00:00
bap-codec-caps.h bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
bap-codec-lc3.c bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
bluez-hardware.conf bluez5: add quirk for Phonak hearing aids 2024-10-13 11:50:04 +03:00
bluez5-dbus.c bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
bluez5-device.c bluez5: handle A2DP inverted ClearConfiguration/SetConfiguration order 2024-12-06 16:36:14 +02:00
bt-latency.h bluez5: iso-io: track and apply corrections to tx latency 2024-04-12 18:50:15 +03:00
codec-loader.c bluez5: support Google's Opus A2DP vendor codec 2024-02-04 12:58:40 +02:00
codec-loader.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
dbus-monitor.c bluez5: fix glib signal disconnect 2023-04-14 20:06:57 +03:00
dbus-monitor.h chore: fix warnings shown by Clang 16 2023-05-09 08:31:56 +00:00
decode-buffer.h bluez5: improve decode-buffer latency accuracy 2024-12-01 23:05:27 +02:00
defs.h bluez5: handle A2DP inverted ClearConfiguration/SetConfiguration order 2024-12-06 16:36:14 +02:00
hci.c spa: bluez: use some more spa_auto* 2023-07-30 13:45:49 +02:00
iso-io.c bluez: initialize variable to avoid warning 2024-04-12 18:14:54 +02:00
iso-io.h bluez5: iso-io: track and apply corrections to tx latency 2024-04-12 18:50:15 +03:00
media-codecs.c bluez5: aptx-ll: produce 7.5ms packets 2024-02-05 19:34:47 +02:00
media-codecs.h bluez5: Configure LC3 codec capabilities 2024-12-14 10:57:23 +00:00
media-sink.c bluez5: account for codec internal delay in latency values 2024-12-07 18:28:17 +00:00
media-source.c bluez5: account for codec internal delay in latency values 2024-12-07 18:28:17 +00:00
meson.build bluez5: support Google's Opus A2DP vendor codec 2024-02-04 12:58:40 +02:00
midi-enum.c bluez5: don't exit if system DBus goes down 2024-10-16 23:55:17 +03:00
midi-node.c bluez5: don't exit if system DBus goes down 2024-10-16 23:55:17 +03:00
midi-parser.c treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
midi-server.c spa: use only static log topics 2024-01-04 10:02:55 +00:00
midi.h spa: bluez: include gio/gunixfdlist.h 2023-02-16 20:55:55 +01:00
modemmanager.c spa: bluez: fix crash when receiving signal from modemmanager 2024-06-15 10:11:38 -07:00
modemmanager.h spa: bluez: modemmanager: do not use old style declaration 2023-07-03 19:40:31 +02:00
org.bluez.xml bluez5: add GDBus-based object monitor framework 2023-01-24 08:27:56 +00:00
player.c spa: move dbus helpers out of bluez plugin 2024-02-05 13:03:20 +00:00
player.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
plugin.c spa: export log topic enumerations 2024-01-04 10:02:55 +00:00
quirks.c bluez5: reduce quirks logspam 2024-11-04 21:41:24 +02:00
rate-control.h bluez5: iso-io: track and apply corrections to tx latency 2024-04-12 18:50:15 +03:00
README-MIDI.md bluez5: fixup BLE MIDI selinux README 2023-01-24 08:27:56 +00:00
README-OPUS-A2DP.md bluez5: clarify OPUS-A2DP spec 2022-09-03 19:08:27 +00:00
README-SBC-XQ.md bluez5: add SBC XQ readme 2021-01-07 09:54:16 +01:00
rtp.h Add bluez5 plugins 2018-01-16 15:19:55 +01:00
sco-io.c bluez5: use initial SCO RX wait workaround only for USB controllers 2024-05-18 13:53:45 +03:00
sco-sink.c bluez5: sco-sink: more accurate latency values 2024-01-28 18:00:04 +02:00
sco-source.c bluez5: improve decode-buffer latency accuracy 2024-12-01 23:05:27 +02:00
test-midi.c bluez5: a few more -Werror=strict-prototypes fixes 2023-01-24 11:14:27 +02:00
upower.c spa: move dbus helpers out of bluez plugin 2024-02-05 13:03:20 +00:00
upower.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00