leaudio: Handle seamless streaming during late join or drop of member devices
1) Generate maximum required Bi-directional
and Uni-directional (Sourc and Sink) CIS ID(s) required
to form the CIG for the Context Type.
2) Create CIG once when starting stream, with maximum Bi-directional and
Uni-directional CIS(es) needed for supporting the Context Type
3) Handle assigning and un-assigning of CIS ID(s)
and Connection Handle(s)
- Assign CIS ID(s) to ASEs: prior to Codec config
- Map CIS ID(s) to Connection Handle(s): on CIG creation
- Assign Connection Handle(s) to ASE(s): on CIG creation, prior to
Codec Config, if CIG is already created
- Un-assigning of CIS ID(s): on CIS / ACL disconnection, CIG removal
3) Update State-machine to handle late dropped or joined devices
- Handle setup ISO data path and CIS creation
4) Handle updating number of devices and channel count dynamically
for sending the ISO data
- Sink and Source stream configurations are updated dynamically,
as well as the number of devices and channel count
- Incremented on setup ISO data path
- Decremented on CIS / ACL disconnection / ISO data path removal
5) Reconfigure CIG only if during late join, the newly connected
member device cannot support existing CIG codec/qos config
Bug: 231084798
Bug: 238961038
Bug: 239651157
Tag: #feature
Sponsor: @siyuanh
Test: atest BluetoothInstrumentationTests
Test: atest bluetooth_le_audio_test bluetooth_le_audio_client_test
Test: music stream, phone call switch
Merged-In: Ia98ea0ab9a26e09e11b5672efe2c5d3764cc18f6
Change-Id: Ia98ea0ab9a26e09e11b5672efe2c5d3764cc18f6
(cherry picked from commit 61ad337f)
Loading
Please register or sign in to comment