L'audio Bluetooth (BT) Low Energy (LE) introduce i meccanismi di trasporto logico asincrono orientato alla connessione (LE-ACL) e isocrono (LE-ISO) per i dati di head tracking (HT).
Android 15 supporta le regolazioni della modalità a bassa latenza per HT in base all'utilizzo del meccanismo di trasporto LE-ACL o LE-ISO.
Questa pagina descrive in che modo il framework audio, l'HAL audio e lo stack Bluetooth interagiscono per rilevare e selezionare i meccanismi di trasporto LE-ACL o LE-ISO supportati dall'host e dalle cuffie.
Supporto per LE-ACL e LE-ISO
Android 15 include il supporto dei meccanismi di trasporto LE-ACL e LE-ISO utilizzando una proprietà di sistema definita dal fornitore, le modalità di latenza di Audio HAL e le modalità di connessione dello spazializzatore.
Proprietà di sistema
L'implementazione del fornitore dello smartphone elenca i meccanismi di trasporto supportati nella proprietà di sistema
bluetooth.core.le.dsa_transport_preference
. Il valore è un elenco di stringhe separate da virgole,
che elenca i trasporti supportati in ordine di preferenza:
le-acl
: Trasporto LE-ACL, quando i dati dell'unità di misura inerziale (IMU) vengono segnalati tramite lo stack di sensori.iso-hw
: trasporto ISO con possibilità di eseguire il tunneling dei dati HT direttamente dal controller Bluetooth allo spazializzatore nel DSP audio.iso-sw
: ISO transport without tunneling capability, when the IMU data is reported through the sensor stack.
Modalità di latenza
Nel caso dell'audio BT LE, il meccanismo per indicare alla HAL audio e al framework audio le modalità di latenza supportate è lo stesso definito per BT Classic (A2DP). L'HAL audio segnala le modalità di latenza supportate in base al dispositivo audio attualmente selezionato.
Le implementazioni A2DP supportano solo le modalità FREE
e LOW_LATENCY
.
Al contrario, per BT LE audio, le seguenti modalità di latenza sono definite nell'HAL audio per supportare l'aggiunta di meccanismi di trasporto LE-ACL e LE-ISO:
FREE
: questo valore indica che non esiste un vincolo specifico sulla latenza. Questa modalità viene utilizzata quando la bassa latenza non è supportata (indicata dall'HAL) o quando HT non è attivo (indicato dal framework).LOW
: questo valore indica una latenza relativamente bassa (ad esempio, inferiore a 100 ms) compatibile con l'operazione HT. Questa modalità viene utilizzata quando è supportata la bassa latenza e HID viene trasmesso tramite il protocollo ACL (indicato dall'HAL) oppure quando HT è attivo e non sono disponibili altre modalità a bassa latenza (indicate dal framework).DYNAMIC_SPATIAL_AUDIO_SOFTWARE
: questa modalità viene utilizzata quando si verifica una delle seguenti condizioni:- Quando la bassa latenza è supportata, HID viene trasmesso tramite il protocollo ISO e non può essere sottoposto a tunneling al motore di effetti spazializzatore (indicato da HAL).
- Quando HT è attivo e viene utilizzato il protocollo ISO quando il framework audio fornisce i dati HID al motore di effetti spazializzatore (indicato dal framework).
In questa modalità, la libreria di calcolo HT nel framework esegue tutta la preelaborazione dei dati IMU e la riconciliazione con i movimenti dello smartphone indicati dai sensori dello smartphone.
DYNAMIC_SPATIAL_AUDIO_HARDWARE
: questa modalità viene utilizzata quando si verifica una delle seguenti condizioni:- Quando è supportata la bassa latenza, l'HID viene trasmesso tramite il protocollo ISO e può essere sottoposto a tunneling al motore di effetti spazializzatore (indicato dall'HAL).
- Quando l'HT è attivo e viene utilizzato il protocollo ISO quando i dati HID vengono trasmessi tramite tunnel al motore di effetti spazializzatore (indicato dal framework).
In questa modalità, il motore di effetti dello spazializzatore riceve i dati IMU non elaborati direttamente dallo stack BT o dal controller BT. L'implementazione dell'effetto di spazializzazione esegue tutta l'elaborazione preliminare dei dati IMU e la riconciliazione con i movimenti dello smartphone indicati dai sensori dello smartphone.
Gli enum della modalità di latenza sono mappati alla proprietà di sistema bluetooth.core.le.dsa_transport_preference
in Spatializer.cpp
.
Supporto dello spazializzatore
Il controller spatializer
nel servizio di criteri audio controlla la selezione del protocollo di trasporto HT
su LE Audio. L'implementazione del motore di effetti di spazializzazione indica
il supporto del tunneling dei dati HT con la funzionalità HeadTracking.ConnectionMode
.
Le modalità di connessione HT supportate sono le seguenti:
FRAMEWORK_PROCESSED
: Il framework audio fornisce dati IMU preelaborati in un formato vettoriale da testa a palco a HAL. Questa modalità predefinita corrisponde alla modalità attuale con BT classic.DIRECT_TO_SENSOR_SW
: il motore di effetti spazializzatore si connette direttamente al sensore tramite lo stack software del sensore. Il framework audio controlla solo lo stato di attivazione del sensore. Le implementazioni software che non utilizzano il pre-elaborazione dei dati IMU AOSPlibheadtracking
o le implementazioni dello spazializzatore con offload DSP possono utilizzare la modalitàDIRECT_TO_SENSOR_SW
.DIRECT_TO_SENSOR_TUNNEL
: Il motore di effetti spazializzatore si connette direttamente al sensore tramite il tunneling hardware. Il framework audio controlla solo lo stato di attivazione del sensore. Le implementazioni dello spazializzatore con offload DSP possono utilizzare la modalitàDIRECT_TO_SENSOR_TUNNEL
.
Selezione della modalità di latenza
Il framework seleziona una modalità di latenza dall'elenco delle modalità di latenza supportate segnalate dall'HAL. La modalità di latenza è impostata in base allo stato di attivazione HT corrente, al supporto dello spazializzatore corrente e alla proprietà di sistema specificata dal fornitore che stabilisce un ordine di priorità tra i meccanismi di trasporto.
Il framework utilizza la seguente procedura in selectHeadtrackingConnectionMode_l
per selezionare la modalità di latenza:
- Il framework carica la preferenza di trasporto dalla
bluetooth.core.le.dsa_transport_preference
proprietà di sistema. - Le modalità di latenza supportate segnalate dall'HAL audio vengono filtrate e ordinate in base all'elenco caricato nel passaggio 1.
- Se la modalità a bassa latenza con priorità più alta è
iso-hw
e l'implementazione dello spazializzatore supporta la connessione diretta del sensore (ovveroDIRECT_TO_SENSOR_SW
oDIRECT_TO_SENSOR_TUNNEL
sono impostati nello spazializzatore), la modalità di latenza è impostata suDYNAMIC_SPATIAL_AUDIO_HARDWARE
. Se la modalità a bassa latenza con priorità più alta è
iso-hw
e l'implementazione dello spazializzatore non supporta la connessione diretta del sensore (DIRECT_TO_SENSOR_SW
oDIRECT_TO_SENSOR_TUNNEL
non sono impostati nello spazializzatore), la modalità successiva preferita (iso-sw
ole-acl
) determina la modalità di latenza (DYNAMIC_SPATIAL_AUDIO_SOFTWARE
oLOW
).Se la modalità preferita successiva non è specificata, il sistema segnala un errore di configurazione del prodotto.