mbox series

[BlueZ,v3,0/4] Update Sink BASE management

Message ID 20240219121509.5702-1-andrei.istodorescu@nxp.com
Headers show
Series Update Sink BASE management | expand

Message

Andrei Istodorescu Feb. 19, 2024, 12:15 p.m. UTC
This patch refactors the flow for the BAP Broadcast Sink.
After discovering a new Broadcast Source a short PA Sync will be tried.
Depending on the BASE information present in the PA and the local PACS 
capabilities of the Sink, one remote media endpoint will be created for 
each compatible BIS.
Configuring one of these endpoints results in creating a stream and a 
media transport for the corresponding BIS.

Idle timer.
This patch introduces an idle timer, responsible for processing PA Sync
requests. One request is possible at a time. When a broadcast source is
discovered a new request for short PA sync is enqueued. Also, when a
SetConfiguration is requested for an existing BAP broadcast source
endpoint another request is enqueued.
The timer runs periodically and peeks for requests. In case there is no 
request in progress the timer marks the already peeked request to 
pending and starts processing it. When the request is completed, it is 
removed from the timer's queue, so that the next request can be 
processed.

Andrei Istodorescu (4):
  shared/bap: Add API to convert BASE into bt_bap_base queue
  shared/bap: Add API to convert parsed BASE into pac data
  shared/bap: Add Broadcast QOS copy functions
  bap: Do PA Sync for each BAP Broadcast source discovered

 profiles/audio/bap.c | 546 +++++++++++++++++++++++-------------------
 src/shared/bap.c     | 552 +++++++++++++++++++++++++++++++++++++++----
 src/shared/bap.h     |  38 ++-
 3 files changed, 839 insertions(+), 297 deletions(-)