El audio Bluetooth (BT) de bajo consumo (LE) introduce los mecanismos de transporte lógico asíncrono orientado a la conexión (LE-ACL) y lógico isócrono (LE-ISO) para los datos de seguimiento de cabeza (HT).
Android 15 admite ajustes del modo de latencia para HT según si se usa el mecanismo de transporte LE-ACL o LE-ISO.
En esta página, se describe cómo interactúan el framework de audio, el HAL de audio y la pila de Bluetooth para descubrir y seleccionar los mecanismos de transporte LE-ACL o LE-ISO compatibles con el host y los auriculares.
Compatibilidad con LE-ACL y LE-ISO
Android 15 incluye compatibilidad con los mecanismos de transporte LE-ACL y LE-ISO a través de una propiedad del sistema definida por el proveedor, modos de latencia de HAL de audio y modos de conexión del espacializador.
Propiedad del sistema
La implementación del proveedor del teléfono enumera los mecanismos de transporte admitidos en la propiedad del sistema bluetooth.core.le.dsa_transport_preference
. El valor es una lista de cadenas separadas por comas que indica los transportes admitidos en orden de preferencia:
le-acl
: Transporte de LE-ACL, cuando los datos de la unidad de medición inercial (IMU) se informan a través de la pila de sensores.iso-hw
: Transporte ISO con capacidad para canalizar datos de HT directamente desde el controlador de Bluetooth al espacializador en el DSP de audio.iso-sw
: Transporte ISO sin capacidad de tunelización, cuando los datos de la IMU se informan a través de la pila de sensores.
Modos de latencia
En el caso del audio LE de BT, el mecanismo para que la pila de BT indique los modos de latencia admitidos al HAL de audio y al framework de audio es el mismo que el definido para BT Classic (A2DP). El HAL de audio informa los modos de latencia admitidos según el dispositivo de audio seleccionado actualmente.
Las implementaciones de A2DP solo admiten los modos FREE
y LOW_LATENCY
.
En cambio, para el audio BT LE, se definen los siguientes modos de latencia en la HAL de audio para admitir la incorporación de mecanismos de transporte LE-ACL y LE-ISO:
FREE
: Este valor indica que no hay una restricción específica sobre la latencia. Este modo se usa cuando no se admite la latencia baja (indicada por el HAL) o cuando HT no está activo (indicado por el framework).LOW
: Este valor indica una latencia relativamente baja (por ejemplo, menos de 100 ms) compatible con el funcionamiento de HT. Este modo se usa cuando se admite una latencia baja y el HID se transmite a través del protocolo ACL (indicado por el HAL) o cuando HT está activo y no hay otros modos de latencia baja disponibles (indicado por el framework).DYNAMIC_SPATIAL_AUDIO_SOFTWARE
: Este modo se usa cuando se cumple una de las siguientes condiciones:- Cuando se admite la latencia baja, el HID se transmite a través del protocolo ISO, y el HID no se puede canalizar al motor de efectos de espacialización (indicado por el HAL).
- Cuando HT está activo y se usa el protocolo ISO cuando el framework de audio proporciona los datos de HID al motor de efectos de espacialización (indicado por el framework).
En este modo, la biblioteca de procesamiento de HT del framework realiza todo el procesamiento previo de los datos de la IMU y la conciliación con los movimientos del teléfono indicados por los sensores del teléfono.
DYNAMIC_SPATIAL_AUDIO_HARDWARE
: Este modo se usa cuando se cumple una de las siguientes condiciones:- Cuando se admite la latencia baja, el HID se transmite a través del protocolo ISO y se puede canalizar al motor de efectos de espacialización (indicado por el HAL).
- Cuando el HT está activo y se usa el protocolo ISO cuando los datos HID se canalizan al motor de efectos de espacialización (indicado por el framework).
En este modo, el motor de efectos del espacializador recibe los datos sin procesar de la IMU directamente de la pila o el controlador de BT. La implementación del efecto de espacialización realiza todo el procesamiento previo de los datos de la IMU y la conciliación con los movimientos del teléfono indicados por los sensores del teléfono.
Los enumeradores del modo de latencia se asignan a la propiedad del sistema bluetooth.core.le.dsa_transport_preference
en Spatializer.cpp
.
Compatibilidad con el espacializador
El controlador de espacializador en el servicio de políticas de audio controla la selección del protocolo de transporte de HT a través de LE Audio. La implementación del motor de efectos de espacialización indica compatibilidad con el túnel de datos de HT con la capacidad HeadTracking.ConnectionMode
.
Los modos de conexión HT admitidos son los siguientes:
FRAMEWORK_PROCESSED
: El framework de audio proporciona datos de IMU procesados previamente en un formato de vector de cabeza a escenario para el HAL. Este modo predeterminado corresponde al modo actual con BT clásico.DIRECT_TO_SENSOR_SW
: El motor de efectos de espacialización se conecta directamente al sensor a través de la pila de software del sensor. El framework de audio solo controla el estado habilitado del sensor. Las implementaciones de software que no usan el preprocesamiento de datos de IMU delibheadtracking
del AOSP ni las implementaciones de espacializador descargadas en el DSP pueden usar el modoDIRECT_TO_SENSOR_SW
.DIRECT_TO_SENSOR_TUNNEL
: El motor de efectos de espacialización se conecta directamente al sensor a través de un túnel de hardware. El framework de audio solo controla el estado habilitado del sensor. Las implementaciones del espacializador descargado en el DSP pueden usar el modoDIRECT_TO_SENSOR_TUNNEL
.
Selección del modo de latencia
El framework selecciona un modo de latencia de la lista de modos de latencia compatibles que informa el HAL. El modo de latencia se establece según el estado actual de HT, la compatibilidad actual con el espacializador y la propiedad del sistema especificada por el proveedor que establece un orden de prioridad entre los mecanismos de transporte.
El framework usa el siguiente proceso en selectHeadtrackingConnectionMode_l
para seleccionar el modo de latencia:
- El framework carga la preferencia de transporte desde la propiedad del sistema
bluetooth.core.le.dsa_transport_preference
. - Los modos de latencia admitidos que informa la HAL de audio se filtran y ordenan según la lista cargada en el paso 1.
- Si el modo de baja latencia con la prioridad más alta es
iso-hw
y la implementación del espacializador admite la conexión directa del sensor (es decir,DIRECT_TO_SENSOR_SW
oDIRECT_TO_SENSOR_TUNNEL
se establecen en el espacializador), el modo de latencia se establece enDYNAMIC_SPATIAL_AUDIO_HARDWARE
. Si el modo de latencia baja de mayor prioridad es
iso-hw
y la implementación del espacializador no admite la conexión directa del sensor (no se establecenDIRECT_TO_SENSOR_SW
niDIRECT_TO_SENSOR_TUNNEL
en el espacializador), el siguiente modo preferido (que esiso-sw
ole-acl
) determina el modo de latencia (que esDYNAMIC_SPATIAL_AUDIO_SOFTWARE
oLOW
).Si no se especifica el siguiente modo preferido, el sistema informa un error de configuración del producto.