O áudio de baixa energia (LE) do Bluetooth (BT) introduz os mecanismos de transporte lógico assíncrono orientado à conexão (LE-ACL) e isócrono (LE-ISO) para dados de rastreamento da cabeça (HT).
O Android 15 oferece suporte a ajustes do modo de latência para HT com base no mecanismo de transporte LE-ACL ou LE-ISO usado.
Esta página descreve como a estrutura de áudio, a HAL de áudio e a pilha do Bluetooth interagem para descobrir e selecionar os mecanismos de transporte LE-ACL ou LE-ISO com suporte do host e do headset.
Suporte a LE-ACL e LE-ISO
O Android 15 inclui suporte para mecanismos de transporte LE-ACL e LE-ISO usando uma propriedade do sistema definida pelo fornecedor , modos de latência da HAL de áudio , e modos de conexão do espacializador.
Propriedade do sistema
A implementação do fornecedor do smartphone lista os mecanismos de transporte com suporte na
bluetooth.core.le.dsa_transport_preference propriedade do sistema. O valor é uma lista de strings separadas por vírgulas,
listando os transportes com suporte na ordem de preferência:
le-acl: transporte LE-ACL, quando os dados da unidade de medição inercial (IMU) são informados pela pilha de sensores.iso-hw: transporte ISO com capacidade de tunelamento de dados HT diretamente do controlador Bluetooth para o espacializador no DSP de áudio.iso-sw: transporte ISO sem capacidade de tunelamento, quando os dados da IMU são informados pela pilha de sensores.
Modos de latência
No caso do áudio BT LE, o mecanismo para a pilha BT indicar os modos de latência com suporte para a HAL de áudio e a estrutura de áudio é o mesmo definido para o BT Classic (A2DP). A HAL de áudio informa os modos de latência com suporte de acordo com o dispositivo de áudio selecionado.
As implementações do A2DP oferecem suporte apenas aos modos FREE e LOW_LATENCY.
Por outro lado, para o áudio BT LE, os seguintes modos de latência são definidos na HAL de áudio para oferecer suporte à adição de mecanismos de transporte LE-ACL e LE-ISO:
FREE: esse valor indica que não há restrição específica na latência. Esse modo é usado quando a baixa latência não é compatível (indicada pela HAL) ou quando o HT não está ativo (indicado pela estrutura).LOW: esse valor indica uma latência relativamente baixa (por exemplo, menos de 100 ms) compatível com a operação HT. Esse modo é usado quando a baixa latência é compatível e o HID é transmitido pelo protocolo ACL (indicado pela HAL) ou quando o HT está ativo e nenhum outro modo de baixa latência está disponível (indicado pela estrutura).DYNAMIC_SPATIAL_AUDIO_SOFTWARE: esse modo é usado quando uma das seguintes condições é atendida:- Quando a baixa latência é compatível, o HID é transmitido pelo protocolo ISO e não pode ser tunelado para o mecanismo de efeito espacializador (indicado pela HAL).
- Quando o HT está ativo e o protocolo ISO é usado quando a estrutura de áudio fornece os dados HID para o mecanismo de efeito espacializador (indicado pela estrutura).
Nesse modo, a biblioteca de computação HT na estrutura faz todo o pré-processamento dos dados da IMU e a reconciliação com os movimentos do smartphone indicados pelos sensores.
DYNAMIC_SPATIAL_AUDIO_HARDWARE: esse modo é usado quando uma das seguintes condições é atendida:- Quando a baixa latência é compatível, o HID é transmitido pelo protocolo ISO e pode ser tunelado para o mecanismo de efeito espacializador (indicado pela HAL).
- Quando o HT está ativo e o protocolo ISO é usado quando os dados HID são tunelados para o mecanismo de efeito espacializador (indicado pela estrutura).
Nesse modo, o mecanismo de efeito espacializador recebe os dados da IMU não processados diretamente da pilha BT ou do controlador BT. A implementação do efeito espacializador faz todo o pré-processamento dos dados da IMU e a reconciliação com os movimentos do smartphone indicados pelos sensores.
Os enums do modo de latência são mapeados para a bluetooth.core.le.dsa_transport_preference
propriedade do sistema em Spatializer.cpp.
Suporte ao espacializador
O controlador do espacializador no serviço de política de áudio controla a seleção do protocolo de transporte HT pelo áudio LE. A implementação do mecanismo de efeito espacializador indica
suporte para o tunelamento de dados HT com a HeadTracking.ConnectionMode capacidade.
Os modos de conexão HT com suporte são os seguintes:
FRAMEWORK_PROCESSED: a estrutura de áudio fornece dados da IMU pré-processados em um formato de vetor de cabeça para palco para HAL. Esse modo padrão corresponde ao modo atual com o BT Classic.DIRECT_TO_SENSOR_SW: o mecanismo de efeito espacializador se conecta diretamente ao sensor pela pilha de software do sensor. A estrutura de áudio controla apenas o estado ativado do sensor. Implementações de software que não usam o pré-processamento de dados da IMUlibheadtrackingdo AOSP ou implementações de espacializador descarregadas do DSP podem usar o modoDIRECT_TO_SENSOR_SW.DIRECT_TO_SENSOR_TUNNEL: o mecanismo de efeito espacializador se conecta diretamente ao sensor pelo tunelamento de hardware. A estrutura de áudio controla apenas o estado ativado do sensor. Implementações de espacializador descarregadas do DSP podem usar o modoDIRECT_TO_SENSOR_TUNNEL.
Seleção do modo de latência
A estrutura seleciona um modo de latência na lista de modos de latência com suporte informados pela HAL. O modo de latência é definido com base no estado de ativação do HT atual, no suporte do espacializador atual, e na propriedade do sistema especificada pelo fornecedor que estabelece uma ordem de prioridade entre os mecanismos de transporte.
A estrutura usa o seguinte processo em selectHeadtrackingConnectionMode_l
para selecionar o modo de latência:
- A estrutura carrega a preferência de transporte da
bluetooth.core.le.dsa_transport_preferencepropriedade do sistema. - Os modos de latência com suporte informados pela HAL de áudio são filtrados e ordenados na lista carregada na etapa 1.
- Se o modo de baixa latência de maior prioridade for
iso-hwe a implementação do espacializador oferecer suporte à conexão direta do sensor (ou seja,DIRECT_TO_SENSOR_SWouDIRECT_TO_SENSOR_TUNNELestiverem definidos no espacializador), o modo de latência será definido comoDYNAMIC_SPATIAL_AUDIO_HARDWARE. Se o modo de baixa latência de maior prioridade for
iso-hwe a implementação do espacializador não oferecer suporte à conexão direta do sensor (DIRECT_TO_SENSOR_SWouDIRECT_TO_SENSOR_TUNNELnão estiverem definidos no espacializador), o próximo modo preferido (que éiso-swoule-acl) determinará o modo de latência (que éDYNAMIC_SPATIAL_AUDIO_SOFTWAREouLOW).Se o próximo modo preferido não for especificado, o sistema vai informar um erro de configuração do produto.