mbox series

[BlueZ,v10,0/3] ASHA plugin

Message ID 20240612162041.689679-1-arun@asymptotic.io
Headers show
Series ASHA plugin | expand

Message

Arun Raghavan June 12, 2024, 4:20 p.m. UTC
Hi all,
Here's v10 of the patch, with some lints fixed. Also recapping the
rationale, plus some additional information on testing so far.

This is an implementation of the Android specification for streaming to
hearing aids over Bluetooth LE, ASHA[1]. ASHA predates the LE audio
specification, and has been supported in hearing aids for a while now,
so I think this is worth supporting as these devices should continue to
be in use for several years.

I've reused the MediaEndpoint1 and MediaTransport1 interfaces at Luiz'
suggestion. The flow is slightly different from A2DP and LE Audio in
that there isn't really a negotiation step, so the endpoint and
transport are both available on connection.

Also included is a script to stream arbitrary audio to an ASHA device,
which is handy for making sure that the implementation does work.

I have tested this against an implementation on a reference board, and
various folks in the community have also been kind enough to test the
WIP patches on various devices, so tested devices include:

  * onsemi RSL10 board, reference implementation from the onsemi
    forums[2]
  * Signia Styletto AX
  * Oticon More
  * Starkey Arc AI 1200

The current implementation is written with a single device in mind. My
plan is to take this to completion along with a PipeWire implementation
to expose a single device for playback, and then do a second pass to
support a pair of devices.

Cheers,
Arun

[1] https://source.android.com/docs/core/connect/bluetooth/asha
[2] https://onsemineworg.my.site.com/onsemisupportcenter/s/question/0D54V00006r9FUVSA2/dsp-initialisation-hangs-in-bleandroidashaod-code

Arun Raghavan (3):
  src/shared: Add initial implementation for an ASHA profile
  profiles/audio: Add an ASHA plugin
  test: Add a script to test ASHA

 Makefile.am                |   3 +-
 Makefile.plugins           |   5 +
 configure.ac               |   4 +
 lib/uuid.h                 |   3 +
 profiles/audio/asha.c      | 525 +++++++++++++++++++++++++++++++++++++
 profiles/audio/asha.h      |  38 +++
 profiles/audio/media.c     |  30 +++
 profiles/audio/media.h     |   2 +
 profiles/audio/transport.c | 201 +++++++++++++-
 src/shared/asha.c          | 359 +++++++++++++++++++++++++
 src/shared/asha.h          |  63 +++++
 test/simple-asha           | 166 ++++++++++++
 12 files changed, 1396 insertions(+), 3 deletions(-)
 create mode 100644 profiles/audio/asha.c
 create mode 100644 profiles/audio/asha.h
 create mode 100644 src/shared/asha.c
 create mode 100644 src/shared/asha.h
 create mode 100755 test/simple-asha

Comments

patchwork-bot+bluetooth@kernel.org June 13, 2024, 5:40 p.m. UTC | #1
Hello:

This series was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Wed, 12 Jun 2024 12:20:38 -0400 you wrote:
> Hi all,
> Here's v10 of the patch, with some lints fixed. Also recapping the
> rationale, plus some additional information on testing so far.
> 
> This is an implementation of the Android specification for streaming to
> hearing aids over Bluetooth LE, ASHA[1]. ASHA predates the LE audio
> specification, and has been supported in hearing aids for a while now,
> so I think this is worth supporting as these devices should continue to
> be in use for several years.
> 
> [...]

Here is the summary with links:
  - [BlueZ,v10,1/3] src/shared: Add initial implementation for an ASHA profile
    https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=8e4bece63ce9
  - [BlueZ,v10,2/3] profiles/audio: Add an ASHA plugin
    https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=c26389c466a0
  - [BlueZ,v10,3/3] test: Add a script to test ASHA
    https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=792cffb4992d

You are awesome, thank you!