Message ID | 20220827000540.113414-1-luiz.dentz@gmail.com |
---|---|
Headers | show |
Series | Initial BAP support | expand |
Hello: This series was applied to bluetooth/bluez.git (master) by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: On Fri, 26 Aug 2022 17:05:29 -0700 you wrote: > From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> > > iThis set add initial support for BAP (Basic Audio Profile) which is > an essential part of LE Audio responsible for stream control. > > The plugin is considered experimental and depends on ISO socket in order > to work so the following setting needs to be changed in order to enable it: > > [...] Here is the summary with links: - [v3,01/11] adapter: Add btd_adapter_find_device_by_fd https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=67dfe38b660d - [v3,02/11] lib/uuid: Add PACS/ASCS UUIDs https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=d7b78586afdd - [v3,03/11] shared/bap: Add initial code for handling BAP (no matching commit) - [v3,04/11] profiles: Add initial code for bap plugin (no matching commit) - [v3,05/11] shared: Add definition for LC3 codec (no matching commit) - [v3,06/11] media-api: Add SelectProperties https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=3579cf8bf6a7 - [v3,07/11] test/simple-endpoint: Add support for LC3 endpoints https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=f081ac884591 - [v3,08/11] client/player: Add support for PACS endpoints https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=dc61ec4419eb - [v3,09/11] client/player: Use QoS interval on transport.send (no matching commit) - [v3,10/11] profiles: Allow linked transport to release the fd https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=34e8c20d488f - [v3,11/11] profiles: Update transport Links property on state change to QoS https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=b843a5c5b4b5 You are awesome, thank you!
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> iThis set add initial support for BAP (Basic Audio Profile) which is an essential part of LE Audio responsible for stream control. The plugin is considered experimental and depends on ISO socket in order to work so the following setting needs to be changed in order to enable it: # Enables D-Bus experimental interfaces # Possible values: true or false +Experimental = true # Enables kernel experimental features, alternatively a list of UUIDs # can be given. @@ -126,7 +126,7 @@ # a6695ace-ee7f-4fb9-881a-5fac66c629af (BlueZ Experimental Offload Codecs) # 6fbaf188-05e0-496a-9885-d6ddfdb4e03e (BlueZ Experimental ISO socket) # Defaults to false. +KernelExperimental = 6fbaf188-05e0-496a-9885-d6ddfdb4e03e While proper support to the likes of PulseAudio and Pipewire are still in progress it is possible to test using bluetoothctl with the following commands: [Server/Peripheral] [bluetooth]# power on [bluetooth]# advertise on [bluetooth]# endpoint.register 00002bc9-0000-1000-8000-00805f9b34fb 0x06 [/local/endpoint/ep0] Auto Accept (yes/no): y [/local/endpoint/ep0] CIG (auto/value): a [/local/endpoint/ep0] CIS (auto/value): a Capabilities: 03 01 ff 00 02 02 03 02 03 03 05 04 1e 00 f0 00 ................ Endpoint /local/endpoint/ep0 registered [bluetooth]# endpoint.register 00002bcb-0000-1000-8000-00805f9b34fb 0x06 [/local/endpoint/ep1] Auto Accept (yes/no): y [/local/endpoint/ep1] CIG (auto/value): a [/local/endpoint/ep1] CIS (auto/value): a Capabilities: 03 01 ff 00 02 02 03 02 03 03 05 04 1e 00 f0 00 ................ Endpoint /local/endpoint/ep1 registered [Client/Central] [bluetooth]# power on [bluetooth]# endpoint.register 00002bc9-0000-1000-8000-00805f9b34fb 0x06 [/local/endpoint/ep0] Auto Accept (yes/no): y [/local/endpoint/ep0] CIG (auto/value): a [/local/endpoint/ep0] CIS (auto/value): a Capabilities: 03 01 ff 00 02 02 03 02 03 03 05 04 1e 00 f0 00 ................ Endpoint /local/endpoint/ep0 registered [bluetooth]# endpoint.register 00002bcb-0000-1000-8000-00805f9b34fb 0x06 [/local/endpoint/ep1] Auto Accept (yes/no): y [/local/endpoint/ep1] CIG (auto/value): a [/local/endpoint/ep1] CIS (auto/value): a Capabilities: 03 01 ff 00 02 02 03 02 03 03 05 04 1e 00 f0 00 ................ Endpoint /local/endpoint/ep1 registered [bluetooth]# scan on [bluetooth]# scan off [bluetooth]# connect <bdaddr> [NEW] Transport /org/bluez/hci0/dev_00_AA_01_01_00_02/pac_source0/fd0 Endpoint: SetConfiguration Transport /org/bluez/hci0/dev_00_AA_01_01_00_02/pac_source0/fd0 Device: /org/bluez/hci0/dev_00_AA_01_01_00_02 Auto Accepting... [NEW] Transport /org/bluez/hci0/dev_00_AA_01_01_00_02/pac_sink0/fd1 Endpoint: SetConfiguration Transport /org/bluez/hci0/dev_00_AA_01_01_00_02/pac_sink0/fd1 Device: /org/bluez/hci0/dev_00_AA_01_01_00_02 Auto Accepting... [bluetooth]# transport.acquire /org/bluez/hci0/dev_00_AA_01_01_00_02/pac_sink0/fd1 Frédéric Danis (2): profiles: Allow linked transport to release the fd profiles: Update transport Links property on state change to QoS Luiz Augusto von Dentz (9): adapter: Add btd_adapter_find_device_by_fd lib/uuid: Add PACS/ASCS UUIDs shared/bap: Add initial code for handling BAP profiles: Add initial code for bap plugin shared: Add definition for LC3 codec media-api: Add SelectProperties test/simple-endpoint: Add support for LC3 endpoints client/player: Add support for PACS endpoints client/player: Use QoS interval on transport.send Makefile.am | 3 +- Makefile.plugins | 5 + client/player.c | 688 +++++- configure.ac | 4 + doc/media-api.txt | 88 +- lib/uuid.h | 18 + profiles/audio/bap.c | 1324 ++++++++++ profiles/audio/media.c | 678 ++++- profiles/audio/transport.c | 596 ++++- profiles/audio/transport.h | 3 +- src/adapter.c | 33 + src/adapter.h | 1 + src/device.c | 10 +- src/shared/ascs.h | 196 ++ src/shared/bap.c | 4776 ++++++++++++++++++++++++++++++++++++ src/shared/bap.h | 269 ++ src/shared/lc3.h | 112 + test/simple-endpoint | 17 + tools/bluetooth-player.c | 1 - 19 files changed, 8678 insertions(+), 144 deletions(-) create mode 100644 profiles/audio/bap.c create mode 100644 src/shared/ascs.h create mode 100644 src/shared/bap.c create mode 100644 src/shared/bap.h create mode 100644 src/shared/lc3.h