leaudio: Improve LeAudio switch during phone call
When LeAudio Group is getting Active during phone call it is because
user changed the output device for a phone call.
This operations is quite heavy as it takes Telecom/Audio Framework and
Bluetooth time and resources. The step by step scenario looks like this:
1. Telecom clears current communication device (could be also Bluetooth)
2. Telecom enables Audio for Bluetooth device
3. LeAudioService calls native to set group as active (GroupSetActive)
4. leaudio native stack starts audio session and notifies upper layer
about that
5. LeAudioService requests Audio Manager to connect LeAudio device
6. Audio Manager reads LeAudio device capabilities
7. Audio Manager notifies about LeAudio device being connected
8. LeAudioService notifies users (and Telecom) about LeAudio device
being connected
9. Telecom choose new communication device
10. Audio HAL Resumes Bluetooth Encoding session which triggers ASE
Configuration up to Streaming
The whole thing can take up to 4 sec
With this patch, followining modifications are added in following steps
4. in addition to previous steps, if native stack detects ongoing call,
it will start ASE configuration for Conversational use case up to QoS
Configure state
10. Here instade of complete ASE configuration, only Enable ASE is
left.
This can decrease time by 1.5 sec
Bug: 308510081
Bug: 369322905
Test: atest bluetooth_le_audio_test bluetooth_le_audio_client_test
Flag: com::android::bluetooth:flags::leaudio_improve_switch_during_phone_call
Change-Id: Iaedd00594e6caa17495435c897e76c199c61eca9
Loading
Please register or sign in to comment